@@ -140,13 +140,20 @@ def coupled_ic(self):
140140 deps = []
141141
142142 # Atm ICs
143- atm_res = self._base.get('CASE', 'C384')
144- prefix = f"{cpl_ic['BASE_CPLIC']}/{cpl_ic['CPL_ATMIC']}/@Y@m@d@H/{self.cdump}"
145- for file in ['gfs_ctrl.nc'] + \
146- [f'{datatype}_data.tile{tile}.nc'
147- for datatype in ['gfs', 'sfc']
148- for tile in range(1, self.n_tiles + 1)]:
149- data = f"{prefix}/{atm_res}/INPUT/{file}"
143+ if self.app_config.do_atm:
144+ atm_res = self._base.get('CASE', 'C384')
145+ prefix = f"{cpl_ic['BASE_CPLIC']}/{cpl_ic['CPL_ATMIC']}/@Y@m@d@H/{self.cdump}"
146+ for file in ['gfs_ctrl.nc'] + \
147+ [f'{datatype}_data.tile{tile}.nc'
148+ for datatype in ['gfs', 'sfc']
149+ for tile in range(1, self.n_tiles + 1)]:
150+ data = f"{prefix}/{atm_res}/INPUT/{file}"
151+ dep_dict = {'type': 'data', 'data': data}
152+ deps.append(rocoto.add_dependency(dep_dict))
153+ else: # data-atmosphere
154+ # TODO - need more information about how these forcings are stored
155+ prefix = f"{cpl_ic['BASE_CPLIC']}/{cpl_ic['CPL_DATM']}/@Y@m@d@H"
156+ data = f"{prefix}/gefs.@Y@m.nc"
150157 dep_dict = {'type': 'data', 'data': data}
151158 deps.append(rocoto.add_dependency(dep_dict))
152159
@@ -474,14 +481,28 @@ def fcst(self):
474481 @property
475482 def _fcst_forecast_only(self):
476483 dependencies = []
484+
477485 deps = []
478- data = f'&ROTDIR;/{self.cdump}.@Y@m@d/@H/atmos/INPUT/sfc_data.tile6.nc'
479- dep_dict = {'type': 'data', 'data': data}
480- deps.append(rocoto.add_dependency(dep_dict))
481- data = f'&ROTDIR;/{self.cdump}.@Y@m@d/@H/atmos/RESTART/@Y@m@d.@H0000.sfcanl_data.tile6.nc'
482- dep_dict = {'type': 'data', 'data': data}
483- deps.append(rocoto.add_dependency(dep_dict))
484- dependencies.append(rocoto.create_dependency(dep_condition='or', dep=deps))
486+ if self.app_config.do_atm:
487+ data = f'&ROTDIR;/{self.cdump}.@Y@m@d/@H/atmos/INPUT/sfc_data.tile6.nc'
488+ dep_dict = {'type': 'data', 'data': data}
489+ deps.append(rocoto.add_dependency(dep_dict))
490+ data = f'&ROTDIR;/{self.cdump}.@Y@m@d/@H/atmos/RESTART/@Y@m@d.@H0000.sfcanl_data.tile6.nc'
491+ dep_dict = {'type': 'data', 'data': data}
492+ deps.append(rocoto.add_dependency(dep_dict))
493+ dependencies.append(rocoto.create_dependency(dep_condition='or', dep=deps))
494+
495+ else: # data-atmosphere
496+ data = f'&ICSDIR;/@Y@m@d@H/datm/gefs.@Y@m.nc' # GEFS forcing
497+ dep_dict = {'type': 'data', 'data': data}
498+ deps.append(rocoto.add_dependency(dep_dict))
499+ data = '&ICSDIR;/@Y@m@d@H/ocn/MOM.res.nc' # TODO - replace with actual ocean IC
500+ dep_dict = {'type': 'data', 'data': data}
501+ deps.append(rocoto.add_dependency(dep_dict))
502+ data = '&ICSDIR;/@Y@m@d@H/ice/cice5_model.res.nc' # TODO - replace with actual ice IC
503+ dep_dict = {'type': 'data', 'data': data}
504+ deps.append(rocoto.add_dependency(dep_dict))
505+ dependencies.append(rocoto.create_dependency(dep_condition='and', dep=deps))
485506
486507 if self.app_config.do_wave and self.cdump in self.app_config.wave_cdumps:
487508 wave_job = 'waveprep' if self.app_config.model_app in ['ATMW'] else 'waveinit'
0 commit comments