diff --git a/env/HERA.env b/env/HERA.env index d61c738cd0..b025012cc3 100755 --- a/env/HERA.env +++ b/env/HERA.env @@ -292,6 +292,8 @@ elif [[ "${step}" = "awips" ]]; then elif [[ "${step}" = "gempak" ]]; then + export CFP_MP="YES" + nth_max=$((npe_node_max / npe_node_gempak)) export NTHREADS_GEMPAK=${nth_gempak:-1} diff --git a/env/ORION.env b/env/ORION.env index a05d1bcec0..7bccff576a 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -290,6 +290,8 @@ elif [[ "${step}" = "awips" ]]; then elif [[ "${step}" = "gempak" ]]; then + export CFP_MP="YES" + nth_max=$((npe_node_max / npe_node_gempak)) export NTHREADS_GEMPAK=${nth_gempak:-1} diff --git a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG index 0922286f86..f25da9b488 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" -e "anal" -c "base anal analdiag" ############################################## diff --git a/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/jobs/JGDAS_ATMOS_CHGRES_FORENKF index 9bd0314e8b..b1572e98cb 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" -e "anal" -c "base anal echgres" ############################################## diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK index b674bd7ec7..bec9c80867 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" -e "gempak" -c "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 22e52ea9fb..beadb7ccf8 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" -e "gempak_meta" -c "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 a2058d3a5b..dee6b4c9e3 100755 --- a/jobs/JGDAS_ATMOS_GLDAS +++ b/jobs/JGDAS_ATMOS_GLDAS @@ -1,45 +1,11 @@ #! /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" -e "gldas" -c "base gldas" if [[ "${cyc:?}" -ne "${gldas_cyc:?}" ]]; then echo "GLDAS only runs for ${gldas_cyc} cycle; Skip GLDAS step for cycle ${cyc}" + rm -Rf "${DATA}" exit 0 fi @@ -48,18 +14,10 @@ xtime=$((gldas_spinup_hours+12)) if [[ "${CDATE}" -le "$(${NDATE:?} +"${xtime}" "${SDATE:?}")" ]]; then echo "GLDAS needs fluxes as forcing from cycles in previous ${xtime} hours" echo "starting from ${SDATE}. This gldas cycle is skipped" + rm -Rf "${DATA}" exit 0 fi -########################################## -# Source 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 6f68dcd74c..e16cb6d548 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" -e "vrfy" -c "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 207c80415b..300e6eff1a 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" -e "vrfy" -c "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 0077755aa2..67f50f5c1c 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" -e "vrfy" -c "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 1988bd76b6..e5131c4c67 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" -e "earc" -c "base earc" ############################################## diff --git a/jobs/JGDAS_ENKF_DIAG b/jobs/JGDAS_ENKF_DIAG index 183b74068c..a9d65823c1 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" -e "eobs" -c "base anal eobs analdiag ediag" ############################################## diff --git a/jobs/JGDAS_ENKF_ECEN b/jobs/JGDAS_ENKF_ECEN index de527cbce4..bf33ecc3f6 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" -e "ecen" -c "base ecen" ############################################## diff --git a/jobs/JGDAS_ENKF_FCST b/jobs/JGDAS_ENKF_FCST index b8ba97bd36..68e9ec6925 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" -e "efcs" -c "base fcst efcs" ############################################## diff --git a/jobs/JGDAS_ENKF_POST b/jobs/JGDAS_ENKF_POST index 8caa9d893e..57e94f37f9 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" -e "epos" -c "base epos" ############################################## diff --git a/jobs/JGDAS_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS index 092c467d9a..7995a68093 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" -e "eobs" -c "base anal eobs" ############################################## diff --git a/jobs/JGDAS_ENKF_SFC b/jobs/JGDAS_ENKF_SFC index 634cfa49ea..06c2c32391 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" -e "esfc" -c "base esfc" ############################################## diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index 11122398d8..ae3ddb0145 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" -e "eupd" -c "base anal eupd" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST index 56e0c4ade9..49dcd5f21c 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" -e "atmanalpost" -c "base atmanal atmanalpost" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP index 259d2eab0c..9a21d032e2 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" -e "atmanalprep" -c "base atmanal atmanalprep" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN index 62e02a6dd0..32722f4ba3 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" -e "atmanalrun" -c "base atmanal atmanalrun" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST index 4d546f3b06..6022cc548a 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" -e "atmensanalpost" -c "base atmensanal atmensanalpost" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP index 6b5204564e..48b4a5b99b 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" -e "atmensanalprep" -c "base atmensanal atmensanalprep" ############################################## diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN index bb7d42f670..2afbc9028e 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" -e "atmensanalrun" -c "base atmensanal atmensanalrun" ############################################## diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST index a3039553bf..f050f197f4 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_POST @@ -1,41 +1,18 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" +WIPE_DATA="NO" +DATA="${DATAROOT}/${RUN}ocnanal_${cyc}" +source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalpost" -c "base ocnanalpost" -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}} -mkdir -p "${DATA}" -cd "${DATA}" || (echo "${DATA} does not exist. ABORT!"; exit 1) +############################################################### +# Run relevant script +############################################################### -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY +# TODO (#982) -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base ocnanalpost" -for config in ${configs}; do - . "${EXPDIR}/config.${config}" - status=$? - [[ "${status}" -ne 0 ]] && exit "${status}" -done ########################################## # Remove the Temporary working directory diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP index f5b4233594..6f4c4f29c3 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP @@ -1,50 +1,8 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}} -rm -rf "${DATA}" # Ensure starting with a clean DATA -mkdir -p "${DATA}" -cd "${DATA}" || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base ocnanal ocnanalprep" -for config in ${configs}; do - . "${EXPDIR}/config.${config}" - status=$? - [[ ${status} -ne 0 ]] && exit "${status}" -done - - -########################################## -# Source machine runtime environment -########################################## -. "${HOMEgfs}/env/${machine}.env" ocnanalprep -status=$? -[[ ${status} -ne 0 ]] && exit "${status}" +DATA="${DATAROOT}/${RUN}ocnanal_${cyc}" +source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalprep" -c "base ocnanal ocnanalprep" ############################################## diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN index ca692acf64..4ad58366e6 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_RUN @@ -1,50 +1,9 @@ #!/bin/bash export STRICT="NO" source "${HOMEgfs}/ush/preamble.sh" - - -############################################## -# make temp directory -############################################## -export DATA=${DATA:-${DATAROOT}/${RUN}ocnanal_${cyc}} -mkdir -p "${DATA}" -cd "${DATA}" || (echo "${DATA} does not exist. ABORT!"; exit 1) - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pid=${pid:-$$} -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base ocnanal ocnanalrun" -for config in ${configs}; do - . "${EXPDIR}/config.${config}" - status=$? - [[ ${status} -ne 0 ]] && exit "${status}" -done - - -########################################## -# Source machine runtime environment -########################################## -. "${HOMEgfs}/env/${machine}.env" ocnanalrun -status=$? -[[ ${status} -ne 0 ]] && exit "${status}" +WIPE_DATA="NO" +DATA="${DATAROOT}/${RUN}ocnanal_${cyc}" +source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalrun" -c "base ocnanal ocnanalrun" ############################################## diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index 3ccba8ca0e..ef4d4f8199 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" -e "awips" -c "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 57d04f8a73..ee823c9ada 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" -e "awips" -c "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 3233dec92d..bf674fccde 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" -e "vrfy" -c "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 922ae086fd..7734e4ea66 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" -e "vrfy" -c "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 69532e5863..f4b94442e8 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" -e "fbwind" -c "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 1f18cfff99..e5fd5ff3c3 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" -e "vrfy" -c "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 8e8b27dbb8..2d822e53ce 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" -e "gempak" -c "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" @@ -139,9 +104,11 @@ echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_atl 180 GFS_GEMPAK_WWB &> ${DAT echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs40 180 GFS_GEMPAK_WWB &> ${DATA}/gfs40.$$.1 " >>poescript echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs40 180 GFS_GEMPAK_WWB &> ${DATA}/gfs40.$$.2 " >>poescript -# Add task number to the MPMD script -nl -n ln -v 0 poescript > poescript.new -mv poescript.new poescript +if [[ ${CFP_MP:-"NO"} == "YES" ]]; then + # Add task number to the MPMD script + nl -n ln -v 0 poescript > poescript.new + mv poescript.new poescript +fi cat poescript @@ -149,7 +116,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 0a903aa140..0a9f5bdd90 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" -e "gempak_meta" -e "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 2cb0069a1e..cc9d445965 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" -e "gempak_gif" -c "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 f4284ff35a..a1c2518a44 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" -e "gempak_spec" -c "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} ################################################################# @@ -125,6 +109,6 @@ fi # Remove temp directories ################################### if [ "${KEEPDATA}" != "YES" ] ; then - rm -rf ${DATA} + rm -rf "${DATA}" fi diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index 76937f40f6..8bb39c0532 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" -e "npoess" -c "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 2c3363e1b0..d5aa921e69 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" -e "postsnd" -c "base postsnd" ############################################## diff --git a/jobs/JGFS_ATMOS_VMINMON b/jobs/JGFS_ATMOS_VMINMON index bd996ce01d..01f2d3516c 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" -e "vrfy" -c "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 21b20e1273..801998e2c2 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" -e "arch" -c "base arch" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS index cfc0398949..b4ceff8372 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" -e "anal" -c "base anal" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index a30737d332..f9c703c7f0 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" -e "analcalc" -c "base anal analcalc" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP index c2730b8464..fdaca08240 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" -e "sfc_prep" -c "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 534eb62872..1c6af31f91 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" -e "post" -c "base post" #################################### diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER index 6a9bde08cf..1d82537dca 100755 --- a/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -1,53 +1,9 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" - -#################################### -# make temp directories -#################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p ${DATA} -cd ${DATA} +# TODO (#1227) This job is not used in the rocoto suite - -########################################### -# Run setpdy and initialize PDY variables -########################################### -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -#################################### -# Determine Job Output Name on System -#################################### -export pid=${pid:-$$} -export jobid="${outid}.o${pid}" -export pgmout="OUTPUT.${pid}" - - -######################################## -# GFS post manager -######################################## - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -configs="base post" -for config in ${configs}; do - . ${EXPDIR}/config.${config} - status=$? - [[ ${status} -ne 0 ]] && exit ${status} -done - - -########################################## -# Source machine runtime environment -########################################## -. ${HOMEgfs}/env/${machine}.env post -status=$? -[[ ${status} -ne 0 ]] && exit ${status} +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" -e "post" -c "base post" #################################### diff --git a/jobs/JGLOBAL_ATMOS_SFCANL b/jobs/JGLOBAL_ATMOS_SFCANL index 42e5a88272..151fd3d272 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" -e "sfcanl" -c "base sfcanl" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC index 7aa3e5111e..9a70cb968e 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" -e "prep" -c "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 e272e449fa..9027512761 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" -e "fcst" -c "base fcst" ############################################## # Set variables used in the script diff --git a/jobs/JGLOBAL_WAVE_GEMPAK b/jobs/JGLOBAL_WAVE_GEMPAK index 76cc44ec1a..f57324607e 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" -e "wavegempak" -c "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 80726f2918..d1b0037bf0 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" -e "waveinit" -c "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 00c87870bb..488471d2b6 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" -e "wavepostbndpnt" -c "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 863a741438..3a7607a04f 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" -e "wavepostbndpntbll" -c "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 dd35efd15f..41d4b95ac2 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" -e "wavepostpnt" -c "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 dc847f7e46..d656a1b9c7 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" -e "wavepostsbs" -c "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 d52a85ce46..d1bbc81e4f 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" -e "waveawipsbulls" -c "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 5374d31648..b3c5ce550d 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" -e "waveawipsgridded" -c "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 ddc68cde3b..1b059f38f4 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" -e "waveprep" -c "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 d700494ab2..7ba31e0dd1 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" -e "awips" -c "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 8a98974615..744956b1ff 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 21c8e0019e..d1f890a930 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 9f1ed4bc91..14950535c8 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 bc7da5709a..1de899b7ba 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 aef08ec90e..53806c66a2 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" -e "vrfy" -c "base vrfy" ############################################################### export COMPONENT="atmos" diff --git a/jobs/rocoto/waveawipsbulls.sh b/jobs/rocoto/waveawipsbulls.sh index 1e1e1cd4e2..4b6d6e1e82 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 3627ba62c4..c10f2f39fd 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 d4cf1667fc..325762a19b 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 fa61d31eec..e4bea0bc34 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 0000000000..45fa6402ae --- /dev/null +++ b/ush/jjob_header.sh @@ -0,0 +1,115 @@ +#! /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 after removing any +# existing one unless $WIPE_DATA is set to "NO" +# - Runs `setpdy.sh` +# - Sources configs provided as arguments +# - Sources machine environment script +# - Defines a few other variables +# +# The job name for the environment files should be passed +# in using the `-e` option (required). Any config files +# to be sourced should be passed in as an argument to +# the `-c` option. For example: +# ``` +# jjob_header.sh -e "fcst" -c "base fcst" +# ``` +# Will source `config.base` and `config.fcst`, then pass +# `fcst` to the ${machine}.env script. +# +# Script requires the following variables to already be +# defined in the environment: +# - $HOMEgfs +# - $DATAROOT (unless $DATA is overriden) +# - $jobid +# - $PDY +# - $cyc +# - $machine +# +# Additionally, there are a couple of optional settings that +# can be set before calling the script: +# - $EXPDIR : Override the default $EXPDIR +# [default: ${HOMEgfs}/parm/config] +# - $DATA : Override the default $DATA location +# [default: ${DATAROOT}/${jobid}] +# - $WIPE_DATA : Set whether to delete any existing $DATA +# [default: "YES"] +# - $pid : Override the default process id +# [default: $$] +# + +OPTIND=1 +while getopts "c:e:" option; do + case "${option}" in + c) read -ra configs <<< "${OPTARG}" ;; + e) env_job=${OPTARG} ;; + :) + echo "FATAL [${BASH_SOURCE[0]}]: ${option} requires an argument" + exit 1 + ;; + *) + echo "FATAL [${BASH_SOURCE[0]}]: Unrecognized option: ${option}" + exit 1 + ;; + esac +done +shift $((OPTIND-1)) + +if [[ -z ${env_job} ]]; then + echo "FATAL [${BASH_SOURCE[0]}]: Must specify a job name with -e" + exit 1 +fi + +############################################## +# make temp directory +############################################## +export DATA=${DATA:-"${DATAROOT}/${jobid}"} +if [[ ${WIPE_DATA:-YES} == "YES" ]]; then + rm -rf "${DATA}" +fi +mkdir -p "${DATA}" +cd "${DATA}" || ( echo "FATAL [${BASH_SOURCE[0]}]: ${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 + echo "FATAL [${BASH_SOURCE[0]}]: Unable to load config config.${config}" + exit "${status}" + fi +done + + +########################################## +# Source machine runtime environment +########################################## +source "${HOMEgfs}/env/${machine}.env" "${env_job}" +status=$? +if (( status != 0 )); then + echo "FATAL [${BASH_SOURCE[0]}]: Error while sourcing machine environment ${machine}.env for job ${env_job}" + exit "${status}" +fi