Skip to content

Commit

Permalink
Address issues in creating XML for GFS forecast-only with app S2SWA (#…
Browse files Browse the repository at this point in the history
…2757)

This bugfix PR:
- fixes an issue where a user is unable to generate the XML for a GFS
forecast-only experiment with APP=S2SWA

Specifically, the changes are related to defining `aero_fcst_cdumps`.  
Following `setup_expt.py`, the user will have to set
`AERO_FCST_CDUMPS="gdas|gfs|both" depending on their use case in
`config.base`.
  • Loading branch information
aerorahul authored Jul 16, 2024
1 parent e0878db commit fc668aa
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
6 changes: 6 additions & 0 deletions workflow/applications/applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,18 @@ def __init__(self, conf: Configuration) -> None:
self.wave_cdumps = [wave_cdump]

self.aero_anl_cdumps = None
self.aero_fcst_cdumps = None
if self.do_aero:
aero_anl_cdump = _base.get('AERO_ANL_CDUMP', 'BOTH').lower()
if aero_anl_cdump in ['both']:
self.aero_anl_cdumps = ['gfs', 'gdas']
elif aero_anl_cdump in ['gfs', 'gdas']:
self.aero_anl_cdumps = [aero_anl_cdump]
aero_fcst_cdump = _base.get('AERO_FCST_CDUMP', None).lower()
if aero_fcst_cdump in ['both']:
self.aero_fcst_cdumps = ['gfs', 'gdas']
elif aero_fcst_cdump in ['gfs', 'gdas']:
self.aero_fcst_cdumps = [aero_fcst_cdump]

def _init_finalize(self, conf: Configuration):
print("Finalizing initialize")
Expand Down
8 changes: 5 additions & 3 deletions workflow/applications/gfs_forecast_only.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ def _get_app_configs(self):
configs += ['atmos_products']

if self.do_aero:
configs += ['aerosol_init']
if not self._base['EXP_WARM_START']:
configs += ['aerosol_init']

if self.do_tracker:
configs += ['tracker']
Expand Down Expand Up @@ -87,9 +88,10 @@ def get_task_names(self):
tasks = ['stage_ic']

if self.do_aero:
aero_fcst_cdump = _base.get('AERO_FCST_CDUMP', 'BOTH').lower()
aero_fcst_cdump = self._base.get('AERO_FCST_CDUMP', 'BOTH').lower()
if self._base['CDUMP'] in aero_fcst_cdump or aero_fcst_cdump == "both":
tasks += ['aerosol_init']
if not self._base['EXP_WARM_START']:
tasks += ['aerosol_init']

if self.do_wave:
tasks += ['waveinit']
Expand Down
4 changes: 3 additions & 1 deletion workflow/rocoto/gfs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -856,7 +856,9 @@ def _fcst_forecast_only(self):
dep_dict = {'type': 'task', 'name': f'{self.cdump}{wave_job}'}
dependencies.append(rocoto.add_dependency(dep_dict))

if self.app_config.do_aero and self.cdump in self.app_config.aero_fcst_cdumps:
if self.app_config.do_aero and \
self.cdump in self.app_config.aero_fcst_cdumps and \
not self._base['EXP_WARM_START']:
# Calculate offset based on CDUMP = gfs | gdas
interval = None
if self.cdump in ['gfs']:
Expand Down

0 comments on commit fc668aa

Please sign in to comment.