Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds FBWINDS support to global-workflow #2082

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
10859c2
Corrected missing local variable reference.
henrywinterbottom-wxdev Nov 2, 2023
9df2539
Reverting push to develop.
henrywinterbottom-wxdev Nov 2, 2023
2a560e3
Merge branch 'develop' of https://github.com/HenryWinterbottom-NOAA/g…
henrywinterbottom-wxdev Nov 5, 2023
e26aff3
Merge branch 'develop' of https://github.com/HenryWinterbottom-NOAA/g…
henrywinterbottom-wxdev Nov 9, 2023
3ab096a
Merge branch 'develop' of https://github.com/HenryWinterbottom-NOAA/g…
henrywinterbottom-wxdev Nov 13, 2023
8c42c79
Merge branch 'develop' of https://github.com/HenryWinterbottom-NOAA/g…
henrywinterbottom-wxdev Nov 15, 2023
76d91e0
Merge branch 'develop' of https://github.com/HenryWinterbottom-NOAA/g…
henrywinterbottom-wxdev Nov 16, 2023
f626d91
Merge branch 'develop' of https://github.com/HenryWinterbottom-NOAA/g…
henrywinterbottom-wxdev Nov 17, 2023
5654639
Added FBWINDS Rocoto job.
henrywinterbottom-wxdev Nov 17, 2023
890d9f5
Added Rocoto task attributes.
henrywinterbottom-wxdev Nov 17, 2023
745d198
Updated allowable Rocoto tasks.
henrywinterbottom-wxdev Nov 17, 2023
cb0c3a0
Corrected pynorm failure.
henrywinterbottom-wxdev Nov 17, 2023
f56d61b
Corrected pynorm failure.
henrywinterbottom-wxdev Nov 17, 2023
aae5ad7
Merge branch 'NOAA-EMC:develop' into feature/feature/gfsv17_issue_1221
HenryRWinterbottom Nov 17, 2023
7483e75
Merge branch 'NOAA-EMC:develop' into feature/feature/gfsv17_issue_1221
HenryRWinterbottom Nov 17, 2023
a7495ac
Merge branch 'NOAA-EMC:develop' into feature/feature/gfsv17_issue_1221
HenryRWinterbottom Nov 20, 2023
6cd448c
Correct FBWinds rocoto task.
HenryRWinterbottom Nov 20, 2023
e15c5e6
Added FBWinds to GFS tasks.
HenryRWinterbottom Nov 20, 2023
b2afa43
Added FBWinds to GFS tasks.
HenryRWinterbottom Nov 20, 2023
e8f5138
Resolved pynorms failure.
HenryRWinterbottom Nov 20, 2023
820e510
Update tasks.py
HenryRWinterbottom Nov 21, 2023
9fd7f95
Update workflow/rocoto/gfs_tasks.py
HenryRWinterbottom Nov 21, 2023
939ba37
Corrected pynorm failures.
HenryRWinterbottom Nov 21, 2023
0ec9820
Fixed pynorm exception.
HenryRWinterbottom Nov 21, 2023
ffde656
Added TODO at the request of the reviewer.
henrywinterbottom-wxdev Nov 21, 2023
7c0542e
Update workflow/rocoto/gfs_tasks.py
HenryRWinterbottom Nov 22, 2023
9bdd08a
Update workflow/rocoto/gfs_tasks.py
HenryRWinterbottom Nov 22, 2023
e732cc1
Update workflow/rocoto/gfs_tasks.py
HenryRWinterbottom Nov 22, 2023
6b7a049
Update workflow/rocoto/gfs_tasks.py
HenryRWinterbottom Nov 22, 2023
b9507f9
Merge branch 'NOAA-EMC:develop' into feature/feature/gfsv17_issue_1221
HenryRWinterbottom Nov 22, 2023
bc5c490
Corrected dependency.
HenryRWinterbottom Nov 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions jobs/rocoto/fbwinds.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#! /usr/bin/env bash

source "${HOMEgfs}/ush/preamble.sh"

###############################################################
. "${HOMEgfs}/ush/load_fv3gfs_modules.sh"
status=$?
if (( status != 0 )); then exit "${status}"; fi

export job="fbwinds"
export jobid="${job}.$$"

# Execute the JJOB
"${HOMEgfs}/jobs/JGFS_ATMOS_FBWINDS"

status=$?
exit "${status}"
1 change: 1 addition & 0 deletions workflow/applications/gfs_cycled.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ def get_task_names(self):

if self.do_awips:
gfs_tasks += ['awips']
gfs_tasks += ['fbwinds']

if self.do_npoess:
gfs_tasks += ['npoess']
Expand Down
1 change: 1 addition & 0 deletions workflow/applications/gfs_forecast_only.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ def get_task_names(self):

if self.do_awips:
tasks += ['awips']
tasks += ['fbwinds']

if self.do_wafs:
tasks += ['wafs', 'wafsgcip', 'wafsgrib2', 'wafsgrib20p25', 'wafsblending', 'wafsblending0p25']
Expand Down
26 changes: 26 additions & 0 deletions workflow/rocoto/gfs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -796,6 +796,32 @@ def postsnd(self):

return task

def fbwinds(self):

atmos_prod_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_GRIB_GRID_TMPL"], {'RUN': self.cdump, 'GRID': '0p25'})
deps = []
data = f'{atmos_prod_path}/{self.cdump}.t@Hz.pgrb2.0p25.f006'
dep_dict = {'type': 'data', 'data': data, 'age': 120}
deps.append(rocoto.add_dependency(dep_dict))
data = f'{atmos_prod_path}/{self.cdump}.t@Hz.pgrb2.0p25.f012'
dep_dict = {'type': 'data', 'data': data, 'age': 120}
deps.append(rocoto.add_dependency(dep_dict))
data = f'{atmos_prod_path}/{self.cdump}.t@Hz.pgrb2.0p25.f024'
dep_dict = {'type': 'data', 'data': data, 'age': 120}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps, dep_condition='and')

resources = self.get_resource('awips')

# TODO: It would be better to use task dependencies on the
# individual post jobs rather than data dependencies to avoid
# prematurely starting with partial files. Unfortunately, the
# ability to "group" post would make this more convoluted than
# it should be and not worth the complexity.
Comment on lines +816 to +820
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still warranted? Unless the filesystem has hung and not reporting for 2 mins, I think we are good.

task = create_wf_task('fbwinds', resources, cdump=self.cdump, envar=self.envars, dependency=dependencies)

return task

def awips(self):

def _get_awipsgroups(cdump, config):
Expand Down
6 changes: 5 additions & 1 deletion workflow/rocoto/rocoto.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ def _add_data_tag(dep_dict: Dict[str, Any]) -> str:
dep_type = dep_dict.get('type', None)
dep_data = dep_dict.get('data', None)
dep_offset = dep_dict.get('offset', None)
dep_age = dep_dict.get('age', None)

if dep_data is None:
msg = f'a data value is necessary for {dep_type} dependency'
Expand All @@ -206,7 +207,10 @@ def _add_data_tag(dep_dict: Dict[str, Any]) -> str:

assert len(dep_data) == len(dep_offset)

strings = ['<datadep>']
if dep_age is None:
strings = ['<datadep>']
else:
strings = [f'<datadep age="{dep_age}">']
for data, offset in zip(dep_data, dep_offset):
if '@' in data:
offset_str = '' if offset in [None, ''] else f' offset="{offset}"'
Expand Down
2 changes: 1 addition & 1 deletion workflow/rocoto/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Tasks:
'fcst', 'post', 'ocnpost',
'verfozn', 'verfrad', 'vminmon', 'metp',
'tracker', 'genesis', 'genesis_fsu',
'postsnd', 'awips', 'gempak',
'postsnd', 'awips', 'fbwinds', 'gempak',
'waveawipsbulls', 'waveawipsgridded', 'wavegempak', 'waveinit',
'wavepostbndpnt', 'wavepostbndpntbll', 'wavepostpnt', 'wavepostsbs', 'waveprep',
'npoess']
Expand Down