@@ -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