Skip to content

Commit

Permalink
Adjust configuration for reforecast (#3123)
Browse files Browse the repository at this point in the history
This PR does the following for the GEFS reforecast:

- [x] Archive ensemble spread in addition to ensemble mean
- [x] Set `NST_SPINUP` to `0` for all 30 years
- [x] Remove `arcdir` from `arch` task since it is only used in the
`extractvars` task
- [x] Change the repair job dependency to a forecast task dependency for
each member instead of a file dependency
- [x] Remove the experiment name (`PSLOT`) from the `ARCDIR` directory
structure for the reforecast
- [x] Adjust ensemble header information in forecast_predet so that any
ensemble size can be used
- [x] Remove wave post pnt dependency from archive task
  • Loading branch information
EricSinsky-NOAA authored Nov 29, 2024
1 parent e020fce commit 40f4536
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 28 deletions.
27 changes: 18 additions & 9 deletions parm/archive/gefs_extracted_atmos.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,12 @@ gefs_atmos:
{% if FHMAX_HF_GFS == 0 %}
{% for fhr in range(ofst_hr, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %}
{% if mem=="ensstat" %}
{% set file_name = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% set file_name_mean = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path_mean = COMIN_ATMOS_GRIB ~ "/" ~ file_name_mean %}
- "{{ file_path_mean | relpath(ROTDIR)}}"
{% set file_name_spread = head ~ "spread.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path_spread = COMIN_ATMOS_GRIB ~ "/" ~ file_name_spread %}
- "{{ file_path_spread | relpath(ROTDIR)}}"
{% else %}
{% set file_name = head ~ "pgrb2." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
Expand All @@ -51,9 +54,12 @@ gefs_atmos:
{% if res == "0p25" %}
{% for fhr in range(ofst_hr, FHMAX_HF_GFS + FHOUT_HF_GFS, FHOUT_HF_GFS) %}
{% if mem=="ensstat" %}
{% set file_name = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% set file_name_mean = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path_mean = COMIN_ATMOS_GRIB ~ "/" ~ file_name_mean %}
- "{{ file_path_mean | relpath(ROTDIR)}}"
{% set file_name_spread = head ~ "spread.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path_spread = COMIN_ATMOS_GRIB ~ "/" ~ file_name_spread %}
- "{{ file_path_spread | relpath(ROTDIR)}}"
{% else %}
{% set file_name = head ~ "pgrb2." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
Expand All @@ -67,9 +73,12 @@ gefs_atmos:
{% if res == "0p50" %}
{% for fhr in range(FHMAX_HF_GFS + FHOUT_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %}
{% if mem=="ensstat" %}
{% set file_name = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% set file_name_mean = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path_mean = COMIN_ATMOS_GRIB ~ "/" ~ file_name_mean %}
- "{{ file_path_mean | relpath(ROTDIR)}}"
{% set file_name_spread = head ~ "spread.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path_spread = COMIN_ATMOS_GRIB ~ "/" ~ file_name_spread %}
- "{{ file_path_spread | relpath(ROTDIR)}}"
{% else %}
{% set file_name = head ~ "pgrb2." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
Expand Down
2 changes: 1 addition & 1 deletion parm/config/gefs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ export PSLOT="@PSLOT@"
export EXPDIR="@EXPDIR@/${PSLOT}"
export ROTDIR="@COMROOT@/${PSLOT}"

export ARCDIR="${NOSCRUB}/archive/${PSLOT}"
export ARCDIR="${NOSCRUB}/archive"
export ATARDIR="@ATARDIR@"

# Commonly defined parameters in JJOBS
Expand Down
4 changes: 0 additions & 4 deletions parm/config/gefs/config.nsst
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,6 @@ export NST_MODEL=2

# nstf_name(2) : NST_SPINUP : 0 = OFF, 1 = ON,
export NST_SPINUP=0
cdate="${PDY}${cyc}"
if (( cdate < 2017072000 )); then
export NST_SPINUP=1
fi

# nstf_name(3) : NST_RESV (Reserved, NSST Analysis) : 0 = OFF, 1 = ON
export NST_RESV=0
Expand Down
10 changes: 5 additions & 5 deletions parm/config/gefs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ case ${step} in
declare -x "walltime"="03:00:00"
;;
"C384" | "C768" | "C1152")
declare -x "walltime"="12:00:00"
declare -x "walltime"="10:30:00"
;;
*)
echo "FATAL ERROR: Resources not defined for job ${step} at resolution ${CASE}"
Expand All @@ -212,23 +212,23 @@ case ${step} in


"atmos_products")
export walltime="15:00:00"
export walltime="5:00:00"
export ntasks=24
export threads_per_task=1
export tasks_per_node="${ntasks}"
export is_exclusive=True
;;

"atmos_ensstat")
export walltime="15:00:00"
export walltime="2:00:00"
export ntasks=6
export threads_per_task=1
export tasks_per_node="${ntasks}"
export is_exclusive=True
;;

"oceanice_products")
export walltime="15:00:00"
export walltime="3:00:00"
export ntasks=1
export tasks_per_node=1
export threads_per_task=1
Expand Down Expand Up @@ -286,7 +286,7 @@ case ${step} in
;;

"extractvars")
export walltime_gefs="15:00:00"
export walltime_gefs="2:00:00"
export ntasks_gefs=1
export threads_per_task_gefs=1
export tasks_per_node_gefs="${ntasks_gefs}"
Expand Down
3 changes: 0 additions & 3 deletions scripts/exglobal_archive.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,6 @@ def main():
# Determine which archives to create
arcdir_set, atardir_sets = archive.configure(archive_dict)

# Populate the product archive (ARCDIR)
archive.execute_store_products(arcdir_set)

# Create the backup tarballs and store in ATARDIR
for atardir_set in atardir_sets:
archive.execute_backup_dataset(atardir_set)
Expand Down
2 changes: 1 addition & 1 deletion ush/forecast_predet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ FV3_predet(){
export e1=3
fi
export e2=${memnum}
export e3=10
export e3=${NMEM_ENS}

fi
}
Expand Down
6 changes: 1 addition & 5 deletions workflow/rocoto/gefs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,7 @@ def atmos_prod(self):
def repair_replay(self):

deps = []
history_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_MASTER_TMPL"], {'MEMDIR': 'mem#member#'})
data = f'{history_path}/{self.run}[email protected]'
dep_dict = {'type': 'data', 'data': data}
dep_dict = {'type': 'metatask', 'name': 'gefs_fcst_mem#member#'}
deps.append(rocoto.add_dependency(dep_dict))

dependencies = rocoto.create_dependency(dep=deps)
Expand Down Expand Up @@ -583,8 +581,6 @@ def arch(self):
if self.app_config.do_wave:
dep_dict = {'type': 'metatask', 'name': 'gefs_wave_post_grid'}
deps.append(rocoto.add_dependency(dep_dict))
dep_dict = {'type': 'metatask', 'name': 'gefs_wave_post_pnt'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_wave_bnd:
dep_dict = {'type': 'metatask', 'name': 'gefs_wave_post_bndpnt'}
deps.append(rocoto.add_dependency(dep_dict))
Expand Down

0 comments on commit 40f4536

Please sign in to comment.