diff --git a/jobs/JGDAS_ENKF_ARCHIVE b/jobs/JGDAS_ENKF_ARCHIVE
index 7496acd8d4..29ef9c1812 100755
--- a/jobs/JGDAS_ENKF_ARCHIVE
+++ b/jobs/JGDAS_ENKF_ARCHIVE
@@ -7,8 +7,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "earc" -c "base earc"
##############################################
# Set variables used in the script
##############################################
-export CDUMP=${RUN/enkf}
-
YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COM_TOP
MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COMIN_ATMOS_ANALYSIS_ENSSTAT:COM_ATMOS_ANALYSIS_TMPL \
diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE
index 66f9ddf21b..213b49081a 100755
--- a/jobs/JGDAS_ENKF_UPDATE
+++ b/jobs/JGDAS_ENKF_UPDATE
@@ -7,7 +7,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "eupd" -c "base anal eupd"
##############################################
# Set variables used in the script
##############################################
-export CDUMP="${RUN/enkf}"
##############################################
diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT
index 64764e249d..a2222ffeab 100755
--- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT
+++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT
@@ -10,6 +10,7 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalchkpt" -c "base ocnanal ocnana
##############################################
# Ignore possible spelling error (nothing is misspelled)
# shellcheck disable=SC2153
+export CDUMP=${CDUMP:-${RUN:-"gfs"}}
GDATE=$(date --utc +%Y%m%d%H -d "${PDY} ${cyc} - ${assim_freq} hours")
export GDATE
export gPDY=${GDATE:0:8}
diff --git a/jobs/JGLOBAL_ARCHIVE b/jobs/JGLOBAL_ARCHIVE
index 28bd820de1..c909cd8801 100755
--- a/jobs/JGLOBAL_ARCHIVE
+++ b/jobs/JGLOBAL_ARCHIVE
@@ -7,8 +7,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "arch" -c "base arch"
##############################################
# Set variables used in the script
##############################################
-export CDUMP=${RUN/enkf}
-
YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COMIN_ATMOS_ANALYSIS:COM_ATMOS_ANALYSIS_TMPL \
COMIN_ATMOS_BUFR:COM_ATMOS_BUFR_TMPL \
diff --git a/jobs/JGLOBAL_STAGE_IC b/jobs/JGLOBAL_STAGE_IC
index c460e91c9e..225e0e2a4f 100755
--- a/jobs/JGLOBAL_STAGE_IC
+++ b/jobs/JGLOBAL_STAGE_IC
@@ -5,7 +5,7 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "stage_ic" -c "base stage_ic"
# Restart conditions for GFS cycle come from GDAS
# shellcheck disable=SC2153
-rCDUMP=${CDUMP}
+rCDUMP=${RUN}
[[ ${CDUMP} = "gfs" ]] && export rCDUMP="gdas"
export rCDUMP
diff --git a/parm/archive/arcdir.yaml.j2 b/parm/archive/arcdir.yaml.j2
index f845e3c9cb..57dbc78885 100644
--- a/parm/archive/arcdir.yaml.j2
+++ b/parm/archive/arcdir.yaml.j2
@@ -50,7 +50,7 @@
ARCDIR ~ "/snowstat." ~ RUN ~ "." ~ cycle_YMDH ~ ".tgz"]) %}
{% endif %}
- {% if AERO_ANL_CDUMP == RUN or AERO_ANL_CDUMP == "both" %}
+ {% if AERO_ANL_RUN == RUN or AERO_ANL_RUN == "both" %}
{% do det_anl_files.append([COMIN_CHEM_ANALYSIS ~ "/" ~ head ~ "aerostat",
ARCDIR ~ "/aerostat." ~ RUN ~ "." ~ cycle_YMDH ]) %}
{% endif %}
diff --git a/parm/archive/gdas.yaml.j2 b/parm/archive/gdas.yaml.j2
index b253d27268..7dd87f122b 100644
--- a/parm/archive/gdas.yaml.j2
+++ b/parm/archive/gdas.yaml.j2
@@ -66,7 +66,7 @@ gdas:
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}oznstat"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}radstat"
{% endif %}
- {% if AERO_ANL_CDUMP == "gdas" or AERO_ANL_CDUMP == "both" %}
+ {% if AERO_ANL_RUN == "gdas" or AERO_ANL_RUN == "both" %}
- "{{ COMIN_CHEM_ANALYSIS | relpath(ROTDIR) }}/{{ head }}aerostat"
{% endif %}
{% if DO_PREP_OBS_AERO %}
diff --git a/parm/archive/gfsa.yaml.j2 b/parm/archive/gfsa.yaml.j2
index e76c26e60e..4a86778e2e 100644
--- a/parm/archive/gfsa.yaml.j2
+++ b/parm/archive/gfsa.yaml.j2
@@ -37,7 +37,7 @@ gfsa:
{% else %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}gsistat"
{% endif %}
- {% if AERO_ANL_CDUMP == "gfs" or AERO_ANL_CDUMP == "both" %}
+ {% if AERO_ANL_RUN == "gfs" or AERO_ANL_RUN == "both" %}
- "{{ COMIN_CHEM_ANALYSIS | relpath(ROTDIR) }}/{{ head }}aerostat"
{% endif %}
{% if DO_PREP_OBS_AERO %}
diff --git a/parm/archive/master_gfs.yaml.j2 b/parm/archive/master_gfs.yaml.j2
index 67cde482a2..18833f6fe7 100644
--- a/parm/archive/master_gfs.yaml.j2
+++ b/parm/archive/master_gfs.yaml.j2
@@ -45,7 +45,7 @@ datasets:
{% endfilter %}
{% endif %}
-{% if AERO_FCST_CDUMP == "gfs" or AERO_FCST_CDUMP == "both" %}
+{% if AERO_FCST_RUN == "gfs" or AERO_FCST_RUN == "both" %}
# Aerosol forecasts
{% filter indent(width=4) %}
{% include "chem.yaml.j2" %}
diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base
index 16e0fefaba..a78ca32ad8 100644
--- a/parm/config/gefs/config.base
+++ b/parm/config/gefs/config.base
@@ -106,10 +106,7 @@ export ATARDIR="@ATARDIR@"
# Commonly defined parameters in JJOBS
export envir=${envir:-"prod"}
export NET="gefs" # NET is defined in the job-card (ecf)
-export RUN="gefs" # RUN is defined in the job-card (ecf); CDUMP is used at EMC as a RUN proxy
-# TODO: determine where is RUN actually used in the workflow other than here
-# TODO: is it possible to replace all instances of ${CDUMP} to ${RUN} to be
-# consistent w/ EE2?
+export RUN="gefs" # RUN is defined in the job-card (ecf)
# Get all the COM path templates
source "${EXPDIR}/config.com"
@@ -138,9 +135,9 @@ export DO_WAVE="NO"
export DO_OCN="NO"
export DO_ICE="NO"
export DO_AERO="NO"
-export AERO_FCST_CDUMP="" # When to run aerosol forecast: gdas, gfs, or both
-export AERO_ANL_CDUMP="" # When to run aerosol analysis: gdas, gfs, or both
-export WAVE_CDUMP="" # When to include wave suite: gdas, gfs, or both
+export AERO_FCST_RUN="" # When to run aerosol forecast: gdas, gfs, or both
+export AERO_ANL_RUN="" # When to run aerosol analysis: gdas, gfs, or both
+export WAVE_RUN="" # When to include wave suite: gdas, gfs, or both
export DOBNDPNT_WAVE="NO" # The GEFS buoys file does not currently have any boundary points
export DOIBP_WAV="NO" # Option to create point outputs from input boundary points
export FRAC_GRID=".true."
@@ -186,13 +183,13 @@ case "${APP}" in
;;
ATMA)
export DO_AERO="YES"
- export AERO_ANL_CDUMP="both"
- export AERO_FCST_CDUMP="gdas"
+ export AERO_ANL_RUN="both"
+ export AERO_FCST_RUN="gdas"
;;
ATMW)
export DO_COUPLED="YES"
export DO_WAVE="YES"
- export WAVE_CDUMP="both"
+ export WAVE_RUN="both"
;;
NG-GODAS)
export DO_ATM="NO"
@@ -206,13 +203,13 @@ case "${APP}" in
if [[ "${APP}" =~ A$ ]]; then
export DO_AERO="YES"
- export AERO_ANL_CDUMP="both"
- export AERO_FCST_CDUMP="gdas"
+ export AERO_ANL_RUN="both"
+ export AERO_FCST_RUN="gdas"
fi
if [[ "${APP}" =~ ^S2SW ]]; then
export DO_WAVE="YES"
- export WAVE_CDUMP="both"
+ export WAVE_RUN="both"
export cplwav2atm=".true."
fi
;;
diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst
index 103d6f091d..0a7cec3815 100644
--- a/parm/config/gefs/config.fcst
+++ b/parm/config/gefs/config.fcst
@@ -9,13 +9,13 @@ export USE_ESMF_THREADING="YES" # Toggle to use ESMF-managed threading or tradi
export COPY_FINAL_RESTARTS="NO" # Toggle to copy restarts from the end of GFS/GEFS Run (GDAS is handled seperately)
# Turn off waves if not used for this RUN
-case ${WAVE_CDUMP} in
+case ${WAVE_RUN} in
both | "${RUN/enkf}" ) ;; # Don't change
*) DO_WAVE="NO" ;; # Turn waves off
esac
# Turn off aerosols if not used for this RUN
-case ${AERO_FCST_CDUMP} in
+case ${AERO_FCST_RUN} in
both | "${RUN/enkf}" ) ;; # Don't change
*) DO_AERO="NO" ;; # Turn waves off
esac
diff --git a/parm/config/gefs/config.resources b/parm/config/gefs/config.resources
index 7c3d77de1d..9f8cdea362 100644
--- a/parm/config/gefs/config.resources
+++ b/parm/config/gefs/config.resources
@@ -80,11 +80,11 @@ case ${step} in
"fcst" | "efcs")
export is_exclusive=True
- _CDUMP_LIST=${CDUMP:-"gdas gfs"}
+ _RUN_LIST=${RUN:-"gdas gfs"}
- # During workflow creation, we need resources for all CDUMPs and CDUMP is undefined
- for _CDUMP in ${_CDUMP_LIST}; do
- if [[ "${_CDUMP}" =~ "gfs" ]]; then
+ # During workflow creation, we need resources for all RUNs and RUN is undefined
+ for _RUN in ${_RUN_LIST}; do
+ if [[ "${_RUN}" =~ "gfs" ]]; then
export layout_x=${layout_x_gfs}
export layout_y=${layout_y_gfs}
export WRITE_GROUP=${WRITE_GROUP_GFS}
@@ -178,9 +178,9 @@ case ${step} in
fi
export ICEPETS ICETHREADS
- echo "Total PETS for ${_CDUMP} = ${NTASKS_TOT}"
+ echo "Total PETS for ${_RUN} = ${NTASKS_TOT}"
- if [[ "${_CDUMP}" =~ "gfs" ]]; then
+ if [[ "${_RUN}" =~ "gfs" ]]; then
declare -x "npe_${step}_gfs"="${NTASKS_TOT}"
declare -x "nth_${step}_gfs"="${UFS_THREADS}"
declare -x "npe_node_${step}_gfs"="${npe_node_max}"
@@ -207,7 +207,7 @@ case ${step} in
;;
esac
- unset _CDUMP _CDUMP_LIST
+ unset _RUN _RUN_LIST
unset NTASKS_TOT
;;
diff --git a/parm/config/gefs/config.wave b/parm/config/gefs/config.wave
index bef3437adf..6a1529274a 100644
--- a/parm/config/gefs/config.wave
+++ b/parm/config/gefs/config.wave
@@ -10,10 +10,10 @@ echo "BEGIN: config.wave"
# Some others are also used across the workflow in wave component scripts
# General runtime labels
-export CDUMPwave="${RUN}wave"
+export RUNwave="${RUN}wave"
# In GFS/GDAS, restart files are generated/read from gdas runs
-export CDUMPRSTwave="gdas"
+export RUNRSTwave="gdas"
#grid dependent variable defaults
export waveGRDN='1' # grid number for ww3_multi
diff --git a/parm/config/gfs/config.anal b/parm/config/gfs/config.anal
index 2c55d85ff4..ee717a832b 100644
--- a/parm/config/gfs/config.anal
+++ b/parm/config/gfs/config.anal
@@ -12,7 +12,7 @@ if [[ ${DONST} = "YES" ]]; then
. ${EXPDIR}/config.nsst
fi
-if [[ "${CDUMP}" = "gfs" ]] ; then
+if [[ "${RUN}" = "gfs" ]] ; then
export USE_RADSTAT="NO" # This can be only used when bias correction is not-zero.
export GENDIAG="NO"
export SETUP='diag_rad=.false.,diag_pcp=.false.,diag_conv=.false.,diag_ozone=.false.,write_diag(3)=.false.,niter(2)=100,'
diff --git a/parm/config/gfs/config.base b/parm/config/gfs/config.base
index f893eaaf4e..a9bad7ebfe 100644
--- a/parm/config/gfs/config.base
+++ b/parm/config/gfs/config.base
@@ -135,9 +135,9 @@ export ATARDIR="@ATARDIR@"
# Commonly defined parameters in JJOBS
export envir=${envir:-"prod"}
export NET="gfs" # NET is defined in the job-card (ecf)
-export RUN=${RUN:-${CDUMP:-"gfs"}} # RUN is defined in the job-card (ecf); CDUMP is used at EMC as a RUN proxy
+export RUN=${RUN:-${RUN:-"gfs"}} # RUN is defined in the job-card (ecf)
# TODO: determine where is RUN actually used in the workflow other than here
-# TODO: is it possible to replace all instances of ${CDUMP} to ${RUN} to be
+# TODO: is it possible to replace all instances of ${RUN} to ${RUN} to be
# consistent w/ EE2?
# Get all the COM path templates
@@ -179,9 +179,9 @@ export DO_OCN="NO"
export DO_ICE="NO"
export DO_AERO="NO"
export DO_PREP_OBS_AERO="NO"
-export AERO_FCST_CDUMP="" # When to run aerosol forecast: gdas, gfs, or both
-export AERO_ANL_CDUMP="" # When to run aerosol analysis: gdas, gfs, or both
-export WAVE_CDUMP="" # When to include wave suite: gdas, gfs, or both
+export AERO_FCST_RUN="" # When to run aerosol forecast: gdas, gfs, or both
+export AERO_ANL_RUN="" # When to run aerosol analysis: gdas, gfs, or both
+export WAVE_RUN="" # When to include wave suite: gdas, gfs, or both
export DOBNDPNT_WAVE="NO"
export DOIBP_WAV="NO" # Option to create point outputs from input boundary points
export FRAC_GRID=".true."
@@ -232,13 +232,13 @@ case "${APP}" in
;;
ATMA)
export DO_AERO="YES"
- export AERO_ANL_CDUMP="both"
- export AERO_FCST_CDUMP="gdas"
+ export AERO_ANL_RUN="both"
+ export AERO_FCST_RUN="gdas"
;;
ATMW)
export DO_COUPLED="YES"
export DO_WAVE="YES"
- export WAVE_CDUMP="both"
+ export WAVE_RUN="both"
;;
NG-GODAS)
export DO_ATM="NO"
@@ -252,13 +252,13 @@ case "${APP}" in
if [[ "${APP}" =~ A$ ]]; then
export DO_AERO="YES"
- export AERO_ANL_CDUMP="both"
- export AERO_FCST_CDUMP="gdas"
+ export AERO_ANL_RUN="both"
+ export AERO_FCST_RUN="gdas"
fi
if [[ "${APP}" =~ ^S2SW ]]; then
export DO_WAVE="YES"
- export WAVE_CDUMP="both"
+ export WAVE_RUN="both"
fi
;;
*)
@@ -268,10 +268,10 @@ case "${APP}" in
esac
# Surface cycle update frequency
-if [[ "${CDUMP}" =~ "gdas" ]] ; then
+if [[ "${RUN}" =~ "gdas" ]] ; then
export FHCYC=1
export FTSFS=10
-elif [[ "${CDUMP}" =~ "gfs" ]] ; then
+elif [[ "${RUN}" =~ "gfs" ]] ; then
export FHCYC=24
fi
diff --git a/parm/config/gfs/config.fcst b/parm/config/gfs/config.fcst
index 36064d5f2b..7967bc5aca 100644
--- a/parm/config/gfs/config.fcst
+++ b/parm/config/gfs/config.fcst
@@ -9,13 +9,13 @@ export USE_ESMF_THREADING="YES" # Toggle to use ESMF-managed threading or tradi
export COPY_FINAL_RESTARTS="NO" # Toggle to copy restarts from the end of GFS/GEFS Run (GDAS is handled seperately)
# Turn off waves if not used for this RUN
-case ${WAVE_CDUMP} in
+case ${WAVE_RUN} in
both | "${RUN/enkf}" ) ;; # Don't change
*) DO_WAVE="NO" ;; # Turn waves off
esac
# Turn off aerosols if not used for this RUN
-case ${AERO_FCST_CDUMP} in
+case ${AERO_FCST_RUN} in
both | "${RUN/enkf}" ) ;; # Don't change
*) DO_AERO="NO" ;; # Turn aerosols off
esac
@@ -273,7 +273,7 @@ export FSICL="0"
export FSICS="0"
#---------------------------------------------------------------------
-if [[ "${CDUMP}" =~ "gdas" ]] ; then # GDAS cycle specific parameters
+if [[ "${RUN}" =~ "gdas" ]] ; then # GDAS cycle specific parameters
# Variables used in DA cycling
export DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table_da"
@@ -284,7 +284,7 @@ if [[ "${CDUMP}" =~ "gdas" ]] ; then # GDAS cycle specific parameters
# Turn on dry mass adjustment in GDAS
export adjust_dry_mass=".true."
-elif [[ "${CDUMP}" =~ "gfs" ]] ; then # GFS cycle specific parameters
+elif [[ "${RUN}" =~ "gfs" ]] ; then # GFS cycle specific parameters
# Write more variables to output
export DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table"
diff --git a/parm/config/gfs/config.metp b/parm/config/gfs/config.metp
index 8260d1c472..a49debdc2f 100644
--- a/parm/config/gfs/config.metp
+++ b/parm/config/gfs/config.metp
@@ -21,7 +21,7 @@ export HOMEverif_global=${HOMEgfs}/sorc/verif-global.fd
export VERIF_GLOBALSH=${HOMEverif_global}/ush/run_verif_global_in_global_workflow.sh
## INPUT DATA SETTINGS
export model=${PSLOT}
-export model_file_format="pgbf{lead?fmt=%2H}.${CDUMP}.{init?fmt=%Y%m%d%H}.grib2"
+export model_file_format="pgbf{lead?fmt=%2H}.${RUN}.{init?fmt=%Y%m%d%H}.grib2"
export model_hpss_dir=${ATARDIR}/..
export model_dir=${ARCDIR}/..
export get_data_from_hpss="NO"
@@ -39,19 +39,19 @@ export log_MET_output_to_METplus="yes"
# GRID-TO-GRID STEP 1: gfsmetpg2g1
export g2g1_type_list="anom pres sfc"
export g2g1_anom_truth_name="self_anl"
-export g2g1_anom_truth_file_format="pgbanl.${CDUMP}.{valid?fmt=%Y%m%d%H}.grib2"
+export g2g1_anom_truth_file_format="pgbanl.${RUN}.{valid?fmt=%Y%m%d%H}.grib2"
export g2g1_anom_fhr_min=${FHMIN_GFS}
export g2g1_anom_fhr_max=${FHMAX_GFS}
export g2g1_anom_grid="G002"
export g2g1_anom_gather_by="VSDB"
export g2g1_pres_truth_name="self_anl"
-export g2g1_pres_truth_file_format="pgbanl.${CDUMP}.{valid?fmt=%Y%m%d%H}.grib2"
+export g2g1_pres_truth_file_format="pgbanl.${RUN}.{valid?fmt=%Y%m%d%H}.grib2"
export g2g1_pres_fhr_min=${FHMIN_GFS}
export g2g1_pres_fhr_max=${FHMAX_GFS}
export g2g1_pres_grid="G002"
export g2g1_pres_gather_by="VSDB"
export g2g1_sfc_truth_name="self_f00"
-export g2g1_sfc_truth_file_format="pgbf00.${CDUMP}.{valid?fmt=%Y%m%d%H}.grib2"
+export g2g1_sfc_truth_file_format="pgbf00.${RUN}.{valid?fmt=%Y%m%d%H}.grib2"
export g2g1_sfc_fhr_min=${FHMIN_GFS}
export g2g1_sfc_fhr_max=${FHMAX_GFS}
export g2g1_sfc_grid="G002"
@@ -87,7 +87,7 @@ export g2o1_mv_database_desc="Grid-to-obs METplus data for global workflow exper
export precip1_type_list="ccpa_accum24hr"
export precip1_ccpa_accum24hr_model_bucket="06"
export precip1_ccpa_accum24hr_model_var="APCP"
-export precip1_ccpa_accum24hr_model_file_format="pgbf{lead?fmt=%2H}.${CDUMP}.{init?fmt=%Y%m%d%H}.grib2"
+export precip1_ccpa_accum24hr_model_file_format="pgbf{lead?fmt=%2H}.${RUN}.{init?fmt=%Y%m%d%H}.grib2"
export precip1_ccpa_accum24hr_fhr_min=${FHMIN_GFS}
export precip1_ccpa_accum24hr_fhr_max="180"
export precip1_ccpa_accum24hr_grid="G211"
diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources
index ba9c85322f..73168f0279 100644
--- a/parm/config/gfs/config.resources
+++ b/parm/config/gfs/config.resources
@@ -644,14 +644,14 @@ case ${step} in
export is_exclusive=True
if [[ "${step}" == "fcst" ]]; then
- _CDUMP_LIST=${CDUMP:-"gdas gfs"}
+ _RUN_LIST=${RUN:-"gdas gfs"}
elif [[ "${step}" == "efcs" ]]; then
- _CDUMP_LIST=${CDUMP:-"enkfgdas enkfgfs"}
+ _RUN_LIST=${RUN:-"enkfgdas enkfgfs"}
fi
- # During workflow creation, we need resources for all CDUMPs and CDUMP is undefined
- for _CDUMP in ${_CDUMP_LIST}; do
- if [[ "${_CDUMP}" =~ "gfs" ]]; then
+ # During workflow creation, we need resources for all RUNs and RUN is undefined
+ for _RUN in ${_RUN_LIST}; do
+ if [[ "${_RUN}" =~ "gfs" ]]; then
export layout_x=${layout_x_gfs}
export layout_y=${layout_y_gfs}
export WRITE_GROUP=${WRITE_GROUP_GFS}
@@ -662,7 +662,7 @@ case ${step} in
nthreads_ufs=${nthreads_ufs_gfs}
# Will not be set if we are skipping the mediator
nthreads_mediator=${nthreads_mediator_gfs:-}
- elif [[ "${_CDUMP}" =~ "gdas" ]]; then
+ elif [[ "${_RUN}" =~ "gdas" ]]; then
export layout_x=${layout_x_gdas}
export layout_y=${layout_y_gdas}
export WRITE_GROUP=${WRITE_GROUP_GDAS}
@@ -764,11 +764,11 @@ case ${step} in
fi
export ICEPETS ICETHREADS
- echo "Total PETS for ${_CDUMP} = ${NTASKS_TOT}"
+ echo "Total PETS for ${_RUN} = ${NTASKS_TOT}"
- declare -x "npe_${_CDUMP}"="${NTASKS_TOT}"
- declare -x "nth_${_CDUMP}"="${UFS_THREADS}"
- declare -x "npe_node_${_CDUMP}"="${npe_node_max}"
+ declare -x "npe_${_RUN}"="${NTASKS_TOT}"
+ declare -x "nth_${_RUN}"="${UFS_THREADS}"
+ declare -x "npe_node_${_RUN}"="${npe_node_max}"
done
@@ -796,7 +796,7 @@ case ${step} in
;;
esac
- unset _CDUMP _CDUMP_LIST
+ unset _RUN _RUN_LIST
unset NTASKS_TOT
;;
diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave
index 568aeb1e1c..db4eb9f708 100644
--- a/parm/config/gfs/config.wave
+++ b/parm/config/gfs/config.wave
@@ -10,10 +10,10 @@ echo "BEGIN: config.wave"
# Some others are also used across the workflow in wave component scripts
# General runtime labels
-export CDUMPwave="${RUN}wave"
+export RUNwave="${RUN}wave"
# In GFS/GDAS, restart files are generated/read from gdas runs
-export CDUMPRSTwave="gdas"
+export RUNRSTwave="gdas"
#grid dependent variable defaults
export waveGRDN='1' # grid number for ww3_multi
diff --git a/parm/config/gfs/config.waveprep b/parm/config/gfs/config.waveprep
index 1c9a40c1d8..1f746eab77 100644
--- a/parm/config/gfs/config.waveprep
+++ b/parm/config/gfs/config.waveprep
@@ -21,7 +21,7 @@ export WAV_CUR_CDO_SMOOTH="NO"
export CDO_ROOT=${CDO_ROOT:-/usrx/local/dev/packages/cdo/1.9.8}
if [ "${WW3ICEINP}" = "YES" ]; then
- export WAVICEFILE=${CDUMP}.t${cyc}z.seaice.5min.grib2
+ export WAVICEFILE=${RUN}.t${cyc}z.seaice.5min.grib2
fi
echo "END: config.waveprep"
diff --git a/scripts/exgdas_atmos_chgres_forenkf.sh b/scripts/exgdas_atmos_chgres_forenkf.sh
index 183179fcdb..ba44d87059 100755
--- a/scripts/exgdas_atmos_chgres_forenkf.sh
+++ b/scripts/exgdas_atmos_chgres_forenkf.sh
@@ -24,7 +24,6 @@ pwd=$(pwd)
# Base variables
CDATE=${CDATE:-"2001010100"}
-CDUMP=${CDUMP:-"enkfgdas"}
GDUMP=${GDUMP:-"gdas"}
# Derived base variables
diff --git a/scripts/exgfs_aero_init_aerosol.py b/scripts/exgfs_aero_init_aerosol.py
index 1c81880ca9..d098368202 100755
--- a/scripts/exgfs_aero_init_aerosol.py
+++ b/scripts/exgfs_aero_init_aerosol.py
@@ -14,7 +14,7 @@
CDATE: Initial time in YYYYMMDDHH format
STEP_GFS: Forecast cadence (frequency) in hours
FHMAX_GFS: Forecast length in hours
-CDUMP: Forecast phase (gfs or gdas). Currently always expected to be gfs.
+RUN: Forecast phase (gfs or gdas). Currently always expected to be gfs.
ROTDIR: Rotating (COM) directory
USHgfs: Path to global-workflow `ush` directory
PARMgfs: Path to global-workflow `parm` directory
@@ -41,14 +41,14 @@
from functools import partial
# Constants
-atm_base_pattern = "{rot_dir}/{cdump}.%Y%m%d/%H/model_data/atmos/input" # Location of atmosphere ICs
+atm_base_pattern = "{rot_dir}/{run}.%Y%m%d/%H/model_data/atmos/input" # Location of atmosphere ICs
atm_file_pattern = "{path}/gfs_data.{tile}.nc" # Atm IC file names
atm_ctrl_pattern = "{path}/gfs_ctrl.nc" # Atm IC control file name
-restart_base_pattern = "{rot_dir}/{cdump}.%Y%m%d/%H/model_data/atmos/restart" # Location of restart files (time of previous run)
+restart_base_pattern = "{rot_dir}/{run}.%Y%m%d/%H/model_data/atmos/restart" # Location of restart files (time of previous run)
restart_file_pattern = "{file_base}/{timestamp}fv_core.res.{tile}.nc" # Name of restart data files (time when restart is valid)
tracer_file_pattern = "{file_base}/{timestamp}fv_tracer.res.{tile}.nc" # Name of restart tracer files (time when restart is valid)
dycore_file_pattern = "{file_base}/{timestamp}fv_core.res.nc" # Name of restart dycore file (time when restart is valid)
-tracer_list_file_pattern = "{parm_gfs}/ufs/gocart/gocart_tracer.list" # Text list of tracer names to copy
+tracer_list_file_pattern = "{parm_gfs}/ufs/gocart/gocart_tracer.list" # Text list of tracer names to copy
merge_script_pattern = "{ush_gfs}/merge_fv3_aerosol_tile.py"
n_tiles = 6
max_lookback = 4 # Maximum number of past cycles to look for for tracer data
@@ -68,7 +68,7 @@ def main() -> None:
cdate = get_env_var("CDATE")
incr = int(get_env_var('STEP_GFS'))
fcst_length = int(get_env_var('FHMAX_GFS'))
- cdump = get_env_var("CDUMP")
+ run = get_env_var("RUN")
rot_dir = get_env_var("ROTDIR")
ush_gfs = get_env_var("USHgfs")
parm_gfs = get_env_var("PARMgfs")
@@ -86,7 +86,7 @@ def main() -> None:
print(f'{var} = {f"{var}"}')
atm_files, ctrl_files = get_atm_files(atm_source_path)
- tracer_files, rest_files, core_files = get_restart_files(time, incr, max_lookback, fcst_length, rot_dir, cdump)
+ tracer_files, rest_files, core_files = get_restart_files(time, incr, max_lookback, fcst_length, rot_dir, run)
if (tracer_files is not None):
merge_tracers(merge_script, atm_files, tracer_files, rest_files, core_files[0], ctrl_files[0], tracer_list_file)
@@ -167,7 +167,7 @@ def get_atm_files(path: str) -> typing.List[typing.List[str]]:
return file_list
-def get_restart_files(time: datetime, incr: int, max_lookback: int, fcst_length: int, rot_dir: str, cdump: str) -> typing.List[typing.List[str]]:
+def get_restart_files(time: datetime, incr: int, max_lookback: int, fcst_length: int, rot_dir: str, run: str) -> typing.List[typing.List[str]]:
'''
Determines the last cycle where all the necessary restart files are available. Ideally the immediate previous cycle
@@ -183,8 +183,8 @@ def get_restart_files(time: datetime, incr: int, max_lookback: int, fcst_length:
Length of forecast in hours
rot_dir : str
Path to the ROTDIR (COM) directory
- cdump : str
- CDUMP of current forecast portion (currently should always be 'gfs')
+ run : str
+ RUN of current forecast portion (currently should always be 'gfs')
Returns
----------
diff --git a/scripts/exgfs_wave_post_pnt.sh b/scripts/exgfs_wave_post_pnt.sh
index 93bdbeaf32..2a18d49879 100755
--- a/scripts/exgfs_wave_post_pnt.sh
+++ b/scripts/exgfs_wave_post_pnt.sh
@@ -40,7 +40,7 @@ source "${USHgfs}/preamble.sh"
# Set wave model ID tag to include member number
# if ensemble; waveMEMB var empty in deterministic
- export WAV_MOD_TAG=${CDUMP}wave${waveMEMB}
+ export WAV_MOD_TAG=${RUN}wave${waveMEMB}
echo "HAS BEGUN on $(hostname)"
echo "Starting WAVE PNT POSTPROCESSOR SCRIPT for $WAV_MOD_TAG"
diff --git a/scripts/exglobal_archive.py b/scripts/exglobal_archive.py
index af396d382e..ec8154317f 100755
--- a/scripts/exglobal_archive.py
+++ b/scripts/exglobal_archive.py
@@ -29,7 +29,7 @@ def main():
'DOIAU', 'OCNRES', 'ICERES', 'NUM_SND_COLLECTIVES', 'FHOUT_WAV',
'FHOUT_HF_WAV', 'FHMAX_WAV', 'FHMAX_HF_WAV', 'FHMAX_WAV_GFS',
'restart_interval_gdas', 'restart_interval_gfs',
- 'AERO_ANL_CDUMP', 'AERO_FCST_CDUMP', 'DOIBP_WAV', 'DO_JEDIOCNVAR',
+ 'AERO_ANL_RUN', 'AERO_FCST_RUN', 'DOIBP_WAV', 'DO_JEDIOCNVAR',
'NMEM_ENS', 'DO_JEDIATMVAR', 'DO_VRFY_OCEANDA', 'FHMAX_FITS',
'IAUFHRS', 'DO_FIT2OBS']
diff --git a/scripts/exglobal_atmos_analysis.sh b/scripts/exglobal_atmos_analysis.sh
index 0e78bed2e0..2f4c786ae5 100755
--- a/scripts/exglobal_atmos_analysis.sh
+++ b/scripts/exglobal_atmos_analysis.sh
@@ -26,7 +26,7 @@ pwd=$(pwd)
# Base variables
CDATE=${CDATE:-"2001010100"}
-CDUMP=${CDUMP:-"gdas"}
+RUN=${RUN:-"gdas"}
GDUMP=${GDUMP:-"gdas"}
# Derived base variables
@@ -990,7 +990,7 @@ cd ${pwd}
if [ ${SENDECF} = "YES" -a "${RUN}" != "enkf" ]; then
ecflow_client --event release_fcst
fi
-echo "${CDUMP} ${CDATE} atminc done at $(date)" > ${COM_ATMOS_ANALYSIS}/${APREFIX}loginc.txt
+echo "${RUN} ${CDATE} atminc done at $(date)" > ${COM_ATMOS_ANALYSIS}/${APREFIX}loginc.txt
################################################################################
diff --git a/scripts/exglobal_diag.sh b/scripts/exglobal_diag.sh
index e1faa7b2ee..26d79aefcb 100755
--- a/scripts/exglobal_diag.sh
+++ b/scripts/exglobal_diag.sh
@@ -26,7 +26,6 @@ pwd=$(pwd)
# Base variables
CDATE="${PDY}${cyc}"
-CDUMP=${CDUMP:-"gdas"}
GDUMP=${GDUMP:-"gdas"}
# Utilities
diff --git a/scripts/exglobal_forecast.sh b/scripts/exglobal_forecast.sh
index e2bccd43db..4ce9d7894d 100755
--- a/scripts/exglobal_forecast.sh
+++ b/scripts/exglobal_forecast.sh
@@ -31,7 +31,7 @@
## 1. restart file except sfc_data, $gmemdir/RESTART/$PDY.$cyc.*.nc
## 2. sfcanl_data, $memdir/RESTART/$PDY.$cyc.*.nc
## 3. coupler_res, $gmemdir/RESTART/$PDY.$cyc.coupler.res
-## 4. increment file, $memdir/${CDUMP}.t${cyc}z.atminc.nc
+## 4. increment file, $memdir/${RUN}.t${cyc}z.atminc.nc
## OR $DATA/INPUT/fv3_increment.nc
## Cold start files:
## 1. initial condition, $memdir/INPUT/*.nc
@@ -54,9 +54,9 @@
##
## Data output (location, name)
## If quilting=true and output grid is gaussian grid:
-## 1. atmf data, $memdir/${CDUMP}.t${cyc}z.atmf${FH3}.$OUTPUT_FILE
-## 2. sfcf data, $memdir/${CDUMP}.t${cyc}z.sfcf${FH3}.$OUTPUT_FILE
-## 3. logf data, $memdir/${CDUMP}.t${cyc}z.logf${FH3}.$OUTPUT_FILE
+## 1. atmf data, $memdir/${RUN}.t${cyc}z.atmf${FH3}.$OUTPUT_FILE
+## 2. sfcf data, $memdir/${RUN}.t${cyc}z.sfcf${FH3}.$OUTPUT_FILE
+## 3. logf data, $memdir/${RUN}.t${cyc}z.logf${FH3}.$OUTPUT_FILE
## If quilting=false and output grid is not gaussian grid:
## 1. NGGPS2D, $memdir/nggps2d.tile${n}.nc
## 2. NGGPS3D, $memdir/nggps3d.tile${n}.nc
diff --git a/ush/calcanl_gfs.py b/ush/calcanl_gfs.py
index ceb75104a2..ebb6e96c22 100755
--- a/ush/calcanl_gfs.py
+++ b/ush/calcanl_gfs.py
@@ -19,7 +19,7 @@
def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix,
ComIn_Ges, GPrefix,
FixDir, atmges_ens_mean, RunDir, NThreads, NEMSGet, IAUHrs,
- ExecCMD, ExecCMDMPI, ExecAnl, ExecChgresInc, Cdump, JEDI):
+ ExecCMD, ExecCMDMPI, ExecAnl, ExecChgresInc, Run, JEDI):
print('calcanl_gfs beginning at: ', datetime.datetime.utcnow())
IAUHH = IAUHrs
@@ -38,7 +38,7 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix,
gsi_utils.link_file(RunDir + '/siganl', CalcAnlDir + '/anl.06')
gsi_utils.copy_file(ExecChgresInc, CalcAnlDir + '/chgres_inc.x')
# for ensemble res analysis
- if Cdump in ["gdas", "gfs"]:
+ if Run in ["gdas", "gfs"]:
CalcAnlDir = RunDir + '/calcanl_ensres_' + format(fh, '02')
if not os.path.exists(CalcAnlDir):
gsi_utils.make_dir(CalcAnlDir)
@@ -298,7 +298,7 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix,
sys.exit(exit_fullres)
# compute determinstic analysis on ensemble resolution
- if Cdump in ["gdas", "gfs"]:
+ if Run in ["gdas", "gfs"]:
chgres_jobs = []
for fh in IAUHH:
# first check to see if guess file exists
@@ -359,7 +359,7 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix,
ExecChgresInc = os.getenv('CHGRESINCEXEC', './interp_inc.x')
NEMSGet = os.getenv('NEMSIOGET', 'nemsio_get')
IAUHrs = list(map(int, os.getenv('IAUFHRS', '6').split(',')))
- Cdump = os.getenv('CDUMP', 'gdas')
+ Run = os.getenv('RUN', 'gdas')
JEDI = gsi_utils.isTrue(os.getenv('DO_JEDIATMVAR', 'YES'))
print(locals())
@@ -367,4 +367,4 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix,
ComIn_Ges, GPrefix,
FixDir, atmges_ens_mean, RunDir, NThreads, NEMSGet, IAUHrs,
ExecCMD, ExecCMDMPI, ExecAnl, ExecChgresInc,
- Cdump, JEDI)
+ Run, JEDI)
diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh
index 9183e86002..ebf7cfd282 100755
--- a/ush/forecast_predet.sh
+++ b/ush/forecast_predet.sh
@@ -72,8 +72,8 @@ FV3_restarts(){
common_predet(){
echo "SUB ${FUNCNAME[0]}: Defining variables for shared through model components"
- CDUMP=${CDUMP:-gdas}
- rCDUMP=${rCDUMP:-${CDUMP}}
+ RUN=${RUN:-gdas}
+ rCDUMP=${rCDUMP:-${RUN}}
CDATE=${CDATE:-"${PDY}${cyc}"}
ENSMEM=${ENSMEM:-000}
diff --git a/ush/getdump.sh b/ush/getdump.sh
index 58906cdedc..12deb725e1 100755
--- a/ush/getdump.sh
+++ b/ush/getdump.sh
@@ -5,9 +5,9 @@ source "${USHgfs}/preamble.sh"
COMPONENT=${COMPONENT:-atmos}
CDATE=${1:-""}
-CDUMP=${2:-""}
-SOURCE_DIR=${3:-$DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}/${COMPONENT}}
-TARGET_DIR=${4:-$ROTDIR/${CDUMP}.${PDY}/${cyc}/${COMPONENT}}
+RUN=${2:-""}
+SOURCE_DIR=${3:-$DMPDIR/${RUN}${DUMP_SUFFIX}.${PDY}/${cyc}/${COMPONENT}}
+TARGET_DIR=${4:-$ROTDIR/${RUN}.${PDY}/${cyc}/${COMPONENT}}
DUMP_SUFFIX=${DUMP_SUFFIX:-""}
@@ -24,7 +24,7 @@ if [ ! -s $TARGET_DIR ]; then mkdir -p $TARGET_DIR ;fi
# Set file prefix
cyc=$(echo $CDATE |cut -c 9-10)
-prefix="$CDUMP.t${cyc}z."
+prefix="$RUN.t${cyc}z."
# Link dump files from SOURCE_DIR to TARGET_DIR
diff --git a/ush/python/pygfs/task/aero_analysis.py b/ush/python/pygfs/task/aero_analysis.py
index 16d2735090..e8b18d5827 100644
--- a/ush/python/pygfs/task/aero_analysis.py
+++ b/ush/python/pygfs/task/aero_analysis.py
@@ -32,7 +32,7 @@ def __init__(self, config):
_res = int(self.config['CASE'][1:])
_res_anl = int(self.config['CASE_ANL'][1:])
_window_begin = add_to_datetime(self.runtime_config.current_cycle, -to_timedelta(f"{self.config['assim_freq']}H") / 2)
- _jedi_yaml = os.path.join(self.runtime_config.DATA, f"{self.runtime_config.CDUMP}.t{self.runtime_config['cyc']:02d}z.aerovar.yaml")
+ _jedi_yaml = os.path.join(self.runtime_config.DATA, f"{self.runtime_config.RUN}.t{self.runtime_config['cyc']:02d}z.aerovar.yaml")
# Create a local dictionary that is repeatedly used across this class
local_dict = AttrDict(
@@ -47,8 +47,8 @@ def __init__(self, config):
'AERO_WINDOW_BEGIN': _window_begin,
'AERO_WINDOW_LENGTH': f"PT{self.config['assim_freq']}H",
'aero_bkg_fhr': map(int, str(self.config['aero_bkg_times']).split(',')),
- 'OPREFIX': f"{self.runtime_config.CDUMP}.t{self.runtime_config.cyc:02d}z.", # TODO: CDUMP is being replaced by RUN
- 'APREFIX': f"{self.runtime_config.CDUMP}.t{self.runtime_config.cyc:02d}z.", # TODO: CDUMP is being replaced by RUN
+ 'OPREFIX': f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.",
+ 'APREFIX': f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.",
'GPREFIX': f"gdas.t{self.runtime_config.previous_cycle.hour:02d}z.",
'jedi_yaml': _jedi_yaml,
}
@@ -157,8 +157,8 @@ def finalize(self: Analysis) -> None:
archive.add(diaggzip, arcname=os.path.basename(diaggzip))
# copy full YAML from executable to ROTDIR
- src = os.path.join(self.task_config['DATA'], f"{self.task_config['CDUMP']}.t{self.runtime_config['cyc']:02d}z.aerovar.yaml")
- dest = os.path.join(self.task_config.COM_CHEM_ANALYSIS, f"{self.task_config['CDUMP']}.t{self.runtime_config['cyc']:02d}z.aerovar.yaml")
+ src = os.path.join(self.task_config['DATA'], f"{self.task_config['RUN']}.t{self.runtime_config['cyc']:02d}z.aerovar.yaml")
+ dest = os.path.join(self.task_config.COM_CHEM_ANALYSIS, f"{self.task_config['RUN']}.t{self.runtime_config['cyc']:02d}z.aerovar.yaml")
yaml_copy = {
'mkdir': [self.task_config.COM_CHEM_ANALYSIS],
'copy': [[src, dest]]
diff --git a/ush/python/pygfs/task/aero_prepobs.py b/ush/python/pygfs/task/aero_prepobs.py
index f2344241a9..bf081ba662 100644
--- a/ush/python/pygfs/task/aero_prepobs.py
+++ b/ush/python/pygfs/task/aero_prepobs.py
@@ -64,7 +64,7 @@ def initialize(self) -> None:
self.task_config.prepaero_config = self.get_obsproc_config(sensor)
# generate converter YAML file
- template = f"{self.runtime_config.CDUMP}.t{self.runtime_config['cyc']:02d}z.prepaero_viirs_{sensor}.yaml"
+ template = f"{self.runtime_config.RUN}.t{self.runtime_config['cyc']:02d}z.prepaero_viirs_{sensor}.yaml"
_prepaero_yaml = os.path.join(self.runtime_config.DATA, template)
self.task_config.prepaero_yaml.append(_prepaero_yaml)
logger.debug(f"Generate PrepAeroObs YAML file: {_prepaero_yaml}")
diff --git a/ush/python/pygfs/task/atm_analysis.py b/ush/python/pygfs/task/atm_analysis.py
index 95545c57a4..2ff0ebcb77 100644
--- a/ush/python/pygfs/task/atm_analysis.py
+++ b/ush/python/pygfs/task/atm_analysis.py
@@ -31,7 +31,7 @@ def __init__(self, config):
_res = int(self.config.CASE[1:])
_res_anl = int(self.config.CASE_ANL[1:])
_window_begin = add_to_datetime(self.runtime_config.current_cycle, -to_timedelta(f"{self.config.assim_freq}H") / 2)
- _jedi_yaml = os.path.join(self.runtime_config.DATA, f"{self.runtime_config.CDUMP}.t{self.runtime_config.cyc:02d}z.atmvar.yaml")
+ _jedi_yaml = os.path.join(self.runtime_config.DATA, f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.atmvar.yaml")
# Create a local dictionary that is repeatedly used across this class
local_dict = AttrDict(
@@ -45,8 +45,8 @@ def __init__(self, config):
'npz_anl': self.config.LEVS - 1,
'ATM_WINDOW_BEGIN': _window_begin,
'ATM_WINDOW_LENGTH': f"PT{self.config.assim_freq}H",
- 'OPREFIX': f"{self.runtime_config.CDUMP}.t{self.runtime_config.cyc:02d}z.", # TODO: CDUMP is being replaced by RUN
- 'APREFIX': f"{self.runtime_config.CDUMP}.t{self.runtime_config.cyc:02d}z.", # TODO: CDUMP is being replaced by RUN
+ 'OPREFIX': f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.",
+ 'APREFIX': f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.",
'GPREFIX': f"gdas.t{self.runtime_config.previous_cycle.hour:02d}z.",
'jedi_yaml': _jedi_yaml,
'atm_obsdatain_path': f"{self.runtime_config.DATA}/obs/",
@@ -198,8 +198,8 @@ def finalize(self: Analysis) -> None:
# copy full YAML from executable to ROTDIR
logger.info(f"Copying {self.task_config.jedi_yaml} to {self.task_config.COM_ATMOS_ANALYSIS}")
- src = os.path.join(self.task_config.DATA, f"{self.task_config.CDUMP}.t{self.task_config.cyc:02d}z.atmvar.yaml")
- dest = os.path.join(self.task_config.COM_ATMOS_ANALYSIS, f"{self.task_config.CDUMP}.t{self.task_config.cyc:02d}z.atmvar.yaml")
+ src = os.path.join(self.task_config.DATA, f"{self.task_config.RUN}.t{self.task_config.cyc:02d}z.atmvar.yaml")
+ dest = os.path.join(self.task_config.COM_ATMOS_ANALYSIS, f"{self.task_config.RUN}.t{self.task_config.cyc:02d}z.atmvar.yaml")
logger.debug(f"Copying {src} to {dest}")
yaml_copy = {
'mkdir': [self.task_config.COM_ATMOS_ANALYSIS],
@@ -244,7 +244,7 @@ def finalize(self: Analysis) -> None:
cdate = to_fv3time(self.task_config.current_cycle)
cdate_inc = cdate.replace('.', '_')
src = os.path.join(self.task_config.DATA, 'anl', f"atminc.{cdate_inc}z.nc4")
- dest = os.path.join(self.task_config.COM_ATMOS_ANALYSIS, f'{self.task_config.CDUMP}.t{self.task_config.cyc:02d}z.atminc.nc')
+ dest = os.path.join(self.task_config.COM_ATMOS_ANALYSIS, f'{self.task_config.RUN}.t{self.task_config.cyc:02d}z.atminc.nc')
logger.debug(f"Copying {src} to {dest}")
inc_copy = {
'copy': [[src, dest]]
diff --git a/ush/python/pygfs/task/atmens_analysis.py b/ush/python/pygfs/task/atmens_analysis.py
index 37ac613736..5bb8ed142c 100644
--- a/ush/python/pygfs/task/atmens_analysis.py
+++ b/ush/python/pygfs/task/atmens_analysis.py
@@ -31,7 +31,7 @@ def __init__(self, config):
_res = int(self.config.CASE_ENS[1:])
_window_begin = add_to_datetime(self.runtime_config.current_cycle, -to_timedelta(f"{self.config.assim_freq}H") / 2)
- _jedi_yaml = os.path.join(self.runtime_config.DATA, f"{self.runtime_config.CDUMP}.t{self.runtime_config.cyc:02d}z.atmens.yaml")
+ _jedi_yaml = os.path.join(self.runtime_config.DATA, f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.atmens.yaml")
# Create a local dictionary that is repeatedly used across this class
local_dict = AttrDict(
@@ -42,8 +42,8 @@ def __init__(self, config):
'npz': self.config.LEVS - 1,
'ATM_WINDOW_BEGIN': _window_begin,
'ATM_WINDOW_LENGTH': f"PT{self.config.assim_freq}H",
- 'OPREFIX': f"{self.config.EUPD_CYC}.t{self.runtime_config.cyc:02d}z.", # TODO: CDUMP is being replaced by RUN
- 'APREFIX': f"{self.runtime_config.CDUMP}.t{self.runtime_config.cyc:02d}z.", # TODO: CDUMP is being replaced by RUN
+ 'OPREFIX': f"{self.config.EUPD_CYC}.t{self.runtime_config.cyc:02d}z.",
+ 'APREFIX': f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.",
'GPREFIX': f"gdas.t{self.runtime_config.previous_cycle.hour:02d}z.",
'jedi_yaml': _jedi_yaml,
'atm_obsdatain_path': f"./obs/",
@@ -235,8 +235,8 @@ def finalize(self: Analysis) -> None:
# copy full YAML from executable to ROTDIR
logger.info(f"Copying {self.task_config.jedi_yaml} to {self.task_config.COM_ATMOS_ANALYSIS_ENS}")
- src = os.path.join(self.task_config.DATA, f"{self.task_config.CDUMP}.t{self.task_config.cyc:02d}z.atmens.yaml")
- dest = os.path.join(self.task_config.COM_ATMOS_ANALYSIS_ENS, f"{self.task_config.CDUMP}.t{self.task_config.cyc:02d}z.atmens.yaml")
+ src = os.path.join(self.task_config.DATA, f"{self.task_config.RUN}.t{self.task_config.cyc:02d}z.atmens.yaml")
+ dest = os.path.join(self.task_config.COM_ATMOS_ANALYSIS_ENS, f"{self.task_config.RUN}.t{self.task_config.cyc:02d}z.atmens.yaml")
logger.debug(f"Copying {src} to {dest}")
yaml_copy = {
'mkdir': [self.task_config.COM_ATMOS_ANALYSIS_ENS],
@@ -265,7 +265,7 @@ def finalize(self: Analysis) -> None:
tmpl_inc_dict['MEMDIR'] = memchar
incdir = Template.substitute_structure(template_inc, TemplateConstants.DOLLAR_CURLY_BRACE, tmpl_inc_dict.get)
src = os.path.join(self.task_config.DATA, 'anl', memchar, f"atminc.{cdate_inc}z.nc4")
- dest = os.path.join(incdir, f"{self.task_config.CDUMP}.t{self.task_config.cyc:02d}z.atminc.nc")
+ dest = os.path.join(incdir, f"{self.task_config.RUN}.t{self.task_config.cyc:02d}z.atminc.nc")
# copy increment
logger.debug(f"Copying {src} to {dest}")
diff --git a/workflow/applications/applications.py b/workflow/applications/applications.py
index 6a4d240fe5..2553ee43ab 100644
--- a/workflow/applications/applications.py
+++ b/workflow/applications/applications.py
@@ -31,7 +31,11 @@ def __init__(self, conf: Configuration) -> None:
self.scheduler = Host().scheduler
- _base = conf.parse_config('config.base')
+ # Save the configuration so we can source the config files when
+ # determining task resources
+ self.conf = conf
+
+ _base = self.conf.parse_config('config.base')
# Define here so the child __init__ functions can use it; will
# be overwritten later during _init_finalize().
self._base = _base
@@ -70,30 +74,30 @@ def __init__(self, conf: Configuration) -> None:
self.nens = _base.get('NMEM_ENS', 0)
- self.wave_cdumps = None
+ self.wave_runs = None
if self.do_wave:
- wave_cdump = _base.get('WAVE_CDUMP', 'BOTH').lower()
- if wave_cdump in ['both']:
- self.wave_cdumps = ['gfs', 'gdas']
- elif wave_cdump in ['gfs', 'gdas']:
- self.wave_cdumps = [wave_cdump]
+ wave_run = _base.get('WAVE_RUN', 'BOTH').lower()
+ if wave_run in ['both']:
+ self.wave_runs = ['gfs', 'gdas']
+ elif wave_run in ['gfs', 'gdas']:
+ self.wave_runs = [wave_run]
- self.aero_anl_cdumps = None
+ self.aero_anl_runs = None
if self.do_aero:
- aero_anl_cdump = _base.get('AERO_ANL_CDUMP', 'BOTH').lower()
- if aero_anl_cdump in ['both']:
- self.aero_anl_cdumps = ['gfs', 'gdas']
- elif aero_anl_cdump in ['gfs', 'gdas']:
- self.aero_anl_cdumps = [aero_anl_cdump]
+ aero_anl_run = _base.get('AERO_ANL_RUN', 'BOTH').lower()
+ if aero_anl_run in ['both']:
+ self.aero_anl_runs = ['gfs', 'gdas']
+ elif aero_anl_run in ['gfs', 'gdas']:
+ self.aero_anl_runs = [aero_anl_run]
- def _init_finalize(self, conf: Configuration):
+ def _init_finalize(self, *args):
print("Finalizing initialize")
# Get a list of all possible config_files that would be part of the application
self.configs_names = self._get_app_configs()
# Source the config_files for the jobs in the application
- self.configs = self._source_configs(conf)
+ self.configs = self.source_configs()
# Update the base config dictionary base on application
self.configs['base'] = self._update_base(self.configs['base'])
@@ -130,9 +134,9 @@ def _update_base(base_in: Dict[str, Any]) -> Dict[str, Any]:
'''
pass
- def _source_configs(self, conf: Configuration) -> Dict[str, Any]:
+ def source_configs(self, run: str = "gfs", log:bool = True) -> Dict[str, Any]:
"""
- Given the configuration object and jobs,
+ Given the configuration object used to initialize,
source the configurations for each config and return a dictionary
Every config depends on "config.base"
"""
@@ -140,7 +144,7 @@ def _source_configs(self, conf: Configuration) -> Dict[str, Any]:
configs = dict()
# Return config.base as well
- configs['base'] = conf.parse_config('config.base')
+ configs['base'] = self.conf.parse_config('config.base')
# Source the list of all config_files involved in the application
for config in self.configs_names:
@@ -163,15 +167,15 @@ def _source_configs(self, conf: Configuration) -> Dict[str, Any]:
else:
files += [f'config.{config}']
- print(f'sourcing config.{config}')
- configs[config] = conf.parse_config(files)
+ print(f'sourcing config.{config}') if log else 0
+ configs[config] = self.conf.parse_config(files, RUN=run)
return configs
@abstractmethod
def get_task_names(self) -> Dict[str, List[str]]:
'''
- Create a list of task names for each CDUMP valid for the configuation.
+ Create a list of task names for each RUN valid for the configuation.
Parameters
----------
@@ -179,7 +183,7 @@ def get_task_names(self) -> Dict[str, List[str]]:
Returns
-------
- Dict[str, List[str]]: Lists of tasks for each CDUMP.
+ Dict[str, List[str]]: Lists of tasks for each RUN.
'''
pass
diff --git a/workflow/applications/gefs.py b/workflow/applications/gefs.py
index c165f9d1ca..fc7f37e0b8 100644
--- a/workflow/applications/gefs.py
+++ b/workflow/applications/gefs.py
@@ -37,7 +37,7 @@ def _update_base(base_in):
base_out = base_in.copy()
base_out['INTERVAL_GFS'] = AppConfig.get_gfs_interval(base_in['gfs_cyc'])
- base_out['CDUMP'] = 'gefs'
+ base_out['RUN'] = 'gefs'
return base_out
@@ -73,4 +73,4 @@ def get_task_names(self):
tasks += ['wavepostbndpnt', 'wavepostbndpntbll']
tasks += ['wavepostpnt']
- return {f"{self._base['CDUMP']}": tasks}
+ return {f"{self._base['RUN']}": tasks}
diff --git a/workflow/applications/gfs_cycled.py b/workflow/applications/gfs_cycled.py
index 175ddb07bf..c715507fe8 100644
--- a/workflow/applications/gfs_cycled.py
+++ b/workflow/applications/gfs_cycled.py
@@ -21,14 +21,14 @@ def __init__(self, conf: Configuration):
self.do_vrfy_oceanda = self._base.get('DO_VRFY_OCEANDA', False)
self.lobsdiag_forenkf = False
- self.eupd_cdumps = None
+ self.eupd_runs = None
if self.do_hybvar:
self.lobsdiag_forenkf = self._base.get('lobsdiag_forenkf', False)
- eupd_cdump = self._base.get('EUPD_CYC', 'gdas').lower()
- if eupd_cdump in ['both']:
- self.eupd_cdumps = ['gfs', 'gdas']
- elif eupd_cdump in ['gfs', 'gdas']:
- self.eupd_cdumps = [eupd_cdump]
+ eupd_run = self._base.get('EUPD_CYC', 'gdas').lower()
+ if eupd_run in ['both']:
+ self.eupd_runs = ['gfs', 'gdas']
+ elif eupd_run in ['gfs', 'gdas']:
+ self.eupd_runs = [eupd_run]
def _get_app_configs(self):
"""
@@ -175,10 +175,10 @@ def get_task_names(self):
if not self.do_jediatmvar:
gdas_tasks += ['analdiag']
- if self.do_wave and 'gdas' in self.wave_cdumps:
+ if self.do_wave and 'gdas' in self.wave_runs:
gdas_tasks += wave_prep_tasks
- if self.do_aero and 'gdas' in self.aero_anl_cdumps:
+ if self.do_aero and 'gdas' in self.aero_anl_runs:
gdas_tasks += ['aeroanlinit', 'aeroanlrun', 'aeroanlfinal']
if self.do_prep_obs_aero:
gdas_tasks += ['prepobsaero']
@@ -189,7 +189,7 @@ def get_task_names(self):
gdas_tasks += ['atmupp']
gdas_tasks += ['atmos_prod']
- if self.do_wave and 'gdas' in self.wave_cdumps:
+ if self.do_wave and 'gdas' in self.wave_runs:
if self.do_wave_bnd:
gdas_tasks += wave_bndpnt_tasks
gdas_tasks += wave_post_tasks
@@ -214,10 +214,10 @@ def get_task_names(self):
# Collect "gfs" cycle tasks
gfs_tasks = gdas_gfs_common_tasks_before_fcst.copy()
- if self.do_wave and 'gfs' in self.wave_cdumps:
+ if self.do_wave and 'gfs' in self.wave_runs:
gfs_tasks += wave_prep_tasks
- if self.do_aero and 'gfs' in self.aero_anl_cdumps:
+ if self.do_aero and 'gfs' in self.aero_anl_runs:
gfs_tasks += ['aeroanlinit', 'aeroanlrun', 'aeroanlfinal']
if self.do_prep_obs_aero:
gfs_tasks += ['prepobsaero']
@@ -252,7 +252,7 @@ def get_task_names(self):
if self.do_metp:
gfs_tasks += ['metp']
- if self.do_wave and 'gfs' in self.wave_cdumps:
+ if self.do_wave and 'gfs' in self.wave_runs:
if self.do_wave_bnd:
gfs_tasks += wave_bndpnt_tasks
gfs_tasks += wave_post_tasks
@@ -286,15 +286,15 @@ def get_task_names(self):
tasks = dict()
tasks['gdas'] = gdas_tasks
- if self.do_hybvar and 'gdas' in self.eupd_cdumps:
+ if self.do_hybvar and 'gdas' in self.eupd_runs:
enkfgdas_tasks = hybrid_tasks + hybrid_after_eupd_tasks
tasks['enkfgdas'] = enkfgdas_tasks
- # Add CDUMP=gfs tasks if running early cycle
+ # Add RUN=gfs tasks if running early cycle
if self.gfs_cyc > 0:
tasks['gfs'] = gfs_tasks
- if self.do_hybvar and 'gfs' in self.eupd_cdumps:
+ if self.do_hybvar and 'gfs' in self.eupd_runs:
enkfgfs_tasks = hybrid_tasks + hybrid_after_eupd_tasks
enkfgfs_tasks.remove("echgres")
tasks['enkfgfs'] = enkfgfs_tasks
diff --git a/workflow/applications/gfs_forecast_only.py b/workflow/applications/gfs_forecast_only.py
index e219032551..66cfd6600f 100644
--- a/workflow/applications/gfs_forecast_only.py
+++ b/workflow/applications/gfs_forecast_only.py
@@ -73,7 +73,7 @@ def _update_base(base_in):
base_out = base_in.copy()
base_out['INTERVAL_GFS'] = AppConfig.get_gfs_interval(base_in['gfs_cyc'])
- base_out['CDUMP'] = 'gfs'
+ base_out['RUN'] = 'gfs'
return base_out
@@ -87,8 +87,8 @@ def get_task_names(self):
tasks = ['stage_ic']
if self.do_aero:
- aero_fcst_cdump = _base.get('AERO_FCST_CDUMP', 'BOTH').lower()
- if self._base['CDUMP'] in aero_fcst_cdump or aero_fcst_cdump == "both":
+ aero_fcst_run = _base.get('AERO_FCST_RUN', 'BOTH').lower()
+ if self._base['RUN'] in aero_fcst_run or aero_fcst_run == "both":
tasks += ['aerosol_init']
if self.do_wave:
@@ -151,4 +151,4 @@ def get_task_names(self):
tasks += ['arch', 'cleanup'] # arch and cleanup **must** be the last tasks
- return {f"{self._base['CDUMP']}": tasks}
+ return {f"{self._base['RUN']}": tasks}
diff --git a/workflow/rocoto/gefs_tasks.py b/workflow/rocoto/gefs_tasks.py
index cfd8fa7093..f008d94562 100644
--- a/workflow/rocoto/gefs_tasks.py
+++ b/workflow/rocoto/gefs_tasks.py
@@ -6,8 +6,8 @@
class GEFSTasks(Tasks):
- def __init__(self, app_config: AppConfig, cdump: str) -> None:
- super().__init__(app_config, cdump)
+ def __init__(self, app_config: AppConfig, run: str) -> None:
+ super().__init__(app_config, run)
def stage_ic(self):
cpl_ic = self._configs['stage_ic']
@@ -215,13 +215,13 @@ def _atmosoceaniceprod(self, component: str):
fhout_ice_gfs = self._configs['base']['FHOUT_ICE_GFS']
products_dict = {'atmos': {'config': 'atmos_products',
'history_path_tmpl': 'COM_ATMOS_MASTER_TMPL',
- 'history_file_tmpl': f'{self.cdump}.t@Hz.master.grb2f#fhr#'},
+ 'history_file_tmpl': f'{self.run}.t@Hz.master.grb2f#fhr#'},
'ocean': {'config': 'oceanice_products',
'history_path_tmpl': 'COM_OCEAN_HISTORY_TMPL',
- 'history_file_tmpl': f'{self.cdump}.ocean.t@Hz.{fhout_ocn_gfs}hr_avg.f#fhr#.nc'},
+ 'history_file_tmpl': f'{self.run}.ocean.t@Hz.{fhout_ocn_gfs}hr_avg.f#fhr#.nc'},
'ice': {'config': 'oceanice_products',
'history_path_tmpl': 'COM_ICE_HISTORY_TMPL',
- 'history_file_tmpl': f'{self.cdump}.ice.t@Hz.{fhout_ice_gfs}hr_avg.f#fhr#.nc'}}
+ 'history_file_tmpl': f'{self.run}.ice.t@Hz.{fhout_ice_gfs}hr_avg.f#fhr#.nc'}}
component_dict = products_dict[component]
config = component_dict['config']
@@ -407,7 +407,7 @@ def wavepostbndpntbll(self):
# The wavepostbndpntbll job runs on forecast hours up to FHMAX_WAV_IBP
last_fhr = self._configs['wave']['FHMAX_WAV_IBP']
- data = f'{atmos_hist_path}/{self.cdump}.t@Hz.atm.logf{last_fhr:03d}.txt'
+ data = f'{atmos_hist_path}/{self.run}.t@Hz.atm.logf{last_fhr:03d}.txt'
dep_dict = {'type': 'data', 'data': data}
deps.append(rocoto.add_dependency(dep_dict))
diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py
index 60a08549b6..a7d59c8a66 100644
--- a/workflow/rocoto/gfs_tasks.py
+++ b/workflow/rocoto/gfs_tasks.py
@@ -7,13 +7,13 @@
class GFSTasks(Tasks):
- def __init__(self, app_config: AppConfig, cdump: str) -> None:
- super().__init__(app_config, cdump)
+ def __init__(self, app_config: AppConfig, run: str) -> None:
+ super().__init__(app_config, run)
@staticmethod
- def _is_this_a_gdas_task(cdump, task_name):
- if cdump != 'enkfgdas':
- raise TypeError(f'{task_name} must be part of the "enkfgdas" cycle and not {cdump}')
+ def _is_this_a_gdas_task(run, task_name):
+ if run != 'enkfgdas':
+ raise TypeError(f'{task_name} must be part of the "enkfgdas" cycle and not {run}')
# Specific Tasks begin here
def stage_ic(self):
@@ -71,12 +71,12 @@ def stage_ic(self):
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('stage_ic')
- task_name = f'{self.cdump}stage_ic'
+ task_name = f'{self.run}stage_ic'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump,
+ 'cycledef': self.run,
'command': f'{self.HOMEgfs}/jobs/rocoto/stage_ic.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -96,7 +96,7 @@ def prep(self):
dump_path = self._template_to_rocoto_cycstring(self._base["COM_OBSDMP_TMPL"],
{'DMPDIR': dmpdir, 'DUMP_SUFFIX': dump_suffix})
- gfs_enkf = True if self.app_config.do_hybvar and 'gfs' in self.app_config.eupd_cdumps else False
+ gfs_enkf = True if self.app_config.do_hybvar and 'gfs' in self.app_config.eupd_runs else False
deps = []
dep_dict = {'type': 'metatask', 'name': 'gdasatmos_prod', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
@@ -104,17 +104,17 @@ def prep(self):
data = f'{atm_hist_path}/gdas.t@Hz.atmf009.nc'
dep_dict = {'type': 'data', 'data': data, 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
deps.append(rocoto.add_dependency(dep_dict))
- data = f'{dump_path}/{self.cdump}.t@Hz.updated.status.tm00.bufr_d'
+ data = f'{dump_path}/{self.run}.t@Hz.updated.status.tm00.bufr_d'
dep_dict = {'type': 'data', 'data': data}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
- cycledef = self.cdump
- if self.cdump in ['gfs'] and gfs_enkf and gfs_cyc != 4:
+ cycledef = self.run
+ if self.run in ['gfs'] and gfs_enkf and gfs_cyc != 4:
cycledef = 'gdas'
resources = self.get_resource('prep')
- task_name = f'{self.cdump}prep'
+ task_name = f'{self.run}prep'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -134,17 +134,17 @@ def waveinit(self):
resources = self.get_resource('waveinit')
dependencies = None
- cycledef = 'gdas_half,gdas' if self.cdump in ['gdas'] else self.cdump
+ cycledef = 'gdas_half,gdas' if self.run in ['gdas'] else self.run
if self.app_config.mode in ['cycled']:
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prep'}
deps.append(rocoto.add_dependency(dep_dict))
- if self.cdump in ['gdas']:
+ if self.run in ['gdas']:
dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='or', dep=deps)
- task_name = f'{self.cdump}waveinit'
+ task_name = f'{self.run}waveinit'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -163,12 +163,12 @@ def waveinit(self):
def waveprep(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}waveinit'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}waveinit'}
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
+ cycledef = 'gdas_half,gdas' if self.run in ['gdas'] else self.run
resources = self.get_resource('waveprep')
- task_name = f'{self.cdump}waveprep'
+ task_name = f'{self.run}waveprep'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -197,11 +197,11 @@ def aerosol_init(self):
dep_dict = {'type': 'data', 'data': data}
deps.append(rocoto.add_dependency(dep_dict))
- # Calculate offset based on CDUMP = gfs | gdas
+ # Calculate offset based on RUN = gfs | gdas
interval = None
- if self.cdump in ['gfs']:
+ if self.run in ['gfs']:
interval = self._base['INTERVAL_GFS']
- elif self.cdump in ['gdas']:
+ elif self.run in ['gdas']:
interval = self._base['INTERVAL']
offset = timedelta_to_HMS(-interval)
@@ -219,7 +219,7 @@ def aerosol_init(self):
cycledef = 'gfs_seq'
resources = self.get_resource('aerosol_init')
- task_name = f'{self.cdump}aerosol_init'
+ task_name = f'{self.run}aerosol_init'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -237,7 +237,7 @@ def aerosol_init(self):
def anal(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prep'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_hybvar:
dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
@@ -247,12 +247,12 @@ def anal(self):
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('anal')
- task_name = f'{self.cdump}anal'
+ task_name = f'{self.run}anal'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/anal.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -267,24 +267,24 @@ def sfcanl(self):
deps = []
if self.app_config.do_jediatmvar:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmanlfinal'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmanlfinal'}
else:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}anal'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}anal'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_jedisnowda:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}snowanl'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}snowanl'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
else:
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('sfcanl')
- task_name = f'{self.cdump}sfcanl'
+ task_name = f'{self.run}sfcanl'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/sfcanl.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -299,24 +299,24 @@ def analcalc(self):
deps = []
if self.app_config.do_jediatmvar:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmanlfinal'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmanlfinal'}
else:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}anal'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}anal'}
deps.append(rocoto.add_dependency(dep_dict))
- dep_dict = {'type': 'task', 'name': f'{self.cdump}sfcanl'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}sfcanl'}
deps.append(rocoto.add_dependency(dep_dict))
- if self.app_config.do_hybvar and self.cdump in ['gdas']:
+ if self.app_config.do_hybvar and self.run in ['gdas']:
dep_dict = {'type': 'task', 'name': 'enkfgdasechgres', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('analcalc')
- task_name = f'{self.cdump}analcalc'
+ task_name = f'{self.run}analcalc'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/analcalc.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -330,17 +330,17 @@ def analcalc(self):
def analdiag(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}anal'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}anal'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('analdiag')
- task_name = f'{self.cdump}analdiag'
+ task_name = f'{self.run}analdiag'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/analdiag.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -354,17 +354,17 @@ def analdiag(self):
def prepatmiodaobs(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('prepatmiodaobs')
- task_name = f'{self.cdump}prepatmiodaobs'
+ task_name = f'{self.run}prepatmiodaobs'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/prepatmiodaobs.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -378,7 +378,7 @@ def prepatmiodaobs(self):
def atmanlinit(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prepatmiodaobs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prepatmiodaobs'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_hybvar:
dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
@@ -388,14 +388,14 @@ def atmanlinit(self):
dependencies = rocoto.create_dependency(dep=deps)
gfs_cyc = self._base["gfs_cyc"]
- gfs_enkf = True if self.app_config.do_hybvar and 'gfs' in self.app_config.eupd_cdumps else False
+ gfs_enkf = True if self.app_config.do_hybvar and 'gfs' in self.app_config.eupd_runs else False
- cycledef = self.cdump
- if self.cdump in ['gfs'] and gfs_enkf and gfs_cyc != 4:
+ cycledef = self.run
+ if self.run in ['gfs'] and gfs_enkf and gfs_cyc != 4:
cycledef = 'gdas'
resources = self.get_resource('atmanlinit')
- task_name = f'{self.cdump}atmanlinit'
+ task_name = f'{self.run}atmanlinit'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -414,17 +414,17 @@ def atmanlinit(self):
def atmanlvar(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmanlinit'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmanlinit'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('atmanlvar')
- task_name = f'{self.cdump}atmanlvar'
+ task_name = f'{self.run}atmanlvar'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/atmanlvar.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -438,17 +438,17 @@ def atmanlvar(self):
def atmanlfv3inc(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmanlvar'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmanlvar'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('atmanlfv3inc')
- task_name = f'{self.cdump}atmanlfv3inc'
+ task_name = f'{self.run}atmanlfv3inc'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/atmanlfv3inc.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -462,17 +462,17 @@ def atmanlfv3inc(self):
def atmanlfinal(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmanlfv3inc'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmanlfv3inc'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('atmanlfinal')
- task_name = f'{self.cdump}atmanlfinal'
+ task_name = f'{self.run}atmanlfinal'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/atmanlfinal.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -485,17 +485,17 @@ def atmanlfinal(self):
def prepobsaero(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('prepobsaero')
- task_name = f'{self.cdump}prepobsaero'
+ task_name = f'{self.run}prepobsaero'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/prepobsaero.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -509,19 +509,19 @@ def prepobsaero(self):
def aeroanlinit(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prep'}
if self.app_config.do_prep_obs_aero:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prepobsaero'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prepobsaero'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('aeroanlinit')
- task_name = f'{self.cdump}aeroanlinit'
+ task_name = f'{self.run}aeroanlinit'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/aeroanlinit.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -535,17 +535,17 @@ def aeroanlinit(self):
def aeroanlrun(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}aeroanlinit'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}aeroanlinit'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('aeroanlrun')
- task_name = f'{self.cdump}aeroanlrun'
+ task_name = f'{self.run}aeroanlrun'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/aeroanlrun.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -559,17 +559,17 @@ def aeroanlrun(self):
def aeroanlfinal(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}aeroanlrun'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}aeroanlrun'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('aeroanlfinal')
- task_name = f'{self.cdump}aeroanlfinal'
+ task_name = f'{self.run}aeroanlfinal'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/aeroanlfinal.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -583,17 +583,17 @@ def aeroanlfinal(self):
def prepsnowobs(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('prepsnowobs')
- task_name = f'{self.cdump}prepsnowobs'
+ task_name = f'{self.run}prepsnowobs'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/prepsnowobs.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -607,17 +607,17 @@ def prepsnowobs(self):
def snowanl(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prepsnowobs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prepsnowobs'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('snowanl')
- task_name = f'{self.cdump}snowanl'
+ task_name = f'{self.run}snowanl'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/snowanl.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -638,12 +638,12 @@ def prepoceanobs(self):
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('prepoceanobs')
- task_name = f'{self.cdump}prepoceanobs'
+ task_name = f'{self.run}prepoceanobs'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/prepoceanobs.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -657,17 +657,17 @@ def prepoceanobs(self):
def ocnanalprep(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}prepoceanobs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}prepoceanobs'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('ocnanalprep')
- task_name = f'{self.cdump}ocnanalprep'
+ task_name = f'{self.run}ocnanalprep'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ocnanalprep.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -681,17 +681,17 @@ def ocnanalprep(self):
def ocnanalbmat(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalprep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalprep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('ocnanalbmat')
- task_name = f'{self.cdump}ocnanalbmat'
+ task_name = f'{self.run}ocnanalbmat'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ocnanalbmat.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -705,17 +705,17 @@ def ocnanalbmat(self):
def ocnanalrun(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalbmat'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalbmat'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('ocnanalrun')
- task_name = f'{self.cdump}ocnanalrun'
+ task_name = f'{self.run}ocnanalrun'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ocnanalrun.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -729,17 +729,17 @@ def ocnanalrun(self):
def ocnanalecen(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalrun'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalrun'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('ocnanalecen')
- task_name = f'{self.cdump}ocnanalecen'
+ task_name = f'{self.run}ocnanalecen'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ocnanalecen.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -754,23 +754,23 @@ def ocnanalchkpt(self):
deps = []
if self.app_config.do_hybvar:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalecen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalecen'}
else:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalrun'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalrun'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_mergensst:
- data = f'&ROTDIR;/{self.cdump}.@Y@m@d/@H/atmos/{self.cdump}.t@Hz.sfcanl.nc'
+ data = f'&ROTDIR;/{self.run}.@Y@m@d/@H/atmos/{self.run}.t@Hz.sfcanl.nc'
dep_dict = {'type': 'data', 'data': data}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('ocnanalchkpt')
- task_name = f'{self.cdump}ocnanalchkpt'
+ task_name = f'{self.run}ocnanalchkpt'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ocnanalchkpt.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -784,17 +784,17 @@ def ocnanalchkpt(self):
def ocnanalpost(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalchkpt'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalchkpt'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('ocnanalpost')
- task_name = f'{self.cdump}ocnanalpost'
+ task_name = f'{self.run}ocnanalpost'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ocnanalpost.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -808,17 +808,17 @@ def ocnanalpost(self):
def ocnanalvrfy(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalpost'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalpost'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('ocnanalvrfy')
- task_name = f'{self.cdump}ocnanalvrfy'
+ task_name = f'{self.run}ocnanalvrfy'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ocnanalvrfy.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -846,24 +846,24 @@ def fcst(self):
def _fcst_forecast_only(self):
dependencies = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}stage_ic'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}stage_ic'}
dependencies.append(rocoto.add_dependency(dep_dict))
- if self.app_config.do_wave and self.cdump in self.app_config.wave_cdumps:
+ if self.app_config.do_wave and self.run in self.app_config.wave_runs:
wave_job = 'waveprep' if self.app_config.model_app in ['ATMW'] else 'waveinit'
- dep_dict = {'type': 'task', 'name': f'{self.cdump}{wave_job}'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}{wave_job}'}
dependencies.append(rocoto.add_dependency(dep_dict))
- if self.app_config.do_aero and self.cdump in self.app_config.aero_fcst_cdumps:
- # Calculate offset based on CDUMP = gfs | gdas
+ if self.app_config.do_aero and self.run in self.app_config.aero_fcst_runs:
+ # Calculate offset based on RUN = gfs | gdas
interval = None
- if self.cdump in ['gfs']:
+ if self.run in ['gfs']:
interval = self._base['INTERVAL_GFS']
- elif self.cdump in ['gdas']:
+ elif self.run in ['gdas']:
interval = self._base['INTERVAL']
offset = timedelta_to_HMS(-interval)
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}aerosol_init'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}aerosol_init'}
deps.append(rocoto.add_dependency(dep_dict))
dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': offset}
deps.append(rocoto.add_dependency(dep_dict))
@@ -872,12 +872,12 @@ def _fcst_forecast_only(self):
dependencies = rocoto.create_dependency(dep_condition='and', dep=dependencies)
resources = self.get_resource('fcst')
- task_name = f'{self.cdump}fcst'
+ task_name = f'{self.run}fcst'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/fcst.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -890,38 +890,38 @@ def _fcst_forecast_only(self):
def _fcst_cycled(self):
- dep_dict = {'type': 'task', 'name': f'{self.cdump}sfcanl'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}sfcanl'}
dep = rocoto.add_dependency(dep_dict)
dependencies = rocoto.create_dependency(dep=dep)
if self.app_config.do_jediocnvar:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalpost'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ocnanalpost'}
dependencies.append(rocoto.add_dependency(dep_dict))
- if self.app_config.do_aero and self.cdump in self.app_config.aero_anl_cdumps:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}aeroanlfinal'}
+ if self.app_config.do_aero and self.run in self.app_config.aero_anl_runs:
+ dep_dict = {'type': 'task', 'name': f'{self.run}aeroanlfinal'}
dependencies.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_jedisnowda:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}snowanl'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}snowanl'}
dependencies.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=dependencies)
- if self.cdump in ['gdas']:
+ if self.run in ['gdas']:
dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
dependencies.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='or', dep=dependencies)
- if self.app_config.do_wave and self.cdump in self.app_config.wave_cdumps:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}waveprep'}
+ if self.app_config.do_wave and self.run in self.app_config.wave_runs:
+ dep_dict = {'type': 'task', 'name': f'{self.run}waveprep'}
dependencies.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=dependencies)
- cycledef = 'gdas_half,gdas' if self.cdump in ['gdas'] else self.cdump
+ cycledef = 'gdas_half,gdas' if self.run in ['gdas'] else self.run
resources = self.get_resource('fcst')
- task_name = f'{self.cdump}fcst'
+ task_name = f'{self.run}fcst'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -946,23 +946,23 @@ def atmanlupp(self):
atm_anl_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_ANALYSIS_TMPL"])
deps = []
- data = f'{atm_anl_path}/{self.cdump}.t@Hz.atmanl.nc'
+ data = f'{atm_anl_path}/{self.run}.t@Hz.atmanl.nc'
dep_dict = {'type': 'data', 'data': data, 'age': 120}
deps.append(rocoto.add_dependency(dep_dict))
- data = f'{atm_anl_path}/{self.cdump}.t@Hz.sfcanl.nc'
+ data = f'{atm_anl_path}/{self.run}.t@Hz.sfcanl.nc'
dep_dict = {'type': 'data', 'data': data, 'age': 120}
deps.append(rocoto.add_dependency(dep_dict))
- data = f'{atm_anl_path}/{self.cdump}.t@Hz.loganl.txt'
+ data = f'{atm_anl_path}/{self.run}.t@Hz.loganl.txt'
dep_dict = {'type': 'data', 'data': data, 'age': 60}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps, dep_condition='and')
resources = self.get_resource('upp')
- task_name = f'{self.cdump}atmanlupp'
+ task_name = f'{self.run}atmanlupp'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': postenvars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/upp.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -981,17 +981,17 @@ def atmanlprod(self):
atm_master_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_MASTER_TMPL"])
deps = []
- data = f'{atm_master_path}/{self.cdump}.t@Hz.master.grb2anl'
+ data = f'{atm_master_path}/{self.run}.t@Hz.master.grb2anl'
dep_dict = {'type': 'data', 'data': data, 'age': 120}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('atmos_products')
- task_name = f'{self.cdump}atmanlprod'
+ task_name = f'{self.run}atmanlprod'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': postenvars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/atmos_products.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1022,20 +1022,20 @@ def _upptask(self, upp_run="forecast", task_id="atmupp"):
atm_hist_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_HISTORY_TMPL"])
deps = []
- data = f'{atm_hist_path}/{self.cdump}.t@Hz.atmf#fhr#.nc'
+ data = f'{atm_hist_path}/{self.run}.t@Hz.atmf#fhr#.nc'
dep_dict = {'type': 'data', 'data': data, 'age': 120}
deps.append(rocoto.add_dependency(dep_dict))
- data = f'{atm_hist_path}/{self.cdump}.t@Hz.sfcf#fhr#.nc'
+ data = f'{atm_hist_path}/{self.run}.t@Hz.sfcf#fhr#.nc'
dep_dict = {'type': 'data', 'data': data, 'age': 120}
deps.append(rocoto.add_dependency(dep_dict))
- data = f'{atm_hist_path}/{self.cdump}.t@Hz.atm.logf#fhr#.txt'
+ data = f'{atm_hist_path}/{self.run}.t@Hz.atm.logf#fhr#.txt'
dep_dict = {'type': 'data', 'data': data, 'age': 60}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps, dep_condition='and')
- cycledef = 'gdas_half,gdas' if self.cdump in ['gdas'] else self.cdump
+ cycledef = 'gdas_half,gdas' if self.run in ['gdas'] else self.run
resources = self.get_resource('upp')
- task_name = f'{self.cdump}{task_id}_f#fhr#'
+ task_name = f'{self.run}{task_id}_f#fhr#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -1047,10 +1047,10 @@ def _upptask(self, upp_run="forecast", task_id="atmupp"):
'maxtries': '&MAXTRIES;'
}
- fhrs = self._get_forecast_hours(self.cdump, self._configs['upp'])
+ fhrs = self._get_forecast_hours(self.run, self._configs['upp'])
fhr_var_dict = {'fhr': ' '.join([f"{fhr:03d}" for fhr in fhrs])}
- metatask_dict = {'task_name': f'{self.cdump}{task_id}',
+ metatask_dict = {'task_name': f'{self.run}{task_id}',
'task_dict': task_dict,
'var_dict': fhr_var_dict
}
@@ -1072,13 +1072,13 @@ def _atmosoceaniceprod(self, component: str):
products_dict = {'atmos': {'config': 'atmos_products',
'history_path_tmpl': 'COM_ATMOS_MASTER_TMPL',
- 'history_file_tmpl': f'{self.cdump}.t@Hz.master.grb2f#fhr#'},
+ 'history_file_tmpl': f'{self.run}.t@Hz.master.grb2f#fhr#'},
'ocean': {'config': 'oceanice_products',
'history_path_tmpl': 'COM_OCEAN_HISTORY_TMPL',
- 'history_file_tmpl': f'{self.cdump}.ocean.t@Hz.6hr_avg.f#fhr#.nc'},
+ 'history_file_tmpl': f'{self.run}.ocean.t@Hz.6hr_avg.f#fhr#.nc'},
'ice': {'config': 'oceanice_products',
'history_path_tmpl': 'COM_ICE_HISTORY_TMPL',
- 'history_file_tmpl': f'{self.cdump}.ice.t@Hz.6hr_avg.f#fhr#.nc'}}
+ 'history_file_tmpl': f'{self.run}.ice.t@Hz.6hr_avg.f#fhr#.nc'}}
component_dict = products_dict[component]
config = component_dict['config']
@@ -1103,10 +1103,10 @@ def _atmosoceaniceprod(self, component: str):
else:
dependencies = rocoto.create_dependency(dep=deps)
- cycledef = 'gdas_half,gdas' if self.cdump in ['gdas'] else self.cdump
+ cycledef = 'gdas_half,gdas' if self.run in ['gdas'] else self.run
resources = self.get_resource(component_dict['config'])
- task_name = f'{self.cdump}{component}_prod_f#fhr#'
+ task_name = f'{self.run}{component}_prod_f#fhr#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -1118,9 +1118,9 @@ def _atmosoceaniceprod(self, component: str):
'maxtries': '&MAXTRIES;'
}
- fhrs = self._get_forecast_hours(self.cdump, self._configs[config], component)
+ fhrs = self._get_forecast_hours(self.run, self._configs[config], component)
fhr_var_dict = {'fhr': ' '.join([f"{fhr:03d}" for fhr in fhrs])}
- metatask_dict = {'task_name': f'{self.cdump}{component}_prod',
+ metatask_dict = {'task_name': f'{self.run}{component}_prod',
'task_dict': task_dict,
'var_dict': fhr_var_dict
}
@@ -1133,18 +1133,18 @@ def wavepostsbs(self):
deps = []
for wave_grid in self._configs['wavepostsbs']['waveGRD'].split():
wave_hist_path = self._template_to_rocoto_cycstring(self._base["COM_WAVE_HISTORY_TMPL"])
- data = f'{wave_hist_path}/{self.cdump}wave.out_grd.{wave_grid}.@Y@m@d.@H0000'
+ data = f'{wave_hist_path}/{self.run}wave.out_grd.{wave_grid}.@Y@m@d.@H0000'
dep_dict = {'type': 'data', 'data': data}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('wavepostsbs')
- task_name = f'{self.cdump}wavepostsbs'
+ task_name = f'{self.run}wavepostsbs'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/wavepostsbs.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1157,17 +1157,17 @@ def wavepostsbs(self):
def wavepostbndpnt(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('wavepostbndpnt')
- task_name = f'{self.cdump}wavepostbndpnt'
+ task_name = f'{self.run}wavepostbndpnt'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/wavepostbndpnt.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1185,18 +1185,18 @@ def wavepostbndpntbll(self):
deps = []
atmos_hist_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_HISTORY_TMPL"])
- data = f'{atmos_hist_path}/{self.cdump}.t@Hz.atm.logf{last_fhr:03d}.txt'
+ data = f'{atmos_hist_path}/{self.run}.t@Hz.atm.logf{last_fhr:03d}.txt'
dep_dict = {'type': 'data', 'data': data}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('wavepostbndpntbll')
- task_name = f'{self.cdump}wavepostbndpntbll'
+ task_name = f'{self.run}wavepostbndpntbll'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/wavepostbndpntbll.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1209,20 +1209,20 @@ def wavepostbndpntbll(self):
def wavepostpnt(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}fcst'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_wave_bnd:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostbndpntbll'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}wavepostbndpntbll'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('wavepostpnt')
- task_name = f'{self.cdump}wavepostpnt'
+ task_name = f'{self.run}wavepostpnt'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/wavepostpnt.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1235,17 +1235,17 @@ def wavepostpnt(self):
def wavegempak(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostsbs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}wavepostsbs'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('wavegempak')
- task_name = f'{self.cdump}wavegempak'
+ task_name = f'{self.run}wavegempak'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/wavegempak.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1258,19 +1258,19 @@ def wavegempak(self):
def waveawipsbulls(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostsbs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}wavepostsbs'}
deps.append(rocoto.add_dependency(dep_dict))
- dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostpnt'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}wavepostpnt'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('waveawipsbulls')
- task_name = f'{self.cdump}waveawipsbulls'
+ task_name = f'{self.run}waveawipsbulls'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/waveawipsbulls.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1283,17 +1283,17 @@ def waveawipsbulls(self):
def waveawipsgridded(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostsbs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}wavepostsbs'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('waveawipsgridded')
- task_name = f'{self.cdump}waveawipsgridded'
+ task_name = f'{self.run}waveawipsgridded'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/waveawipsgridded.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1306,17 +1306,17 @@ def waveawipsgridded(self):
def postsnd(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('postsnd')
- task_name = f'{self.cdump}postsnd'
+ task_name = f'{self.run}postsnd'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/postsnd.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1329,15 +1329,15 @@ def postsnd(self):
def fbwind(self):
- atmos_prod_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_GRIB_GRID_TMPL"], {'RUN': self.cdump, 'GRID': '0p25'})
+ atmos_prod_path = self._template_to_rocoto_cycstring(self._base["COM_ATMOS_GRIB_GRID_TMPL"], {'RUN': self.run, 'GRID': '0p25'})
deps = []
- data = f'{atmos_prod_path}/{self.cdump}.t@Hz.pgrb2.0p25.f006'
+ data = f'{atmos_prod_path}/{self.run}.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'
+ data = f'{atmos_prod_path}/{self.run}.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'
+ data = f'{atmos_prod_path}/{self.run}.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')
@@ -1348,12 +1348,12 @@ def fbwind(self):
# 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.
- task_name = f'{self.cdump}fbwind'
+ task_name = f'{self.run}fbwind'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/fbwind.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1365,7 +1365,7 @@ def fbwind(self):
return task
@staticmethod
- def _get_awipsgroups(cdump, config):
+ def _get_awipsgroups(run, config):
fhmin = config['FHMIN']
fhmax = config['FHMAX']
@@ -1373,9 +1373,9 @@ def _get_awipsgroups(cdump, config):
# Get a list of all forecast hours
fhrs = []
- if cdump in ['gdas']:
+ if run in ['gdas']:
fhrs = range(fhmin, fhmax + fhout, fhout)
- elif cdump in ['gfs']:
+ elif run in ['gfs']:
fhmax = config['FHMAX_GFS']
fhout = config['FHOUT_GFS']
fhmax_hf = config['FHMAX_HF_GFS']
@@ -1403,7 +1403,7 @@ def _get_awipsgroups(cdump, config):
def awips_20km_1p0deg(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
@@ -1415,24 +1415,24 @@ def awips_20km_1p0deg(self):
awipsenvars.append(rocoto.create_envar(name=key, value=str(value)))
varname1, varname2, varname3 = 'grp', 'dep', 'lst'
- varval1, varval2, varval3 = self._get_awipsgroups(self.cdump, self._configs['awips'])
+ varval1, varval2, varval3 = self._get_awipsgroups(self.run, self._configs['awips'])
var_dict = {varname1: varval1, varname2: varval2, varname3: varval3}
resources = self.get_resource('awips')
- task_name = f'{self.cdump}awips_20km_1p0deg#{varname1}#'
+ task_name = f'{self.run}awips_20km_1p0deg#{varname1}#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': awipsenvars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/awips_20km_1p0deg.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
'maxtries': '&MAXTRIES;'
}
- metatask_dict = {'task_name': f'{self.cdump}awips_20km_1p0deg',
+ metatask_dict = {'task_name': f'{self.run}awips_20km_1p0deg',
'task_dict': task_dict,
'var_dict': var_dict
}
@@ -1444,17 +1444,17 @@ def awips_20km_1p0deg(self):
def gempak(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('gempak')
- task_name = f'{self.cdump}gempak'
+ task_name = f'{self.run}gempak'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/gempak.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1467,17 +1467,17 @@ def gempak(self):
def gempakmeta(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}gempak'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}gempak'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('gempak')
- task_name = f'{self.cdump}gempakmeta'
+ task_name = f'{self.run}gempakmeta'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/gempakmeta.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1490,17 +1490,17 @@ def gempakmeta(self):
def gempakmetancdc(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}gempak'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}gempak'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('gempak')
- task_name = f'{self.cdump}gempakmetancdc'
+ task_name = f'{self.run}gempakmetancdc'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/gempakmetancdc.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1513,17 +1513,17 @@ def gempakmetancdc(self):
def gempakncdcupapgif(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}gempak'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}gempak'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('gempak')
- task_name = f'{self.cdump}gempakncdcupapgif'
+ task_name = f'{self.run}gempakncdcupapgif'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/gempakncdcupapgif.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1536,17 +1536,17 @@ def gempakncdcupapgif(self):
def gempakpgrb2spec(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}npoess_pgrb2_0p5deg'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}npoess_pgrb2_0p5deg'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('gempak')
- task_name = f'{self.cdump}gempakgrb2spec'
+ task_name = f'{self.run}gempakgrb2spec'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/gempakgrb2spec.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1560,19 +1560,19 @@ def gempakpgrb2spec(self):
def npoess_pgrb2_0p5deg(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmanlprod'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmanlprod'}
deps.append(rocoto.add_dependency(dep_dict))
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}goesupp'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}goesupp'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps, dep_condition='and')
resources = self.get_resource('npoess')
- task_name = f'{self.cdump}npoess_pgrb2_0p5deg'
+ task_name = f'{self.run}npoess_pgrb2_0p5deg'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/npoess.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1585,17 +1585,17 @@ def npoess_pgrb2_0p5deg(self):
def verfozn(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}analdiag'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}analdiag'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('verfozn')
- task_name = f'{self.cdump}verfozn'
+ task_name = f'{self.run}verfozn'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/verfozn.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1608,17 +1608,17 @@ def verfozn(self):
def verfrad(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}analdiag'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}analdiag'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('verfrad')
- task_name = f'{self.cdump}verfrad'
+ task_name = f'{self.run}verfrad'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/verfrad.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1631,17 +1631,17 @@ def verfrad(self):
def vminmon(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}anal'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}anal'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('vminmon')
- task_name = f'{self.cdump}vminmon'
+ task_name = f'{self.run}vminmon'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/vminmon.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1654,17 +1654,17 @@ def vminmon(self):
def tracker(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('tracker')
- task_name = f'{self.cdump}tracker'
+ task_name = f'{self.run}tracker'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/tracker.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1677,17 +1677,17 @@ def tracker(self):
def genesis(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('genesis')
- task_name = f'{self.cdump}genesis'
+ task_name = f'{self.run}genesis'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/genesis.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1700,17 +1700,17 @@ def genesis(self):
def genesis_fsu(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('genesis_fsu')
- task_name = f'{self.cdump}genesis_fsu'
+ task_name = f'{self.run}genesis_fsu'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/genesis_fsu.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1723,17 +1723,17 @@ def genesis_fsu(self):
def fit2obs(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('fit2obs')
- task_name = f'{self.cdump}fit2obs'
+ task_name = f'{self.run}fit2obs'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/fit2obs.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1746,7 +1746,7 @@ def fit2obs(self):
def metp(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}arch'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}arch'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
@@ -1765,19 +1765,19 @@ def metp(self):
resources = self.get_resource('metp')
- task_name = f'{self.cdump}metp#{varname1}#'
+ task_name = f'{self.run}metp#{varname1}#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': metpenvars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/metp.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
'maxtries': '&MAXTRIES;'
}
- metatask_dict = {'task_name': f'{self.cdump}metp',
+ metatask_dict = {'task_name': f'{self.run}metp',
'task_dict': task_dict,
'var_dict': var_dict
}
@@ -1788,17 +1788,17 @@ def metp(self):
def mos_stn_prep(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('mos_stn_prep')
- task_name = f'{self.cdump}mos_stn_prep'
+ task_name = f'{self.run}mos_stn_prep'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_stn_prep.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1811,17 +1811,17 @@ def mos_stn_prep(self):
def mos_grd_prep(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('mos_grd_prep')
- task_name = f'{self.cdump}mos_grd_prep'
+ task_name = f'{self.run}mos_grd_prep'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_grd_prep.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1834,17 +1834,17 @@ def mos_grd_prep(self):
def mos_ext_stn_prep(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('mos_ext_stn_prep')
- task_name = f'{self.cdump}mos_ext_stn_prep'
+ task_name = f'{self.run}mos_ext_stn_prep'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_ext_stn_prep.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1857,17 +1857,17 @@ def mos_ext_stn_prep(self):
def mos_ext_grd_prep(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('mos_ext_grd_prep')
- task_name = f'{self.cdump}mos_ext_grd_prep'
+ task_name = f'{self.run}mos_ext_grd_prep'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_ext_grd_prep.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1880,17 +1880,17 @@ def mos_ext_grd_prep(self):
def mos_stn_fcst(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_stn_prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_stn_prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('mos_stn_fcst')
- task_name = f'{self.cdump}mos_stn_fcst'
+ task_name = f'{self.run}mos_stn_fcst'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_stn_fcst.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1903,20 +1903,20 @@ def mos_stn_fcst(self):
def mos_grd_fcst(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_stn_prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_stn_prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_grd_prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_grd_prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('mos_grd_fcst')
- task_name = f'{self.cdump}mos_grd_fcst'
+ task_name = f'{self.run}mos_grd_fcst'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_grd_fcst.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1929,20 +1929,20 @@ def mos_grd_fcst(self):
def mos_ext_stn_fcst(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_ext_stn_prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_ext_stn_prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_stn_prdgen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_stn_prdgen'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('mos_ext_stn_fcst')
- task_name = f'{self.cdump}mos_ext_stn_fcst'
+ task_name = f'{self.run}mos_ext_stn_fcst'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_ext_stn_fcst.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1955,23 +1955,23 @@ def mos_ext_stn_fcst(self):
def mos_ext_grd_fcst(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_ext_stn_prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_ext_stn_prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_ext_grd_prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_ext_grd_prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_grd_fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_grd_fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('mos_ext_grd_fcst')
- task_name = f'{self.cdump}mos_ext_grd_fcst'
+ task_name = f'{self.run}mos_ext_grd_fcst'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_ext_grd_fcst.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -1984,17 +1984,17 @@ def mos_ext_grd_fcst(self):
def mos_stn_prdgen(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_stn_fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_stn_fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('mos_stn_prdgen')
- task_name = f'{self.cdump}mos_stn_prdgen'
+ task_name = f'{self.run}mos_stn_prdgen'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_stn_prdgen.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2007,20 +2007,20 @@ def mos_stn_prdgen(self):
def mos_grd_prdgen(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_grd_fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_grd_fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_stn_prdgen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_stn_prdgen'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('mos_grd_prdgen')
- task_name = f'{self.cdump}mos_grd_prdgen'
+ task_name = f'{self.run}mos_grd_prdgen'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_grd_prdgen.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2033,20 +2033,20 @@ def mos_grd_prdgen(self):
def mos_ext_stn_prdgen(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_ext_stn_fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_ext_stn_fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_stn_prdgen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_stn_prdgen'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('mos_ext_stn_prdgen')
- task_name = f'{self.cdump}mos_ext_stn_prdgen'
+ task_name = f'{self.run}mos_ext_stn_prdgen'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_ext_stn_prdgen.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2059,23 +2059,23 @@ def mos_ext_stn_prdgen(self):
def mos_ext_grd_prdgen(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_ext_grd_fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_ext_grd_fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_grd_prdgen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_grd_prdgen'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_ext_stn_prdgen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_ext_stn_prdgen'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('mos_ext_grd_prdgen')
- task_name = f'{self.cdump}mos_ext_grd_prdgen'
+ task_name = f'{self.run}mos_ext_grd_prdgen'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_ext_grd_prdgen.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2088,17 +2088,17 @@ def mos_ext_grd_prdgen(self):
def mos_wx_prdgen(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_grd_prdgen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_grd_prdgen'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('mos_wx_prdgen')
- task_name = f'{self.cdump}mos_wx_prdgen'
+ task_name = f'{self.run}mos_wx_prdgen'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_wx_prdgen.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2111,20 +2111,20 @@ def mos_wx_prdgen(self):
def mos_wx_ext_prdgen(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_ext_grd_prdgen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_ext_grd_prdgen'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_wx_prdgen'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_wx_prdgen'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('mos_wx_ext_prdgen')
- task_name = f'{self.cdump}mos_wx_ext_prdgen'
+ task_name = f'{self.run}mos_wx_ext_prdgen'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/mos_wx_ext_prdgen.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2138,74 +2138,74 @@ def mos_wx_ext_prdgen(self):
def arch(self):
deps = []
if self.app_config.mode in ['cycled']:
- if self.cdump in ['gfs']:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmanlprod'}
+ if self.run in ['gfs']:
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmanlprod'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_vminmon:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}vminmon'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}vminmon'}
deps.append(rocoto.add_dependency(dep_dict))
- elif self.cdump in ['gdas']:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmanlprod'}
+ elif self.run in ['gdas']:
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmanlprod'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_fit2obs:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}fit2obs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}fit2obs'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_verfozn:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}verfozn'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}verfozn'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_verfrad:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}verfrad'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}verfrad'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_vminmon:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}vminmon'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}vminmon'}
deps.append(rocoto.add_dependency(dep_dict))
- if self.cdump in ['gfs'] and self.app_config.do_tracker:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}tracker'}
+ 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))
- if self.cdump in ['gfs'] and self.app_config.do_genesis:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}genesis'}
+ if self.run in ['gfs'] and self.app_config.do_genesis:
+ dep_dict = {'type': 'task', 'name': f'{self.run}genesis'}
deps.append(rocoto.add_dependency(dep_dict))
- if self.cdump in ['gfs'] and self.app_config.do_genesis_fsu:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}genesis_fsu'}
+ if self.run in ['gfs'] and self.app_config.do_genesis_fsu:
+ dep_dict = {'type': 'task', 'name': f'{self.run}genesis_fsu'}
deps.append(rocoto.add_dependency(dep_dict))
# Post job dependencies
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}atmos_prod'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}atmos_prod'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_wave:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostsbs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}wavepostsbs'}
deps.append(rocoto.add_dependency(dep_dict))
- dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostpnt'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}wavepostpnt'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_wave_bnd:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}wavepostbndpnt'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}wavepostbndpnt'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_ocean:
- if self.cdump in ['gfs']:
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}ocean_prod'}
+ if self.run in ['gfs']:
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}ocean_prod'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_ice:
- if self.cdump in ['gfs']:
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}ice_prod'}
+ if self.run in ['gfs']:
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}ice_prod'}
deps.append(rocoto.add_dependency(dep_dict))
# MOS job dependencies
- if self.cdump in ['gfs'] and self.app_config.do_mos:
+ if self.run in ['gfs'] and self.app_config.do_mos:
mos_jobs = ["stn_prep", "grd_prep", "ext_stn_prep", "ext_grd_prep",
"stn_fcst", "grd_fcst", "ext_stn_fcst", "ext_grd_fcst",
"stn_prdgen", "grd_prdgen", "ext_stn_prdgen", "ext_grd_prdgen",
"wx_prdgen", "wx_ext_prdgen"]
for job in mos_jobs:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}mos_{job}'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}mos_{job}'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('arch')
- task_name = f'{self.cdump}arch'
+ task_name = f'{self.run}arch'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/arch.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2219,37 +2219,37 @@ def arch(self):
# Cleanup
def cleanup(self):
deps = []
- if 'enkf' in self.cdump:
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}eamn'}
+ if 'enkf' in self.run:
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}eamn'}
deps.append(rocoto.add_dependency(dep_dict))
else:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}arch'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}arch'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_gempak:
- if self.cdump in ['gdas']:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}gempakmetancdc'}
+ if self.run in ['gdas']:
+ dep_dict = {'type': 'task', 'name': f'{self.run}gempakmetancdc'}
deps.append(rocoto.add_dependency(dep_dict))
- elif self.cdump in ['gfs']:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}gempakmeta'}
+ elif self.run in ['gfs']:
+ dep_dict = {'type': 'task', 'name': f'{self.run}gempakmeta'}
deps.append(rocoto.add_dependency(dep_dict))
- dep_dict = {'type': 'task', 'name': f'{self.cdump}gempakncdcupapgif'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}gempakncdcupapgif'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_goes:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}gempakgrb2spec'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}gempakgrb2spec'}
deps.append(rocoto.add_dependency(dep_dict))
- dep_dict = {'type': 'task', 'name': f'{self.cdump}npoess_pgrb2_0p5deg'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}npoess_pgrb2_0p5deg'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('cleanup')
- task_name = f'{self.cdump}cleanup'
+ task_name = f'{self.run}cleanup'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/cleanup.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2263,19 +2263,19 @@ def cleanup(self):
# Start of ensemble tasks
def eobs(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}prep'}
+ dep_dict = {'type': 'task', 'name': f'{self.run.replace("enkf","")}prep'}
deps.append(rocoto.add_dependency(dep_dict))
dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('eobs')
- task_name = f'{self.cdump}eobs'
+ task_name = f'{self.run}eobs'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/eobs.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2288,7 +2288,7 @@ def eobs(self):
def eomg(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}eobs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}eobs'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
@@ -2300,12 +2300,12 @@ def eomg(self):
eomgenvars.append(rocoto.create_envar(name=key, value=str(value)))
resources = self.get_resource('eomg')
- task_name = f'{self.cdump}eomg_mem#member#'
+ task_name = f'{self.run}eomg_mem#member#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': eomgenvars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/eomg.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2313,7 +2313,7 @@ def eomg(self):
}
member_var_dict = {'member': ' '.join([str(mem).zfill(3) for mem in range(1, self.nmem + 1)])}
- metatask_dict = {'task_name': f'{self.cdump}eomg',
+ metatask_dict = {'task_name': f'{self.run}eomg',
'var_dict': member_var_dict,
'task_dict': task_dict,
}
@@ -2324,17 +2324,17 @@ def eomg(self):
def ediag(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}eobs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}eobs'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('ediag')
- task_name = f'{self.cdump}ediag'
+ task_name = f'{self.run}ediag'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ediag.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2348,19 +2348,19 @@ def ediag(self):
def eupd(self):
deps = []
if self.app_config.lobsdiag_forenkf:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}ediag'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}ediag'}
else:
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}eomg'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}eomg'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('eupd')
- task_name = f'{self.cdump}eupd'
+ task_name = f'{self.run}eupd'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/eupd.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2373,7 +2373,7 @@ def eupd(self):
def atmensanlinit(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}prepatmiodaobs'}
+ dep_dict = {'type': 'task', 'name': f'{self.run.replace("enkf","")}prepatmiodaobs'}
deps.append(rocoto.add_dependency(dep_dict))
dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
deps.append(rocoto.add_dependency(dep_dict))
@@ -2381,7 +2381,7 @@ def atmensanlinit(self):
cycledef = "gdas"
resources = self.get_resource('atmensanlinit')
- task_name = f'{self.cdump}atmensanlinit'
+ task_name = f'{self.run}atmensanlinit'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -2400,19 +2400,19 @@ def atmensanlinit(self):
def atmensanlletkf(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmensanlinit'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmensanlinit'}
deps.append(rocoto.add_dependency(dep_dict))
dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('atmensanlletkf')
- task_name = f'{self.cdump}atmensanlletkf'
+ task_name = f'{self.run}atmensanlletkf'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/atmensanlletkf.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2426,19 +2426,19 @@ def atmensanlletkf(self):
def atmensanlfv3inc(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmensanlletkf'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmensanlletkf'}
deps.append(rocoto.add_dependency(dep_dict))
dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('atmensanlfv3inc')
- task_name = f'{self.cdump}atmensanlfv3inc'
+ task_name = f'{self.run}atmensanlfv3inc'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/atmensanlfv3inc.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2452,17 +2452,17 @@ def atmensanlfv3inc(self):
def atmensanlfinal(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmensanlfv3inc'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmensanlfv3inc'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
resources = self.get_resource('atmensanlfinal')
- task_name = f'{self.cdump}atmensanlfinal'
+ task_name = f'{self.run}atmensanlfinal'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/atmensanlfinal.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2499,12 +2499,12 @@ def _get_ecengroups():
return grp, dep, lst
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}analcalc'}
+ dep_dict = {'type': 'task', 'name': f'{self.run.replace("enkf","")}analcalc'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_jediatmens:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmensanlfinal'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmensanlfinal'}
else:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}eupd'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}eupd'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
@@ -2520,19 +2520,19 @@ def _get_ecengroups():
resources = self.get_resource('ecen')
- task_name = f'{self.cdump}ecen#{varname1}#'
+ task_name = f'{self.run}ecen#{varname1}#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': ecenenvars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/ecen.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
'maxtries': '&MAXTRIES;'
}
- metatask_dict = {'task_name': f'{self.cdump}ecmn',
+ metatask_dict = {'task_name': f'{self.run}ecmn',
'var_dict': var_dict,
'task_dict': task_dict
}
@@ -2542,25 +2542,25 @@ def _get_ecengroups():
def esfc(self):
- # eupd_cdump = 'gdas' if 'gdas' in self.app_config.eupd_cdumps else 'gfs'
+ # eupd_run = 'gdas' if 'gdas' in self.app_config.eupd_runs else 'gfs'
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}analcalc'}
+ dep_dict = {'type': 'task', 'name': f'{self.run.replace("enkf","")}analcalc'}
deps.append(rocoto.add_dependency(dep_dict))
if self.app_config.do_jediatmens:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}atmensanlfinal'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}atmensanlfinal'}
else:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}eupd'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}eupd'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
resources = self.get_resource('esfc')
- task_name = f'{self.cdump}esfc'
+ task_name = f'{self.run}esfc'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/esfc.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
@@ -2574,9 +2574,9 @@ def esfc(self):
def efcs(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}ecmn'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}ecmn'}
deps.append(rocoto.add_dependency(dep_dict))
- dep_dict = {'type': 'task', 'name': f'{self.cdump}esfc'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}esfc'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': f"-{timedelta_to_HMS(self._base['cycle_interval'])}"}
@@ -2590,10 +2590,10 @@ def efcs(self):
for key, value in efcsenvars_dict.items():
efcsenvars.append(rocoto.create_envar(name=key, value=str(value)))
- cycledef = 'gdas_half,gdas' if self.cdump in ['enkfgdas'] else self.cdump.replace('enkf', '')
+ cycledef = 'gdas_half,gdas' if self.run in ['enkfgdas'] else self.run.replace('enkf', '')
resources = self.get_resource('efcs')
- task_name = f'{self.cdump}fcst_mem#member#'
+ task_name = f'{self.run}fcst_mem#member#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -2606,7 +2606,7 @@ def efcs(self):
}
member_var_dict = {'member': ' '.join([str(mem).zfill(3) for mem in range(1, self.nmem + 1)])}
- metatask_dict = {'task_name': f'{self.cdump}fcst',
+ metatask_dict = {'task_name': f'{self.run}fcst',
'var_dict': member_var_dict,
'task_dict': task_dict
}
@@ -2617,19 +2617,19 @@ def efcs(self):
def echgres(self):
- self._is_this_a_gdas_task(self.cdump, 'echgres')
+ self._is_this_a_gdas_task(self.run, 'echgres')
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}fcst'}
+ dep_dict = {'type': 'task', 'name': f'{self.run.replace("enkf","")}fcst'}
deps.append(rocoto.add_dependency(dep_dict))
- dep_dict = {'type': 'task', 'name': f'{self.cdump}fcst_mem001'}
+ dep_dict = {'type': 'task', 'name': f'{self.run}fcst_mem001'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
- cycledef = 'gdas_half,gdas' if self.cdump in ['enkfgdas'] else self.cdump
+ cycledef = 'gdas_half,gdas' if self.run in ['enkfgdas'] else self.run
resources = self.get_resource('echgres')
- task_name = f'{self.cdump}echgres'
+ task_name = f'{self.run}echgres'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -2651,7 +2651,7 @@ def _get_eposgroups(epos):
fhmin = epos['FHMIN_ENKF']
fhmax = epos['FHMAX_ENKF']
fhout = epos['FHOUT_ENKF']
- if self.cdump == "enkfgfs":
+ if self.run == "enkfgfs":
fhmax = epos['FHMAX_ENKF_GFS']
fhout = epos['FHOUT_ENKF_GFS']
fhrs = range(fhmin, fhmax + fhout, fhout)
@@ -2670,7 +2670,7 @@ def _get_eposgroups(epos):
return grp, dep, lst
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}fcst'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
@@ -2684,11 +2684,11 @@ def _get_eposgroups(epos):
varval1, varval2, varval3 = _get_eposgroups(self._configs['epos'])
var_dict = {varname1: varval1, varname2: varval2, varname3: varval3}
- cycledef = 'gdas_half,gdas' if self.cdump in ['enkfgdas'] else self.cdump.replace('enkf', '')
+ cycledef = 'gdas_half,gdas' if self.run in ['enkfgdas'] else self.run.replace('enkf', '')
resources = self.get_resource('epos')
- task_name = f'{self.cdump}epos#{varname1}#'
+ task_name = f'{self.run}epos#{varname1}#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
@@ -2700,7 +2700,7 @@ def _get_eposgroups(epos):
'maxtries': '&MAXTRIES;'
}
- metatask_dict = {'task_name': f'{self.cdump}epmn',
+ metatask_dict = {'task_name': f'{self.run}epmn',
'var_dict': var_dict,
'task_dict': task_dict
}
@@ -2712,7 +2712,7 @@ def _get_eposgroups(epos):
def earc(self):
deps = []
- dep_dict = {'type': 'metatask', 'name': f'{self.cdump}epmn'}
+ dep_dict = {'type': 'metatask', 'name': f'{self.run}epmn'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
@@ -2727,19 +2727,19 @@ def earc(self):
var_dict = {'grp': groups}
- task_name = f'{self.cdump}earc#grp#'
+ task_name = f'{self.run}earc#grp#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': earcenvars,
- 'cycledef': self.cdump.replace('enkf', ''),
+ 'cycledef': self.run.replace('enkf', ''),
'command': f'{self.HOMEgfs}/jobs/rocoto/earc.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
'maxtries': '&MAXTRIES;'
}
- metatask_dict = {'task_name': f'{self.cdump}eamn',
+ metatask_dict = {'task_name': f'{self.run}eamn',
'var_dict': var_dict,
'task_dict': task_dict
}
diff --git a/workflow/rocoto/tasks.py b/workflow/rocoto/tasks.py
index 251368dea0..a95d91318e 100644
--- a/workflow/rocoto/tasks.py
+++ b/workflow/rocoto/tasks.py
@@ -36,10 +36,13 @@ class Tasks:
'mos_stn_fcst', 'mos_grd_fcst', 'mos_ext_stn_fcst', 'mos_ext_grd_fcst',
'mos_stn_prdgen', 'mos_grd_prdgen', 'mos_ext_stn_prdgen', 'mos_ext_grd_prdgen', 'mos_wx_prdgen', 'mos_wx_ext_prdgen']
- def __init__(self, app_config: AppConfig, cdump: str) -> None:
+ def __init__(self, app_config: AppConfig, run: str) -> None:
self.app_config = app_config
- self.cdump = cdump
+ self.run = run
+ # Re-source the configs with RUN specified
+ print(f"Source configs with RUN={run}")
+ self.app_config.source_configs(run=run, log=False)
# Save dict_configs and base in the internal state (never know where it may be needed)
self._configs = self.app_config.configs
@@ -47,7 +50,7 @@ def __init__(self, app_config: AppConfig, cdump: str) -> None:
self.HOMEgfs = self._base['HOMEgfs']
self.rotdir = self._base['ROTDIR']
self.pslot = self._base['PSLOT']
- if self.cdump == "enkfgfs":
+ if self.run == "enkfgfs":
self.nmem = int(self._base['NMEM_ENS_GFS'])
else:
self.nmem = int(self._base['NMEM_ENS'])
@@ -59,8 +62,7 @@ def __init__(self, app_config: AppConfig, cdump: str) -> None:
'HOMEgfs': self.HOMEgfs,
'EXPDIR': self._base.get('EXPDIR'),
'NET': self._base.get('NET'),
- 'CDUMP': self.cdump,
- 'RUN': self.cdump,
+ 'RUN': self.run,
'CDATE': '@Y@m@d@H',
'PDY': '@Y@m@d',
'cyc': '@H',
@@ -87,8 +89,8 @@ def _template_to_rocoto_cycstring(self, template: str, subs_dict: dict = {}) ->
Variables substitued by default:
${ROTDIR} -> '&ROTDIR;'
- ${RUN} -> self.cdump
- ${DUMP} -> self.cdump
+ ${RUN} -> self.run
+ ${DUMP} -> self.run
${MEMDIR} -> ''
${YMD} -> '@Y@m@d'
${HH} -> '@H'
@@ -110,8 +112,8 @@ def _template_to_rocoto_cycstring(self, template: str, subs_dict: dict = {}) ->
# Defaults
rocoto_conversion_dict = {
'ROTDIR': '&ROTDIR;',
- 'RUN': self.cdump,
- 'DUMP': self.cdump,
+ 'RUN': self.run,
+ 'DUMP': self.run,
'MEMDIR': '',
'YMD': '@Y@m@d',
'HH': '@H'
@@ -124,7 +126,7 @@ def _template_to_rocoto_cycstring(self, template: str, subs_dict: dict = {}) ->
rocoto_conversion_dict.get)
@staticmethod
- def _get_forecast_hours(cdump, config, component='atmos') -> List[str]:
+ def _get_forecast_hours(run, config, component='atmos') -> List[str]:
# Make a local copy of the config to avoid modifying the original
local_config = config.copy()
@@ -146,11 +148,11 @@ def _get_forecast_hours(cdump, config, component='atmos') -> List[str]:
# Get a list of all forecast hours
fhrs = []
- if cdump in ['gdas']:
+ if run in ['gdas']:
fhmax = local_config['FHMAX']
fhout = local_config['FHOUT']
fhrs = list(range(fhmin, fhmax + fhout, fhout))
- elif cdump in ['gfs', 'gefs']:
+ elif run in ['gfs', 'gefs']:
fhmax = local_config['FHMAX_GFS']
fhout = local_config['FHOUT_GFS']
fhmax_hf = local_config['FHMAX_HF_GFS']
diff --git a/workflow/rocoto/workflow_tasks.py b/workflow/rocoto/workflow_tasks.py
index 84af898d36..78c31dba1b 100644
--- a/workflow/rocoto/workflow_tasks.py
+++ b/workflow/rocoto/workflow_tasks.py
@@ -14,10 +14,10 @@ def get_wf_tasks(app_config: AppConfig) -> List:
"""
tasks = []
- # Loop over all keys of cycles (CDUMP)
- for cdump, cdump_tasks in app_config.task_names.items():
- task_obj = tasks_factory.create(app_config.net, app_config, cdump) # create Task object based on cdump
- for task_name in cdump_tasks:
+ # Loop over all keys of cycles (RUN)
+ for run, run_tasks in app_config.task_names.items():
+ task_obj = tasks_factory.create(app_config.net, app_config, run) # create Task object based on run
+ for task_name in run_tasks:
tasks.append(task_obj.get_task(task_name))
return tasks
diff --git a/workflow/setup_expt.py b/workflow/setup_expt.py
index b44842b982..3e70df0f02 100755
--- a/workflow/setup_expt.py
+++ b/workflow/setup_expt.py
@@ -73,10 +73,10 @@ def fill_ROTDIR_cycled(host, inputs):
# Test if we are using the new COM structure or the old flat one for ICs
if inputs.start in ['warm']:
- pathstr = os.path.join(inputs.icsdir, f'{inputs.cdump}.{rdatestr[:8]}',
+ pathstr = os.path.join(inputs.icsdir, f'{inputs.run}.{rdatestr[:8]}',
rdatestr[8:], 'model_data', 'atmos')
else:
- pathstr = os.path.join(inputs.icsdir, f'{inputs.cdump}.{idatestr[:8]}',
+ pathstr = os.path.join(inputs.icsdir, f'{inputs.run}.{idatestr[:8]}',
idatestr[8:], 'model_data', 'atmos')
if os.path.isdir(pathstr):
@@ -132,8 +132,8 @@ def link_files_from_src_to_dst(src_dir, dst_dir):
# Link ensemble member initial conditions
if inputs.nens > 0:
- previous_cycle_dir = f'enkf{inputs.cdump}.{rdatestr[:8]}/{rdatestr[8:]}'
- current_cycle_dir = f'enkf{inputs.cdump}.{idatestr[:8]}/{idatestr[8:]}'
+ previous_cycle_dir = f'enkf{inputs.run}.{rdatestr[:8]}/{rdatestr[8:]}'
+ current_cycle_dir = f'enkf{inputs.run}.{idatestr[:8]}/{idatestr[8:]}'
for ii in range(1, inputs.nens + 1):
memdir = f'mem{ii:03d}'
@@ -155,7 +155,7 @@ def link_files_from_src_to_dst(src_dir, dst_dir):
link_files_from_src_to_dst(src_dir, dst_dir)
# First 1/2 cycle needs a MOM6 increment
- incfile = f'enkf{inputs.cdump}.t{idatestr[8:]}z.ocninc.nc'
+ incfile = f'enkf{inputs.run}.t{idatestr[8:]}z.ocninc.nc'
src_file = os.path.join(inputs.icsdir, current_cycle_dir, memdir, src_ocn_anl_dir, incfile)
dst_file = os.path.join(rotdir, current_cycle_dir, memdir, dst_ocn_anl_dir, incfile)
makedirs_if_missing(os.path.join(rotdir, current_cycle_dir, memdir, dst_ocn_anl_dir))
@@ -176,8 +176,8 @@ def link_files_from_src_to_dst(src_dir, dst_dir):
link_files_from_src_to_dst(src_dir, dst_dir)
# Link deterministic initial conditions
- previous_cycle_dir = f'{inputs.cdump}.{rdatestr[:8]}/{rdatestr[8:]}'
- current_cycle_dir = f'{inputs.cdump}.{idatestr[:8]}/{idatestr[8:]}'
+ previous_cycle_dir = f'{inputs.run}.{rdatestr[:8]}/{rdatestr[8:]}'
+ current_cycle_dir = f'{inputs.run}.{idatestr[:8]}/{idatestr[8:]}'
# Link atmospheric files
if inputs.start in ['warm']:
@@ -198,7 +198,7 @@ def link_files_from_src_to_dst(src_dir, dst_dir):
link_files_from_src_to_dst(src_dir, dst_dir)
# First 1/2 cycle needs a MOM6 increment
- incfile = f'{inputs.cdump}.t{idatestr[8:]}z.ocninc.nc'
+ incfile = f'{inputs.run}.t{idatestr[8:]}z.ocninc.nc'
src_file = os.path.join(inputs.icsdir, current_cycle_dir, src_ocn_anl_dir, incfile)
dst_file = os.path.join(rotdir, current_cycle_dir, dst_ocn_anl_dir, incfile)
makedirs_if_missing(os.path.join(rotdir, current_cycle_dir, dst_ocn_anl_dir))
@@ -224,26 +224,26 @@ def link_files_from_src_to_dst(src_dir, dst_dir):
dst_dir = os.path.join(rotdir, current_cycle_dir, dst_atm_anl_dir)
makedirs_if_missing(dst_dir)
for ftype in ['abias', 'abias_pc', 'abias_air', 'radstat']:
- fname = f'{inputs.cdump}.t{idatestr[8:]}z.{ftype}'
+ fname = f'{inputs.run}.t{idatestr[8:]}z.{ftype}'
src_file = os.path.join(src_dir, fname)
if os.path.exists(src_file):
os.symlink(src_file, os.path.join(dst_dir, fname))
# First 1/2 cycle also needs a atmos increment if doing warm start
if inputs.start in ['warm']:
for ftype in ['atmi003.nc', 'atminc.nc', 'atmi009.nc']:
- fname = f'{inputs.cdump}.t{idatestr[8:]}z.{ftype}'
+ fname = f'{inputs.run}.t{idatestr[8:]}z.{ftype}'
src_file = os.path.join(src_dir, fname)
if os.path.exists(src_file):
os.symlink(src_file, os.path.join(dst_dir, fname))
if inputs.nens > 0:
- current_cycle_dir = f'enkf{inputs.cdump}.{idatestr[:8]}/{idatestr[8:]}'
+ current_cycle_dir = f'enkf{inputs.run}.{idatestr[:8]}/{idatestr[8:]}'
for ii in range(1, inputs.nens + 1):
memdir = f'mem{ii:03d}'
src_dir = os.path.join(inputs.icsdir, current_cycle_dir, memdir, src_atm_anl_dir)
dst_dir = os.path.join(rotdir, current_cycle_dir, memdir, dst_atm_anl_dir)
makedirs_if_missing(dst_dir)
for ftype in ['ratmi003.nc', 'ratminc.nc', 'ratmi009.nc']:
- fname = f'enkf{inputs.cdump}.t{idatestr[8:]}z.{ftype}'
+ fname = f'enkf{inputs.run}.t{idatestr[8:]}z.{ftype}'
src_file = os.path.join(src_dir, fname)
if os.path.exists(src_file):
os.symlink(src_file, os.path.join(dst_dir, fname))
@@ -426,7 +426,7 @@ def _common_args(parser):
def _gfs_args(parser):
parser.add_argument('--start', help='restart mode: warm or cold', type=str,
choices=['warm', 'cold'], required=False, default='cold')
- parser.add_argument('--cdump', help='CDUMP to start the experiment',
+ parser.add_argument('--run', help='RUN to start the experiment',
type=str, required=False, default='gdas')
# --configdir is hidden from help
parser.add_argument('--configdir', help=SUPPRESS, type=str, required=False, default=os.path.join(_top, 'parm/config/gfs'))