Skip to content

Commit 8a183f2

Browse files
committed
find nens from ldas ICS when ladas coupling atmdet
receive nens from fvsetup when ladas coupling atmens a minor fix to nml resolution insertion
1 parent cf898a8 commit 8a183f2

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

GEOSldas_App/ldas_setup

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -196,15 +196,15 @@ class LDASsetup:
196196
assert self.bcs_version is not None, "Error. Must have command line arg bcs_version for coupled land-atm DAS.\n"
197197
assert self.rstloc is not None, "Error. Must have command line arg rstloc for coupled land-atm DAS.\n"
198198
assert self.varwindow is not None, "Error. Must have command line arg varwindow for coupled land-atm DAS.\n"
199-
assert self.nens is not None, "Error. Must have command line arg nens for coupled land-atm DAS.\n"
199+
if self.ladas_cpl == 2:
200+
assert self.nens is not None, "Error. Must have command line arg nens for coupled land-atmensDAS.\n"
200201

201202
self.rqdExeInp['BEG_DATE'] = f"{self.nymdb} {self.nhmsb}"
202203
rstloc_ = self.rstloc.rstrip('/') # remove trailing '/'
203204
assert os.path.isdir(rstloc_) # make sure rstloc_ is a valid directory
204205
self.rstloc = os.path.abspath(rstloc_)
205206
self.rqdExeInp['RESTART_PATH'] = os.path.dirname( self.rstloc)
206207
self.rqdExeInp['RESTART_ID'] = os.path.basename(self.rstloc)
207-
208208
self.adas_expdir = os.path.dirname( self.exphome)
209209
self.rqdExeInp['ADAS_EXPDIR'] = self.adas_expdir
210210
self.adas_expid = os.path.basename(self.adas_expdir)
@@ -214,16 +214,15 @@ class LDASsetup:
214214
# ldas coupled with determistic component of adas
215215
self.rqdExeInp['EXP_ID'] = self.adas_expid + '_LDAS'
216216
self.rqdExeInp['MET_PATH'] = self.adas_expdir + '/recycle/holdpredout'
217-
self.rqdExeInp['ENSEMBLE_FORCING'] = 'NO'
217+
self.rqdExeInp['ENSEMBLE_FORCING'] = 'NO'
218218
elif self.ladas_cpl == 2 :
219219
# ldas coupled with ensemble component of adas
220220
self.rqdExeInp['EXP_ID'] = self.adas_expid + '_LDAS4ens'
221221
self.rqdExeInp['MET_PATH'] = self.adas_expdir + '/atmens/mem'
222222
self.rqdExeInp['ENSEMBLE_FORCING'] = 'YES'
223223
else :
224224
exit("Error. Unknown value of self.ladas_cpl.\n")
225-
226-
self.rqdExeInp['NUM_LDAS_ENSEMBLE'] = self.nens
225+
227226
self.first_ens_id = 1
228227
self.rqdExeInp['FIRST_ENS_ID'] = self.first_ens_id
229228

@@ -261,6 +260,14 @@ class LDASsetup:
261260
_hours = int(self.rqdExeInp['JOB_SGMT'][ 9:11])
262261
_end_date = _beg_date + timedelta(hours=int(self.varwindow)/60)
263262
self.rqdExeInp['END_DATE'] = _end_date.strftime("%Y%m%d %H%M%S")
263+
264+
# find nens from ldas ICS
265+
rstdir=self.rqdExeInp['RESTART_PATH']+'/'+self.rqdExeInp['RESTART_ID']+'/output/'+ self.rqdExeInp['RESTART_DOMAIN']
266+
enslist = glob.glob(os.path.join(rstdir, "rs", "ens????"))
267+
self.rqdExeInp['NUM_LDAS_ENSEMBLE'] = len(enslist)
268+
# if fvsetup send atm_nens via commandline, use that
269+
if self.ladas_cpl == 2 :
270+
self.rqdExeInp['NUM_LDAS_ENSEMBLE'] = self.nens
264271

265272
# end if self.ladas_cpl > 0 --------------------------------------------------------------------
266273

@@ -1250,7 +1257,8 @@ class LDASsetup:
12501257

12511258
if self.ladas_cpl > 0:
12521259
# edit resolution info in ensupd nml file
1253-
sp.run(['sed', '-i', 's/<CFnnnn>/'+ self.agcm_res+'/g', self.rundir+'/LDASsa_SPECIAL_inputs_ensupd.nml'])
1260+
_agcm_res = 'CF'+self.agcm_res
1261+
sp.run(['sed', '-i', 's/<CFnnnn>/'+ _agcm_res+'/g', self.rundir+'/LDASsa_SPECIAL_inputs_ensupd.nml'])
12541262

12551263
# get optimzed NX and IMS
12561264
optimized_distribution_file = tempfile.NamedTemporaryFile(delete=False)

0 commit comments

Comments
 (0)