Skip to content

Commit c7c0800

Browse files
Tidy up for ensemble runs.
1 parent e692468 commit c7c0800

File tree

3 files changed

+43
-23
lines changed

3 files changed

+43
-23
lines changed

settings_cycle_template

+13-13
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
# experiment name
44
export exp_name=
5+
STARTDATE=
6+
ENDDATE=
57

68
# temporary directory where experiment is run from
79
export WORKDIR=/scratch2/BMC/gsienkf/${USER}/workdir/
@@ -12,37 +14,35 @@ export OUTDIR=/scratch2/BMC/gsienkf/${USER}/cycle_land/${exp_name}/
1214

1315
# for LETKF, this is size of ensemble.
1416
# for LETKF-OI pseudo ensemble, or non-ensemble runs use 1
15-
ensemble_size=
17+
export ensemble_size=
1618

1719
# length of each forecast
18-
FCSTHR=
20+
export FCSTHR=
1921

2022
#forcing options: gdas, gswp3, gefs_ens
21-
atmos_forc=
23+
export atmos_forc=
2224

2325
#FV3 resolution
2426
export RES=
2527
export TPATH=
2628
export TSTUB= # file stub for orography files in $TPATH
2729
# oro_C${RES} for atm only, oro_C${RES}.mx100 for atm/ocean.
28-
export TTYPE="mx100" # orography file type. Options: "mx100" for coupled atm/sea/ice model, "" for uncoupled (atm or land only)
2930

3031
# number of cycles to submit in a single job
3132
# on hera in the debug queue 20 is a good number.
32-
dates_per_job=20
33+
export cycles_per_job=20
3334

3435
# directory with initial conditions
3536
# can find some here:/scratch2/BMC/gsienkf/Clara.Draper/DA_test_cases/land-offline_workflow/offline_ICS/single
36-
ICSDIR=/scratch2/BMC/gsienkf/Clara.Draper/DA_test_cases/land-offline_workflow/offline_ICS/test_ICS/
37+
export ICSDIR=/scratch2/BMC/gsienkf/Clara.Draper/DA_test_cases/land-offline_workflow/offline_ICS/test_ICS/
3738

3839
# namelist for do_landDA.sh
39-
# set to empty to not call do_landDA.sh
40-
DA_config=
41-
#export DA_config="" # do not call.
40+
# set to "openloop" to not call do_landDA.sh
41+
export DA_config=
4242

4343
# if want different DA at different times, list here.
44-
DA_config00=${DA_config}
45-
DA_config06=${DA_config}
46-
DA_config12=${DA_config}
47-
DA_config18=${DA_config}
44+
export DA_config00=${DA_config}
45+
export DA_config06=${DA_config}
46+
export DA_config12=${DA_config}
47+
export DA_config18=${DA_config}
4848

settings_cycle_test

+2-3
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,15 @@ export TSTUB="oro_C96.mx100" # file stub for orography files in $TPATH
3030

3131
# number of cycles to submit in a single job
3232
# on hera in the debug queue 20 is a good number.
33-
export dates_per_job=1
33+
export cycles_per_job=1
3434

3535
# directory with initial conditions
3636
# can find some here:/scratch2/BMC/gsienkf/Clara.Draper/DA_test_cases/land-offline_workflow/offline_ICS/single
3737
export ICSDIR=/scratch2/BMC/gsienkf/Clara.Draper/DA_test_cases/land-offline_workflow/offline_ICS/test_ICS/
3838

3939
# namelist for do_landDA.sh
40-
# set to empty to not call do_landDA.sh
40+
# set to "openloop" to not call do_landDA.sh
4141
export DA_config="settings_DA_test"
42-
#export DA_config="" # do not call.
4342

4443
# if want different DA at different times, list here.
4544
export DA_config00=${DA_config}

submit_cycle.sh

+28-7
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ source $analdate
1717
THISDATE=$STARTDATE
1818
date_count=0
1919

20-
while [ $date_count -lt $dates_per_job ]; do
20+
while [ $date_count -lt $cycles_per_job ]; do
2121

2222
if [ $THISDATE -ge $ENDDATE ]; then
2323
echo "All done, at date ${THISDATE}" >> $logfile
@@ -132,10 +132,10 @@ while [ $date_count -lt $dates_per_job ]; do
132132

133133
if [ $ensemble_size == 1 ]; then
134134
mem_ens="mem000"
135-
NN=""
135+
NNN="000"
136136
else
137137
mem_ens="mem`printf %03i $n_ens`"
138-
NN="`printf %02i $n_ens`" # forcing ensemble number
138+
NNN="`printf %03i $n_ens`"
139139
fi
140140

141141
MEM_WORKDIR=${WORKDIR}/${mem_ens}
@@ -180,20 +180,41 @@ while [ $date_count -lt $dates_per_job ]; do
180180
sed -i -e "s/XXFREQ/${FREQ}/g" ufs-land.namelist
181181
sed -i -e "s/XXRDD/${RDD}/g" ufs-land.namelist
182182
sed -i -e "s/XXRHH/${RHH}/g" ufs-land.namelist
183-
sed -i -e "s/XXMEM/${NN}/g" ufs-land.namelist
183+
sed -i -e "s/XXMEM/${NNN}/g" ufs-land.namelist
184184

185185
# submit model
186186
echo '************************************************'
187-
echo 'calling model'
187+
echo "calling model for member ${NNN}"
188188
echo $MEM_WORKDIR
189-
$LSMexec
189+
srun -n 1 $LSMexec
190+
#PID=$!
191+
#$LSMexec
190192

191193
# no error codes on exit from model, check for restart below instead
192194
# if [[ $? != 0 ]]; then
193195
# echo "model failed"
194196
# exit
195197
# fi
196198

199+
n_ens=$((n_ens+1))
200+
done # n_ens < ensemble_size
201+
202+
# wait for model(s) to complete.
203+
wait
204+
205+
# check model ouput
206+
n_ens=1
207+
while [ $n_ens -le $ensemble_size ]; do
208+
209+
if [ $ensemble_size == 1 ]; then
210+
mem_ens="mem000"
211+
else
212+
mem_ens="mem`printf %03i $n_ens`"
213+
fi
214+
215+
MEM_WORKDIR=${WORKDIR}/${mem_ens}
216+
MEM_MODL_OUTDIR=${OUTDIR}/${mem_ens}
217+
197218
if [[ -e ${MEM_WORKDIR}/ufs_land_restart.${nYYYY}-${nMM}-${nDD}_${nHH}-00-00.nc ]]; then
198219
cp ${MEM_WORKDIR}/ufs_land_restart.${nYYYY}-${nMM}-${nDD}_${nHH}-00-00.nc ${MEM_MODL_OUTDIR}/restarts/vector/ufs_land_restart_back.${nYYYY}-${nMM}-${nDD}_${nHH}-00-00.nc
199220
else
@@ -209,7 +230,7 @@ while [ $date_count -lt $dates_per_job ]; do
209230
THISDATE=$NEXTDATE
210231
date_count=$((date_count+1))
211232

212-
done # date_count -lt dates_per_job
233+
done # date_count -lt cycles_per_job
213234

214235

215236
############################

0 commit comments

Comments
 (0)