-
Notifications
You must be signed in to change notification settings - Fork 29
/
README.config
194 lines (173 loc) · 9.32 KB
/
README.config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
##The following is a detailed description of each configuration file entry
#work flow control
RUN_ENKF=true #if true, run EnKF component
RUN_4DVAR=true #if true, run 4DVar component
#if both RUN_ENKF and RUN_4DVAR are true, run a hybrid E4DVar
RUN_ENVAR=false #if true, run 4DEnVar instead of E4DVar
FORECAST_TO_END=false #if true, run_forecast.sh will run from analysis time to DATE_END
FOLLOW_STORM=true #if true, nested domain will be preset to move following the path of
# storm location from tcvitals data
STORM_ID=al132010 #storm id, format: basin (al) num (13) year (2010)
CLEAN=true #if true, delete unwanted wrfout files in rundir
MULTI_PHYS_ENS=true #if true, use a multi-physics ensemble
MULTI_INC=true #if true, run a multi-incremental version of 4DVar
DECIMATION_FACTOR=3 #ratio of high/low resolution in multi-incremental 4DVar
#experiment design
EXP_NAME=karl #name of experiment
DATE_START=201009121200 #initial date, need to have available first guess (0 6 12 18 h)
DATE_END=201009180000 #end date
DATE_CYCLE_START=201009130000 #date of first assimilation cycle, also need first guess available
DATE_CYCLE_END=201009151800 #date of final assimilation cycle
#time control: unit=minutes
CYCLE_PERIOD=360 #interval among cycles
WRFOUT_INTERVAL=(180 180 180) #interval of wrfout times
LBC_INTERVAL=360 #interval of available first guess files
OBS_WIN_MIN=-180 #observation window start offset
OBS_WIN_MAX=180 #observation window end offset
MINUTES_PER_SLOT=60 #bin size, defines how may time slots are there in a window
#Observation window is usually set to +-1/2 CYCLE_PERIOD, so that
#EnKF analysis date locates in the center of the window.
FORECAST_MINUTES=360 #default length of forecast from analysis
#directories
WORK_DIR=$SCRATCH/$EXP_NAME #path to your experiment work directory
SCRIPT_DIR=$WORK/DA #path to this script set
CODE_DIR=$WORK/code #path to codes
DATA_DIR=$WORK/data/Karl #path to observations
WPS_DIR=$CODE_DIR/WPSV3.4.1 #WPS package (contains geogrid.exe, ungrib.exe, metgrid.exe)
WRF_DIR=$CODE_DIR/WRFV3.4.1 #WRF package (contains real.exe, wrf.exe, ndown.exe and runtime files)
WRF_BC_DIR=$CODE_DIR/WRF_BC_v2.1_alltime #path to update_wrf_bc.exe
WRFDA_DIR=$CODE_DIR/WRFDAV3.5 #WRFDA package (contains da_wrfvar.exe and runtime files)
MULTI_INC_DIR=$CODE_DIR/MULTI_INC #path to da_decimation.exe, da_bdy.exe
ENKF_DIR=$CODE_DIR/EnKF/src #path to enkf.mpi
FG_DIR=$DATA_DIR/fnl #path to first guess files
GEOG_DIR=$WORK/data/geog #path to geog, needed by WPS
BE_DIR=$DATA_DIR #path to be.dat
TCVITALS_DIR=$WORK/data/nhc/tcvitals #tcvitals data files
#domain setup
TWO_WAY_NESTING=true #if true, set feedback=1 in namelist.input for WRF
MAX_DOM=2 #the following options are the same as in namelist.input for WRF
E_WE=(379 298 298)
E_SN=(244 298 298)
E_VERT=(35 35 35)
DX=(27000 9000 3000)
DY=(27000 9000 3000)
TIME_STEP=(90 30 10)
PARENT_ID=(0 1 2)
GRID_RATIO=(1 3 3)
TIME_STEP_RATIO=(1 3 3)
I_PARENT_START=(1 193 100)
J_PARENT_START=(1 73 100)
MAP_PROJ="mercator"
REF_LAT=25.0
REF_LON=-65.0
STAND_LON=-65.0
TRUELAT1=30.0
TRUELAT2=60.0
P_TOP=1000
#physics
MP_PHYSICS=(6 6 6)
RA_LW_PHYSICS=(1 1 1)
RA_SW_PHYSICS=(1 1 1)
RADT=(27 9 3)
SF_SFCLAY_PHYSICS=(1 1 1)
SF_SURFACE_PHYSICS=(1 1 1)
BL_PBL_PHYSICS=(1 1 1)
BLDT=(0 0 0)
CU_PHYSICS=(0 0 0)
CUDT=(5 5 5)
SST_UPDATE=0
#ENKF options
NUM_ENS=60 #ensemble size
NMCPU=$((NUM_ENS+1)) #for parallel: number of CPUs for members
NICPU=2 #.. .. : number of CPUs for decomposition in i direction
NJCPU=2 #.. .. : .. .. .. in j ..
INFLATION_COEF=1.0 #prior covariance inflation coefficient
RELAX_OPT=0 #posterior covariance relaxation options
# 0: relax-to-prior-perturbation (Zhang et al 2004)
# 1: relax-to-prior-spread (Whitaker and Hamill 2012)
RELAX_ADAPTIVE=false #for $RELAX_OPT=1, if true, turn on adaptive algorithm (ACR, Ying and Zhang 2015)
RELAXATION_COEF=0.8 #relaxation coefficient
REPLACE_MEAN=false #if true, replace ensemble mean with $REPLACE_MEAN_WITH after analysis
REPLACE_MEAN_WITH=forecast
#data sources
INCLUDE_LITTLE_R=true #include LITTLE_R formatted data as input to obsproc.exe
INCLUDE_BUFR=false # .. BUFR ..
INCLUDE_MADIS=false # .. MADIS ..
#Some of the following switches are shared in namelist_enkf and namelist_wrfvar to select certain observation types
# in namelist.enkf in wrfvar namelist.input
USE_SYNOPOBS=true # / use_synopobs
USE_SURFOBS=false # use_surface /
USE_SOUNDOBS=true # use_sounding use_soundobs
USE_PILOTOBS=true # / use_pilotobs
USE_PROFILEROBS=true # use_profiler use_profilerobs
USE_AIREPOBS=true # use_aircft use_airepobs
USE_METAROBS=true # use_metar use_metarobs
USE_SHIPSOBS=true # use_sfcshp use_shipsobs
USE_SSMIOBS=false # use_spssmi /
USE_SATEMOBS=false # / use_satemobs
USE_GPSPWOBS=false # use_gpspw use_gpspwobs
USE_GPSREFOBS=false # / use_gpsrefobs
USE_ATOVS=false # use_atovs /
USE_GEOAMVOBS=true # use_satwnd use_geoamvobs
USE_POLARAMVOBS=false # / use_polaramvobs
USE_QSCATOBS=false # / use_qscatobs
USE_RADAROBS=false # / use_radarobs
USE_RADAR_RF=false # use_radar_rf /
USE_RADAR_RV=false # use_radar_rv /
USE_AIRBORNE_RF=false # use_airborne_rf /
USE_AIRBORNE_RV=false # use_airborne_rv /
USE_BOGUSOBS=false # / use_bogusobs
USE_BUOYOBS=true # / use_buoyobs
#data thinning coef for EnKF
THIN_SURFACE=0
THIN_SOUNDING=0
THIN_PROFILER=0
THIN_AIRCFT=0
THIN_METAR=0
THIN_SFCSHP=0
THIN_SPSSMI=0
THIN_ATOVS=0
THIN_SATWND=10
THIN_GPSPW=0
THIN_RADAR=0
#localization distance (km for HROI, # of layers for VROI) for EnKF
HROI_SFC=900 #horizontal radius of influence for surface obs
HROI_UPPER=900 #horizontal radius of influence for upper air obs
HROI_RADAR=45 #horizontal radius of influence for radar obs,
# in EnKF, radar obs are treated with SCL option (a blend of ROIs used)
VROI=15 #vertical radius of influence
VROI_RADAR=15 #vertical radius of influence for radar obs
#WRFDA options
CV_OPTIONS=3 #3 - uses be.dat.cv3
#5/6 - uses be.dat from run_gen_be.sh ($BE_DIR)
VAR_SCALING1=1.0 #the following options are the same as in namelist.input for WRFDA
VAR_SCALING2=1.0
VAR_SCALING3=1.0
VAR_SCALING4=1.0
VAR_SCALING5=1.0
LEN_SCALING1=1.0
LEN_SCALING2=1.0
LEN_SCALING3=1.0
LEN_SCALING4=1.0
LEN_SCALING5=1.0
#WRFDA options (for 4DVar)
MAX_EXT_ITS=1
NTMAX=80
VAR4D_LBC=false
#HYBRID options (alpha cv method related)
ALPHACV_METHOD=2
JE_FACTOR=1.25
#CPU usage
HOSTPPN=12 #number of CPUs per node on host machines
HOSTTYPE=jet #host type (used in job_submit.sh, currently supports "jet" and "stampede")
JOB_SUBMIT_MODE=2 # 1 - submit run_cycle.sh to queue as a single job. The scheduling of
# each component is taken care of in each module script.
# 2 - execute run_cycle.sh as a bash script, each component is submitted
# as a separate job in the queue, scheduling is done by the queue.
real_ntasks=$HOSTPPN #number of CPUs per WPS component (geogrid.exe, metgrid.exe, real.exe)
wrf_ntasks=$((HOSTPPN*8)) # .. .. .. .. WRF run (wrf.exe)
var3d_ntasks=$HOSTPPN # .. .. .. .. 3DVar component (perturb_ic da_wrfvar.exe)
var4d_ntasks=(240 480 960) # .. .. .. .. 4DVar component (da_wrfvar.exe) (for each domain)
enkf_ntasks=$((NMCPU*$NICPU*$NJCPU)) # .. .. .. .. EnKF component (enkf.mpi)
var4d_ppn=$HOSTPPN #CPUs per node for 4DVar component (for using larger memory)
enkf_ppn=4 # .. .. .. for EnKF .. ..