From f12f2937201a0025c18f4395deb297af70f81b80 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Wed, 8 Nov 2023 16:04:36 +0000 Subject: [PATCH 1/4] Fix fit2obs config list addition Update config list creation to only add the fit2obs config when the job is set to YES Refs #2043 --- workflow/applications/gfs_cycled.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workflow/applications/gfs_cycled.py b/workflow/applications/gfs_cycled.py index cdb5e18f3e..3b8472d3c8 100644 --- a/workflow/applications/gfs_cycled.py +++ b/workflow/applications/gfs_cycled.py @@ -47,7 +47,7 @@ def _get_app_configs(self): if self.do_ocean: configs += ['ocnpost'] - configs += ['sfcanl', 'analcalc', 'fcst', 'post', 'vrfy', 'fit2obs', 'arch', 'cleanup'] + configs += ['sfcanl', 'analcalc', 'fcst', 'post', 'vrfy', 'arch', 'cleanup'] if self.do_hybvar: if self.do_jediatmens: @@ -56,6 +56,9 @@ def _get_app_configs(self): configs += ['eobs', 'eomg', 'ediag', 'eupd'] configs += ['ecen', 'esfc', 'efcs', 'echgres', 'epos', 'earc'] + if self.do_fit2obs: + configs += ['fit2obs'] + if self.do_verfozn: configs += ['verfozn'] From 58c6d67bd3aa4d726b35d66bf47766ef52cde505 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Wed, 8 Nov 2023 16:05:51 +0000 Subject: [PATCH 2/4] Refine fit2obs job in rocoto mesh - Remove the fit2obs job from the gdas_half cycledef. - Adjust the archive job dependencies to now include the fit2obs job in a logic check against a prior cycle. Refs #2043 --- workflow/rocoto/gfs_tasks.py | 52 +++++++++++++++++------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index 5e2ed8cd03..6f67dea21b 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -917,11 +917,8 @@ def fit2obs(self): deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps) - cycledef = 'gdas_half,gdas' if self.cdump in ['gdas'] else self.cdump - resources = self.get_resource('fit2obs') - task = create_wf_task('fit2obs', resources, cdump=self.cdump, envar=self.envars, dependency=dependencies, - cycledef=cycledef) + task = create_wf_task('fit2obs', resources, cdump=self.cdump, envar=self.envars, dependency=dependencies) return task @@ -952,33 +949,32 @@ def metp(self): def arch(self): deps = [] dependencies = [] - if self.app_config.do_verfozn or self.app_config.do_verfrad or self.app_config.do_vminmon: - if self.app_config.mode in ['cycled']: - if self.cdump in ['gfs']: - if self.app_config.do_vminmon: - dep_dict = {'type': 'task', 'name': f'{self.cdump}vminmon'} - deps.append(rocoto.add_dependency(dep_dict)) - elif self.cdump in ['gdas']: - deps2 = [] - if self.app_config.do_verfozn: - dep_dict = {'type': 'task', 'name': f'{self.cdump}verfozn'} - deps2.append(rocoto.add_dependency(dep_dict)) - if self.app_config.do_verfrad: - dep_dict = {'type': 'task', 'name': f'{self.cdump}verfrad'} - deps2.append(rocoto.add_dependency(dep_dict)) - if self.app_config.do_vminmon: - dep_dict = {'type': 'task', 'name': f'{self.cdump}vminmon'} - deps2.append(rocoto.add_dependency(dep_dict)) - dependencies = rocoto.create_dependency(dep_condition='and', dep=deps2) - dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': '-06:00:00'} - dependencies.append(rocoto.add_dependency(dep_dict)) - dependencies = rocoto.create_dependency(dep_condition='or', dep=dependencies) + if self.app_config.mode in ['cycled']: # Block for handling half cycle dependencies + if self.cdump in ['gfs']: + if self.app_config.do_vminmon: + dep_dict = {'type': 'task', 'name': f'{self.cdump}vminmon'} + deps.append(rocoto.add_dependency(dep_dict)) + elif self.cdump in ['gdas']: + deps2 = [] + if self.app_config.do_fit2obs: + dep_dict = {'type': 'task', 'name': f'{self.cdump}fit2obs'} + deps2.append(rocoto.add_dependency(dep_dict)) + if self.app_config.do_verfozn: + dep_dict = {'type': 'task', 'name': f'{self.cdump}verfozn'} + deps2.append(rocoto.add_dependency(dep_dict)) + if self.app_config.do_verfrad: + dep_dict = {'type': 'task', 'name': f'{self.cdump}verfrad'} + deps2.append(rocoto.add_dependency(dep_dict)) + if self.app_config.do_vminmon: + dep_dict = {'type': 'task', 'name': f'{self.cdump}vminmon'} + deps2.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps2) + dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': '-06:00:00'} + dependencies.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='or', dep=dependencies) if self.app_config.do_vrfy: dep_dict = {'type': 'task', 'name': f'{self.cdump}vrfy'} deps.append(rocoto.add_dependency(dep_dict)) - if self.cdump in ['gdas'] and self.app_config.do_fit2obs: - dep_dict = {'type': 'task', 'name': f'{self.cdump}fit2obs'} - deps.append(rocoto.add_dependency(dep_dict)) if self.app_config.do_wave: dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostsbs'} deps.append(rocoto.add_dependency(dep_dict)) From f4beabcc958298ed3531b30824b87953b6617f44 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Wed, 8 Nov 2023 16:09:16 +0000 Subject: [PATCH 3/4] Adjustment to new comment in gfs_tasks.py Resolves pycodestyle warning Refs #2043 --- workflow/rocoto/gfs_tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index 6f67dea21b..458e0491d5 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -949,7 +949,7 @@ def metp(self): def arch(self): deps = [] dependencies = [] - if self.app_config.mode in ['cycled']: # Block for handling half cycle dependencies + if self.app_config.mode in ['cycled']: # Block for handling half cycle dependencies if self.cdump in ['gfs']: if self.app_config.do_vminmon: dep_dict = {'type': 'task', 'name': f'{self.cdump}vminmon'} From 55191720d60458059f2152cb62646f267259bb72 Mon Sep 17 00:00:00 2001 From: Kate Friedman Date: Thu, 9 Nov 2023 10:52:40 -0500 Subject: [PATCH 4/4] Move newly added archive comment down Refs #2043 --- workflow/rocoto/gfs_tasks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index 458e0491d5..1de737395d 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -949,12 +949,12 @@ def metp(self): def arch(self): deps = [] dependencies = [] - if self.app_config.mode in ['cycled']: # Block for handling half cycle dependencies + if self.app_config.mode in ['cycled']: if self.cdump in ['gfs']: if self.app_config.do_vminmon: dep_dict = {'type': 'task', 'name': f'{self.cdump}vminmon'} deps.append(rocoto.add_dependency(dep_dict)) - elif self.cdump in ['gdas']: + elif self.cdump in ['gdas']: # Block for handling half cycle dependencies deps2 = [] if self.app_config.do_fit2obs: dep_dict = {'type': 'task', 'name': f'{self.cdump}fit2obs'}