Skip to content

Commit

Permalink
Stubs for anlstat job
Browse files Browse the repository at this point in the history
  • Loading branch information
CoryMartin-NOAA committed Aug 13, 2024
1 parent d994642 commit fbe784d
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 3 deletions.
Empty file added jobs/JGLOBAL_ANALYSIS_STATS
Empty file.
Empty file added jobs/rocoto/anlstat.sh
Empty file.
11 changes: 8 additions & 3 deletions parm/config/gfs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,6 @@ export DO_NPOESS="@DO_NPOESS@" # NPOESS products
export DO_TRACKER="@DO_TRACKER@" # Hurricane track verification
export DO_GENESIS="@DO_GENESIS@" # Cyclone genesis verification
export DO_GENESIS_FSU="@DO_GENESIS_FSU@" # Cyclone genesis verification (FSU)
export DO_VERFOZN="YES" # Ozone data assimilation monitoring
export DO_VERFRAD="YES" # Radiance data assimilation monitoring
export DO_VMINMON="YES" # GSI minimization monitoring
export DO_MOS="NO" # GFS Model Output Statistics - Only supported on WCOSS2

# NO for retrospective parallel; YES for real-time parallel
Expand Down Expand Up @@ -474,6 +471,14 @@ if [[ ${DO_JEDIATMVAR} = "YES" ]]; then
export DO_VERFOZN="NO" # Ozone data assimilation monitoring
export DO_VERFRAD="NO" # Radiance data assimilation monitoring
export DO_VMINMON="NO" # GSI minimization monitoring
export DO_ANLSTAT="YES" # JEDI-based analysis statistics
else
export DO_VERFOZN="YES" # Ozone data assimilation monitoring
export DO_VERFRAD="YES" # Radiance data assimilation monitoring
export DO_VMINMON="YES" # GSI minimization monitoring
if [[ ${DO_AERO} = "YES" || ${DO_JEDIOCNVAR} = "YES" || ${DO_JEDISNOWDA} = "YES " ]]; then
export DO_ANLSTAT="YES" # JEDI-based analysis statistics
fi
fi

# If starting ICs that are not at cycle hour
Expand Down
Empty file.
1 change: 1 addition & 0 deletions workflow/applications/applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ def __init__(self, conf: Configuration) -> None:
self.do_verfozn = _base.get('DO_VERFOZN', True)
self.do_verfrad = _base.get('DO_VERFRAD', True)
self.do_vminmon = _base.get('DO_VMINMON', True)
self.do_anlstat = _base.get('DO_ANLSTAT', False)
self.do_tracker = _base.get('DO_TRACKER', True)
self.do_genesis = _base.get('DO_GENESIS', True)
self.do_genesis_fsu = _base.get('DO_GENESIS_FSU', False)
Expand Down
9 changes: 9 additions & 0 deletions workflow/applications/gfs_cycled.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ def _get_app_configs(self):
if self.do_vminmon:
configs += ['vminmon']

if self.do_anlstat:
configs += ['anlstat']

if self.do_tracker:
configs += ['tracker']

Expand Down Expand Up @@ -206,6 +209,9 @@ def get_task_names(self):
if self.do_vminmon:
gdas_tasks += ['vminmon']

if self.do_anlstat:
gdas_tasks += ['anlstat']

if self.do_gempak:
gdas_tasks += ['gempak', 'gempakmetancdc']

Expand Down Expand Up @@ -239,6 +245,9 @@ def get_task_names(self):

if self.do_vminmon:
gfs_tasks += ['vminmon']

if self.do_anlstat:
gfs_tasks += ['anlstat']

if self.do_tracker:
gfs_tasks += ['tracker']
Expand Down
40 changes: 40 additions & 0 deletions workflow/rocoto/gfs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -1731,6 +1731,40 @@ def vminmon(self):

return task

def anlstat(self):
deps = []
if self.app_config.do_jediatmvar:
dep_dict = {'type': 'task', 'name': f'{self.run}atmanlfinal'}
deps.append(rocoto.add_dependency(dep_dict))
if self.do_jediocnvar:
dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalpost'}
deps.append(rocoto.add_dependency(dep_dict))
if self.do_jedisnowda:
dep_dict = {'type': 'task', 'name': f'{self.run}snowanl'}
deps.append(rocoto.add_dependency(dep_dict))
if self.do_aero:
dep_dict = {'type': 'task', 'name': f'{self.run}aeroanlfinal'}
deps.append(rocoto.add_dependency(dep_dict))

dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)

resources = self.get_resource('anlstat')
task_name = f'{self.run}anlstat'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/anlstat.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
'maxtries': '&MAXTRIES;'
}

task = rocoto.create_task(task_dict)

return task

def tracker(self):
deps = []
dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
Expand Down Expand Up @@ -2225,6 +2259,9 @@ def arch(self):
if self.app_config.do_vminmon:
dep_dict = {'type': 'task', 'name': f'{self.run}vminmon'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_anlstat:
dep_dict = {'type': 'task', 'name': f'{self.run}anlstat'}
deps.append(rocoto.add_dependency(dep_dict))
elif self.run in ['gdas']:
dep_dict = {'type': 'task', 'name': f'{self.run}atmanlprod'}
deps.append(rocoto.add_dependency(dep_dict))
Expand All @@ -2240,6 +2277,9 @@ def arch(self):
if self.app_config.do_vminmon:
dep_dict = {'type': 'task', 'name': f'{self.run}vminmon'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_anlstat:
dep_dict = {'type': 'task', 'name': f'{self.run}anlstat'}
deps.append(rocoto.add_dependency(dep_dict))
if self.run in ['gfs'] and self.app_config.do_tracker:
dep_dict = {'type': 'task', 'name': f'{self.run}tracker'}
deps.append(rocoto.add_dependency(dep_dict))
Expand Down

0 comments on commit fbe784d

Please sign in to comment.