From e46dbf5d0401431f8d98a9868c10d5df7e380f2d Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Thu, 5 Jan 2023 23:39:41 -0600 Subject: [PATCH 01/11] Abstract common j-job tasks Takes all of the tasks that are common to all j-jobs and abstracts them out into a shared script that is sourced by each job: - Set and create $DATA - Call setpy and set $cycle - Set pid, pgmout, and pgmerr - Source config files - Source machine environment file The common j-job header script is called by passing a list of config files to source: ``` ${HOMEgfs}/ush/jjob_header.sh [config1 [config2 [...]]] ``` Some pre j-job rocoto entry scripts (`jobs/rocoto/*`) are currently doing much more than they should be. These sometimes required extra finagling, usually pre-calling the jjob header in the rocoto script before it does something. --- jobs/JGDAS_ATMOS_ANALYSIS_DIAG | 44 +--------------- jobs/JGDAS_ATMOS_CHGRES_FORENKF | 44 +--------------- jobs/JGDAS_ATMOS_GEMPAK | 41 ++------------- jobs/JGDAS_ATMOS_GEMPAK_META_NCDC | 23 ++------ jobs/JGDAS_ATMOS_GLDAS | 46 +--------------- jobs/JGDAS_ATMOS_VERFOZN | 26 +-------- jobs/JGDAS_ATMOS_VERFRAD | 30 +---------- jobs/JGDAS_ATMOS_VMINMON | 30 +---------- jobs/JGDAS_ENKF_ARCHIVE | 44 +--------------- jobs/JGDAS_ENKF_DIAG | 44 +--------------- jobs/JGDAS_ENKF_ECEN | 44 +--------------- jobs/JGDAS_ENKF_FCST | 44 +--------------- jobs/JGDAS_ENKF_POST | 44 +--------------- jobs/JGDAS_ENKF_SELECT_OBS | 44 +--------------- jobs/JGDAS_ENKF_SFC | 44 +--------------- jobs/JGDAS_ENKF_UPDATE | 44 +--------------- jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST | 44 +--------------- jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP | 44 +--------------- jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN | 44 +--------------- jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST | 44 +--------------- jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP | 44 +--------------- jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN | 44 +--------------- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST | 35 ++---------- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP | 45 +--------------- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN | 45 +--------------- jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG | 26 ++------- jobs/JGFS_ATMOS_AWIPS_G2 | 27 ++-------- jobs/JGFS_ATMOS_CYCLONE_GENESIS | 56 ++------------------ jobs/JGFS_ATMOS_CYCLONE_TRACKER | 57 ++------------------ jobs/JGFS_ATMOS_FBWIND | 27 ++-------- jobs/JGFS_ATMOS_FSU_GENESIS | 56 +------------------- jobs/JGFS_ATMOS_GEMPAK | 39 +------------- jobs/JGFS_ATMOS_GEMPAK_META | 29 ++-------- jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF | 20 ++----- jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC | 26 ++------- jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS | 28 ++-------- jobs/JGFS_ATMOS_POSTSND | 43 +-------------- jobs/JGFS_ATMOS_VMINMON | 14 +---- jobs/JGLOBAL_ARCHIVE | 43 +-------------- jobs/JGLOBAL_ATMOS_ANALYSIS | 44 +--------------- jobs/JGLOBAL_ATMOS_ANALYSIS_CALC | 44 +--------------- jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP | 36 +------------ jobs/JGLOBAL_ATMOS_POST | 44 +--------------- jobs/JGLOBAL_ATMOS_POST_MANAGER | 50 ++---------------- jobs/JGLOBAL_ATMOS_SFCANL | 43 +-------------- jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC | 45 +--------------- jobs/JGLOBAL_FORECAST | 46 +--------------- jobs/JGLOBAL_WAVE_GEMPAK | 32 +---------- jobs/JGLOBAL_WAVE_INIT | 46 +--------------- jobs/JGLOBAL_WAVE_POST_BNDPNT | 49 +---------------- jobs/JGLOBAL_WAVE_POST_BNDPNTBLL | 48 +---------------- jobs/JGLOBAL_WAVE_POST_PNT | 48 +---------------- jobs/JGLOBAL_WAVE_POST_SBS | 48 +---------------- jobs/JGLOBAL_WAVE_PRDGEN_BULLS | 27 +--------- jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED | 28 +--------- jobs/JGLOBAL_WAVE_PREP | 46 +--------------- jobs/rocoto/awips.sh | 45 ++++++---------- jobs/rocoto/ecen.sh | 2 +- jobs/rocoto/epos.sh | 6 +-- jobs/rocoto/gempak.sh | 20 +++---- jobs/rocoto/post.sh | 5 +- jobs/rocoto/vrfy.sh | 52 +++--------------- jobs/rocoto/waveawipsbulls.sh | 29 ++-------- jobs/rocoto/waveawipsgridded.sh | 33 +++--------- jobs/rocoto/wavegempak.sh | 24 +-------- jobs/rocoto/wavepostsbs.sh | 5 +- ush/jjob_header.sh | 76 +++++++++++++++++++++++++++ 67 files changed, 221 insertions(+), 2316 deletions(-) create mode 100644 ush/jjob_header.sh diff --git a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG index 0922286f868..a6b41067529 100755 --- a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +++ b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base anal analdiag" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env anal -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base anal analdiag ############################################## diff --git a/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/jobs/JGDAS_ATMOS_CHGRES_FORENKF index 9bd0314e8b2..62faa5d89cf 100755 --- a/jobs/JGDAS_ATMOS_CHGRES_FORENKF +++ b/jobs/JGDAS_ATMOS_CHGRES_FORENKF @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base anal echgres" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env anal -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base anal echgres ############################################## diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK index b674bd7ec7e..52faa75358b 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK +++ b/jobs/JGDAS_ATMOS_GEMPAK @@ -1,45 +1,12 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base gempak -########################################################## -# make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base gempak" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -############################################################### -. ${BASE_ENV}/${machine}.env gempak -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +# TODO (#1219) This j-job is not part of the rocoto suite ################################ # Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} # TODO: remove these as they are already defined in config.base export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} @@ -67,8 +34,6 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} export model=${model:-gdas} export COMPONENT="atmos" @@ -83,7 +48,7 @@ if [ ${SENDCOM} = YES ] ; then fi -# TODO: These actions belong in an ex-script not a j-job +# TODO: These actions belong in an ex-script not a j-job (#1219) if [ -f ${DATA}/poescript ]; then rm ${DATA}/poescript fi diff --git a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index 22e52ea9fb0..119ef128aac 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -1,28 +1,13 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" - ############################################ # GDAS GEMPAK META NCDC PRODUCT GENERATION ############################################ -########################################################## -# make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} +# TODO (#1222) This j-job is not part of the rocoto -########################################### -# Run setpdy and initialize PDY variables -########################################### -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base gempak ################################ # Set up the HOME directory @@ -46,8 +31,6 @@ cp ${FIXgempak}/datatype.tbl datatype.tbl ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} export COMPONENT="atmos" export MODEL=GDAS export GRID_NAME=gdas diff --git a/jobs/JGDAS_ATMOS_GLDAS b/jobs/JGDAS_ATMOS_GLDAS index a2058d3a5b7..1a89df67fa2 100755 --- a/jobs/JGDAS_ATMOS_GLDAS +++ b/jobs/JGDAS_ATMOS_GLDAS @@ -1,42 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs:?}/ush/preamble.sh" - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p "${DATA}" -cd "${DATA}" || exit 1 - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base gldas" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit "${status}" -done - +source "${HOMEgfs}/ush/jjob_header.sh" base gldas if [[ "${cyc:?}" -ne "${gldas_cyc:?}" ]]; then echo "GLDAS only runs for ${gldas_cyc} cycle; Skip GLDAS step for cycle ${cyc}" @@ -51,15 +16,6 @@ if [[ "${CDATE}" -le "$(${NDATE:?} +"${xtime}" "${SDATE:?}")" ]]; then exit 0 fi -########################################## -# Source machine runtime environment -########################################## -# shellcheck disable=SC1090-SC1091 -. "${HOMEgfs}/env/${machine:?}.env" gldas -# shellcheck disable= -status=$? -[[ ${status} -ne 0 ]] && exit "${status}" - ############################################## # Set variables used in the exglobal script diff --git a/jobs/JGDAS_ATMOS_VERFOZN b/jobs/JGDAS_ATMOS_VERFOZN index 6f68dcd74cb..a6a004d6ccd 100755 --- a/jobs/JGDAS_ATMOS_VERFOZN +++ b/jobs/JGDAS_ATMOS_VERFOZN @@ -4,36 +4,12 @@ # Set up environment for GDAS Ozone Monitor job ############################################################# source "${HOMEgfs}/ush/preamble.sh" - -########################################################### -# make temp directories -########################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -#################################### -# Determine Job Output Name on System -#################################### -export pid=$$ -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile +source "${HOMEgfs}/ush/jjob_header.sh" base vrfy ############################### # Specify NET, RUN, and COMPONENT name ############################## -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} export COMPONENT="atmos" export OZNMON_SUFFIX=${OZNMON_SUFFIX:-${NET}} diff --git a/jobs/JGDAS_ATMOS_VERFRAD b/jobs/JGDAS_ATMOS_VERFRAD index 207c80415bc..99a04dce84f 100755 --- a/jobs/JGDAS_ATMOS_VERFRAD +++ b/jobs/JGDAS_ATMOS_VERFRAD @@ -4,36 +4,8 @@ # Set up environment for GDAS Radiance Monitor job ############################################################# source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base vrfy -########################################################### -# make temp directories -########################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -#################################### -# Determine Job Output Name on System -#################################### -export pid=$$ -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################### -# Specify NET, RUN, and COMPONENT name -############################## -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} export COMPONENT="atmos" export RAD_DATA_IN=${DATA} diff --git a/jobs/JGDAS_ATMOS_VMINMON b/jobs/JGDAS_ATMOS_VMINMON index 0077755aa20..2df94e9deb1 100755 --- a/jobs/JGDAS_ATMOS_VMINMON +++ b/jobs/JGDAS_ATMOS_VMINMON @@ -4,36 +4,8 @@ # GDAS Minimization Monitor (MinMon) job ########################################################### source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base vrfy -########################################################### -# make temp directories -########################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -#################################### -# Determine Job Output Name on System -#################################### -export pid=$$ -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################### -# Specify NET, RUN, and COMPONENT name -############################## -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} export COMPONENT="atmos" ########################################################### diff --git a/jobs/JGDAS_ENKF_ARCHIVE b/jobs/JGDAS_ENKF_ARCHIVE index 1988bd76b61..f35045d9a84 100755 --- a/jobs/JGDAS_ENKF_ARCHIVE +++ b/jobs/JGDAS_ENKF_ARCHIVE @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p "${DATA}" -cd "${DATA}" || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base earc" -for config in ${configs}; do - . "${EXPDIR}/config.${config}" - status=$? - [[ ${status} -ne 0 ]] && exit "${status}" -done - - -########################################## -# Source machine runtime environment -########################################## -. "${HOMEgfs}/env/${machine}.env" earc -status=$? -[[ ${status} -ne 0 ]] && exit "${status}" +source "${HOMEgfs}/ush/jjob_header.sh" base earc ############################################## diff --git a/jobs/JGDAS_ENKF_DIAG b/jobs/JGDAS_ENKF_DIAG index 183b74068c6..e08b31ae9e4 100755 --- a/jobs/JGDAS_ENKF_DIAG +++ b/jobs/JGDAS_ENKF_DIAG @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base anal eobs analdiag ediag" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env eobs -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base anal eobs analdiag ediag ############################################## diff --git a/jobs/JGDAS_ENKF_ECEN b/jobs/JGDAS_ENKF_ECEN index de527cbce45..d413feb507a 100755 --- a/jobs/JGDAS_ENKF_ECEN +++ b/jobs/JGDAS_ENKF_ECEN @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base ecen" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env ecen -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base ecen ############################################## diff --git a/jobs/JGDAS_ENKF_FCST b/jobs/JGDAS_ENKF_FCST index 8daa179e76c..97dc3cd9dae 100755 --- a/jobs/JGDAS_ENKF_FCST +++ b/jobs/JGDAS_ENKF_FCST @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base fcst efcs" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env efcs -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base fcst efcs ############################################## diff --git a/jobs/JGDAS_ENKF_POST b/jobs/JGDAS_ENKF_POST index 8caa9d893e4..02bda205bd0 100755 --- a/jobs/JGDAS_ENKF_POST +++ b/jobs/JGDAS_ENKF_POST @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base epos" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env epos -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base epos ############################################## diff --git a/jobs/JGDAS_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS index 092c467d9ac..9fa187ec527 100755 --- a/jobs/JGDAS_ENKF_SELECT_OBS +++ b/jobs/JGDAS_ENKF_SELECT_OBS @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base anal eobs" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env eobs -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base anal eobs ############################################## diff --git a/jobs/JGDAS_ENKF_SFC b/jobs/JGDAS_ENKF_SFC index 634cfa49eac..5aa669c0b87 100755 --- a/jobs/JGDAS_ENKF_SFC +++ b/jobs/JGDAS_ENKF_SFC @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base esfc" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env esfc -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base esfc ############################################## diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index 11122398d87..4d5f50ba3e7 100755 --- a/jobs/JGDAS_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base anal eupd" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env eupd -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base anal eupd ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST index 56e0c4ade95..97f8f4b40b2 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST @@ -1,49 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base atmanal atmanalpost" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env atmanalpost -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base atmanal atmanalpost ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP index 259d2eab0c1..f93d53e89d5 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP @@ -1,49 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base atmanal atmanalprep" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env atmanalprep -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base atmanal atmanalprep ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN index 62e02a6dd0b..dfdba7e1cd1 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN @@ -1,49 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base atmanal atmanalrun" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env atmanalrun -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base atmanal atmanalrun ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST index 4d546f3b06b..3b7b9011898 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST @@ -1,49 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base atmensanal atmensanalpost" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env atmensanalpost -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base atmensanal atmensanalpost ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP index 6b5204564e1..e45f7aa3f68 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP @@ -1,49 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base atmensanal atmensanalprep" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env atmensanalprep -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base atmensanal atmensanalprep ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN index bb7d42f6709..ff36b7757b4 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN @@ -1,49 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base atmensanal atmensanalrun" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env atmensanalrun -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base atmensanal atmensanalrun ############################################## diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST index a3039553bf1..fab55d11599 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST @@ -1,41 +1,16 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base ocnanalpost -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}} -mkdir -p "${DATA}" -cd "${DATA}" || (echo "${DATA} does not exist. ABORT!"; exit 1) +############################################################### +# Run relevant script +############################################################### -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY +# TODO (#982) -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base ocnanalpost" -for config in ${configs}; do - . "${EXPDIR}/config.${config}" - status=$? - [[ "${status}" -ne 0 ]] && exit "${status}" -done ########################################## # Remove the Temporary working directory diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP index f5b42335948..c7fd66ad54b 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP @@ -1,50 +1,7 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}} -rm -rf "${DATA}" # Ensure starting with a clean DATA -mkdir -p "${DATA}" -cd "${DATA}" || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base ocnanal ocnanalprep" -for config in ${configs}; do - . "${EXPDIR}/config.${config}" - status=$? - [[ ${status} -ne 0 ]] && exit "${status}" -done - - -########################################## -# Source machine runtime environment -########################################## -. "${HOMEgfs}/env/${machine}.env" ocnanalprep -status=$? -[[ ${status} -ne 0 ]] && exit "${status}" +source "${HOMEgfs}/ush/jjob_header.sh" base ocnanal ocnanalprep ############################################## diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN index ca692acf644..1efd12f2ea7 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN @@ -1,50 +1,7 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" - - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}} -mkdir -p "${DATA}" -cd "${DATA}" || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base ocnanal ocnanalrun" -for config in ${configs}; do - . "${EXPDIR}/config.${config}" - status=$? - [[ ${status} -ne 0 ]] && exit "${status}" -done - - -########################################## -# Source machine runtime environment -########################################## -. "${HOMEgfs}/env/${machine}.env" ocnanalrun -status=$? -[[ ${status} -ne 0 ]] && exit "${status}" +source "${HOMEgfs}/ush/jjob_header.sh" base ocnanal ocnanalrun ############################################## diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index 3ccba8ca0e7..dd05e8f7bab 100755 --- a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +++ b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -1,30 +1,11 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base awips -export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} - -########################################### -# GFS_AWIPS_20KM AWIPS PRODUCT GENERATION -########################################### - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} -###################################### -# Set up the cycle variable -###################################### -export cycle="t${cyc}z" +export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. ./PDY ################################ # Set up the HOME directory @@ -40,8 +21,6 @@ export FIXgfs=${FIXgfs:-${HOMEgfs}/fix} ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export model=${model:-gfs} export COMPONENT="atmos" @@ -53,6 +32,7 @@ export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/ export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} +export SENDAWIP=${SENDAWIP:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} if [ ${SENDCOM} = YES ] ; then diff --git a/jobs/JGFS_ATMOS_AWIPS_G2 b/jobs/JGFS_ATMOS_AWIPS_G2 index 57d04f8a73e..d448c6aef8e 100755 --- a/jobs/JGFS_ATMOS_AWIPS_G2 +++ b/jobs/JGFS_ATMOS_AWIPS_G2 @@ -1,35 +1,17 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" - -export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} - ######################################## # GFS_AWIPS_G2 AWIPS PRODUCT GENERATION ######################################## -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - -###################################### -# Set up the cycle variable -###################################### -export cycle="t${cyc}z" +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base awips -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. ./PDY +export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export USHgfs=${USHgfs:-${HOMEgfs}/ush} export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} @@ -41,8 +23,6 @@ export UTILgfs=${UTILgfs:-${HOMEgfs}/util} ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export model=${model:-gfs} export COMPONENT="atmos" @@ -54,6 +34,7 @@ export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/ export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} +export SENDAWIP=${SENDAWIP:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} if [ ${SENDCOM} = YES ] ; then diff --git a/jobs/JGFS_ATMOS_CYCLONE_GENESIS b/jobs/JGFS_ATMOS_CYCLONE_GENESIS index 3233dec92da..e76b3d4bbad 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_GENESIS +++ b/jobs/JGFS_ATMOS_CYCLONE_GENESIS @@ -1,64 +1,14 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base vrfy -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base vrfy" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env vrfy -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -if [ ${RUN_ENVIR} = "nco" ]; then - export DATA=${DATA:-${DATAROOT}/${jobid}} -else - export job="gfs_cyclone_genesis" - export DATA="${DATAROOT}/${job}$$" - [[ -d ${DATA} ]] && rm -rf ${DATA} -fi -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY +# TODO (#1220) Determine if this is still needed +export RUN_ENVIR=${RUN_ENVIR:-"nco"} -#################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="atmos" -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - ############################################## # Set variables used in the exglobal script ############################################## diff --git a/jobs/JGFS_ATMOS_CYCLONE_TRACKER b/jobs/JGFS_ATMOS_CYCLONE_TRACKER index 922ae086fd1..0f5ef1ea2b5 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_TRACKER +++ b/jobs/JGFS_ATMOS_CYCLONE_TRACKER @@ -1,66 +1,15 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base vrfy -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base vrfy" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env vrfy -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -if [ ${RUN_ENVIR} = "nco" ]; then - export DATA=${DATA:-${DATAROOT}/${jobid}} -else - export job="gfs_cyclone_tracker" - export DATA="${DATAROOT}/${job}$$" - [[ -d ${DATA} ]] && rm -rf ${DATA} -fi -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY +# TODO (#1220) Determine if this is still needed +export RUN_ENVIR=${RUN_ENVIR:-"nco"} -#################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="atmos" -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - ############################################## # Set variables used in the exglobal script ############################################## diff --git a/jobs/JGFS_ATMOS_FBWIND b/jobs/JGFS_ATMOS_FBWIND index 69532e5863c..ef40d05a361 100755 --- a/jobs/JGFS_ATMOS_FBWIND +++ b/jobs/JGFS_ATMOS_FBWIND @@ -1,33 +1,16 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +# TODO (#1221) This job is not part of the rocoto suite ############################################ # GFS FBWIND PRODUCT GENERATION ############################################ - -########################################################### -# obtain unique process id (pid) and make temp directory -########################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - -###################################### -# Set up the cycle variable -###################################### -export cycle="t${cyc}z" - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. ./PDY +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export USHgfs=${USHgfs:-${HOMEgfs}/ush} export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} @@ -39,8 +22,6 @@ export UTILgfs=${UTILgfs:-${HOMEgfs}/util} ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export model=${model:-gfs} export COMPONENT="atmos" @@ -58,8 +39,6 @@ if [ ${SENDCOM} = YES ] ; then mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} fi -export pgmout=OUTPUT.$$ - ######################################################## # Execute the script. diff --git a/jobs/JGFS_ATMOS_FSU_GENESIS b/jobs/JGFS_ATMOS_FSU_GENESIS index 1f18cfff99d..83bb6092e15 100755 --- a/jobs/JGFS_ATMOS_FSU_GENESIS +++ b/jobs/JGFS_ATMOS_FSU_GENESIS @@ -1,67 +1,13 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base vrfy export RUN_ENVIR=${RUN_ENVIR:-"nco"} -############################# -# Source relevant config files -############################# -EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base vrfy" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -##exit - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env vrfy -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -if [ ${RUN_ENVIR} = "nco" ]; then - export DATA=${DATA:-${DATAROOT}/${jobid}} -else - export job="gfs_fsu_genesis" - export DATA="${DATAROOT}/${job}$$" - [[ -d ${DATA} ]] && rm -rf ${DATA} -fi -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -#################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="atmos" -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - ############################################## # Set variables used in the exglobal script ############################################## diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK index 8e8b27dbb8c..949434a611c 100755 --- a/jobs/JGFS_ATMOS_GEMPAK +++ b/jobs/JGFS_ATMOS_GEMPAK @@ -1,45 +1,12 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base gempak -########################################################## -# make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - -export pgmout=OUTPUT.$$ - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base gempak" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env gempak -status=$? -[[ ${status} -ne 0 ]] && exit ${status} ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} # TODO: These should be removed as they are defined in config.base export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} @@ -63,8 +30,6 @@ export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-GFS_GEMPAK} ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export model=${model:-gfs} export COMPONENT="atmos" @@ -149,7 +114,7 @@ chmod 775 ${DATA}/poescript export MP_PGMMODEL=mpmd export MP_CMDFILE=${DATA}/poescript -ntasks=${NTASKS_GEMPAK:-$(cat ${DATA}/poescript | wc -l)} +ntasks=$(cat ${DATA}/poescript | wc -l) ptile=${PTILE_GEMPAK:-4} threads=${NTHREADS_GEMPAK:-1} export OMP_NUM_THREADS=${threads} diff --git a/jobs/JGFS_ATMOS_GEMPAK_META b/jobs/JGFS_ATMOS_GEMPAK_META index 0a903aa1406..7938fb959cc 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_META +++ b/jobs/JGFS_ATMOS_GEMPAK_META @@ -1,43 +1,26 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +# TODO (#1222) This job is not part of the rocoto suite ############################################ # GFS GEMPAK META PRODUCT GENERATION ############################################ +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base -export LAUNCH_MODE=MPI ############################################### # Set MP variables ############################################### +export LAUNCH_MODE=MPI export OMP_NUM_THREADS=1 export MP_LABELIO=yes export MP_PULSE=0 export MP_DEBUG_NOTIMEOUT=yes -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - -###################################### -# Set up the cycle variable -###################################### -export cycle="t${cyc}z" - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. ./PDY - ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} @@ -57,8 +40,6 @@ export fhinc=12 ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export model=${model:-gfs} export COMPONENT="atmos" @@ -85,8 +66,6 @@ if [ ${SENDCOM} = YES ] ; then mkdir -m 775 -p ${COMOUT} fi -export pgmout=OUTPUT.$$ - ######################################################## # Execute the script. diff --git a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF index 2cb0069a1e7..a96bf3a9a87 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +++ b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -1,29 +1,17 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +# TODO (#1222) This job is not part of the rocoto suite ############################################ # GFS GEMPAK NCDC PRODUCT GENERATION ############################################ +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -export cycle="t${cyc}z" -setpdy.sh -. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} @@ -56,8 +44,6 @@ export fstart=00 ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export model=${model:-gfs} export COMPONENT="atmos" diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index f4284ff35a6..42278ef65ec 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -1,33 +1,17 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +# TODO (#1222) This job is not part of the rocoto suite ############################################ # GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION ############################################ +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - -###################################### -# Set up the cycle variable -###################################### -export cycle="t${cyc}z" - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} @@ -41,8 +25,6 @@ export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} ################################### # Specify NET and RUN Name and model #################################### -export NET=gfs -export RUN=gfs export COMPONENT="atmos" export finc=3 export model=gfs @@ -62,6 +44,8 @@ if [ ${SENDCOM} = YES ] ; then fi +# TODO - Assess what is going on with overwriting $DATA here (#1224) + export DATA_HOLD=${DATA} ################################################################# diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index 76937f40f6b..b0cb9a90900 100755 --- a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS +++ b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -1,35 +1,19 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" - -export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} +# TODO (#1225) This job is not part of the rocoto suite ############################################ # GFS PGRB2_SPECIAL_POST PRODUCT GENERATION ############################################ +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - -###################################### -# Set up the cycle variable -###################################### -export cycle="t${cyc}z" +export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export USHgfs=${USHgfs:-${HOMEgfs}/ush} export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} @@ -41,8 +25,6 @@ export FIXgfs=${FIXgfs:-${HOMEgfs}/fix} ################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export model=${model:-gfs} export COMPONENT="atmos" @@ -60,8 +42,8 @@ if [ ${SENDCOM} = YES ] ; then mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} fi -export pgmout=OUTPUT.$$ +# TODO - This should be in the ex-script (#1226) #################################### # Specify Forecast Hour Range diff --git a/jobs/JGFS_ATMOS_POSTSND b/jobs/JGFS_ATMOS_POSTSND index 2c3363e1b02..41ac6687f09 100755 --- a/jobs/JGFS_ATMOS_POSTSND +++ b/jobs/JGFS_ATMOS_POSTSND @@ -1,48 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base postsnd" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env postsnd -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base postsnd ############################################## diff --git a/jobs/JGFS_ATMOS_VMINMON b/jobs/JGFS_ATMOS_VMINMON index bd996ce01d9..6d8a61f3678 100755 --- a/jobs/JGFS_ATMOS_VMINMON +++ b/jobs/JGFS_ATMOS_VMINMON @@ -4,24 +4,15 @@ # GFS Minimization Monitor (MinMon) job ########################################################### source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base vrfy + ############################### # Specify NET and RUN name ############################## -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="atmos" -########################################################### -# obtain unique process id (pid) and make temp directories -########################################################### -export pid=$$ -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - ########################################################### # obtain unique process id (pid) and make temp directories ########################################################### @@ -32,7 +23,6 @@ export m_job=${m_job:-${MINMON_SUFFIX}_mmDE} ############################################## # Specify Package Areas ############################################## -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} export SCRgfs=${SCRgfs:-${HOMEgfs}/scripts} export M_FIXgfs=${M_FIXgfs:-${HOMEgfs}/fix/product} diff --git a/jobs/JGLOBAL_ARCHIVE b/jobs/JGLOBAL_ARCHIVE index 21b20e1273c..807093a74f2 100755 --- a/jobs/JGLOBAL_ARCHIVE +++ b/jobs/JGLOBAL_ARCHIVE @@ -1,48 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p "${DATA}" -cd "${DATA}" || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - -############################################# -# Source relevant config files -############################################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base arch" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit "${status}" -done - - -########################################## -# Source machine runtime environment -########################################## -. "${HOMEgfs}/env/${machine}.env" arch -status=$? -[[ ${status} -ne 0 ]] && exit "${status}" +source "${HOMEgfs}/ush/jjob_header.sh" base arch ############################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS index cfc0398949b..46fba98a819 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base anal" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env anal -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base anal ############################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index a30737d3325..5cae4e338f3 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base anal analcalc" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env analcalc -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base anal analcalc ############################################## diff --git a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP index c2730b84647..dd0e66da001 100755 --- a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP +++ b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP @@ -1,44 +1,10 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base export RUN_ENVIR=${RUN_ENVIR:-"nco"} -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export pid=${pid:-$$} -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} diff --git a/jobs/JGLOBAL_ATMOS_POST b/jobs/JGLOBAL_ATMOS_POST index 534eb628725..cf02307d60a 100755 --- a/jobs/JGLOBAL_ATMOS_POST +++ b/jobs/JGLOBAL_ATMOS_POST @@ -1,49 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p "${DATA}" -cd "${DATA}" || exit 1 - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base post" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - (( status != 0 )) && exit "${status}" -done - - -########################################## -# Source machine runtime environment -########################################## -. "${HOMEgfs}/env/${machine}.env" post -status=$? -(( status != 0 )) && exit "${status}" +source "${HOMEgfs}/ush/jjob_header.sh" base post #################################### diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER index 6a9bde08cfd..1350270ebe7 100755 --- a/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -1,53 +1,9 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" - -#################################### -# make temp directories -#################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} +# TODO (#1227) This job is not used in the rocoto suite - -########################################### -# Run setpdy and initialize PDY variables -########################################### -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -#################################### -# Determine Job Output Name on System -#################################### -export pid=${pid:-$$} -export jobid="${outid}.o${pid}" -export pgmout="OUTPUT.${pid}" - - -######################################## -# GFS post manager -######################################## - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base post" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env post -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base post #################################### diff --git a/jobs/JGLOBAL_ATMOS_SFCANL b/jobs/JGLOBAL_ATMOS_SFCANL index 42e5a882729..a9fb45df33f 100755 --- a/jobs/JGLOBAL_ATMOS_SFCANL +++ b/jobs/JGLOBAL_ATMOS_SFCANL @@ -1,48 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base sfcanl" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env sfcanl -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/jjob_header.sh" base sfcanl ############################################## diff --git a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC index 7aa3e5111e9..590281b73bf 100755 --- a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC +++ b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC @@ -1,52 +1,11 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base prep +# TODO (#1220) Evaluate if this is still needed export RUN_ENVIR=${RUN_ENVIR:-"nco"} -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base prep" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env prep -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export pid=${pid:-$$} -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - ############################################## # Set variables used in the exglobal script diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index e272e449fa0..502143fe681 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -1,51 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base fcst" -[[ ${DO_WAVE:-"NO"} = "YES" ]] && configs+=" wave" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env fcst -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - +source "${HOMEgfs}/ush/jjob_header.sh" base fcst ############################################## # Set variables used in the script diff --git a/jobs/JGLOBAL_WAVE_GEMPAK b/jobs/JGLOBAL_WAVE_GEMPAK index 76cc44ec1a8..d6c6101b5fe 100755 --- a/jobs/JGLOBAL_WAVE_GEMPAK +++ b/jobs/JGLOBAL_WAVE_GEMPAK @@ -1,35 +1,9 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base wavegempak -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" -export machine=${machine:-WCOSS2} # Add default errchk = err_chk export errchk=${errchk:-err_chk} @@ -38,15 +12,12 @@ export errchk=${errchk:-err_chk} # Set COM Paths export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/${COMPONENT}/gempak} -#export pid=$$ -export pgmout="OUTPUT.$$" export DBN_ALERT_TYPE=GFS_WAVE_GEMPAK export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} - if [ ${SENDCOM} = YES ] ; then mkdir -m 775 -p ${COMOUT} fi @@ -65,5 +36,4 @@ if [ "${KEEPDATA}" != "YES" ]; then rm -rf ${DATA} fi - exit 0 diff --git a/jobs/JGLOBAL_WAVE_INIT b/jobs/JGLOBAL_WAVE_INIT index 80726f2918d..6f19ea52652 100755 --- a/jobs/JGLOBAL_WAVE_INIT +++ b/jobs/JGLOBAL_WAVE_INIT @@ -1,52 +1,8 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base wave waveinit -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base wave waveinit" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env waveinit -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - -# PATH for working directory -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" # Add default errchk = err_chk diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNT b/jobs/JGLOBAL_WAVE_POST_BNDPNT index 00c87870bbb..57893784d8a 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNT +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNT @@ -1,57 +1,10 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base wave wavepostsbs wavepostbndpnt -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base wave wavepostsbs wavepostbndpnt" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env wavepostbndpnt -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - -# PATH for working directory -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" -export HOMEgefs=${HOMEgefs:-${PACKAGEROOT}/${NET}.${gefs_ver}} -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/${NET}.${gfs_ver}} - # Add default errchk = err_chk export errchk=${errchk:-err_chk} diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL index 863a7414389..ebd377a5217 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL @@ -1,56 +1,10 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base wave wavepostsbs wavepostbndpntbll -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base wave wavepostsbs wavepostbndpntbll" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env wavepostbndpntbll -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - -# PATH for working directory -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" -export HOMEgefs=${HOMEgefs:-${PACKAGEROOT}/${NET}.${gefs_ver}} - # Add default errchk = err_chk export errchk=${errchk:-err_chk} diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index dd35efd15fc..b07d22e36be 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -1,56 +1,10 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base wave wavepostsbs wavepostpnt -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base wave wavepostsbs wavepostpnt" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env wavepostpnt -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - -# PATH for working directory -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" -export HOMEgefs=${HOMEgefs:-${PACKAGEROOT:-}/${NET}.${gefs_ver:-}} - # Add default errchk = err_chk export errchk=${errchk:-err_chk} diff --git a/jobs/JGLOBAL_WAVE_POST_SBS b/jobs/JGLOBAL_WAVE_POST_SBS index dc847f7e46a..4e2aa4f70d9 100755 --- a/jobs/JGLOBAL_WAVE_POST_SBS +++ b/jobs/JGLOBAL_WAVE_POST_SBS @@ -1,56 +1,10 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base wave wavepostsbs -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base wave wavepostsbs" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env wavepostsbs -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - -# PATH for working directory -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" -export HOMEgefs=${HOMEgefs:-${PACKAGEROOT:-}/${NET}.${gefs_ver:-}} - # Add default errchk = err_chk export errchk=${errchk:-err_chk} diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS index d52a85ce469..61c018a884d 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS +++ b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS @@ -1,33 +1,8 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base waveawipsbulls -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" # Add default errchk = err_chk diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED index 5374d316486..b385c56990e 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +++ b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED @@ -1,34 +1,8 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base waveawipsgridded -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -# PATH for working directory -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" # Add default errchk = err_chk diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP index ddc68cde3ba..86e0d02e881 100755 --- a/jobs/JGLOBAL_WAVE_PREP +++ b/jobs/JGLOBAL_WAVE_PREP @@ -1,52 +1,8 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" base wave waveprep -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base wave waveprep" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env waveprep -status=$? -[[ ${status} -ne 0 ]] && exit ${status} - -# PATH for working directory -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="wave" # Add default errchk = err_chk diff --git a/jobs/rocoto/awips.sh b/jobs/rocoto/awips.sh index d700494ab2c..5318ae06cdc 100755 --- a/jobs/rocoto/awips.sh +++ b/jobs/rocoto/awips.sh @@ -15,31 +15,20 @@ source "$HOMEgfs/ush/preamble.sh" ############################################################### ############################################################### -echo -echo "=============== BEGIN TO SOURCE FV3GFS WORKFLOW MODULES ===============" -. $HOMEgfs/ush/load_fv3gfs_modules.sh +# Source FV3GFS workflow modules +source "${HOMEgfs}/ush/load_fv3gfs_modules.sh" status=$? -[[ $status -ne 0 ]] && exit $status +(( status != 0 )) && exit "${status}" +export job="awips" +export jobid="${job}.$$" -############################################################### -echo -echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" -configs="base awips" -for config in $configs; do - . $EXPDIR/config.${config} - status=$? - [[ $status -ne 0 ]] && exit $status -done +# TODO (#1228) - This script is doing more than just calling a j-job +# Also, this forces us to call the config files here instead of the j-job +source "${HOMEgfs}/ush/jjob_header.sh" base awips -fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') -############################################################### -echo -echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. $BASE_ENV/${machine}.env awips -status=$? -[[ $status -ne 0 ]] && exit $status +fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') ############################################################### export COMPONENT=${COMPONENT:-atmos} @@ -94,14 +83,14 @@ for fhr in $fhrlst; do done export fcsthrs=$fhr3 - export job="jgfs_awips_f${fcsthrs}_20km_${cyc}" - export DATA="${DATAROOT}/$job" + # export job="jgfs_awips_f${fcsthrs}_20km_${cyc}" + # export DATA="${DATAROOT}/$job" $AWIPS20SH fi if [[ $(expr $fhr % 6) -eq 0 ]]; then - export job="jgfs_awips_f${fcsthrs}_${cyc}" - export DATA="${DATAROOT}/$job" + # export job="jgfs_awips_f${fcsthrs}_${cyc}" + # export DATA="${DATAROOT}/$job" $AWIPSG2SH fi fi @@ -131,12 +120,12 @@ for fhr in $fhrlst; do done export fcsthrs=$fhr3 - export job="jgfs_awips_f${fcsthrs}_20km_${cyc}" - export DATA="${DATAROOT}/$job" + # export job="jgfs_awips_f${fcsthrs}_20km_${cyc}" + # export DATA="${DATAROOT}/$job" $AWIPS20SH - export job="jgfs_awips_f${fcsthrs}_${cyc}" - export DATA="${DATAROOT}/$job" + # export job="jgfs_awips_f${fcsthrs}_${cyc}" + # export DATA="${DATAROOT}/$job" $AWIPSG2SH fi fi diff --git a/jobs/rocoto/ecen.sh b/jobs/rocoto/ecen.sh index 8a98974615c..744956b1ff4 100755 --- a/jobs/rocoto/ecen.sh +++ b/jobs/rocoto/ecen.sh @@ -16,7 +16,7 @@ for fhr in ${fhrlst}; do export FHMIN_ECEN=${fhr} export FHMAX_ECEN=${fhr} export FHOUT_ECEN=${fhr} - export job=ecen${fhr} + export job=ecen export jobid="${job}.$$" ${HOMEgfs}/jobs/JGDAS_ENKF_ECEN diff --git a/jobs/rocoto/epos.sh b/jobs/rocoto/epos.sh index 21c8e0019ee..d1f890a9309 100755 --- a/jobs/rocoto/epos.sh +++ b/jobs/rocoto/epos.sh @@ -8,6 +8,9 @@ source "${HOMEgfs}/ush/preamble.sh" status=$? [[ ${status} -ne 0 ]] && exit ${status} +export job="epos" +export jobid="${job}.$$" + ############################################################### # Loop over groups to Execute the JJOB fhrlst=$(echo ${FHRLST} | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') @@ -17,9 +20,6 @@ for fhr in ${fhrlst}; do export FHMIN_EPOS=${fhr} export FHMAX_EPOS=${fhr} export FHOUT_EPOS=${fhr} - export job=epos${fhr} - export jobid="${job}.$$" - ${HOMEgfs}/jobs/JGDAS_ENKF_POST status=$? [[ ${status} -ne 0 ]] && exit ${status} diff --git a/jobs/rocoto/gempak.sh b/jobs/rocoto/gempak.sh index 9f1ed4bc91a..14950535c84 100755 --- a/jobs/rocoto/gempak.sh +++ b/jobs/rocoto/gempak.sh @@ -1,23 +1,17 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### -echo -echo "=============== BEGIN TO SOURCE FV3GFS WORKFLOW MODULES ===============" -. $HOMEgfs/ush/load_fv3gfs_modules.sh +. "${HOMEgfs}/ush/load_fv3gfs_modules.sh" status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} -export SENDCOM="YES" -export COMPONENT=${COMPONENT:-atmos} - -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT/gempak" +export job="gempak" +export jobid="${job}.$$" # Execute the JJOB - -$HOMEgfs/jobs/JGFS_ATMOS_GEMPAK +${HOMEgfs}/jobs/JGFS_ATMOS_GEMPAK status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/post.sh b/jobs/rocoto/post.sh index bc7da5709ad..1de899b7bab 100755 --- a/jobs/rocoto/post.sh +++ b/jobs/rocoto/post.sh @@ -13,6 +13,9 @@ source "${HOMEgfs}/ush/preamble.sh" status=$? [[ ${status} -ne 0 ]] && exit ${status} +export job="post" +export jobid="${job}.$$" + export COMPONENT="atmos" if [ ${FHRGRP} = 'anl' ]; then @@ -27,8 +30,6 @@ fi #--------------------------------------------------------------- for fhr in ${fhrlst}; do export post_times=${fhr} - export job="post${post_times}" - export jobid="${job}.$$" ${HOMEgfs}/jobs/JGLOBAL_ATMOS_POST status=$? [[ ${status} -ne 0 ]] && exit ${status} diff --git a/jobs/rocoto/vrfy.sh b/jobs/rocoto/vrfy.sh index aef08ec90e7..46d1c9d1fb8 100755 --- a/jobs/rocoto/vrfy.sh +++ b/jobs/rocoto/vrfy.sh @@ -2,56 +2,18 @@ source "${HOMEgfs}/ush/preamble.sh" -echo -echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" -. ${HOMEgfs}/ush/load_fv3gfs_modules.sh +############################################################### +# Source FV3GFS workflow modules +source "${HOMEgfs}/ush/load_fv3gfs_modules.sh" status=$? -[[ ${status} -ne 0 ]] && exit ${status} +(( status != 0 )) && exit "${status}" export job="vrfy" export jobid="${job}.$$" - -############################################## -# make temp directory -############################################## -export DATA="${DATA:-${DATAROOT}/${jobid}}" -mkdir -p ${DATA} -cd ${DATA} - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################################################### -echo -echo "=============== START TO SOURCE RELEVANT CONFIGS ===============" -configs="base vrfy" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -############################################################### -echo -echo "=============== START TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. ${BASE_ENV}/${machine}.env vrfy -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +# TODO (#235) - This job is calling multiple j-jobs and doing too much in general +# Also, this forces us to call the config files here instead of the j-job +source "${HOMEgfs}/ush/jjob_header.sh" base vrfy ############################################################### export COMPONENT="atmos" diff --git a/jobs/rocoto/waveawipsbulls.sh b/jobs/rocoto/waveawipsbulls.sh index 1e1e1cd4e20..4b6d6e1e82a 100755 --- a/jobs/rocoto/waveawipsbulls.sh +++ b/jobs/rocoto/waveawipsbulls.sh @@ -3,34 +3,15 @@ source "$HOMEgfs/ush/preamble.sh" ############################################################### -echo -echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" -. $HOMEgfs/ush/load_fv3gfs_modules.sh +# Source FV3GFS workflow modules +source ${HOMEgfs}/ush/load_fv3gfs_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} -############################################################### -echo -echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" -configs="base waveawipsbulls" -for config in $configs; do - . $EXPDIR/config.${config} - status=$? - [[ $status -ne 0 ]] && exit $status -done - -############################################################### -echo -echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. $BASE_ENV/${machine}.env waveawipsbulls -status=$? -[[ $status -ne 0 ]] && exit $status - -export DBNROOT=/dev/null +export job="waveawipsbulls" +export jobid="${job}.$$" ############################################################### -echo -echo "=============== START TO RUN WAVE PRDGEN BULLS ===============" # Execute the JJOB $HOMEgfs/jobs/JGLOBAL_WAVE_PRDGEN_BULLS status=$? diff --git a/jobs/rocoto/waveawipsgridded.sh b/jobs/rocoto/waveawipsgridded.sh index 3627ba62c4d..c10f2f39fd5 100755 --- a/jobs/rocoto/waveawipsgridded.sh +++ b/jobs/rocoto/waveawipsgridded.sh @@ -3,37 +3,18 @@ source "$HOMEgfs/ush/preamble.sh" ############################################################### -echo -echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" -. $HOMEgfs/ush/load_fv3gfs_modules.sh +# Source FV3GFS workflow modules +source ${HOMEgfs}/ush/load_fv3gfs_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} -############################################################### -echo -echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" -configs="base waveawipsgridded" -for config in $configs; do - . $EXPDIR/config.${config} - status=$? - [[ $status -ne 0 ]] && exit $status -done - -############################################################### -echo -echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. $BASE_ENV/${machine}.env waveawipsgridded -status=$? -[[ $status -ne 0 ]] && exit $status - -export DBNROOT=/dev/null +export job="waveawipsgridded" +export jobid="${job}.$$" ############################################################### -echo -echo "=============== START TO RUN WAVE PRDGEN GRIDDED ===============" # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/wavegempak.sh b/jobs/rocoto/wavegempak.sh index d4cf1667fc6..325762a19ba 100755 --- a/jobs/rocoto/wavegempak.sh +++ b/jobs/rocoto/wavegempak.sh @@ -3,35 +3,13 @@ source "$HOMEgfs/ush/preamble.sh" ############################################################### -echo -echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" -. $HOMEgfs/ush/load_fv3gfs_modules.sh +source $HOMEgfs/ush/load_fv3gfs_modules.sh status=$? [[ $status -ne 0 ]] && exit $status ############################################################### -echo -echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" -configs="base wavegempak" -for config in $configs; do - . $EXPDIR/config.${config} - status=$? - [[ $status -ne 0 ]] && exit $status -done - -############################################################### -echo -echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. $BASE_ENV/${machine}.env wavegempak -status=$? -[[ $status -ne 0 ]] && exit $status - -############################################################### -echo -echo "=============== START TO RUN WAVE GEMPAK ===============" # Execute the JJOB $HOMEgfs/jobs/JGLOBAL_WAVE_GEMPAK status=$? - exit $status diff --git a/jobs/rocoto/wavepostsbs.sh b/jobs/rocoto/wavepostsbs.sh index fa61d31eecf..e4bea0bc344 100755 --- a/jobs/rocoto/wavepostsbs.sh +++ b/jobs/rocoto/wavepostsbs.sh @@ -3,8 +3,7 @@ source "${HOMEgfs}/ush/preamble.sh" ############################################################### -echo -echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +# Source FV3GFS workflow modules . ${HOMEgfs}/ush/load_fv3gfs_modules.sh status=$? [[ ${status} -ne 0 ]] && exit ${status} @@ -13,8 +12,6 @@ export job="wavepostsbs" export jobid="${job}.$$" ############################################################### -echo -echo "=============== START TO RUN WAVE POST_SBS ===============" # Execute the JJOB ${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_SBS status=$? diff --git a/ush/jjob_header.sh b/ush/jjob_header.sh new file mode 100644 index 00000000000..30caf141f03 --- /dev/null +++ b/ush/jjob_header.sh @@ -0,0 +1,76 @@ +#! /usr/bin/env bash +# +# Universal header for global j-jobs +# +# Sets up and completes actions common to all j-jobs: +# - Creates and moves to $DATA +# - Runs `setpdy.sh` +# - Sources configs provided as arguments +# - Sources machine environment script +# - Defines a few other variables +# +# The list of config files to source should be provided +# by providing the names as arguments, i.e. +# `jjob_header.sh base fcst` will source `config.base` +# and `config.fcst` from the $EXPDIR. +# +# Script requires the following variables to already be +# defined in the environment: +# - $HOMEgfs +# - $DATAROOT +# - $jobid +# - $PDY +# - $cyc +# - $machine +# + +if (( $# < 1 )); then + echo "FATAL: Must specify a job name" +fi +configs=("$@") + +############################################## +# make temp directory +############################################## +export DATA=${DATA:-"${DATAROOT}/${jobid}"} +mkdir -p "${DATA}" +cd "${DATA}" || ( echo "FATAL: ${DATA} does not exist"; exit 1 ) + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +source ./PDY + + +############################################## +# Determine Job Output Name on System +############################################## +export pid="${pid:-$$}" +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + + +############################# +# Source relevant config files +############################# +export EXPDIR="${EXPDIR:-${HOMEgfs}/parm/config}" +for config in "${configs[@]}"; do + source "${EXPDIR}/config.${config}" + status=$? + if (( status != 0 )); then + exit "${status}" + fi +done + + +########################################## +# Source machine runtime environment +########################################## +source "${HOMEgfs}/env/${machine}.env" "${job}" +status=$? +if (( status != 0 )); then + exit "${status}" +fi From dcebeee11c1383b3d7945c885694606aaed1ab68 Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Mon, 9 Jan 2023 03:49:18 -0600 Subject: [PATCH 02/11] Clean $DATA and have all steps of ocean anl use same $DATA The ocean analysis jobs appear to need a persistent $DATA directory, so the j-jobs have had their previous settings for $DATA restored. Additionally, the j-job header now wipes any existing $DATA directory if the variable $WIPE_DATA is set to "YES", which is the default. To allow the persistent $DATA for the ocean analysis jobs, the RUN and POST j-jobs set $WIPE_DATA to "NO". --- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST | 2 ++ jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP | 1 + jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN | 2 ++ ush/jjob_header.sh | 6 +++++- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST index fab55d11599..2d0b3b5cbe7 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST @@ -1,6 +1,8 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" +WIPE_DATA="NO" +DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" source "${HOMEgfs}/ush/jjob_header.sh" base ocnanalpost diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP index c7fd66ad54b..e33cdcc1852 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP @@ -1,6 +1,7 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" +DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" source "${HOMEgfs}/ush/jjob_header.sh" base ocnanal ocnanalprep diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN index 1efd12f2ea7..901b216538f 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN @@ -1,6 +1,8 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" +WIPE_DATA="NO" +DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" source "${HOMEgfs}/ush/jjob_header.sh" base ocnanal ocnanalrun diff --git a/ush/jjob_header.sh b/ush/jjob_header.sh index 30caf141f03..93212a9c816 100644 --- a/ush/jjob_header.sh +++ b/ush/jjob_header.sh @@ -3,7 +3,8 @@ # Universal header for global j-jobs # # Sets up and completes actions common to all j-jobs: -# - Creates and moves to $DATA +# - Creates and moves to $DATA after removing any +# existing one unless $WIPE_DATA is set to "NO" # - Runs `setpdy.sh` # - Sources configs provided as arguments # - Sources machine environment script @@ -33,6 +34,9 @@ configs=("$@") # make temp directory ############################################## export DATA=${DATA:-"${DATAROOT}/${jobid}"} +if [[ ${WIPE_DATA:-YES} == "YES" ]]; then + rm -rf "${DATA}" +fi mkdir -p "${DATA}" cd "${DATA}" || ( echo "FATAL: ${DATA} does not exist"; exit 1 ) From 0d45879abbe60adb5f9a4332f9029011fb01fe5d Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Tue, 10 Jan 2023 00:59:31 -0600 Subject: [PATCH 03/11] Only add CPU ranks to gempak CFP file when needed The gempak j-job was always adding the CPU ranks to the CFP command file. These are only needed (or allowed) on slurm, which prevented the job from running properly on WCOSS2. Following the paradigm of existing jobs, now the ranks are only added if `$CFP_MP` is "YES". --- jobs/JGFS_ATMOS_GEMPAK | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK index 949434a611c..6b66d915ba0 100755 --- a/jobs/JGFS_ATMOS_GEMPAK +++ b/jobs/JGFS_ATMOS_GEMPAK @@ -104,9 +104,11 @@ echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_atl 180 GFS_GEMPAK_WWB &> ${DAT echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs40 180 GFS_GEMPAK_WWB &> ${DATA}/gfs40.$$.1 " >>poescript echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs40 180 GFS_GEMPAK_WWB &> ${DATA}/gfs40.$$.2 " >>poescript -# Add task number to the MPMD script -nl -n ln -v 0 poescript > poescript.new -mv poescript.new poescript +if [[ ${CFP_MP:-"NO"} == "YES" ]]; then + # Add task number to the MPMD script + nl -n ln -v 0 poescript > poescript.new + mv poescript.new poescript +fi cat poescript From 0afc2c7af7b67399efd1c82d0e863ea3d2fdc21d Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Tue, 10 Jan 2023 01:08:21 -0600 Subject: [PATCH 04/11] Fix linter complaint in special gempak Fix one minor thing to shut the linter up even though the line was not touched in this PR. --- jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index 42278ef65ec..d30b59eb74b 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -109,6 +109,6 @@ fi # Remove temp directories ################################### if [ "${KEEPDATA}" != "YES" ] ; then - rm -rf ${DATA} + rm -rf "${DATA}" fi From 16c1e753bc1144ab4f81882bbb7bd2757cf5cbc9 Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Tue, 10 Jan 2023 04:46:16 -0600 Subject: [PATCH 05/11] Add CFP_MP changes to env for gempak These were meant to be part of 0d45879 --- env/HERA.env | 2 ++ env/ORION.env | 2 ++ 2 files changed, 4 insertions(+) diff --git a/env/HERA.env b/env/HERA.env index 0f903611c5e..2a4ff88f23e 100755 --- a/env/HERA.env +++ b/env/HERA.env @@ -290,6 +290,8 @@ elif [[ "${step}" = "awips" ]]; then elif [[ "${step}" = "gempak" ]]; then + export CFP_MP="YES" + nth_max=$((npe_node_max / npe_node_gempak)) export NTHREADS_GEMPAK=${nth_gempak:-1} diff --git a/env/ORION.env b/env/ORION.env index 61f6105eb3b..9e5714e5c85 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -288,6 +288,8 @@ elif [[ "${step}" = "awips" ]]; then elif [[ "${step}" = "gempak" ]]; then + export CFP_MP="YES" + nth_max=$((npe_node_max / npe_node_gempak)) export NTHREADS_GEMPAK=${nth_gempak:-1} From a33654e9cb61057e9878c1bcc5c1333c8acb49d7 Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Thu, 12 Jan 2023 14:48:13 -0600 Subject: [PATCH 06/11] Specify job for environment script The j-job header is altered to require the specification of the job name to pass to the environment script rather than using the inherent job name since the ECFlow names are different and some jjobs call the environment script with different names. J-job header arguments are now passed in with options, with `-e` setting the job name to provide the environment script (required) and `-c` passing the list of config files (the former positional arguments). A few jobs not yet in the dev workflow were not previously calling the environment script. For those, I made up new job names as placeholders (the environment scripts accept unrecongnized names). Also added error messages for fatal errors and expanded documentation a bit more. --- jobs/JGDAS_ATMOS_ANALYSIS_DIAG | 2 +- jobs/JGDAS_ATMOS_CHGRES_FORENKF | 2 +- jobs/JGDAS_ATMOS_GEMPAK | 2 +- jobs/JGDAS_ATMOS_GEMPAK_META_NCDC | 2 +- jobs/JGDAS_ATMOS_GLDAS | 2 +- jobs/JGDAS_ATMOS_VERFOZN | 2 +- jobs/JGDAS_ATMOS_VERFRAD | 2 +- jobs/JGDAS_ATMOS_VMINMON | 2 +- jobs/JGDAS_ENKF_ARCHIVE | 2 +- jobs/JGDAS_ENKF_DIAG | 2 +- jobs/JGDAS_ENKF_ECEN | 2 +- jobs/JGDAS_ENKF_FCST | 2 +- jobs/JGDAS_ENKF_POST | 2 +- jobs/JGDAS_ENKF_SELECT_OBS | 2 +- jobs/JGDAS_ENKF_SFC | 2 +- jobs/JGDAS_ENKF_UPDATE | 2 +- jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST | 2 +- jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP | 2 +- jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN | 2 +- jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST | 2 +- jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP | 2 +- jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN | 2 +- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST | 2 +- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP | 2 +- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN | 2 +- jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG | 2 +- jobs/JGFS_ATMOS_AWIPS_G2 | 2 +- jobs/JGFS_ATMOS_CYCLONE_GENESIS | 2 +- jobs/JGFS_ATMOS_CYCLONE_TRACKER | 2 +- jobs/JGFS_ATMOS_FBWIND | 2 +- jobs/JGFS_ATMOS_FSU_GENESIS | 2 +- jobs/JGFS_ATMOS_GEMPAK | 2 +- jobs/JGFS_ATMOS_GEMPAK_META | 2 +- jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF | 2 +- jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC | 2 +- jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS | 2 +- jobs/JGFS_ATMOS_POSTSND | 2 +- jobs/JGFS_ATMOS_VMINMON | 2 +- jobs/JGLOBAL_ARCHIVE | 2 +- jobs/JGLOBAL_ATMOS_ANALYSIS | 2 +- jobs/JGLOBAL_ATMOS_ANALYSIS_CALC | 2 +- jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP | 2 +- jobs/JGLOBAL_ATMOS_POST | 2 +- jobs/JGLOBAL_ATMOS_POST_MANAGER | 2 +- jobs/JGLOBAL_ATMOS_SFCANL | 2 +- jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC | 2 +- jobs/JGLOBAL_FORECAST | 2 +- jobs/JGLOBAL_WAVE_GEMPAK | 2 +- jobs/JGLOBAL_WAVE_INIT | 2 +- jobs/JGLOBAL_WAVE_POST_BNDPNT | 2 +- jobs/JGLOBAL_WAVE_POST_BNDPNTBLL | 2 +- jobs/JGLOBAL_WAVE_POST_PNT | 2 +- jobs/JGLOBAL_WAVE_POST_SBS | 2 +- jobs/JGLOBAL_WAVE_PRDGEN_BULLS | 2 +- jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED | 2 +- jobs/JGLOBAL_WAVE_PREP | 2 +- jobs/rocoto/awips.sh | 2 +- jobs/rocoto/vrfy.sh | 2 +- ush/jjob_header.sh | 56 +++++++++++++++++++++------ 59 files changed, 103 insertions(+), 69 deletions(-) diff --git a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG index a6b41067529..f25da9b488e 100755 --- a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +++ b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base anal analdiag +source "${HOMEgfs}/ush/jjob_header.sh" -e "anal" -c "base anal analdiag" ############################################## diff --git a/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/jobs/JGDAS_ATMOS_CHGRES_FORENKF index 62faa5d89cf..b1572e98cbb 100755 --- a/jobs/JGDAS_ATMOS_CHGRES_FORENKF +++ b/jobs/JGDAS_ATMOS_CHGRES_FORENKF @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base anal echgres +source "${HOMEgfs}/ush/jjob_header.sh" -e "anal" -c "base anal echgres" ############################################## diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK index 52faa75358b..bec9c808670 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK +++ b/jobs/JGDAS_ATMOS_GEMPAK @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base gempak +source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak" -c "base gempak" # TODO (#1219) This j-job is not part of the rocoto suite diff --git a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index 119ef128aac..beadb7ccf85 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -7,7 +7,7 @@ # TODO (#1222) This j-job is not part of the rocoto source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base gempak +source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_meta" -c "base gempak" ################################ # Set up the HOME directory diff --git a/jobs/JGDAS_ATMOS_GLDAS b/jobs/JGDAS_ATMOS_GLDAS index 1a89df67fa2..96b6d05799e 100755 --- a/jobs/JGDAS_ATMOS_GLDAS +++ b/jobs/JGDAS_ATMOS_GLDAS @@ -1,7 +1,6 @@ #! /usr/bin/env bash source "${HOMEgfs:?}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base gldas if [[ "${cyc:?}" -ne "${gldas_cyc:?}" ]]; then echo "GLDAS only runs for ${gldas_cyc} cycle; Skip GLDAS step for cycle ${cyc}" @@ -16,6 +15,7 @@ if [[ "${CDATE}" -le "$(${NDATE:?} +"${xtime}" "${SDATE:?}")" ]]; then exit 0 fi +source "${HOMEgfs}/ush/jjob_header.sh" -e "gldas" -c "base gldas" ############################################## # Set variables used in the exglobal script diff --git a/jobs/JGDAS_ATMOS_VERFOZN b/jobs/JGDAS_ATMOS_VERFOZN index a6a004d6ccd..e16cb6d548c 100755 --- a/jobs/JGDAS_ATMOS_VERFOZN +++ b/jobs/JGDAS_ATMOS_VERFOZN @@ -4,7 +4,7 @@ # Set up environment for GDAS Ozone Monitor job ############################################################# source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base vrfy +source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" ############################### diff --git a/jobs/JGDAS_ATMOS_VERFRAD b/jobs/JGDAS_ATMOS_VERFRAD index 99a04dce84f..300e6eff1ae 100755 --- a/jobs/JGDAS_ATMOS_VERFRAD +++ b/jobs/JGDAS_ATMOS_VERFRAD @@ -4,7 +4,7 @@ # Set up environment for GDAS Radiance Monitor job ############################################################# source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base vrfy +source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" export COMPONENT="atmos" diff --git a/jobs/JGDAS_ATMOS_VMINMON b/jobs/JGDAS_ATMOS_VMINMON index 2df94e9deb1..67f50f5c1ca 100755 --- a/jobs/JGDAS_ATMOS_VMINMON +++ b/jobs/JGDAS_ATMOS_VMINMON @@ -4,7 +4,7 @@ # GDAS Minimization Monitor (MinMon) job ########################################################### source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base vrfy +source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" export COMPONENT="atmos" diff --git a/jobs/JGDAS_ENKF_ARCHIVE b/jobs/JGDAS_ENKF_ARCHIVE index f35045d9a84..e5131c4c673 100755 --- a/jobs/JGDAS_ENKF_ARCHIVE +++ b/jobs/JGDAS_ENKF_ARCHIVE @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base earc +source "${HOMEgfs}/ush/jjob_header.sh" -e "earc" -c "base earc" ############################################## diff --git a/jobs/JGDAS_ENKF_DIAG b/jobs/JGDAS_ENKF_DIAG index e08b31ae9e4..a9d65823c10 100755 --- a/jobs/JGDAS_ENKF_DIAG +++ b/jobs/JGDAS_ENKF_DIAG @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base anal eobs analdiag ediag +source "${HOMEgfs}/ush/jjob_header.sh" -e "eobs" -c "base anal eobs analdiag ediag" ############################################## diff --git a/jobs/JGDAS_ENKF_ECEN b/jobs/JGDAS_ENKF_ECEN index d413feb507a..bf33ecc3f66 100755 --- a/jobs/JGDAS_ENKF_ECEN +++ b/jobs/JGDAS_ENKF_ECEN @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base ecen +source "${HOMEgfs}/ush/jjob_header.sh" -e "ecen" -c "base ecen" ############################################## diff --git a/jobs/JGDAS_ENKF_FCST b/jobs/JGDAS_ENKF_FCST index 97dc3cd9dae..5c45c9aa12f 100755 --- a/jobs/JGDAS_ENKF_FCST +++ b/jobs/JGDAS_ENKF_FCST @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base fcst efcs +source "${HOMEgfs}/ush/jjob_header.sh" -e "efcs" -c "base fcst efcs" ############################################## diff --git a/jobs/JGDAS_ENKF_POST b/jobs/JGDAS_ENKF_POST index 02bda205bd0..57e94f37f90 100755 --- a/jobs/JGDAS_ENKF_POST +++ b/jobs/JGDAS_ENKF_POST @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base epos +source "${HOMEgfs}/ush/jjob_header.sh" -e "epos" -c "base epos" ############################################## diff --git a/jobs/JGDAS_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS index 9fa187ec527..7995a68093c 100755 --- a/jobs/JGDAS_ENKF_SELECT_OBS +++ b/jobs/JGDAS_ENKF_SELECT_OBS @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base anal eobs +source "${HOMEgfs}/ush/jjob_header.sh" -e "eobs" -c "base anal eobs" ############################################## diff --git a/jobs/JGDAS_ENKF_SFC b/jobs/JGDAS_ENKF_SFC index 5aa669c0b87..06c2c323919 100755 --- a/jobs/JGDAS_ENKF_SFC +++ b/jobs/JGDAS_ENKF_SFC @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base esfc +source "${HOMEgfs}/ush/jjob_header.sh" -e "esfc" -c "base esfc" ############################################## diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index 4d5f50ba3e7..ae3ddb01451 100755 --- a/jobs/JGDAS_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base anal eupd +source "${HOMEgfs}/ush/jjob_header.sh" -e "eupd" -c "base anal eupd" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST index 97f8f4b40b2..49dcd5f21cc 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST @@ -1,7 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base atmanal atmanalpost +source "${HOMEgfs}/ush/jjob_header.sh" -e "atmanalpost" -c "base atmanal atmanalpost" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP index f93d53e89d5..9a21d032e2b 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP @@ -1,7 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base atmanal atmanalprep +source "${HOMEgfs}/ush/jjob_header.sh" -e "atmanalprep" -c "base atmanal atmanalprep" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN index dfdba7e1cd1..32722f4ba32 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN @@ -1,7 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base atmanal atmanalrun +source "${HOMEgfs}/ush/jjob_header.sh" -e "atmanalrun" -c "base atmanal atmanalrun" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST index 3b7b9011898..6022cc548a5 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST @@ -1,7 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base atmensanal atmensanalpost +source "${HOMEgfs}/ush/jjob_header.sh" -e "atmensanalpost" -c "base atmensanal atmensanalpost" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP index e45f7aa3f68..48b4a5b99b9 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP @@ -1,7 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base atmensanal atmensanalprep +source "${HOMEgfs}/ush/jjob_header.sh" -e "atmensanalprep" -c "base atmensanal atmensanalprep" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN index ff36b7757b4..2afbc9028e8 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN @@ -1,7 +1,7 @@ #!/bin/bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base atmensanal atmensanalrun +source "${HOMEgfs}/ush/jjob_header.sh" -e "atmensanalrun" -c "base atmensanal atmensanalrun" ############################################## diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST index 2d0b3b5cbe7..f48da79b6b3 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST @@ -3,7 +3,7 @@ export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" WIPE_DATA="NO" DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" -source "${HOMEgfs}/ush/jjob_header.sh" base ocnanalpost +source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalpost" -c "base ocnanalpost" ############################################################### diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP index e33cdcc1852..815bc5c9db4 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP @@ -2,7 +2,7 @@ export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" -source "${HOMEgfs}/ush/jjob_header.sh" base ocnanal ocnanalprep +source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalprep" -c "base ocnanal ocnanalprep" ############################################## diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN index 901b216538f..973b543b872 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN @@ -3,7 +3,7 @@ export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" WIPE_DATA="NO" DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" -source "${HOMEgfs}/ush/jjob_header.sh" base ocnanal ocnanalrun +source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalrun" -c "base ocnanal ocnanalrun" ############################################## diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index dd05e8f7bab..ef4d4f81997 100755 --- a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +++ b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base awips +source "${HOMEgfs}/ush/jjob_header.sh" -e "awips" -c "base awips" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} diff --git a/jobs/JGFS_ATMOS_AWIPS_G2 b/jobs/JGFS_ATMOS_AWIPS_G2 index d448c6aef8e..ee823c9ada8 100755 --- a/jobs/JGFS_ATMOS_AWIPS_G2 +++ b/jobs/JGFS_ATMOS_AWIPS_G2 @@ -5,7 +5,7 @@ ######################################## source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base awips +source "${HOMEgfs}/ush/jjob_header.sh" -e "awips" -c "base awips" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} diff --git a/jobs/JGFS_ATMOS_CYCLONE_GENESIS b/jobs/JGFS_ATMOS_CYCLONE_GENESIS index e76b3d4bbad..bf674fccde9 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_GENESIS +++ b/jobs/JGFS_ATMOS_CYCLONE_GENESIS @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base vrfy +source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" # TODO (#1220) Determine if this is still needed diff --git a/jobs/JGFS_ATMOS_CYCLONE_TRACKER b/jobs/JGFS_ATMOS_CYCLONE_TRACKER index 0f5ef1ea2b5..7734e4ea663 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_TRACKER +++ b/jobs/JGFS_ATMOS_CYCLONE_TRACKER @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base vrfy +source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" # TODO (#1220) Determine if this is still needed diff --git a/jobs/JGFS_ATMOS_FBWIND b/jobs/JGFS_ATMOS_FBWIND index ef40d05a361..f4b94442e8c 100755 --- a/jobs/JGFS_ATMOS_FBWIND +++ b/jobs/JGFS_ATMOS_FBWIND @@ -6,7 +6,7 @@ # GFS FBWIND PRODUCT GENERATION ############################################ source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base +source "${HOMEgfs}/ush/jjob_header.sh" -e "fbwind" -c "base" ################################ # Set up the HOME directory diff --git a/jobs/JGFS_ATMOS_FSU_GENESIS b/jobs/JGFS_ATMOS_FSU_GENESIS index 83bb6092e15..e5fd5ff3c3c 100755 --- a/jobs/JGFS_ATMOS_FSU_GENESIS +++ b/jobs/JGFS_ATMOS_FSU_GENESIS @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base vrfy +source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" export RUN_ENVIR=${RUN_ENVIR:-"nco"} diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK index 6b66d915ba0..2d822e53ce0 100755 --- a/jobs/JGFS_ATMOS_GEMPAK +++ b/jobs/JGFS_ATMOS_GEMPAK @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base gempak +source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak" -c "base gempak" ################################ diff --git a/jobs/JGFS_ATMOS_GEMPAK_META b/jobs/JGFS_ATMOS_GEMPAK_META index 7938fb959cc..0a9f5bdd902 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_META +++ b/jobs/JGFS_ATMOS_GEMPAK_META @@ -6,7 +6,7 @@ # GFS GEMPAK META PRODUCT GENERATION ############################################ source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base +source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_meta" -e "base" ############################################### diff --git a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF index a96bf3a9a87..cc9d445965b 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +++ b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -6,7 +6,7 @@ # GFS GEMPAK NCDC PRODUCT GENERATION ############################################ source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base +source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_gif" -c "base" ################################ diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index d30b59eb74b..a1c2518a445 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -6,7 +6,7 @@ # GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION ############################################ source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base +source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_spec" -c "base" ################################ diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index b0cb9a90900..8bb39c0532d 100755 --- a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS +++ b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -6,7 +6,7 @@ # GFS PGRB2_SPECIAL_POST PRODUCT GENERATION ############################################ source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base +source "${HOMEgfs}/ush/jjob_header.sh" -e "npoess" -c "base" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} diff --git a/jobs/JGFS_ATMOS_POSTSND b/jobs/JGFS_ATMOS_POSTSND index 41ac6687f09..d5aa921e694 100755 --- a/jobs/JGFS_ATMOS_POSTSND +++ b/jobs/JGFS_ATMOS_POSTSND @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base postsnd +source "${HOMEgfs}/ush/jjob_header.sh" -e "postsnd" -c "base postsnd" ############################################## diff --git a/jobs/JGFS_ATMOS_VMINMON b/jobs/JGFS_ATMOS_VMINMON index 6d8a61f3678..01f2d3516cd 100755 --- a/jobs/JGFS_ATMOS_VMINMON +++ b/jobs/JGFS_ATMOS_VMINMON @@ -4,7 +4,7 @@ # GFS Minimization Monitor (MinMon) job ########################################################### source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base vrfy +source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" ############################### diff --git a/jobs/JGLOBAL_ARCHIVE b/jobs/JGLOBAL_ARCHIVE index 807093a74f2..801998e2c27 100755 --- a/jobs/JGLOBAL_ARCHIVE +++ b/jobs/JGLOBAL_ARCHIVE @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base arch +source "${HOMEgfs}/ush/jjob_header.sh" -e "arch" -c "base arch" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS index 46fba98a819..b4ceff8372e 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base anal +source "${HOMEgfs}/ush/jjob_header.sh" -e "anal" -c "base anal" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index 5cae4e338f3..f9c703c7f0e 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base anal analcalc +source "${HOMEgfs}/ush/jjob_header.sh" -e "analcalc" -c "base anal analcalc" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP index dd0e66da001..fdaca082405 100755 --- a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP +++ b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base +source "${HOMEgfs}/ush/jjob_header.sh" -e "sfc_prep" -c "base" export RUN_ENVIR=${RUN_ENVIR:-"nco"} diff --git a/jobs/JGLOBAL_ATMOS_POST b/jobs/JGLOBAL_ATMOS_POST index cf02307d60a..1c6af31f913 100755 --- a/jobs/JGLOBAL_ATMOS_POST +++ b/jobs/JGLOBAL_ATMOS_POST @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base post +source "${HOMEgfs}/ush/jjob_header.sh" -e "post" -c "base post" #################################### diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER index 1350270ebe7..1d82537dcab 100755 --- a/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -3,7 +3,7 @@ # TODO (#1227) This job is not used in the rocoto suite source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base post +source "${HOMEgfs}/ush/jjob_header.sh" -e "post" -c "base post" #################################### diff --git a/jobs/JGLOBAL_ATMOS_SFCANL b/jobs/JGLOBAL_ATMOS_SFCANL index a9fb45df33f..151fd3d272e 100755 --- a/jobs/JGLOBAL_ATMOS_SFCANL +++ b/jobs/JGLOBAL_ATMOS_SFCANL @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base sfcanl +source "${HOMEgfs}/ush/jjob_header.sh" -e "sfcanl" -c "base sfcanl" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC index 590281b73bf..9a70cb968e8 100755 --- a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC +++ b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base prep +source "${HOMEgfs}/ush/jjob_header.sh" -e "prep" -c "base prep" # TODO (#1220) Evaluate if this is still needed export RUN_ENVIR=${RUN_ENVIR:-"nco"} diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index 502143fe681..90275127617 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base fcst +source "${HOMEgfs}/ush/jjob_header.sh" -e "fcst" -c "base fcst" ############################################## # Set variables used in the script diff --git a/jobs/JGLOBAL_WAVE_GEMPAK b/jobs/JGLOBAL_WAVE_GEMPAK index d6c6101b5fe..f57324607e1 100755 --- a/jobs/JGLOBAL_WAVE_GEMPAK +++ b/jobs/JGLOBAL_WAVE_GEMPAK @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base wavegempak +source "${HOMEgfs}/ush/jjob_header.sh" -e "wavegempak" -c "base wavegempak" export COMPONENT="wave" diff --git a/jobs/JGLOBAL_WAVE_INIT b/jobs/JGLOBAL_WAVE_INIT index 6f19ea52652..d1b0037bf01 100755 --- a/jobs/JGLOBAL_WAVE_INIT +++ b/jobs/JGLOBAL_WAVE_INIT @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base wave waveinit +source "${HOMEgfs}/ush/jjob_header.sh" -e "waveinit" -c "base wave waveinit" export COMPONENT="wave" diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNT b/jobs/JGLOBAL_WAVE_POST_BNDPNT index 57893784d8a..488471d2b64 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNT +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNT @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base wave wavepostsbs wavepostbndpnt +source "${HOMEgfs}/ush/jjob_header.sh" -e "wavepostbndpnt" -c "base wave wavepostsbs wavepostbndpnt" export COMPONENT="wave" diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL index ebd377a5217..3a7607a04fb 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base wave wavepostsbs wavepostbndpntbll +source "${HOMEgfs}/ush/jjob_header.sh" -e "wavepostbndpntbll" -c "base wave wavepostsbs wavepostbndpntbll" export COMPONENT="wave" diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index b07d22e36be..41d4b95ac28 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base wave wavepostsbs wavepostpnt +source "${HOMEgfs}/ush/jjob_header.sh" -e "wavepostpnt" -c "base wave wavepostsbs wavepostpnt" export COMPONENT="wave" diff --git a/jobs/JGLOBAL_WAVE_POST_SBS b/jobs/JGLOBAL_WAVE_POST_SBS index 4e2aa4f70d9..d656a1b9c7e 100755 --- a/jobs/JGLOBAL_WAVE_POST_SBS +++ b/jobs/JGLOBAL_WAVE_POST_SBS @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base wave wavepostsbs +source "${HOMEgfs}/ush/jjob_header.sh" -e "wavepostsbs" -c "base wave wavepostsbs" export COMPONENT="wave" diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS index 61c018a884d..d1bbc81e4f1 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS +++ b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base waveawipsbulls +source "${HOMEgfs}/ush/jjob_header.sh" -e "waveawipsbulls" -c "base waveawipsbulls" export COMPONENT="wave" diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED index b385c56990e..b3c5ce550d4 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +++ b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base waveawipsgridded +source "${HOMEgfs}/ush/jjob_header.sh" -e "waveawipsgridded" -c "base waveawipsgridded" export COMPONENT="wave" diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP index 86e0d02e881..1b059f38f40 100755 --- a/jobs/JGLOBAL_WAVE_PREP +++ b/jobs/JGLOBAL_WAVE_PREP @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" base wave waveprep +source "${HOMEgfs}/ush/jjob_header.sh" -e "waveprep" -c "base wave waveprep" export COMPONENT="wave" diff --git a/jobs/rocoto/awips.sh b/jobs/rocoto/awips.sh index 5318ae06cdc..7ba31e0dd10 100755 --- a/jobs/rocoto/awips.sh +++ b/jobs/rocoto/awips.sh @@ -25,7 +25,7 @@ export jobid="${job}.$$" # TODO (#1228) - This script is doing more than just calling a j-job # Also, this forces us to call the config files here instead of the j-job -source "${HOMEgfs}/ush/jjob_header.sh" base awips +source "${HOMEgfs}/ush/jjob_header.sh" -e "awips" -c "base awips" fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') diff --git a/jobs/rocoto/vrfy.sh b/jobs/rocoto/vrfy.sh index 46d1c9d1fb8..53806c66a22 100755 --- a/jobs/rocoto/vrfy.sh +++ b/jobs/rocoto/vrfy.sh @@ -13,7 +13,7 @@ export jobid="${job}.$$" # TODO (#235) - This job is calling multiple j-jobs and doing too much in general # Also, this forces us to call the config files here instead of the j-job -source "${HOMEgfs}/ush/jjob_header.sh" base vrfy +source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" ############################################################### export COMPONENT="atmos" diff --git a/ush/jjob_header.sh b/ush/jjob_header.sh index 93212a9c816..9786c9c2524 100644 --- a/ush/jjob_header.sh +++ b/ush/jjob_header.sh @@ -10,25 +10,57 @@ # - Sources machine environment script # - Defines a few other variables # -# The list of config files to source should be provided -# by providing the names as arguments, i.e. -# `jjob_header.sh base fcst` will source `config.base` -# and `config.fcst` from the $EXPDIR. +# The job name for the environment files should be passed +# in using the `-e` option (required). Any config files +# to be sourced should be passed in as an argument to +# the `-c` option. For example: +# ``` +# jjob_header.sh -e "fcst" -c "base fcst" +# ``` +# Will source `config.base` and `config.fcst`, then pass +# `fcst` to the ${machine}.env script. # # Script requires the following variables to already be # defined in the environment: # - $HOMEgfs -# - $DATAROOT +# - $DATAROOT (unless $DATA is overriden) # - $jobid # - $PDY # - $cyc # - $machine # +# Additionally, there are a couple of optional settings that +# can be set before calling the script: +# - $EXPDIR : Override the default $EXPDIR +# [default: ${HOMEgfs}/parm/config] +# - $DATA : Override the default $DATA location +# [default: ${DATAROOT}/${jobid}] +# - $WIPE_DATA : Set whether to delete any existing $DATA +# [default: "YES"] +# - $pid : Override the default process id +# [default: $$] +# -if (( $# < 1 )); then - echo "FATAL: Must specify a job name" +OPTIND=1 +while getopts "c:e:" option; do + case "${option}" in + c) configs=("${OPTARG}") ;; + e) env_job=${OPTARG} ;; + :) + echo "FATAL [${BASH_SOURCE[0]}]: ${option} requires an argument" + exit 1 + ;; + *) + echo "FATAL [${BASH_SOURCE[0]}]: Unrecognized option: ${option}" + exit 1 + ;; + esac +done +shift $((OPTIND-1)) + +if [[ -z ${env_job} ]]; then + echo "FATAL [${BASH_SOURCE[0]}]: Must specify a job name with -e" fi -configs=("$@") ############################################## # make temp directory @@ -38,7 +70,7 @@ if [[ ${WIPE_DATA:-YES} == "YES" ]]; then rm -rf "${DATA}" fi mkdir -p "${DATA}" -cd "${DATA}" || ( echo "FATAL: ${DATA} does not exist"; exit 1 ) +cd "${DATA}" || ( echo "FATAL [${BASH_SOURCE[0]}]: ${DATA} does not exist"; exit 1 ) ############################################## @@ -61,10 +93,11 @@ export pgmerr=errfile # Source relevant config files ############################# export EXPDIR="${EXPDIR:-${HOMEgfs}/parm/config}" -for config in "${configs[@]}"; do +for config in "${configs[@]:-''}"; do source "${EXPDIR}/config.${config}" status=$? if (( status != 0 )); then + echo "FATAL [${BASH_SOURCE[0]}]: Unable to load config config.${config}" exit "${status}" fi done @@ -73,8 +106,9 @@ done ########################################## # Source machine runtime environment ########################################## -source "${HOMEgfs}/env/${machine}.env" "${job}" +source "${HOMEgfs}/env/${machine}.env" "${env_job}" status=$? if (( status != 0 )); then + echo "FATAL [${BASH_SOURCE[0]}]: Error while sourcing machine environment ${machine}.env for job ${env_job}" exit "${status}" fi From 4e55e152fec8bb641f741250373e6170c4c40312 Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Thu, 12 Jan 2023 15:07:05 -0600 Subject: [PATCH 07/11] Remove ability to override $DATA for ocean analysis The ocean analysis jobs were accepting previous values of `$DATA` if it were set, which is not necessary. --- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST | 2 +- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP | 2 +- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST index f48da79b6b3..f050f197f4b 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST @@ -2,7 +2,7 @@ export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" WIPE_DATA="NO" -DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" +DATA="${DATAROOT}/${RUN}ocnanal_${cyc}" source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalpost" -c "base ocnanalpost" diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP index 815bc5c9db4..6f4c4f29c3f 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP @@ -1,7 +1,7 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" -DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" +DATA="${DATAROOT}/${RUN}ocnanal_${cyc}" source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalprep" -c "base ocnanal ocnanalprep" diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN index 973b543b872..4ad58366e61 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN @@ -2,7 +2,7 @@ export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" WIPE_DATA="NO" -DATA="${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}}" +DATA="${DATAROOT}/${RUN}ocnanal_${cyc}" source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalrun" -c "base ocnanal ocnanalrun" From cac3b2f90cdca9fdd9fe78f173d1f797a61bf044 Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Thu, 12 Jan 2023 15:16:57 -0600 Subject: [PATCH 08/11] Fix reading of config array in jjob header --- ush/jjob_header.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/jjob_header.sh b/ush/jjob_header.sh index 9786c9c2524..3ccc4ba4eab 100644 --- a/ush/jjob_header.sh +++ b/ush/jjob_header.sh @@ -44,7 +44,7 @@ OPTIND=1 while getopts "c:e:" option; do case "${option}" in - c) configs=("${OPTARG}") ;; + c) read -ra configs OPTARG ;; e) env_job=${OPTARG} ;; :) echo "FATAL [${BASH_SOURCE[0]}]: ${option} requires an argument" From 90a060b4b9c76815317f8ee8e9493b2ca200589f Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Thu, 12 Jan 2023 15:46:15 -0600 Subject: [PATCH 09/11] Fix reading in array of config files --- ush/jjob_header.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/jjob_header.sh b/ush/jjob_header.sh index 3ccc4ba4eab..440187fa6cc 100644 --- a/ush/jjob_header.sh +++ b/ush/jjob_header.sh @@ -44,7 +44,7 @@ OPTIND=1 while getopts "c:e:" option; do case "${option}" in - c) read -ra configs OPTARG ;; + c) read -ra configs <<< "${OPTARG}" ;; e) env_job=${OPTARG} ;; :) echo "FATAL [${BASH_SOURCE[0]}]: ${option} requires an argument" From 29ffd9a185443d64ff68a13816f88f8ab9a80366 Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Fri, 13 Jan 2023 01:08:41 -0600 Subject: [PATCH 10/11] Fix GLDAS cycle checking Previous commit moving the jjob_header after checking the cycle didn't work because variables from the config files are needed. Instead, moved the header back where it was and delete `$DATA` if we are aborting due to the cycle. --- jobs/JGDAS_ATMOS_GLDAS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jobs/JGDAS_ATMOS_GLDAS b/jobs/JGDAS_ATMOS_GLDAS index 96b6d05799e..dee6b4c9e35 100755 --- a/jobs/JGDAS_ATMOS_GLDAS +++ b/jobs/JGDAS_ATMOS_GLDAS @@ -1,9 +1,11 @@ #! /usr/bin/env bash source "${HOMEgfs:?}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" -e "gldas" -c "base gldas" if [[ "${cyc:?}" -ne "${gldas_cyc:?}" ]]; then echo "GLDAS only runs for ${gldas_cyc} cycle; Skip GLDAS step for cycle ${cyc}" + rm -Rf "${DATA}" exit 0 fi @@ -12,10 +14,10 @@ xtime=$((gldas_spinup_hours+12)) if [[ "${CDATE}" -le "$(${NDATE:?} +"${xtime}" "${SDATE:?}")" ]]; then echo "GLDAS needs fluxes as forcing from cycles in previous ${xtime} hours" echo "starting from ${SDATE}. This gldas cycle is skipped" + rm -Rf "${DATA}" exit 0 fi -source "${HOMEgfs}/ush/jjob_header.sh" -e "gldas" -c "base gldas" ############################################## # Set variables used in the exglobal script From ede2b0d44ae0898cc2f20ef52b0d998fb8e105c1 Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Fri, 13 Jan 2023 02:58:06 -0600 Subject: [PATCH 11/11] Add missing exit when job is not provided to header There was no non-zero exit in the jjob header after printing the fatal error message when the job name for the environment file is not provided with `-e`. --- ush/jjob_header.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ush/jjob_header.sh b/ush/jjob_header.sh index 440187fa6cc..45fa6402ae6 100644 --- a/ush/jjob_header.sh +++ b/ush/jjob_header.sh @@ -60,6 +60,7 @@ shift $((OPTIND-1)) if [[ -z ${env_job} ]]; then echo "FATAL [${BASH_SOURCE[0]}]: Must specify a job name with -e" + exit 1 fi ##############################################