From 85bd48cd29a27d7acb317b54c5b80ef249ffb3ef Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Thu, 5 Jan 2023 23:39:41 -0600 Subject: [PATCH] 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 | 52 ++---------------- 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(+), 2318 deletions(-) create mode 100644 ush/jjob_header.sh diff --git a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG index 11fc1553c22..b52455e8162 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 f3848e544d8..396a91388ab 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 996daf12ded..7041ca78b62 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 b144a72bb37..92337676865 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 d3d4f8fe7e9..b2555d10027 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 e5d949577b6..162c32f55cd 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 02d2741d167..e6860dff2d9 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 b0b149080fd..5bb10be49d1 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 85313002a63..a69496ff258 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 e97016b630b..bc8cc9c8be4 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 f4c4cc60e7e..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}/ocnanal_${CDATE}} # TODO (G): Switch to {cyc} when the downstream code is ready -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 88a540a62c7..36eabbe7df6 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}/ocnanal_${CDATE}} # TODO (G): Switch to {cyc} when the downstream code is ready -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 65232697ffa..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}/ocnanal_${CDATE}} # TODO (G): Switch to {cyc} when the downstream code is ready -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 a557fd81a5b..dd1e710ec26 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 97dfd8079ba..cf72eb77404 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 c0327a83118..f93c2ca20ac 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 88aca2896f1..43a6c38b56b 100755 --- a/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -1,60 +1,14 @@ #! /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 #################################### # Specify NET and RUN Name and model #################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} export COMPONENT="atmos" diff --git a/jobs/JGLOBAL_ATMOS_SFCANL b/jobs/JGLOBAL_ATMOS_SFCANL index c574f9d0e3d..1dd44eac74e 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