Run WRF obsproc

2 minute read

Published:

Using MADIS observations

MADIS obs website MADIS obs download

install madis-4.3 and MADIS2LITTLER

prerequisite: export PATH

 export DAT_DIR=/home/chchoi/arw/wrfda_test
 export WRFDA=/home/chchoi/arw/WRFDA
 export WRKDIR=/home/chchoi/arw/wrf_run

MADIS2LITTLER download MADIS-4.3 download

We mainly transfer MADIS natural netcdf files to LITTLE_R format via MADIS2LITTLER. And installing MADIS2LITTLER needs library madis.

1. install madis-4.3, needed netcdf3

a. vim $madis-4.3/src/makefile

 NETCDF_INC=/home/chchoi/netcdf3/include/
 NETCDF_LIB=/home/chchoi/netcdf3/lib/libnetcdf.a
 #
 #
 # Linux and Windows-Cygwin or Windows-MinGW (all 3 use g77 compiler)
 # ------------------------------------------------------------------
 #
 #FC=g77
 #FC=gfortran
 FC=pgf90
 #FC=mpif90
 #FFLAGS=-Wno-globals
 FFLAGS=-O
 LDFLAGS=

2. install MADIS2LITTLER

a. vim compile.ksh

MADIS_EXTERNAL=/home/chchoi/x64/madis/lib/
NETCDF_LIB=/home/chchoi/x64/netcdf3/lib/

b. compile

./compile.ksh pgf90

3. run MADIS2LITTLER

a. vim run_madis_to_little_r.ksh

 export MADIS_DATA=/home/chchoi/raw_data/madis 
 # where to put madis obs files

 export MADIS_STATIC=/home/chchoi/x64/madis/static/ 
 # where to put madis library

 export METAR=TRUE
 export MARINE=TRUE
 export GPSPW=FALSE
 export ACARS=TRUE
 export RAOB=TRUE
 export NPN=FALSE
 export MAP=FALSE
 export SATWND=TRUE
 #usually meter and marine are enough

 SDATE=2017061200
 EDATE=2017061212
 INTERVAL=12

 CODE_DIR=/home/chchoi/x64/MADIS2LITTLER/
 # where to install MADIS2LITTLER

 MADIS2LITTLE_R_DIR=${MADIS_DATA}/little_r_obs
 # where to put transformed little_r obs files

b. running madis_to_little_r.ksh

./madis_to_little_r.ksh

4. combine three files together

cat RAOB_LITTLE_R_2017-06-12_16 METAR_LITTLE_R_2017-06-12_16 SHIP_LITTLE_R_2017-06-12_16 >& obs.2017061216

5. running obsproc.exe

 cp $WRFDA/var/obsproc/namelist.obsproc.3dvar.wrfvar-tut namelist.obsproc
 cp $WRFDA/var/obsproc/obserr.txt .
 cp $WRFDA/var/obsproc/msfc.tbl .
 ln -sf $WRFDA/var/obsproc/obsproc.exe .

b. vi namelist.obsproc

&record1
 obs_gts_filename = 'obs.2017061212'
 obs_err_filename = 'obserr.txt',
 fg_format = 'WRF'
 gts_from_mmm_archive = .false.,
 /

&record2
 time_window_min = '2017-06-12_06:00:00',
 time_analysis = '2017-06-12_12:00:00',
 time_window_max = '2017-06-13_00:00:00',
 /

&record3
 max_number_of_obs = 400000,
 fatal_if_exceed_max_obs = .TRUE.,
 /

&record4
 qc_test_vert_consistency = .TRUE.,
 qc_test_convective_adj = .TRUE.,
 qc_test_above_lid = .TRUE.,
 remove_above_lid = .false.,
 domain_check_h = .true.,
 Thining_SATOB = .false.,
 Thining_SSMI = .false.,
 Thining_QSCAT = .false.,
 calc_psfc_from_qnh = .true.,
 /

&record5
 print_gts_read = .TRUE.,
 print_gpspw_read = .TRUE.,
 print_recoverp = .TRUE.,
 print_duplicate_loc = .TRUE.,
 print_duplicate_time = .TRUE.,
 print_recoverh = .TRUE.,
 print_qc_vert = .TRUE.,
 print_qc_conv = .TRUE.,
 print_qc_lid = .TRUE.,
 print_uncomplete = .TRUE.,
 /

&record6
 ptop = 1000.0,
 base_pres = 100000.0,
 base_temp = 290.0,
 base_lapse = 50.0,
 base_strat_temp = 215.0,
 base_tropo_pres = 20000.0
 /

&record7
 IPROJ = 1,
 PHIC = 22.2,
 XLONC = 113.54417,
 TRUELAT1= 30.0,
 TRUELAT2= 60.0,
 MOAD_CEN_LAT = 22.2,
 STANDARD_LON = 120.00,
 /

&record8
 IDD = 1,
 MAXNES = 1,
 NESTIX = 50, 200, 136, 181, 211,
 NESTJX = 50, 200, 181, 196, 211,
 DIS = 16, 10., 3.3, 1.1, 1.1,
 NUMC = 1, 1, 2, 3, 4,
 NESTI = 1, 40, 28, 35, 45,
 NESTJ = 1, 60, 25, 65, 55,
 /

c. Run obsproc.exe

./obsproc.exe

this will get obs_gts_2017-06-12_12:00:00.