Skip to content

Commit

Permalink
Retire cycle-specific FHMAX_GFS variables (#2278)
Browse files Browse the repository at this point in the history
This PR retires the `FHMAX_GFS_${cyc}` variables that allowed users to specify
different gfs forecast lengths for each cycle. This function is no longer supported
in global-workflow. The `FHMAX_GFS_*` variables will be removed and will no
longer be checked to set the final `FHMAX_GFS` variable. The same forecast
length will be set for every cycle.

This PR also includes a small fix to add new post parm files into the `.gitignore`
file. This was intended to be included in a different PR but that PR is on hold for
further testing so it is being included here to get it into `develop` sooner.

Resolves #2218
  • Loading branch information
KateFriedman-NOAA authored Feb 3, 2024
1 parent 977e2d6 commit ed592a6
Show file tree
Hide file tree
Showing 8 changed files with 15 additions and 23 deletions.
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,16 @@ parm/post/nam_micro_lookup.dat
parm/post/optics_luts_DUST.dat
parm/post/gtg.config.gfs
parm/post/gtg_imprintings.txt
parm/post/optics_luts_DUST_nasa.dat
parm/post/optics_luts_NITR_nasa.dat
parm/post/optics_luts_SALT.dat
parm/post/optics_luts_SALT_nasa.dat
parm/post/optics_luts_SOOT.dat
parm/post/optics_luts_SOOT_nasa.dat
parm/post/optics_luts_SUSO.dat
parm/post/optics_luts_SUSO_nasa.dat
parm/post/optics_luts_WASO.dat
parm/post/optics_luts_WASO_nasa.dat
parm/post/params_grib2_tbl_new
parm/post/post_tag_gfs128
parm/post/post_tag_gfs65
Expand All @@ -77,6 +83,9 @@ parm/post/postcntrl_gfs_wafs.xml
parm/post/postcntrl_gfs_wafs_anl.xml
parm/post/postxconfig-NT-GEFS-ANL.txt
parm/post/postxconfig-NT-GEFS-F00.txt
parm/post/postxconfig-NT-GEFS-F00-aerosol.txt
parm/post/postxconfig-NT-GEFS-WAFS.txt
parm/post/postxconfig-NT-GEFS-aerosol.txt
parm/post/postxconfig-NT-GEFS.txt
parm/post/postxconfig-NT-GFS-ANL.txt
parm/post/postxconfig-NT-GFS-F00-TWO.txt
Expand Down
8 changes: 1 addition & 7 deletions parm/config/gefs/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -219,13 +219,7 @@ export gfs_cyc=@gfs_cyc@ # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4:
# GFS output and frequency
export FHMIN_GFS=0
export FHMIN=${FHMIN_GFS}

export FHMAX_GFS_00=120
export FHMAX_GFS_06=120
export FHMAX_GFS_12=120
export FHMAX_GFS_18=120
current_fhmax_var=FHMAX_GFS_${cyc}; declare -x FHMAX_GFS=${!current_fhmax_var}

export FHMAX_GFS=@FHMAX_GFS@
export FHOUT_GFS=6 # Must be 6 for S2S until #1629 is addressed; 3 for ops
export FHMAX_HF_GFS=0
export FHOUT_HF_GFS=1
Expand Down
1 change: 1 addition & 0 deletions parm/config/gefs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ base:
DO_JEDIOCNVAR: "NO"
DO_JEDILANDDA: "NO"
DO_MERGENSST: "NO"
FHMAX_GFS: 120
8 changes: 1 addition & 7 deletions parm/config/gfs/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -256,13 +256,7 @@ export gfs_cyc=@gfs_cyc@ # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4:

# GFS output and frequency
export FHMIN_GFS=0

export FHMAX_GFS_00=120
export FHMAX_GFS_06=120
export FHMAX_GFS_12=120
export FHMAX_GFS_18=120
current_fhmax_var=FHMAX_GFS_${cyc}; declare -x FHMAX_GFS=${!current_fhmax_var}

export FHMAX_GFS=@FHMAX_GFS@
export FHOUT_GFS=6 # Must be 6 for S2S until #1629 is addressed; 3 for ops
export FHMAX_HF_GFS=0
export FHOUT_HF_GFS=1
Expand Down
1 change: 1 addition & 0 deletions parm/config/gfs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ base:
DO_JEDILANDDA: "NO"
DO_MERGENSST: "NO"
DO_GOES: "NO"
FHMAX_GFS: 120

atmanl:
IO_LAYOUT_X: 1
Expand Down
5 changes: 0 additions & 5 deletions workflow/applications/gfs_cycled.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,9 +321,4 @@ def get_gfs_cyc_dates(base: Dict[str, Any]) -> Dict[str, Any]:
base_out['EDATE_GFS'] = edate_gfs
base_out['INTERVAL_GFS'] = interval_gfs

fhmax_gfs = {}
for hh in ['00', '06', '12', '18']:
fhmax_gfs[hh] = base.get(f'FHMAX_GFS_{hh}', base.get('FHMAX_GFS_00', 120))
base_out['FHMAX_GFS'] = fhmax_gfs

return base_out
3 changes: 1 addition & 2 deletions workflow/rocoto/gfs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -1330,8 +1330,7 @@ def _get_awipsgroups(cdump, config):
if cdump in ['gdas']:
fhrs = range(fhmin, fhmax + fhout, fhout)
elif cdump in ['gfs']:
fhmax = np.max(
[config['FHMAX_GFS_00'], config['FHMAX_GFS_06'], config['FHMAX_GFS_12'], config['FHMAX_GFS_18']])
fhmax = config['FHMAX_GFS']
fhout = config['FHOUT_GFS']
fhmax_hf = config['FHMAX_HF_GFS']
fhout_hf = config['FHOUT_HF_GFS']
Expand Down
3 changes: 1 addition & 2 deletions workflow/rocoto/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,7 @@ def _get_forecast_hours(cdump, config) -> List[str]:
if cdump in ['gdas']:
fhrs = range(fhmin, fhmax + fhout, fhout)
elif cdump in ['gfs', 'gefs']:
fhmax = np.max(
[config['FHMAX_GFS_00'], config['FHMAX_GFS_06'], config['FHMAX_GFS_12'], config['FHMAX_GFS_18']])
fhmax = config['FHMAX_GFS']
fhout = config['FHOUT_GFS']
fhmax_hf = config['FHMAX_HF_GFS']
fhout_hf = config['FHOUT_HF_GFS']
Expand Down

0 comments on commit ed592a6

Please sign in to comment.