diff --git a/env/HERA.env b/env/HERA.env index b3049c4032..0b46505554 100755 --- a/env/HERA.env +++ b/env/HERA.env @@ -33,10 +33,6 @@ export NTHSTACK=1024000000 ulimit -s unlimited ulimit -a -export job=${PBS_JOBNAME:-${step}} -export jobid=${job}.${PBS_JOBID:-$$} - - if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then nth_max=$((npe_node_max / npe_node_prep)) diff --git a/env/JET.env b/env/JET.env index 19ab4b341a..c04535dad7 100755 --- a/env/JET.env +++ b/env/JET.env @@ -29,9 +29,6 @@ export NTHSTACK=1024000000 ulimit -s unlimited ulimit -a -export job=${PBS_JOBNAME:-${step}} -export jobid=${job}.${PBS_JOBID:-$$} - if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then nth_max=$((npe_node_max / npe_node_prep)) diff --git a/env/ORION.env b/env/ORION.env index 2ccbe271da..46c7eb31a6 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -33,9 +33,6 @@ export NTHSTACK=1024000000 ulimit -s unlimited ulimit -a -export job=${PBS_JOBNAME:-${step}} -export jobid=${job}.${PBS_JOBID:-$$} - if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then nth_max=$((npe_node_max / npe_node_prep)) diff --git a/env/S4.env b/env/S4.env index 125e98b0da..a4a156dd19 100755 --- a/env/S4.env +++ b/env/S4.env @@ -1,4 +1,4 @@ -#!/bin/bash -x +#!/usr/bin/env bash if [[ $# -ne 1 ]]; then @@ -30,10 +30,6 @@ export NTHSTACK=1024000000 ulimit -s unlimited ulimit -a -export job=${PBS_JOBNAME:-${step}} -export jobid=${job}.${PBS_JOBID:-$$} - - if [[ ${step} = "prep" || ${step} = "prepbufr" ]]; then npe_node_prep=${npe_node_prep:-${npe_node_max}} diff --git a/env/WCOSS2.env b/env/WCOSS2.env index 079ed6bcfe..a6dfa462ef 100755 --- a/env/WCOSS2.env +++ b/env/WCOSS2.env @@ -21,9 +21,6 @@ export mpmd_opt="--cpu-bind verbose,core cfp" export npe_node_max=128 -export job=${PBS_JOBNAME:-${step}} -export jobid=${job}.${PBS_JOBID:-$$} - if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then nth_max=$((npe_node_max / npe_node_prep)) diff --git a/jobs/JENKFGDAS_ARCHIVE b/jobs/JENKFGDAS_ARCHIVE index cf38ede54f..305dbe005b 100755 --- a/jobs/JENKFGDAS_ARCHIVE +++ b/jobs/JENKFGDAS_ARCHIVE @@ -7,9 +7,8 @@ source "${HOMEgfs}/ush/preamble.sh" ############################# export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base earc" -config_path=${EXPDIR:-${PACKAGEROOT}/gfs.${gfs_ver}/parm/config} for config in ${configs}; do - . "${config_path}"/config."${config}" + . "${EXPDIR}"/config."${config}" status=$? [[ ${status} -ne 0 ]] && exit "${status}" done @@ -17,7 +16,7 @@ done ########################################## # Source machine runtime environment ########################################## -. "${HOMEgfs}"/env/"${machine}".env earc +. ${HOMEgfs}/env/${machine}.env earc status=$? [[ ${status} -ne 0 ]] && exit "${status}" @@ -50,13 +49,13 @@ export pgmerr=errfile ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################################### # Run archive script ############################################################### -"${SCRgfs}"/exgdas_enkf_earc.sh +${SCRgfs}/exgdas_enkf_earc.sh status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG index 9dfff86867..11fc1553c2 100755 --- a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +++ b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG @@ -1,39 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal analdiag" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -47,62 +21,83 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} -export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} +export COMPONENT="atmos" +export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} ############################################## # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" fi -mkdir -m 775 -p $COMOUT +mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" -export ATMGES="$COMIN_GES/${GPREFIX}atmf006${GSUFFIX}" -if [ ! -f $ATMGES ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES = $ATMGES" +export ATMGES="${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}" +if [ ! -f ${ATMGES} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES = ${ATMGES}" exit 1 fi -if [ $DOHYBVAR = "YES" ]; then - export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006.ensmean$GSUFFIX" - if [ ! -f $ATMGES_ENSMEAN ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = $ATMGES_ENSMEAN" +if [ ${DOHYBVAR} = "YES" ]; then + export ATMGES_ENSMEAN="${COMIN_GES_ENS}/${GPREFIX}atmf006.ensmean${GSUFFIX}" + if [ ! -f ${ATMGES_ENSMEAN} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = ${ATMGES_ENSMEAN}" exit 2 fi fi @@ -110,9 +105,9 @@ fi ############################################################### # Run relevant script -${ANALDIAGSH:-$SCRgfs/exglobal_diag.sh} +${ANALDIAGSH:-${SCRgfs}/exglobal_diag.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -122,15 +117,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/jobs/JGDAS_ATMOS_CHGRES_FORENKF index d8ff0686d0..f3848e544d 100755 --- a/jobs/JGDAS_ATMOS_CHGRES_FORENKF +++ b/jobs/JGDAS_ATMOS_CHGRES_FORENKF @@ -1,39 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal echgres" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -47,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} @@ -64,40 +59,40 @@ export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMOUT_ENS=${COMOUT_ENS:-$ROTDIR/enkfgdas.$PDY/$cyc/$COMPONENT} - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMOUT_ENS=${COMOUT_ENS:-${ROTDIR}/enkfgdas.${PDY}/${cyc}/${COMPONENT}} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMOUT_ENS="$ROTDIR/enkfgdas.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMOUT_ENS="${ROTDIR}/enkfgdas.${PDY}/${cyc}/${COMPONENT}" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" fi -mkdir -m 775 -p $COMOUT +mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" ############################################################### # Run relevant script -${CHGRESFCSTSH:-$SCRgfs/exgdas_atmos_chgres_forenkf.sh} +${CHGRESFCSTSH:-${SCRgfs}/exgdas_atmos_chgres_forenkf.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -107,15 +102,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK index 2655b34069..b674bd7ec7 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK +++ b/jobs/JGDAS_ATMOS_GEMPAK @@ -1,53 +1,53 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -############################################ -# GDAS GEMPAK PRODUCT GENERATION -############################################ -configs="base gempak" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -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 +source "${HOMEgfs}/ush/preamble.sh" ########################################################## -# obtain unique process id (pid) and make temp directory +# make temp directory ########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} +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} + ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} +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} +export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} +export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix} +export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} +export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} +export UTILgfs=${UTILgfs:-${HOMEgfs}/util} ############################################ # Set up model and cycle specific variables @@ -70,64 +70,63 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} export NET=${NET:-gfs} export RUN=${RUN:-gdas} export model=${model:-gdas} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Define COM directories ############################################## -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 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} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} fi -export pgmout=OUTPUT.$$ - -if [ -f $DATA/poescrip ]; then - rm $DATA/poescript +# TODO: These actions belong in an ex-script not a j-job +if [ -f ${DATA}/poescript ]; then + rm ${DATA}/poescript fi ######################################################## # Execute the script. -echo "$SRCgfs/exgdas_atmos_nawips.sh gdas 009 GDAS_GEMPAK " >> poescript +echo "${SRCgfs}/exgdas_atmos_nawips.sh gdas 009 GDAS_GEMPAK " >> poescript ######################################################## ######################################################## # Execute the script for quater-degree grib -echo "$SRCgfs/exgdas_atmos_nawips.sh gdas_0p25 009 GDAS_GEMPAK " >>poescript +echo "${SRCgfs}/exgdas_atmos_nawips.sh gdas_0p25 009 GDAS_GEMPAK " >>poescript ######################################################## cat poescript -chmod 775 $DATA/poescript +chmod 775 ${DATA}/poescript export MP_PGMMODEL=mpmd -export MP_CMDFILE=$DATA/poescript +export MP_CMDFILE=${DATA}/poescript -ntasks=${NTASKS_GEMPAK:-$(cat $DATA/poescript | wc -l)} +ntasks=${NTASKS_GEMPAK:-$(cat ${DATA}/poescript | wc -l)} ptile=${PTILE_GEMPAK:-4} threads=${NTHREADS_GEMPAK:-1} -export OMP_NUM_THREADS=$threads -APRUN="mpiexec -l -np $ntasks --cpu-bind verbose,core cfp" +export OMP_NUM_THREADS=${threads} +APRUN="mpiexec -l -np ${ntasks} --cpu-bind verbose,core cfp" -APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-$APRUN} -APRUNCFP=$(eval echo $APRUN_GEMPAKCFP) +APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-${APRUN}} +APRUNCFP=$(eval echo ${APRUN_GEMPAKCFP}) -$APRUNCFP $DATA/poescript +${APRUNCFP} ${DATA}/poescript export err=$?; err_chk ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index 367f0a0c83..22e52ea9fb 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -1,54 +1,54 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################ # GDAS GEMPAK META NCDC PRODUCT GENERATION ############################################ ########################################################## -# obtain unique process id (pid) and make temp directory +# make temp directory ########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} +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 + ################################ # Set up the HOME directory ################################ export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} +export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} +export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} +export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} +export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} +export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix} +export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} +export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} +export UTILgfs=${UTILgfs:-${HOMEgfs}/util} # # Now set up GEMPAK/NTRANS environment # -cp $FIXgempak/datatype.tbl datatype.tbl +cp ${FIXgempak}/datatype.tbl datatype.tbl ################################### # Specify NET and RUN Name and model #################################### export NET=${NET:-gfs} export RUN=${RUN:-gdas} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" export MODEL=GDAS export GRID_NAME=gdas export fend=09 @@ -67,10 +67,10 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}/gempak} export COMINgdas=${COMINgdas:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}} -export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak/meta} -export COMOUTncdc=${COMOUTncdc:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/${COMPONENT}/gempak/meta} +export COMOUTncdc=${COMOUTncdc:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/${COMPONENT}} export COMINukmet=${COMINukmet:-$(compath.py ${envir}/ukmet/${ukmet_ver})/ukmet} export COMINecmwf=${COMINecmwf:-$(compath.py ${envir}/ecmwf/${ecmwf_ver})/ecmwf} @@ -78,8 +78,8 @@ export COMINecmwf=${COMINecmwf:-$(compath.py ${envir}/ecmwf/${ecmwf_ver})/ecmwf} export COMOUTukmet=${COMOUT} export COMOUTecmwf=${COMOUT} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} ${COMOUTncdc} ${COMOUTukmet} ${COMOUTecmwf} fi export pgmout=OUTPUT.$$ @@ -87,10 +87,10 @@ export pgmout=OUTPUT.$$ ######################################################## # Execute the script. -$USHgempak/gdas_meta_na.sh -$USHgempak/gdas_ecmwf_meta_ver.sh -$USHgempak/gdas_meta_loop.sh -$USHgempak/gdas_ukmet_meta_ver.sh +${USHgempak}/gdas_meta_na.sh +${USHgempak}/gdas_ecmwf_meta_ver.sh +${USHgempak}/gdas_meta_loop.sh +${USHgempak}/gdas_ukmet_meta_ver.sh export err=$?; err_chk ######################################################## @@ -100,21 +100,21 @@ export err=$?; err_chk ######################################################## # Execute the script. -$SRCgfs/exgdas_atmos_gempak_gif_ncdc.sh +${SRCgfs}/exgdas_atmos_gempak_gif_ncdc.sh export err=$?; err_chk ######################################################## ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGDAS_ATMOS_GLDAS b/jobs/JGDAS_ATMOS_GLDAS index 61e055a66d..996daf12de 100755 --- a/jobs/JGDAS_ATMOS_GLDAS +++ b/jobs/JGDAS_ATMOS_GLDAS @@ -2,18 +2,37 @@ source "${HOMEgfs:?}/ush/preamble.sh" -export RUN_ENVIR=${RUN_ENVIR:-"nco"} +############################################## +# 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" -config_path=${EXPDIR:-${NWROOT}/gfs.${gfs_ver}/parm/config} for config in ${configs}; do - # shellcheck disable=SC1090-SC1091 - . "${config_path}/config.${config}" - # shellcheck disable= + . ${EXPDIR}/config.${config} status=$? [[ ${status} -ne 0 ]] && exit "${status}" done @@ -42,40 +61,12 @@ status=$? [[ ${status} -ne 0 ]] && exit "${status}" -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL${job}"} - -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 -# shellcheck disable=SC1091 -. ./PDY -# shellcheck disable= - - -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - ############################################## # Set variables used in the exglobal script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## diff --git a/jobs/JGDAS_ATMOS_VERFOZN b/jobs/JGDAS_ATMOS_VERFOZN index aa1454440d..6f68dcd74c 100755 --- a/jobs/JGDAS_ATMOS_VERFOZN +++ b/jobs/JGDAS_ATMOS_VERFOZN @@ -3,49 +3,54 @@ ############################################################# # Set up environment for GDAS Ozone Monitor job ############################################################# -source "$HOMEgfs/ush/preamble.sh" - -############################### -# Specify NET, RUN, and COMPONENT name -############################## -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export COMPONENT=${COMPONENT:-atmos} +source "${HOMEgfs}/ush/preamble.sh" ########################################################### -# obtain unique process id (pid) and make temp directories +# make temp directories ########################################################### -export pid=$$ -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} - -export OZNMON_SUFFIX=${OZNMON_SUFFIX:-${NET}} - +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 -export cycle=t${cyc}z +############################### +# Specify NET, RUN, and COMPONENT name +############################## +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export COMPONENT="atmos" + +export OZNMON_SUFFIX=${OZNMON_SUFFIX:-${NET}} + #--------------------------------------------- # Specify Execution Areas # export HOMEgfs_ozn=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} export HOMEgdas_ozn=${HOMEgfs_ozn:-${NWROOT}/gfs.${gfs_ver}} -export PARMgdas_ozn=${PARMgfs_ozn:-$HOMEgfs_ozn/parm/mon} -export SCRgdas_ozn=${SCRgfs_ozn:-$HOMEgfs_ozn/scripts} -export FIXgdas_ozn=${FIXgfs_ozn:-$HOMEgfs_ozn/fix/gdas} +export PARMgdas_ozn=${PARMgfs_ozn:-${HOMEgfs_ozn}/parm/mon} +export SCRgdas_ozn=${SCRgfs_ozn:-${HOMEgfs_ozn}/scripts} +export FIXgdas_ozn=${FIXgfs_ozn:-${HOMEgfs_ozn}/fix/gdas} export HOMEoznmon=${HOMEoznmon:-${HOMEgfs_ozn}} -export EXECoznmon=${EXECoznmon:-$HOMEoznmon/exec} +export EXECoznmon=${EXECoznmon:-${HOMEoznmon}/exec} export FIXoznmon=${FIXoznmon:-${HOMEoznmon}/fix} -export USHoznmon=${USHoznmon:-$HOMEoznmon/ush} +export USHoznmon=${USHoznmon:-${HOMEoznmon}/ush} #----------------------------------- @@ -76,7 +81,7 @@ export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}/${COMPONENT}} if [[ ! -d ${TANKverf_ozn} ]]; then mkdir -p -m 775 ${TANKverf_ozn} fi - + #--------------------------------------- # set up validation file # @@ -88,7 +93,7 @@ fi # Set necessary environment variables # export OZN_AREA=${OZN_AREA:-glb} -export oznstat=${oznstat:-$COMIN/gdas.t${cyc}z.oznstat} +export oznstat=${oznstat:-${COMIN}/gdas.t${cyc}z.oznstat} #------------------------------------------------------- @@ -96,15 +101,16 @@ export oznstat=${oznstat:-$COMIN/gdas.t${cyc}z.oznstat} # ${OZNMONSH:-${SCRgdas_ozn}/exgdas_atmos_verfozn.sh} ${PDY} ${cyc} err=$? -[[ $err -ne 0 ]] && exit $err +[[ ${err} -ne 0 ]] && exit ${err} ################################ # Remove the Working Directory ################################ -KEEPDATA=${KEEPDATA:-YES} -cd $DATAROOT +KEEPDATA=${KEEPDATA:-NO} +cd ${DATAROOT} if [ ${KEEPDATA} = NO ] ; then - rm -rf $DATA + rm -rf ${DATA} fi +exit 0 diff --git a/jobs/JGDAS_ATMOS_VERFRAD b/jobs/JGDAS_ATMOS_VERFRAD index accf9f88f8..207c80415b 100755 --- a/jobs/JGDAS_ATMOS_VERFRAD +++ b/jobs/JGDAS_ATMOS_VERFRAD @@ -3,48 +3,60 @@ ############################################################# # Set up environment for GDAS Radiance Monitor job ############################################################# -source "$HOMEgfs/ush/preamble.sh" +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 + ############################### # Specify NET, RUN, and COMPONENT name ############################## export NET=${NET:-gfs} export RUN=${RUN:-gdas} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" -########################################################### -# obtain unique process id (pid) and make temp directories -########################################################### -export pid=$$ -export outid=${outid:-"LL$job"} -export RAD_DATA_IN=${RAD_DATA_IN:-${DATAROOT}/${jobid:?}} +export RAD_DATA_IN=${DATA} export RADMON_SUFFIX=${RADMON_SUFFIX:-${RUN}} export CYCLE_INTERVAL=${CYCLE_INTERVAL:-6} -mkdir -p $RAD_DATA_IN -cd $RAD_DATA_IN - -#################################### -# Determine Job Output Name on System -#################################### -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile -export cycle=t${cyc}z +mkdir -p ${RAD_DATA_IN} +cd ${RAD_DATA_IN} ############################################## # Specify Execution Areas ############################################## export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export SCRgfs=${SCRgfs:-$HOMEgfs/scripts} +export SCRgfs=${SCRgfs:-${HOMEgfs}/scripts} -export FIXgdas=${FIXgdas:-$HOMEgfs/fix/gdas} -export PARMmon=${PARMmon:-$HOMEgfs/parm/mon} +export FIXgdas=${FIXgdas:-${HOMEgfs}/fix/gdas} +export PARMmon=${PARMmon:-${HOMEgfs}/parm/mon} export HOMEradmon=${HOMEradmon:-${HOMEgfs}} -export EXECradmon=${EXECradmon:-$HOMEradmon/exec} +export EXECradmon=${EXECradmon:-${HOMEradmon}/exec} export FIXradmon=${FIXradmon:-${FIXgfs}} -export USHradmon=${USHradmon:-$HOMEradmon/ush} +export USHradmon=${USHradmon:-${HOMEradmon}/ush} ################################### @@ -54,14 +66,6 @@ parm_file=${parm_file:-${PARMmon}/da_mon.parm} . ${parm_file} -############################################# -# Run setpdy and initialize PDY variables -############################################# -if [[ $MY_MACHINE != "HERA" && $MY_MACHINE != "hera" ]]; then - setpdy.sh - . ./PDY -fi - ############################################# # determine PDY and cyc for previous cycle ############################################# @@ -77,30 +81,30 @@ export p_cyc=$(echo ${cdate} | cut -c9-10) # TANKverf - WHERE OUTPUT DATA WILL RESIDE ############################################# export TANKverf=${TANKverf:-$(compath.py ${envir}/${NET}/${gfs_ver})} -export TANKverf_rad=${TANKverf_rad:-${TANKverf}/${RUN}.${PDY}/${cyc}/$COMPONENT/radmon} -export TANKverf_radM1=${TANKverf_radM1:-${TANKverf}/${RUN}.${P_PDY}/${p_cyc}/$COMPONENT/radmon} +export TANKverf_rad=${TANKverf_rad:-${TANKverf}/${RUN}.${PDY}/${cyc}/${COMPONENT}/radmon} +export TANKverf_radM1=${TANKverf_radM1:-${TANKverf}/${RUN}.${P_PDY}/${p_cyc}/${COMPONENT}/radmon} export COM_IN=${COM_IN:-$(compath.py ${envir}/${NET}/${gfs_ver})} -export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}/${COMPONENT}} ################################ # backwards compatibility for -# gfs v15 which doesn't have -# a $COMPONENT in output path +# gfs v15 which doesn't have +# a $COMPONENT in output path ################################ if [[ ! -d ${COMIN} ]]; then export COMIN=${COM_IN}/${RUN}.${PDY}/${cyc} fi -mkdir -p -m 775 $TANKverf_rad +mkdir -p -m 775 ${TANKverf_rad} ######################################## # Set necessary environment variables ######################################## export RAD_AREA=${RAD_AREA:-glb} -export biascr=${biascr:-$COMIN/gdas.t${cyc}z.abias} -export radstat=${radstat:-$COMIN/gdas.t${cyc}z.radstat} +export biascr=${biascr:-${COMIN}/gdas.t${cyc}z.abias} +export radstat=${radstat:-${COMIN}/gdas.t${cyc}z.radstat} echo " " echo "JOB HAS STARTED" @@ -112,8 +116,8 @@ echo " " ${RADMONSH:-${SCRgfs}/exgdas_atmos_verfrad.sh} ${PDY} ${cyc} err=$? -if [[ $err -ne 0 ]] ; then - exit $err +if [[ ${err} -ne 0 ]] ; then + exit ${err} else echo " " echo "JOB HAS COMPLETED NORMALLY" @@ -124,8 +128,8 @@ fi # Remove the Working Directory ################################ KEEPDATA=${KEEPDATA:-YES} -cd $DATAROOT -if [ ${KEEPDATA} = NO ] ; then - rm -rf $RAD_DATA_IN +cd ${DATAROOT} +if [ ${KEEPDATA} = NO ] ; then + rm -rf ${RAD_DATA_IN} fi diff --git a/jobs/JGDAS_ATMOS_VMINMON b/jobs/JGDAS_ATMOS_VMINMON index fcd341e76e..0077755aa2 100755 --- a/jobs/JGDAS_ATMOS_VMINMON +++ b/jobs/JGDAS_ATMOS_VMINMON @@ -3,29 +3,42 @@ ########################################################### # GDAS Minimization Monitor (MinMon) job ########################################################### -source "$HOMEgfs/ush/preamble.sh" +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 + ############################### # Specify NET, RUN, and COMPONENT name ############################## export NET=${NET:-gfs} export RUN=${RUN:-gdas} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ########################################################### # obtain unique process id (pid) and make temp directories ########################################################### -export pid=$$ -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - - -########################################################### -# obtain unique process id (pid) and make temp directories -########################################################### export MINMON_SUFFIX=${MINMON_SUFFIX:-${NET}} export m_job=${m_job:-${MINMON_SUFFIX}_mmDE} @@ -34,13 +47,13 @@ export m_job=${m_job:-${MINMON_SUFFIX}_mmDE} # Specify Package Areas ############################################## export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export SCRgfs=${SCRgfs:-$HOMEgfs/scripts} +export SCRgfs=${SCRgfs:-${HOMEgfs}/scripts} -export M_FIXgdas=${M_FIXgdas:-$HOMEgfs/fix/gdas} +export M_FIXgdas=${M_FIXgdas:-${HOMEgfs}/fix/gdas} export HOMEminmon=${HOMEminmon:-${HOMEgfs}} -export EXECminmon=${EXECminmon:-$HOMEminmon/exec} -export USHminmon=${USHminmon:-$HOMEminmon/ush} +export EXECminmon=${EXECminmon:-${HOMEminmon}/exec} +export USHminmon=${USHminmon:-${HOMEminmon}/ush} ############################################# @@ -62,9 +75,9 @@ export COM_IN=${COM_IN:-$(compath.py ${envir}/${NET}/${gfs_ver})} export M_TANKverf=${M_TANKverf:-${COM_IN}/${RUN}.${PDY}/${cyc}/${COMPONENT}/minmon} export M_TANKverfM1=${M_TANKverfM1:-${COM_IN}/${RUN}.${P_PDY}/${p_cyc}/${COMPONENT}/minmon} -export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p -m 775 $M_TANKverf +mkdir -p -m 775 ${M_TANKverf} @@ -77,9 +90,9 @@ export gsistat=${gsistat:-${COMIN}/gdas.t${cyc}z.gsistat} ######################################################## # Execute the script. -${GMONSH:-$SCRgfs/exgdas_atmos_vminmon.sh} ${PDY} ${cyc} +${GMONSH:-${SCRgfs}/exgdas_atmos_vminmon.sh} ${PDY} ${cyc} err=$? -[[ $err -ne 0 ]] && exit $err +[[ ${err} -ne 0 ]] && exit ${err} ################################ @@ -87,9 +100,8 @@ err=$? ################################ KEEPDATA=${KEEPDATA:-NO} cd ${DATAROOT} - if [ ${KEEPDATA} = NO ] ; then rm -rf ${DATA} fi - +exit 0 diff --git a/jobs/JGDAS_ENKF_DIAG b/jobs/JGDAS_ENKF_DIAG index 83e3e6b366..b144a72bb3 100755 --- a/jobs/JGDAS_ENKF_DIAG +++ b/jobs/JGDAS_ENKF_DIAG @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal eobs analdiag ediag" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -46,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" export MAKE_NSSTBUFR=${MAKE_NSSTBUFR:-"NO"} export MAKE_ACFTBUFR=${MAKE_ACFTBUFR:-"NO"} @@ -64,13 +60,13 @@ export MAKE_ACFTBUFR=${MAKE_ACFTBUFR:-"NO"} # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} -export CASE=$CASE_ENKF -export CDUMP_OBS=${CDUMP_OBS:-$CDUMP} +export CASE=${CASE_ENKF} +export CDUMP_OBS=${CDUMP_OBS:-${CDUMP}} export OPREFIX="${CDUMP_OBS}.t${cyc}z." export APREFIX="${CDUMP}.t${cyc}z." @@ -78,44 +74,44 @@ export GPREFIX="${GDUMP}.t${gcyc}z." export GSUFFIX="${GSUFFIX:-".ensmean${SUFFIX}"}" export ASUFFIX="${ASUFFIX:-"${SUFFIX}"}" -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" fi # COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in script -COMIN_GES_CTL="$ROTDIR/gdas.$gPDY/$gcyc/$COMPONENT" -export COMIN_ANL="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES=$COMIN_GES_ENS -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" +COMIN_GES_CTL="${ROTDIR}/gdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_ANL="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES=${COMIN_GES_ENS} +export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006$GSUFFIX" -if [ ! -f $ATMGES_ENSMEAN ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = $ATMGES_ENSMEAN" +export ATMGES_ENSMEAN="${COMIN_GES_ENS}/${GPREFIX}atmf006${GSUFFIX}" +if [ ! -f ${ATMGES_ENSMEAN} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = ${ATMGES_ENSMEAN}" exit 1 fi # Link observational data -export PREPQC="$COMIN_OBS/${OPREFIX}prepbufr" -if [ ! -f $PREPQC ]; then - echo "WARNING: Global PREPBUFR FILE $PREPQC MISSING" +export PREPQC="${COMIN_OBS}/${OPREFIX}prepbufr" +if [ ! -f ${PREPQC} ]; then + echo "WARNING: Global PREPBUFR FILE ${PREPQC} MISSING" fi -export TCVITL="$COMIN_ANL/${OPREFIX}syndata.tcvitals.tm00" -if [[ $DONST = "YES" ]]; then - if [[ $MAKE_NSSTBUFR == "YES" ]]; then +export TCVITL="${COMIN_ANL}/${OPREFIX}syndata.tcvitals.tm00" +if [[ ${DONST} = "YES" ]]; then + if [[ ${MAKE_NSSTBUFR} == "YES" ]]; then export NSSTBF="${COMOUT}/${OPREFIX}nsstbufr" else export NSSTBF="${COMIN_OBS}/${OPREFIX}nsstbufr" fi fi -if [[ $MAKE_ACFTBUFR == "YES" ]]; then +if [[ ${MAKE_ACFTBUFR} == "YES" ]]; then export PREPQCPF="${COMOUT}/${OPREFIX}prepbufr.acft_profiles" else export PREPQCPF="${COMIN_OBS}/${OPREFIX}prepbufr.acft_profiles" @@ -128,40 +124,40 @@ export GBIASAIR=${COMIN_GES_CTL}/${GPREFIX}abias_air export GRADSTAT=${COMIN_GES_CTL}/${GPREFIX}radstat # Bias correction coefficients related to ensemble mean -export ABIAS="$COMOUT/${APREFIX}abias.ensmean" -export ABIASPC="$COMOUT/${APREFIX}abias_pc.ensmean" -export ABIASAIR="$COMOUT/${APREFIX}abias_air.ensmean" -export ABIASe="$COMOUT/${APREFIX}abias_int.ensmean" +export ABIAS="${COMOUT}/${APREFIX}abias.ensmean" +export ABIASPC="${COMOUT}/${APREFIX}abias_pc.ensmean" +export ABIASAIR="${COMOUT}/${APREFIX}abias_air.ensmean" +export ABIASe="${COMOUT}/${APREFIX}abias_int.ensmean" # Diagnostics related to ensemble mean -export GSISTAT="$COMOUT/${APREFIX}gsistat.ensmean" -export CNVSTAT="$COMOUT/${APREFIX}cnvstat.ensmean" -export OZNSTAT="$COMOUT/${APREFIX}oznstat.ensmean" -export RADSTAT="$COMOUT/${APREFIX}radstat.ensmean" +export GSISTAT="${COMOUT}/${APREFIX}gsistat.ensmean" +export CNVSTAT="${COMOUT}/${APREFIX}cnvstat.ensmean" +export OZNSTAT="${COMOUT}/${APREFIX}oznstat.ensmean" +export RADSTAT="${COMOUT}/${APREFIX}radstat.ensmean" # Select observations based on ensemble mean export RUN_SELECT="YES" export USE_SELECT="NO" -export SELECT_OBS="$COMOUT/${APREFIX}obsinput.ensmean" +export SELECT_OBS="${COMOUT}/${APREFIX}obsinput.ensmean" export DIAG_SUFFIX="_ensmean" export DIAG_COMPRESS="NO" # GSI namelist options specific to eobs -export SETUP_INVOBS="passive_bc=.false.,$SETUP_INVOBS" +export SETUP_INVOBS="passive_bc=.false.,${SETUP_INVOBS}" # Ensure clean stat tarballs for ensemble mean -for fstat in $CNVSTAT $OZNSTAT $RADSTAT; do - [[ -f $fstat ]] && rm -f $fstat +for fstat in ${CNVSTAT} ${OZNSTAT} ${RADSTAT}; do + [[ -f ${fstat} ]] && rm -f ${fstat} done ############################################################### # Run relevant script -${ANALDIAGSH:-$SCRgfs/exglobal_diag.sh} +${ANALDIAGSH:-${SCRgfs}/exglobal_diag.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -171,15 +167,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_ENKF_ECEN b/jobs/JGDAS_ENKF_ECEN index 2a211e6885..d3d4f8fe7e 100755 --- a/jobs/JGDAS_ENKF_ECEN +++ b/jobs/JGDAS_ENKF_ECEN @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base ecen" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## # Obtain unique process id (pid) and make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -46,65 +21,86 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} -export CASE=$CASE_ENKF +export CASE=${CASE_ENKF} EUPD_CYC=$(echo ${EUPD_CYC:-"gdas"} | tr a-z A-Z) -if [ $EUPD_CYC = "GFS" ]; then +if [ ${EUPD_CYC} = "GFS" ]; then CDUMP_ENKF="gfs" else - CDUMP_ENKF=$CDUMP + CDUMP_ENKF=${CDUMP} fi export OPREFIX="${CDUMP}.t${cyc}z." export APREFIX="${CDUMP}.t${cyc}z." export APREFIX_ENKF="${CDUMP_ENKF}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" fi # COMIN, COMIN_ENS and COMIN_GES_ENS are used in script -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_ENS="$ROTDIR/enkf$CDUMP_ENKF.$PDY/$cyc/$COMPONENT" -export COMOUT_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkf$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_ENS="${ROTDIR}/enkf${CDUMP_ENKF}.${PDY}/${cyc}/${COMPONENT}" +export COMOUT_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" ############################################################### # Run relevant script -${ENKFRECENSH:-$SCRgfs/exgdas_enkf_ecen.sh} +${ENKFRECENSH:-${SCRgfs}/exgdas_enkf_ecen.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -114,15 +110,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_ENKF_FCST b/jobs/JGDAS_ENKF_FCST index 87bec80a5d..e5d949577b 100755 --- a/jobs/JGDAS_ENKF_FCST +++ b/jobs/JGDAS_ENKF_FCST @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -configs="base fcst efcs" -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -46,32 +21,53 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" export rCDUMP="gdas" ############################################## # Begin JOB SPECIFIC work ############################################## -export CASE=$CASE_ENKF +export CASE=${CASE_ENKF} # COMOUT is used in script -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" +export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" # Forecast length for EnKF forecast -export FHMIN=$FHMIN_ENKF -export FHOUT=$FHOUT_ENKF -export FHMAX=$FHMAX_ENKF +export FHMIN=${FHMIN_ENKF} +export FHOUT=${FHOUT_ENKF} +export FHMAX=${FHMAX_ENKF} # Get ENSBEG/ENSEND from ENSGRP and NMEM_EFCSGRP @@ -85,21 +81,21 @@ export ENSBEG=$((ENSEND - NMEM_EFCSGRP + 1)) ############################################################### # Run relevant script -${ENKFFCSTSH:-$SCRgfs/exgdas_enkf_fcst.sh} +${ENKFFCSTSH:-${SCRgfs}/exgdas_enkf_fcst.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # Double check the status of members in ENSGRP -EFCSGRP=$COMOUT/efcs.grp${ENSGRP} +EFCSGRP=${COMOUT}/efcs.grp${ENSGRP} npass=0 -if [ -f $EFCSGRP ]; then - npass=$(grep "PASS" $EFCSGRP | wc -l) +if [ -f ${EFCSGRP} ]; then + npass=$(grep "PASS" ${EFCSGRP} | wc -l) fi -echo "$npass/$NMEM_EFCSGRP members successfull in efcs.grp$ENSGRP" -if [ $npass -ne $NMEM_EFCSGRP ]; then - echo "FATAL ERROR: Failed members in group $ENSGRP, ABORT!" - cat $EFCSGRP +echo "${npass}/${NMEM_EFCSGRP} members successfull in efcs.grp${ENSGRP}" +if [ ${npass} -ne ${NMEM_EFCSGRP} ]; then + echo "FATAL ERROR: Failed members in group ${ENSGRP}, ABORT!" + cat ${EFCSGRP} exit 99 fi @@ -107,8 +103,8 @@ fi ############################################## # Send Alerts ############################################## -if [ $SENDDBN = YES ] ; then - $DBNROOT/bin/dbn_alert MODEL ENKF1_MSC_fcsstat $job $EFCSGRP +if [ ${SENDDBN} = YES ] ; then + ${DBNROOT}/bin/dbn_alert MODEL ENKF1_MSC_fcsstat ${job} ${EFCSGRP} fi @@ -119,15 +115,15 @@ fi ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_ENKF_POST b/jobs/JGDAS_ENKF_POST index 5b9926b95c..02d2741d16 100755 --- a/jobs/JGDAS_ENKF_POST +++ b/jobs/JGDAS_ENKF_POST @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base epos" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -46,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## @@ -66,8 +62,8 @@ export GFS_NCIO=${GFS_NCIO:-"YES"} export PREFIX="${CDUMP}.t${cyc}z." # COMIN, COMOUT are used in script -export COMIN="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" export LEVS=$((LEVS-1)) @@ -76,9 +72,9 @@ export LEVS=$((LEVS-1)) ############################################################### # Run relevant script -${ENKFPOSTSH:-$SCRgfs/exgdas_enkf_post.sh} +${ENKFPOSTSH:-${SCRgfs}/exgdas_enkf_post.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -88,15 +84,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS index 0bb1bdc3bc..b0b149080f 100755 --- a/jobs/JGDAS_ENKF_SELECT_OBS +++ b/jobs/JGDAS_ENKF_SELECT_OBS @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal eobs" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -46,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" export MAKE_NSSTBUFR=${MAKE_NSSTBUFR:-"NO"} export MAKE_ACFTBUFR=${MAKE_ACFTBUFR:-"NO"} @@ -64,13 +60,13 @@ export MAKE_ACFTBUFR=${MAKE_ACFTBUFR:-"NO"} # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} -export CASE=$CASE_ENKF -export CDUMP_OBS=${CDUMP_OBS:-$CDUMP} +export CASE=${CASE_ENKF} +export CDUMP_OBS=${CDUMP_OBS:-${CDUMP}} export OPREFIX="${CDUMP_OBS}.t${cyc}z." export APREFIX="${CDUMP}.t${cyc}z." @@ -78,47 +74,47 @@ export GPREFIX="${GDUMP}.t${gcyc}z." export GSUFFIX="${GSUFFIX:-".ensmean${SUFFIX}"}" export ASUFFIX="${ASUFFIX:-"${SUFFIX}"}" -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" fi # COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in script -COMIN_GES_CTL="$ROTDIR/gdas.$gPDY/$gcyc/$COMPONENT" -export COMIN_ANL="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES=$COMIN_GES_ENS -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" +COMIN_GES_CTL="${ROTDIR}/gdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_ANL="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES=${COMIN_GES_ENS} +export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006$GSUFFIX" -if [ ! -f $ATMGES_ENSMEAN ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = $ATMGES_ENSMEAN" +export ATMGES_ENSMEAN="${COMIN_GES_ENS}/${GPREFIX}atmf006${GSUFFIX}" +if [ ! -f ${ATMGES_ENSMEAN} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = ${ATMGES_ENSMEAN}" exit 1 fi -export LEVS=$($NCDUMP -h $ATMGES_ENSMEAN | grep -i "pfull" | head -1 | awk -F" = " '{print $2}' | awk -F" " '{print $1}') # get LEVS +export LEVS=$(${NCDUMP} -h ${ATMGES_ENSMEAN} | grep -i "pfull" | head -1 | awk -F" = " '{print $2}' | awk -F" " '{print $1}') # get LEVS status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # Link observational data -export PREPQC="$COMIN_OBS/${OPREFIX}prepbufr" -if [ ! -f $PREPQC ]; then - echo "WARNING: Global PREPBUFR FILE $PREPQC MISSING" +export PREPQC="${COMIN_OBS}/${OPREFIX}prepbufr" +if [ ! -f ${PREPQC} ]; then + echo "WARNING: Global PREPBUFR FILE ${PREPQC} MISSING" fi -export TCVITL="$COMIN_ANL/${OPREFIX}syndata.tcvitals.tm00" -if [[ $DONST = "YES" ]]; then - if [[ $MAKE_NSSTBUFR == "YES" ]]; then +export TCVITL="${COMIN_ANL}/${OPREFIX}syndata.tcvitals.tm00" +if [[ ${DONST} = "YES" ]]; then + if [[ ${MAKE_NSSTBUFR} == "YES" ]]; then export NSSTBF="${COMOUT}/${OPREFIX}nsstbufr" else export NSSTBF="${COMIN_OBS}/${OPREFIX}nsstbufr" fi fi -if [[ $MAKE_ACFTBUFR == "YES" ]]; then +if [[ ${MAKE_ACFTBUFR} == "YES" ]]; then export PREPQCPF="${COMOUT}/${OPREFIX}prepbufr.acft_profiles" else export PREPQCPF="${COMIN_OBS}/${OPREFIX}prepbufr.acft_profiles" @@ -131,46 +127,46 @@ export GBIASAIR=${COMIN_GES_CTL}/${GPREFIX}abias_air export GRADSTAT=${COMIN_GES_CTL}/${GPREFIX}radstat # Bias correction coefficients related to ensemble mean -export ABIAS="$COMOUT/${APREFIX}abias.ensmean" -export ABIASPC="$COMOUT/${APREFIX}abias_pc.ensmean" -export ABIASAIR="$COMOUT/${APREFIX}abias_air.ensmean" -export ABIASe="$COMOUT/${APREFIX}abias_int.ensmean" +export ABIAS="${COMOUT}/${APREFIX}abias.ensmean" +export ABIASPC="${COMOUT}/${APREFIX}abias_pc.ensmean" +export ABIASAIR="${COMOUT}/${APREFIX}abias_air.ensmean" +export ABIASe="${COMOUT}/${APREFIX}abias_int.ensmean" # Diagnostics related to ensemble mean -export GSISTAT="$COMOUT/${APREFIX}gsistat.ensmean" -export CNVSTAT="$COMOUT/${APREFIX}cnvstat.ensmean" -export OZNSTAT="$COMOUT/${APREFIX}oznstat.ensmean" -export RADSTAT="$COMOUT/${APREFIX}radstat.ensmean" +export GSISTAT="${COMOUT}/${APREFIX}gsistat.ensmean" +export CNVSTAT="${COMOUT}/${APREFIX}cnvstat.ensmean" +export OZNSTAT="${COMOUT}/${APREFIX}oznstat.ensmean" +export RADSTAT="${COMOUT}/${APREFIX}radstat.ensmean" # Select observations based on ensemble mean export RUN_SELECT="YES" export USE_SELECT="NO" -export SELECT_OBS="$COMOUT/${APREFIX}obsinput.ensmean" +export SELECT_OBS="${COMOUT}/${APREFIX}obsinput.ensmean" export DIAG_SUFFIX="_ensmean" # GSI namelist options specific to eobs -export SETUP_INVOBS="passive_bc=.false.,$SETUP_INVOBS" +export SETUP_INVOBS="passive_bc=.false.,${SETUP_INVOBS}" # Ensure clean stat tarballs for ensemble mean -for fstat in $CNVSTAT $OZNSTAT $RADSTAT; do - [[ -f $fstat ]] && rm -f $fstat +for fstat in ${CNVSTAT} ${OZNSTAT} ${RADSTAT}; do + [[ -f ${fstat} ]] && rm -f ${fstat} done ############################################################### # Run relevant script -${INVOBSSH:-$SCRgfs/exgdas_enkf_select_obs.sh} +${INVOBSSH:-${SCRgfs}/exgdas_enkf_select_obs.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # Send Alerts ############################################## -if [ $SENDDBN = YES ] ; then - $DBNROOT/bin/dbn_alert MODEL ENKF1_MSC_gsistat $job $GSISTAT +if [ ${SENDDBN} = YES ] ; then + ${DBNROOT}/bin/dbn_alert MODEL ENKF1_MSC_gsistat ${job} ${GSISTAT} fi @@ -181,15 +177,15 @@ fi ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_ENKF_SFC b/jobs/JGDAS_ENKF_SFC index ccdba07851..85313002a6 100755 --- a/jobs/JGDAS_ENKF_SFC +++ b/jobs/JGDAS_ENKF_SFC @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base esfc" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -46,66 +21,87 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} -export CASE=$CASE_ENKF +export CASE=${CASE_ENKF} EUPD_CYC=$(echo ${EUPD_CYC:-"gdas"} | tr a-z A-Z) -if [ $EUPD_CYC = "GFS" ]; then +if [ ${EUPD_CYC} = "GFS" ]; then CDUMP_ENKF="gfs" else - CDUMP_ENKF=$CDUMP + CDUMP_ENKF=${CDUMP} fi export OPREFIX="${CDUMP}.t${cyc}z." export APREFIX="${CDUMP}.t${cyc}z." export APREFIX_ENKF="${CDUMP_ENKF}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" fi # COMIN, COMIN_ENS and COMIN_GES_ENS are used in script -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_ENS="$ROTDIR/enkf$CDUMP_ENKF.$PDY/$cyc/$COMPONENT" -export COMOUT_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkf$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_ENS="${ROTDIR}/enkf${CDUMP_ENKF}.${PDY}/${cyc}/${COMPONENT}" +export COMOUT_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" ############################################################### # Run relevant script -${ENKFRESFCSH:-$SCRgfs/exgdas_enkf_sfc.sh} +${ENKFRESFCSH:-${SCRgfs}/exgdas_enkf_sfc.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -115,15 +111,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index fab0726a16..e97016b630 100755 --- a/jobs/JGDAS_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal eupd" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -46,50 +21,71 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) export APREFIX="${CDUMP}.t${cyc}z." export GPREFIX="gdas.t${gcyc}z." -export ASUFFIX=${ASUFFIX:-$SUFFIX} -export GSUFFIX=${GSUFFIX:-$SUFFIX} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} # COMIN_GES_ENS and COMOUT_ANL_ENS are used in script -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" -export COMOUT_ANL_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMOUT_ANL_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" ############################################################### # Run relevant script -${ENKFUPDSH:-$SCRgfs/exgdas_enkf_update.sh} +${ENKFUPDSH:-${SCRgfs}/exgdas_enkf_update.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # Send Alerts ############################################## -if [ $SENDDBN = YES ] ; then - $DBNROOT/bin/dbn_alert MODEL ENKF1_MSC_enkfstat $job $COMOUT_ANL_ENS/${APREFIX}enkfstat +if [ ${SENDDBN} = YES ] ; then + ${DBNROOT}/bin/dbn_alert MODEL ENKF1_MSC_enkfstat ${job} ${COMOUT_ANL_ENS}/${APREFIX}enkfstat fi @@ -100,15 +96,15 @@ fi ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST index 027b381262..56e0c4ade9 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST @@ -1,37 +1,13 @@ #!/bin/bash -source "$HOMEgfs/ush/preamble.sh" - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base atmanal atmanalpost" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA || (echo "$DATA does not exist. ABORT!"; exit 1) +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) ############################################## @@ -45,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work @@ -68,27 +65,27 @@ export GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -export COMOUT=${COMOUT:-$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT +mkdir -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkf$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" # Add UFSDA to PYTHONPATH -export PYTHONPATH=$HOMEgfs/sorc/gdas.cd/ush/:$PYTHONPATH +export PYTHONPATH=${HOMEgfs}/sorc/gdas.cd/ush/:${PYTHONPATH} ############################################################### # Run relevant script -EXSCRIPT=${GDASPOSTPY:-$HOMEgfs/scripts/exgdas_global_atmos_analysis_post.py} -$EXSCRIPT +EXSCRIPT=${GDASPOSTPY:-${HOMEgfs}/scripts/exgdas_global_atmos_analysis_post.py} +${EXSCRIPT} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # End JOB SPECIFIC work @@ -97,14 +94,14 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP index 074165f88c..259d2eab0c 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP @@ -1,37 +1,13 @@ #!/bin/bash -source "$HOMEgfs/ush/preamble.sh" - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base atmanal atmanalprep" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA || (echo "$DATA does not exist. ABORT!"; exit 1) +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) ############################################## @@ -45,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work @@ -68,26 +65,26 @@ export GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -export COMOUT=${COMOUT:-$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT +mkdir -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkf$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" # Add UFSDA to PYTHONPATH -export PYTHONPATH=$HOMEgfs/sorc/gdas.cd/ush/:$PYTHONPATH +export PYTHONPATH=${HOMEgfs}/sorc/gdas.cd/ush/:${PYTHONPATH} ############################################################### # Run relevant script -EXSCRIPT=${GDASPREPPY:-$HOMEgfs/scripts/exgdas_global_atmos_analysis_prep.py} -$EXSCRIPT +EXSCRIPT=${GDASPREPPY:-${HOMEgfs}/scripts/exgdas_global_atmos_analysis_prep.py} +${EXSCRIPT} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # End JOB SPECIFIC work @@ -96,14 +93,14 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN index 4d95fb28eb..62e02a6dd0 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN @@ -1,37 +1,13 @@ #!/bin/bash -source "$HOMEgfs/ush/preamble.sh" - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base atmanal atmanalrun" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA || (echo "$DATA does not exist. ABORT!"; exit 1) +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) ############################################## @@ -45,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work @@ -68,27 +65,27 @@ export GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -export COMOUT=${COMOUT:-$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT +mkdir -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkf$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" # Add UFSDA to PYTHONPATH -export PYTHONPATH=$HOMEgfs/sorc/gdas.cd/ush/:$PYTHONPATH +export PYTHONPATH=${HOMEgfs}/sorc/gdas.cd/ush/:${PYTHONPATH} ############################################################### # Run relevant script -EXSCRIPT=${GDASRUNSH:-$HOMEgfs/scripts/exgdas_global_atmos_analysis_run.sh} -$EXSCRIPT +EXSCRIPT=${GDASRUNSH:-${HOMEgfs}/scripts/exgdas_global_atmos_analysis_run.sh} +${EXSCRIPT} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # End JOB SPECIFIC work @@ -97,14 +94,14 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST index fdfaf1bafb..4d546f3b06 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST @@ -1,37 +1,13 @@ #!/bin/bash -source "$HOMEgfs/ush/preamble.sh" - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base atmensanal atmensanalpost" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA || (echo "$DATA does not exist. ABORT!"; exit 1) +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) ############################################## @@ -45,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work @@ -68,30 +65,30 @@ export GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -export COMOUT=${COMOUT:-$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT} -export COMOUT_ENS=${COMOUT_ENS:-$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT_ENS=${COMOUT_ENS:-${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT -mkdir -p $COMOUT_ENS +mkdir -p ${COMOUT} +mkdir -p ${COMOUT_ENS} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkf$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" # Add UFSDA to PYTHONPATH -export PYTHONPATH=$HOMEgfs/sorc/gdas.cd/ush/:$PYTHONPATH +export PYTHONPATH=${HOMEgfs}/sorc/gdas.cd/ush/:${PYTHONPATH} ############################################################### # Run relevant script -EXSCRIPT=${GDASPOSTPY:-$HOMEgfs/scripts/exgdas_global_atmos_ensanal_post.py} -$EXSCRIPT +EXSCRIPT=${GDASPOSTPY:-${HOMEgfs}/scripts/exgdas_global_atmos_ensanal_post.py} +${EXSCRIPT} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # End JOB SPECIFIC work @@ -100,14 +97,14 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP index 0838097693..6b5204564e 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP @@ -1,37 +1,13 @@ #!/bin/bash -source "$HOMEgfs/ush/preamble.sh" - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base atmensanal atmensanalprep" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA || (echo "$DATA does not exist. ABORT!"; exit 1) +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) ############################################## @@ -45,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work @@ -68,30 +65,30 @@ export GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -export COMOUT=${COMOUT:-$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT} -export COMOUT_ENS=${COMOUT_ENS:-$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT_ENS=${COMOUT_ENS:-${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT -mkdir -p $COMOUT_ENS +mkdir -p ${COMOUT} +mkdir -p ${COMOUT_ENS} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkf$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" # Add UFSDA to PYTHONPATH -export PYTHONPATH=$HOMEgfs/sorc/gdas.cd/ush/:$PYTHONPATH +export PYTHONPATH=${HOMEgfs}/sorc/gdas.cd/ush/:${PYTHONPATH} ############################################################### # Run relevant script -EXSCRIPT=${GDASPREPPY:-$HOMEgfs/scripts/exgdas_global_atmos_analysis_prep.py} -$EXSCRIPT +EXSCRIPT=${GDASPREPPY:-${HOMEgfs}/scripts/exgdas_global_atmos_analysis_prep.py} +${EXSCRIPT} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # End JOB SPECIFIC work @@ -100,14 +97,14 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN index 40e22c9e57..bb7d42f670 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN @@ -1,37 +1,13 @@ #!/bin/bash -source "$HOMEgfs/ush/preamble.sh" - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base atmensanal atmensanalrun" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA || (echo "$DATA does not exist. ABORT!"; exit 1) +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} || (echo "${DATA} does not exist. ABORT!"; exit 1) ############################################## @@ -45,16 +21,37 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Begin JOB SPECIFIC work @@ -68,30 +65,30 @@ export GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -export COMOUT=${COMOUT:-$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT} -export COMOUT_ENS=${COMOUT_ENS:-$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT_ENS=${COMOUT_ENS:-${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT -mkdir -p $COMOUT_ENS +mkdir -p ${COMOUT} +mkdir -p ${COMOUT_ENS} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkf$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" # Add UFSDA to PYTHONPATH -export PYTHONPATH=$HOMEgfs/sorc/gdas.cd/ush/:$PYTHONPATH +export PYTHONPATH=${HOMEgfs}/sorc/gdas.cd/ush/:${PYTHONPATH} ############################################################### # Run relevant script -EXSCRIPT=${GDASRUNSH:-$HOMEgfs/scripts/exgdas_global_atmos_ensanal_run.sh} -$EXSCRIPT +EXSCRIPT=${GDASRUNSH:-${HOMEgfs}/scripts/exgdas_global_atmos_ensanal_run.sh} +${EXSCRIPT} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # End JOB SPECIFIC work @@ -100,14 +97,14 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index 0971ec6bff..3ccba8ca0e 100755 --- a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +++ b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} @@ -11,14 +11,14 @@ export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} ######################################################### # obtain unique process id (pid) and make temp directory ######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ###################################### # Set up the cycle variable ###################################### -export cycle=${cycle:-t${cyc}z} +export cycle="t${cyc}z" ########################################### # Run setpdy and initialize PDY variables @@ -30,12 +30,12 @@ setpdy.sh # 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} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} +export USHgfs=${USHgfs:-${HOMEgfs}/ush} +export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} +export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} +export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} +export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} +export FIXgfs=${FIXgfs:-${HOMEgfs}/fix} ################################### # Specify NET and RUN Name and model @@ -43,20 +43,20 @@ export FIXgfs=${FIXgfs:-$HOMEgfs/fix} export NET=${NET:-gfs} export RUN=${RUN:-gfs} export model=${model:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Define COM directories ############################################## -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} +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}} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} fi export pgmout=OUTPUT.$$ @@ -70,21 +70,21 @@ export pgmout=OUTPUT.$$ ######################################################## # Execute the script. -$HOMEgfs/scripts/exgfs_atmos_awips_20km_1p0deg.sh $fcsthrs +${HOMEgfs}/scripts/exgfs_atmos_awips_20km_1p0deg.sh ${fcsthrs} export err=$?; err_chk ######################################################## ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGFS_ATMOS_AWIPS_G2 b/jobs/JGFS_ATMOS_AWIPS_G2 index db4e984b6a..57d04f8a73 100755 --- a/jobs/JGFS_ATMOS_AWIPS_G2 +++ b/jobs/JGFS_ATMOS_AWIPS_G2 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} @@ -11,14 +11,14 @@ export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} ########################################################## # obtain unique process id (pid) and make temp directory ########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ###################################### # Set up the cycle variable ###################################### -export cycle=${cycle:-t${cyc}z} +export cycle="t${cyc}z" ########################################### # Run setpdy and initialize PDY variables @@ -30,13 +30,13 @@ setpdy.sh # 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} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} +export USHgfs=${USHgfs:-${HOMEgfs}/ush} +export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} +export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} +export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} +export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} +export FIXgfs=${FIXgfs:-${HOMEgfs}/fix} +export UTILgfs=${UTILgfs:-${HOMEgfs}/util} ################################### # Specify NET and RUN Name and model @@ -44,20 +44,20 @@ export UTILgfs=${UTILgfs:-$HOMEgfs/util} export NET=${NET:-gfs} export RUN=${RUN:-gfs} export model=${model:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Define COM directories ############################################## -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} +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}} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} fi export pgmout=OUTPUT.$$ @@ -67,21 +67,21 @@ export pgmout=OUTPUT.$$ # Execute the script. ######################################################### mkdir -m 775 awips_g1 -cd $DATA/awips_g1 -$HOMEgfs/scripts/exgfs_atmos_grib_awips.sh $fcsthrs +cd ${DATA}/awips_g1 +${HOMEgfs}/scripts/exgfs_atmos_grib_awips.sh ${fcsthrs} export err=$?; err_chk ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGFS_ATMOS_CYCLONE_GENESIS b/jobs/JGFS_ATMOS_CYCLONE_GENESIS index 7641c0dbfd..3233dec92d 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_GENESIS +++ b/jobs/JGFS_ATMOS_CYCLONE_GENESIS @@ -1,41 +1,41 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base vrfy" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env vrfy +. ${HOMEgfs}/env/${machine}.env vrfy status=$? -[[ $status -ne 0 ]] && exit $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:?}} +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 + export DATA="${DATAROOT}/${job}$$" + [[ -d ${DATA} ]] && rm -rf ${DATA} fi -mkdir -p $DATA -cd $DATA +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -51,7 +51,7 @@ setpdy.sh #################################### export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Determine Job Output Name on System @@ -64,7 +64,7 @@ export pgmerr=errfile ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export cmodel=$CDUMP +export cmodel=${CDUMP} #################################### # SENDCOM - Copy Files From TMPDIR to $COMOUT @@ -77,19 +77,19 @@ export SENDECF=${SENDECF:-NO} #################################### # Specify Execution Areas #################################### -export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT:?}/ens_tracker.${ens_tracker_ver}} -export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} -export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} -export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} -export SCRIPTens_tracker=${SCRIPTens_tracker:-$HOMEens_tracker/scripts} +export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT}/ens_tracker.${ens_tracker_ver}} +export EXECens_tracker=${EXECens_tracker:-${HOMEens_tracker}/exec} +export FIXens_tracker=${FIXens_tracker:-${HOMEens_tracker}/fix} +export USHens_tracker=${USHens_tracker:-${HOMEens_tracker}/ush} +export SCRIPTens_tracker=${SCRIPTens_tracker:-${HOMEens_tracker}/scripts} ############################################## # Define COM directories ############################################## -export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} export gfsdir=${COMIN} export COMINgfs=${COMIN} -export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} export JYYYY=$(echo ${PDY} | cut -c1-4) export COMINgenvit=${COMINgenvit:-${COMOUT}/genesis_vital_${JYYYY}} @@ -97,7 +97,7 @@ export COMOUTgenvit=${COMOUTgenvit:-${COMOUT}/genesis_vital_${JYYYY}} export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} -mkdir -m 775 -p $COMOUTgenvit +mkdir -m 775 -p ${COMOUTgenvit} ############################################## # Run relevant script @@ -109,15 +109,15 @@ export err=$?; err_chk ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGFS_ATMOS_CYCLONE_TRACKER b/jobs/JGFS_ATMOS_CYCLONE_TRACKER index 727bf3e590..922ae086fd 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_TRACKER +++ b/jobs/JGFS_ATMOS_CYCLONE_TRACKER @@ -1,41 +1,41 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base vrfy" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env vrfy +. ${HOMEgfs}/env/${machine}.env vrfy status=$? -[[ $status -ne 0 ]] && exit $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:?}} +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 + export DATA="${DATAROOT}/${job}$$" + [[ -d ${DATA} ]] && rm -rf ${DATA} fi -mkdir -p $DATA -cd $DATA +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -51,7 +51,7 @@ setpdy.sh #################################### export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## @@ -79,32 +79,32 @@ export SENDECF=${SENDECF:-NO} #################################### # Specify Execution Areas #################################### -export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT:?}/ens_tracker.${ens_tracker_ver}} -export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} -export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} -export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} +export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT}/ens_tracker.${ens_tracker_ver}} +export EXECens_tracker=${EXECens_tracker:-${HOMEens_tracker}/exec} +export FIXens_tracker=${FIXens_tracker:-${HOMEens_tracker}/fix} +export USHens_tracker=${USHens_tracker:-${HOMEens_tracker}/ush} ############################################## # Define COM and Data directories ############################################## -export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} export COMINgfs=${COMIN} export gfsdir=${COMINgfs} export COMINgdas=${COMIN} export gdasdir=${COMINgdas} -export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} -if [ $RUN_ENVIR = "nco" ]; then - export COMOUThur=${COMROOTp1:?}/hur/${envir}/global - export COMOUTatcf=${COMROOTp1:?}/nhc/${envir}/atcf - mkdir -m 775 -p $COMOUThur $COMOUTatcf +if [ ${RUN_ENVIR} = "nco" ]; then + export COMOUThur=${COMROOTp1}/hur/${envir}/global + export COMOUTatcf=${COMROOTp1}/nhc/${envir}/atcf + mkdir -m 775 -p ${COMOUThur} ${COMOUTatcf} else # export COMOUThur=$COMOUT # export COMOUTatcf=$COMOUT - export COMOUThur=$DATA - export COMOUTatcf=$DATA + export COMOUThur=${DATA} + export COMOUTatcf=${DATA} fi ############################################## @@ -114,7 +114,7 @@ fi ############################################################# # Execute the script export pert="p01" -export cmodel=$CDUMP +export cmodel=${CDUMP} export loopnum=1 #-----------input data checking ----------------- @@ -140,15 +140,15 @@ export err=$?; err_chk ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGFS_ATMOS_FBWIND b/jobs/JGFS_ATMOS_FBWIND index df8d3bc0c1..69532e5863 100755 --- a/jobs/JGFS_ATMOS_FBWIND +++ b/jobs/JGFS_ATMOS_FBWIND @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################ # GFS FBWIND PRODUCT GENERATION @@ -9,14 +9,14 @@ source "$HOMEgfs/ush/preamble.sh" ########################################################### # obtain unique process id (pid) and make temp directory ########################################################### -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ###################################### # Set up the cycle variable ###################################### -export cycle=${cycle:-t${cyc}z} +export cycle="t${cyc}z" ########################################### # Run setpdy and initialize PDY variables @@ -28,13 +28,13 @@ setpdy.sh # 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} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} +export USHgfs=${USHgfs:-${HOMEgfs}/ush} +export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} +export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} +export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} +export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} +export FIXgfs=${FIXgfs:-${HOMEgfs}/fix} +export UTILgfs=${UTILgfs:-${HOMEgfs}/util} ################################### # Specify NET and RUN Name and model @@ -42,20 +42,20 @@ export UTILgfs=${UTILgfs:-$HOMEgfs/util} export NET=${NET:-gfs} export RUN=${RUN:-gfs} export model=${model:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Define COM directories ############################################## -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} +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}} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} fi export pgmout=OUTPUT.$$ @@ -63,21 +63,21 @@ export pgmout=OUTPUT.$$ ######################################################## # Execute the script. -$HOMEgfs/scripts/exgfs_atmos_fbwind.sh +${HOMEgfs}/scripts/exgfs_atmos_fbwind.sh export err=$?;err_chk ######################################################## ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGFS_ATMOS_FSU_GENESIS b/jobs/JGFS_ATMOS_FSU_GENESIS index d403a76fe2..1f18cfff99 100755 --- a/jobs/JGFS_ATMOS_FSU_GENESIS +++ b/jobs/JGFS_ATMOS_FSU_GENESIS @@ -1,18 +1,18 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base vrfy" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ##exit @@ -20,23 +20,23 @@ done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env vrfy +. ${HOMEgfs}/env/${machine}.env vrfy status=$? -[[ $status -ne 0 ]] && exit $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:?}} +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 + export DATA="${DATAROOT}/${job}$$" + [[ -d ${DATA} ]] && rm -rf ${DATA} fi -mkdir -p $DATA -cd $DATA +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -52,7 +52,7 @@ setpdy.sh #################################### export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## @@ -80,12 +80,12 @@ export SENDECF=${SENDECF:-NO} #################################### # Specify Execution Areas #################################### -export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT:?}/ens_tracker.${ens_tracker_ver}} -export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} -export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} -export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} -export SCRIPTens_tracker=${SCRIPTens_tracker:-$HOMEens_tracker/scripts} -export BINens_tracker=${BINens_tracker:-$HOMEens_tracker/ush/FSUgenesisPY/bin} +export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT}/ens_tracker.${ens_tracker_ver}} +export EXECens_tracker=${EXECens_tracker:-${HOMEens_tracker}/exec} +export FIXens_tracker=${FIXens_tracker:-${HOMEens_tracker}/fix} +export USHens_tracker=${USHens_tracker:-${HOMEens_tracker}/ush} +export SCRIPTens_tracker=${SCRIPTens_tracker:-${HOMEens_tracker}/scripts} +export BINens_tracker=${BINens_tracker:-${HOMEens_tracker}/ush/FSUgenesisPY/bin} export PYTHONPATH=${USHens_tracker}/FSUgenesisPY:${PYTHONPATH} ############################################## @@ -100,15 +100,15 @@ export gdasdir=${COMINgdas} export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} -if [ $RUN_ENVIR = "nco" ]; then - export COMOUThur=${COMROOTp1:?}/hur/${envir}/global - export COMOUTatcf=${COMROOTp1:?}/nhc/${envir}/atcf - mkdir -m 775 -p $COMOUThur $COMOUTatcf +if [ ${RUN_ENVIR} = "nco" ]; then + export COMOUThur=${COMROOTp1}/hur/${envir}/global + export COMOUTatcf=${COMROOTp1}/nhc/${envir}/atcf + mkdir -m 775 -p ${COMOUThur} ${COMOUTatcf} else -# export COMOUThur=$COMOUT +# export COMOUThur=$COMOUT # export COMOUTatcf=$COMOUT - export COMOUThur=$DATA - export COMOUTatcf=$DATA + export COMOUThur=${DATA} + export COMOUTatcf=${DATA} fi ############################################## @@ -123,15 +123,15 @@ export err=$?; err_chk ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK index 1e93982cd1..8e8b27dbb8 100755 --- a/jobs/JGFS_ATMOS_GEMPAK +++ b/jobs/JGFS_ATMOS_GEMPAK @@ -1,70 +1,51 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" -############################################ -# GFS GEMPAK PRODUCT GENERATION -############################################ -configs="base gempak" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -for config in $configs; do - . $EXPDIR/config.${config} - status=$? - [[ $status -ne 0 ]] && exit $status -done +########################################################## +# make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} -############################################################### -. $BASE_ENV/${machine}.env gempak -status=$? -[[ $status -ne 0 ]] && exit $status +########################################### +# 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" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env gempak +. ${HOMEgfs}/env/${machine}.env gempak status=$? -[[ $status -ne 0 ]] && exit $status - -########################################################## -# 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=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. ./PDY +[[ ${status} -ne 0 ]] && exit ${status} ################################ # 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} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} +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} +export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix} +export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} +export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} # For half-degree P Grib files export DO_HD_PGRB=${DO_HD_PGRB:-YES} @@ -85,24 +66,23 @@ export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-GFS_GEMPAK} export NET=${NET:-gfs} export RUN=${RUN:-gfs} export model=${model:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Define COM directories ############################################## -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 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 SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} fi -export pgmout=OUTPUT.$$ - +# TODO: These actions belong in an ex-script not a j-job if [ -f poescript ]; then rm -f poescript fi @@ -110,54 +90,54 @@ fi ################################################################# # Execute the script for the 384 hour 1 degree grib ################################################################## -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.2 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.3 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.4 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.5 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.6 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> ${DATA}/gfs_1p0.$$.1 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> ${DATA}/gfs_1p0.$$.2 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> ${DATA}/gfs_1p0.$$.3 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> ${DATA}/gfs_1p0.$$.4 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> ${DATA}/gfs_1p0.$$.5 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> ${DATA}/gfs_1p0.$$.6 " >>poescript ################################################################# # Execute the script for the half-degree grib ################################################################## -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.2 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.3 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.4 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.5 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.6 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> ${DATA}/gfs_0p5.$$.1 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> ${DATA}/gfs_0p5.$$.2 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> ${DATA}/gfs_0p5.$$.3 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> ${DATA}/gfs_0p5.$$.4 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> ${DATA}/gfs_0p5.$$.5 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> ${DATA}/gfs_0p5.$$.6 " >>poescript ################################################################# # Execute the script for the quater-degree grib #################################################################### -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.1 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.2 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.3 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.4 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.5 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.6 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.7 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.8 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.9 " >> poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.10 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.1 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.2 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.3 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.4 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.5 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.6 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.7 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.8 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.9 " >> poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> ${DATA}/gfs_0p25.$$.10 " >> poescript #################################################################### # Execute the script to create the 35km Pacific grids for OPC ##################################################################### -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs35_pac 180 GFS_GEMPAK_WWB &> $DATA/gfs35_pac.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs35_pac 180 GFS_GEMPAK_WWB &> $DATA/gfs35_pac.$$.2 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_pac 180 GFS_GEMPAK_WWB &> ${DATA}/gfs35_pac.$$.1 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_pac 180 GFS_GEMPAK_WWB &> ${DATA}/gfs35_pac.$$.2 " >>poescript #################################################################### # Execute the script to create the 35km Atlantic grids for OPC ##################################################################### -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs35_atl 180 GFS_GEMPAK_WWB &> $DATA/gfs35_atl.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs35_atl 180 GFS_GEMPAK_WWB &> $DATA/gfs35_atl.$$.2 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_atl 180 GFS_GEMPAK_WWB &> ${DATA}/gfs35_atl.$$.1 " >>poescript +echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_atl 180 GFS_GEMPAK_WWB &> ${DATA}/gfs35_atl.$$.2 " >>poescript ##################################################################### # Execute the script to create the 40km grids for HPC ###################################################################### -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 +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 @@ -165,33 +145,33 @@ mv poescript.new poescript cat poescript -chmod 775 $DATA/poescript +chmod 775 ${DATA}/poescript export MP_PGMMODEL=mpmd -export MP_CMDFILE=$DATA/poescript +export MP_CMDFILE=${DATA}/poescript -ntasks=${NTASKS_GEMPAK:-$(cat $DATA/poescript | wc -l)} +ntasks=${NTASKS_GEMPAK:-$(cat ${DATA}/poescript | wc -l)} ptile=${PTILE_GEMPAK:-4} threads=${NTHREADS_GEMPAK:-1} -export OMP_NUM_THREADS=$threads -APRUN=${APRUN:-"mpiexec -l -np $ntasks --cpu-bind verbose,core cfp"} +export OMP_NUM_THREADS=${threads} +APRUN=${APRUN:-"mpiexec -l -np ${ntasks} --cpu-bind verbose,core cfp"} -APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-$APRUN} -APRUNCFP=$(eval echo $APRUN_GEMPAKCFP) +APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-${APRUN}} +APRUNCFP=$(eval echo ${APRUN_GEMPAKCFP}) -$APRUNCFP $DATA/poescript +${APRUNCFP} ${DATA}/poescript export err=$?; err_chk ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGFS_ATMOS_GEMPAK_META b/jobs/JGFS_ATMOS_GEMPAK_META index 707537f3f1..0a903aa140 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_META +++ b/jobs/JGFS_ATMOS_GEMPAK_META @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################ # GFS GEMPAK META PRODUCT GENERATION @@ -19,14 +19,14 @@ export MP_DEBUG_NOTIMEOUT=yes ########################################################## # obtain unique process id (pid) and make temp directory ########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ###################################### # Set up the cycle variable ###################################### -export cycle=${cycle:-t${cyc}z} +export cycle="t${cyc}z" ########################################### # Run setpdy and initialize PDY variables @@ -38,14 +38,14 @@ setpdy.sh # 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} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} +export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} +export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} +export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix} +export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} +export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} -cp $FIXgempak/datatype.tbl datatype.tbl +cp ${FIXgempak}/datatype.tbl datatype.tbl ############################################# #set the fcst hrs for all the cycles @@ -60,7 +60,7 @@ export fhinc=12 export NET=${NET:-gfs} export RUN=${RUN:-gfs} export model=${model:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Set up model and cycle specific variables @@ -70,8 +70,8 @@ export DBN_ALERT_TYPE=GFS_METAFILE ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} -export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak/meta} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}/gempak} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/${COMPONENT}/gempak/meta} export COMINgempak=${COMINgempak:-$(compath.py ${envir}/${NET}/${gfs_ver})} export COMINukmet=${COMINukmet:-$(compath.py ${envir}/ukmet/${ukmet_ver})/ukmet} @@ -81,8 +81,8 @@ export COMINnam=${COMINnam:-$(compath.py ${envir}/nam/${nam_ver})/nam} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} fi export pgmout=OUTPUT.$$ @@ -90,21 +90,21 @@ export pgmout=OUTPUT.$$ ######################################################## # Execute the script. -$SRCgfs/exgfs_atmos_gempak_meta.sh +${SRCgfs}/exgfs_atmos_gempak_meta.sh export err=$?; err_chk ######################################################## ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF index 82667654d1..2cb0069a1e 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +++ b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################ # GFS GEMPAK NCDC PRODUCT GENERATION @@ -9,18 +9,14 @@ source "$HOMEgfs/ush/preamble.sh" ########################################################## # 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=${cycle:-t${cyc}z} +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ########################################### # Run setpdy and initialize PDY variables ########################################### +export cycle="t${cyc}z" setpdy.sh . ./PDY @@ -28,24 +24,24 @@ setpdy.sh # 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} -export FIXgfs=${FIXgfs:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} +export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} +export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} +export FIXgfs=${FIXgfs:-${HOMEgfs}/gempak/fix} +export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} +export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} +export UTILgfs=${UTILgfs:-${HOMEgfs}/util} ###################################### # Set up the GEMPAK directory ####################################### -export HOMEgempak=${HOMEgempak:-$HOMEgfs/gempak} -export FIXgempak=${FIXgempak:-$HOMEgempak/fix} -export USHgempak=${USHgempak:-$HOMEgempak/ush} +export HOMEgempak=${HOMEgempak:-${HOMEgfs}/gempak} +export FIXgempak=${FIXgempak:-${HOMEgempak}/fix} +export USHgempak=${USHgempak:-${HOMEgempak}/ush} export MP_PULSE=0 export MP_TIMEOUT=2000 -export cycle=t${cyc}z + # # Set up model and cycle specific variables @@ -63,22 +59,22 @@ export fstart=00 export NET=${NET:-gfs} export RUN=${RUN:-gfs} export model=${model:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} -export COMINgfs=${COMINgfs:-$(compath.py ${envir}/${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMINobsproc=${COMINobsproc:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} -export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}/gempak} +export COMINgfs=${COMINgfs:-$(compath.py ${envir}/${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/${COMPONENT}} +export COMINobsproc=${COMINobsproc:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/${COMPONENT}} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} fi export pgmout=OUTPUT.$$ @@ -86,21 +82,21 @@ export pgmout=OUTPUT.$$ ######################################################## # Execute the script. -$SRCgfs/exgfs_atmos_gempak_gif_ncdc_skew_t.sh +${SRCgfs}/exgfs_atmos_gempak_gif_ncdc_skew_t.sh export err=$?; err_chk ######################################################## ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index f7080fb523..f4284ff35a 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################ # GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION @@ -9,14 +9,14 @@ source "$HOMEgfs/ush/preamble.sh" ######################################################### # obtain unique process id (pid) and make temp directory ######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ###################################### # Set up the cycle variable ###################################### -export cycle=${cycle:-t${cyc}z} +export cycle="t${cyc}z" ########################################### # Run setpdy and initialize PDY variables @@ -28,12 +28,12 @@ setpdy.sh # 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} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} +export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} +export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} +export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix} +export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} +export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} # For half-degree P Grib files #export DO_HD_PGRB=YES @@ -43,7 +43,7 @@ export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} #################################### export NET=gfs export RUN=gfs -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" export finc=3 export model=gfs export EXT="" @@ -51,25 +51,25 @@ export EXT="" ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${NET}.${PDY})/${cyc}/$COMPONENT/gempak} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${NET}.${PDY})/${cyc}/${COMPONENT}/gempak} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} fi -export DATA_HOLD=$DATA +export DATA_HOLD=${DATA} ################################################################# # Execute the script for the regular grib ################################################################# -export DATA=$DATA_HOLD/SPECIAL -mkdir -p $DATA -cd $DATA +export DATA=${DATA_HOLD}/SPECIAL +mkdir -p ${DATA} +cd ${DATA} export DBN_ALERT_TYPE=GFS_GOESSIM_GEMPAK export RUN2=gfs_goessim @@ -83,14 +83,14 @@ echo "RUNS the Program" ######################################################## # Execute the script. -$SRCgfs/exgfs_atmos_goes_nawips.sh +${SRCgfs}/exgfs_atmos_goes_nawips.sh ################################################################# # Execute the script for the 221 grib -export DATA=$DATA_HOLD/SPECIAL221 -mkdir -p $DATA -cd $DATA +export DATA=${DATA_HOLD}/SPECIAL221 +mkdir -p ${DATA} +cd ${DATA} export DBN_ALERT_TYPE=GFS_GOESSIM221_GEMPAK export RUN2=gfs_goessim221 @@ -104,12 +104,12 @@ echo "RUNS the Program" ######################################################## # Execute the script. -$SRCgfs/exgfs_atmos_goes_nawips.sh +${SRCgfs}/exgfs_atmos_goes_nawips.sh export err=$?; err_chk ######################################################## echo "end of program" -cd $DATA_HOLD +cd ${DATA_HOLD} echo "######################################" echo " SPECIAL.OUT " echo "######################################" @@ -117,14 +117,14 @@ echo "######################################" ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index 74b4695f28..76937f40f6 100755 --- a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS +++ b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} @@ -11,14 +11,14 @@ export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} ########################################################## # obtain unique process id (pid) and make temp directory ########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ###################################### # Set up the cycle variable ###################################### -export cycle=${cycle:-t${cyc}z} +export cycle="t${cyc}z" ########################################### # Run setpdy and initialize PDY variables @@ -30,13 +30,13 @@ setpdy.sh # 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} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} +export USHgfs=${USHgfs:-${HOMEgfs}/ush} +export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} +export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} +export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} +export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} +export FIXgfs=${FIXgfs:-${HOMEgfs}/fix} ################################### # Specify NET and RUN Name and model @@ -44,20 +44,20 @@ export FIXgfs=${FIXgfs:-$HOMEgfs/fix} export NET=${NET:-gfs} export RUN=${RUN:-gfs} export model=${model:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## # Define COM directories ############################################## -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} +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}} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} fi export pgmout=OUTPUT.$$ @@ -73,7 +73,7 @@ export FHINC=003 ####################################### # Specify Restart File Name to Key Off ####################################### -restart_file=$COMIN/${RUN}.t${cyc}z.special.grb2if +restart_file=${COMIN}/${RUN}.t${cyc}z.special.grb2if #################################### # Specify Timeout Behavior of Post @@ -89,46 +89,46 @@ export SLEEP_INT=5 #################################### # Check if this is a restart #################################### -if test -f $COMIN/$RUN.t${cyc}z.control.goessimpgrb2 +if test -f ${COMIN}/${RUN}.t${cyc}z.control.goessimpgrb2 then - modelrecvy=$(cat < $COMIN/$RUN.t${cyc}z.control.goessimpgrb) - recvy_pdy=$(echo $modelrecvy | cut -c1-8) - recvy_cyc=$(echo $modelrecvy | cut -c9-10) - recvy_shour=$(echo $modelrecvy | cut -c11-13) + modelrecvy=$(cat < ${COMIN}/${RUN}.t${cyc}z.control.goessimpgrb) + recvy_pdy=$(echo ${modelrecvy} | cut -c1-8) + recvy_cyc=$(echo ${modelrecvy} | cut -c9-10) + recvy_shour=$(echo ${modelrecvy} | cut -c11-13) - if test $RERUN = "NO" + if test ${RERUN} = "NO" then - NEW_SHOUR=$(expr $recvy_shour + $FHINC) - if test $NEW_SHOUR -ge $SHOUR + NEW_SHOUR=$(expr ${recvy_shour} + ${FHINC}) + if test ${NEW_SHOUR} -ge ${SHOUR} then - export SHOUR=$NEW_SHOUR + export SHOUR=${NEW_SHOUR} fi - if test $recvy_shour -ge $FHOUR + if test ${recvy_shour} -ge ${FHOUR} then - echo="Forecast Pgrb Generation Already Completed to $FHOUR" + echo="Forecast Pgrb Generation Already Completed to ${FHOUR}" else - echo="Starting: PDY=$PDY cycle=t${recvy_cyc}z SHOUR=$SHOUR ." + echo="Starting: PDY=${PDY} cycle=t${recvy_cyc}z SHOUR=${SHOUR} ." fi fi fi ############################################################# # Execute the script -$HOMEgfs/scripts/exgfs_atmos_grib2_special_npoess.sh +${HOMEgfs}/scripts/exgfs_atmos_grib2_special_npoess.sh export err=$?;err_chk ############################################################# ############################################ # print exec I/O output ############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA +if [ "${KEEPDATA}" != "YES" ] ; then + rm -rf ${DATA} fi diff --git a/jobs/JGFS_ATMOS_POSTSND b/jobs/JGFS_ATMOS_POSTSND index 859811e753..2c3363e1b0 100755 --- a/jobs/JGFS_ATMOS_POSTSND +++ b/jobs/JGFS_ATMOS_POSTSND @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -configs="base postsnd" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -45,10 +20,31 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the exglobal script ############################################## @@ -69,31 +65,31 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} # Set up the source directories ################################### -export HOMEbufrsnd=${HOMEbufrsnd:-$HOMEgfs} -export EXECbufrsnd=${EXECbufrsnd:-$HOMEbufrsnd/exec} -export FIXbufrsnd=${FIXbufrsnd:-$HOMEbufrsnd/fix/product} -export PARMbufrsnd=${PARMbufrsnd:-$HOMEbufrsnd/parm/product} -export USHbufrsnd=${USHbufrsnd:-$HOMEbufrsnd/ush} -export SCRbufrsnd=${SCRbufrsnd:-$HOMEbufrsnd/scripts} +export HOMEbufrsnd=${HOMEbufrsnd:-${HOMEgfs}} +export EXECbufrsnd=${EXECbufrsnd:-${HOMEbufrsnd}/exec} +export FIXbufrsnd=${FIXbufrsnd:-${HOMEbufrsnd}/fix/product} +export PARMbufrsnd=${PARMbufrsnd:-${HOMEbufrsnd}/parm/product} +export USHbufrsnd=${USHbufrsnd:-${HOMEbufrsnd}/ush} +export SCRbufrsnd=${SCRbufrsnd:-${HOMEbufrsnd}/scripts} ############################## # Define COM Directories ############################## -export COMIN=${COMIN:-$ROTDIR/${CDUMP}.${PDY}/${cyc}/atmos} -export COMOUT=${COMOUT:-$ROTDIR/${CDUMP}.${PDY}/${cyc}/atmos} +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos} export pcom=${pcom:-${COMOUT}/wmo} export COMAWP=${COMAWP:-${COMOUT}/gempak} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -[[ ! -d $COMOUT ]] && mkdir -p $COMOUT -[[ ! -d $pcom ]] && mkdir -p $pcom -[[ ! -d $COMAWP ]] && mkdir -p $COMAWP +[[ ! -d ${COMOUT} ]] && mkdir -p ${COMOUT} +[[ ! -d ${pcom} ]] && mkdir -p ${pcom} +[[ ! -d ${COMAWP} ]] && mkdir -p ${COMAWP} ######################################################## # Execute the script. -$SCRbufrsnd/exgfs_atmos_postsnd.sh +${SCRbufrsnd}/exgfs_atmos_postsnd.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -103,15 +99,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGFS_ATMOS_VMINMON b/jobs/JGFS_ATMOS_VMINMON index 3087d0ecc3..bd996ce01d 100755 --- a/jobs/JGFS_ATMOS_VMINMON +++ b/jobs/JGFS_ATMOS_VMINMON @@ -3,27 +3,26 @@ ########################################################### # GFS Minimization Monitor (MinMon) job ########################################################### -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################### # Specify NET and RUN name ############################## export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ########################################################### # obtain unique process id (pid) and make temp directories ########################################################### export pid=$$ -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} -########################################################### +########################################################### # obtain unique process id (pid) and make temp directories ########################################################### export MINMON_SUFFIX=${MINMON_SUFFIX:-GFS} @@ -34,12 +33,12 @@ 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} +export SCRgfs=${SCRgfs:-${HOMEgfs}/scripts} +export M_FIXgfs=${M_FIXgfs:-${HOMEgfs}/fix/product} export HOMEminmon=${HOMEminmon:-${HOMEgfs}} -export EXECminmon=${EXECminmon:-$HOMEminmon/exec} -export USHminmon=${USHminmon:-$HOMEminmon/ush} +export EXECminmon=${EXECminmon:-${HOMEminmon}/exec} +export USHminmon=${USHminmon:-${HOMEminmon}/ush} ############################################# @@ -61,10 +60,10 @@ export COM_IN=${COM_IN:-$(compath.py ${envir}/${NET}/${gfs_ver})} M_TANKverf=${M_TANKverf:-${COM_IN}/${RUN}.${PDY}/${cyc}/${COMPONENT}/minmon} export M_TANKverfM1=${M_TANKverfM1:-${COM_IN}/${RUN}.${P_PDY}/${p_cyc}/${COMPONENT}/minmon} -export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + +mkdir -p -m 775 ${M_TANKverf} -mkdir -p -m 775 $M_TANKverf - ######################################## # Set necessary environment variables @@ -75,9 +74,9 @@ export gsistat=${gsistat:-${COMIN}/gfs.t${cyc}z.gsistat} ######################################################## # Execute the script. -${GMONSH:-$SCRgfs/exgfs_atmos_vminmon.sh} ${PDY} ${cyc} +${GMONSH:-${SCRgfs}/exgfs_atmos_vminmon.sh} ${PDY} ${cyc} err=$? -[[ $err -ne 0 ]] && exit $err +[[ ${err} -ne 0 ]] && exit ${err} ################################ diff --git a/jobs/JGLOBAL_ARCHIVE b/jobs/JGLOBAL_ARCHIVE index 9d7dbb7436..97d8e4be35 100755 --- a/jobs/JGLOBAL_ARCHIVE +++ b/jobs/JGLOBAL_ARCHIVE @@ -9,9 +9,8 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################################# export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base arch" -config_path=${EXPDIR:-${PACKAGEROOT}/gfs.${gfs_ver}/parm/config} for config in ${configs}; do - . "${config_path}"/config."${config}" + . ${EXPDIR}/config.${config} status=$? [[ ${status} -ne 0 ]] && exit "${status}" done diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS index 3d4e26c84e..a557fd81a5 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -1,39 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## # Obtain unique process id (pid) and make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -47,17 +21,38 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} -export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} +export COMPONENT="atmos" +export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} export MAKE_NSSTBUFR=${MAKE_NSSTBUFR:-"NO"} export MAKE_ACFTBUFR=${MAKE_ACFTBUFR:-"NO"} @@ -66,56 +61,56 @@ export MAKE_ACFTBUFR=${MAKE_ACFTBUFR:-"NO"} # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" fi -mkdir -m 775 -p $COMOUT +mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" -export ATMGES="$COMIN_GES/${GPREFIX}atmf006${GSUFFIX}" -if [ ! -f $ATMGES ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES = $ATMGES" +export ATMGES="${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}" +if [ ! -f ${ATMGES} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES = ${ATMGES}" exit 1 fi # Get LEVS if [ ${GSUFFIX} = ".nc" ]; then - export LEVS=$($NCLEN $ATMGES pfull) + export LEVS=$(${NCLEN} ${ATMGES} pfull) status=$? else - export LEVS=$($NEMSIOGET $ATMGES dimz | awk '{print $2}') + export LEVS=$(${NEMSIOGET} ${ATMGES} dimz | awk '{print $2}') status=$? fi -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} -if [ $DOHYBVAR = "YES" ]; then - export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006.ensmean$GSUFFIX" - if [ ! -f $ATMGES_ENSMEAN ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = $ATMGES_ENSMEAN" +if [ ${DOHYBVAR} = "YES" ]; then + export ATMGES_ENSMEAN="${COMIN_GES_ENS}/${GPREFIX}atmf006.ensmean${GSUFFIX}" + if [ ! -f ${ATMGES_ENSMEAN} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = ${ATMGES_ENSMEAN}" exit 2 fi fi @@ -123,46 +118,46 @@ fi # Link observational data export PREPQC="${COMIN_OBS}/${OPREFIX}prepbufr" -if [ ! -f $PREPQC ]; then - echo "WARNING: Global PREPBUFR FILE $PREPQC MISSING" +if [ ! -f ${PREPQC} ]; then + echo "WARNING: Global PREPBUFR FILE ${PREPQC} MISSING" fi export TCVITL="${COMOUT}/${OPREFIX}syndata.tcvitals.tm00" -if [[ $DONST = "YES" ]]; then - if [[ $MAKE_NSSTBUFR == "YES" ]]; then +if [[ ${DONST} = "YES" ]]; then + if [[ ${MAKE_NSSTBUFR} == "YES" ]]; then export NSSTBF="${COMOUT}/${OPREFIX}nsstbufr" else export NSSTBF="${COMIN_OBS}/${OPREFIX}nsstbufr" fi fi -if [[ $MAKE_ACFTBUFR == "YES" ]]; then +if [[ ${MAKE_ACFTBUFR} == "YES" ]]; then export PREPQCPF="${COMOUT}/${OPREFIX}prepbufr.acft_profiles" else export PREPQCPF="${COMIN_OBS}/${OPREFIX}prepbufr.acft_profiles" fi -# Copy fix file for obsproc -if [ $RUN = "gfs" ]; then - mkdir -p $ROTDIR/fix - cp $FIXgsi/prepobs_errtable.global $ROTDIR/fix/ +# Copy fix file for obsproc # TODO: Why is this necessary? +if [ ${RUN} = "gfs" ]; then + mkdir -p ${ROTDIR}/fix + cp ${FIXgsi}/prepobs_errtable.global ${ROTDIR}/fix/ fi ############################################################### # Run relevant script -${ANALYSISSH:-$SCRgfs/exglobal_atmos_analysis.sh} +${ANALYSISSH:-${SCRgfs}/exglobal_atmos_analysis.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # Send Alerts ############################################## -if [ $SENDDBN = YES -a $RUN = gdas ] ; then - $DBNROOT/bin/dbn_alert MODEL GDAS_MSC_abias $job $COMOUT/${APREFIX}abias - $DBNROOT/bin/dbn_alert MODEL GDAS_MSC_abias_pc $job $COMOUT/${APREFIX}abias_pc - $DBNROOT/bin/dbn_alert MODEL GDAS_MSC_abias_air $job $COMOUT/${APREFIX}abias_air +if [ ${SENDDBN} = YES -a ${RUN} = gdas ] ; then + ${DBNROOT}/bin/dbn_alert MODEL GDAS_MSC_abias ${job} ${COMOUT}/${APREFIX}abias + ${DBNROOT}/bin/dbn_alert MODEL GDAS_MSC_abias_pc ${job} ${COMOUT}/${APREFIX}abias_pc + ${DBNROOT}/bin/dbn_alert MODEL GDAS_MSC_abias_air ${job} ${COMOUT}/${APREFIX}abias_air fi @@ -173,14 +168,14 @@ fi ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT +cd ${DATAROOT} [[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index 2af443b8bf..97dfd8079b 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -1,39 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal analcalc" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## # Obtain unique process id (pid) and make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -47,88 +21,109 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} -export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} +export COMPONENT="atmos" +export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} ############################################## # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" fi -mkdir -m 775 -p $COMOUT +mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" -export ATMGES="$COMIN_GES/${GPREFIX}atmf006${GSUFFIX}" -if [ ! -f $ATMGES ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES = $ATMGES" +export ATMGES="${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}" +if [ ! -f ${ATMGES} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES = ${ATMGES}" exit 1 fi # Get LEVS if [ ${GSUFFIX} = ".nc" ]; then - export LEVS=$($NCLEN $ATMGES pfull) + export LEVS=$(${NCLEN} ${ATMGES} pfull) status=$? else - export LEVS=$($NEMSIOGET $ATMGES dimz | awk '{print $2}') + export LEVS=$(${NEMSIOGET} ${ATMGES} dimz | awk '{print $2}') status=$? fi -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} -if [ $DOHYBVAR = "YES" ]; then - export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006.ensmean$GSUFFIX" - if [ ! -f $ATMGES_ENSMEAN ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = $ATMGES_ENSMEAN" +if [ ${DOHYBVAR} = "YES" ]; then + export ATMGES_ENSMEAN="${COMIN_GES_ENS}/${GPREFIX}atmf006.ensmean${GSUFFIX}" + if [ ! -f ${ATMGES_ENSMEAN} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = ${ATMGES_ENSMEAN}" exit 2 fi fi -# Generate Gaussian surface analysis +# Generate Gaussian surface analysis # TODO: Should this be removed now that sfcanl is its own job? export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} ############################################################### # Run relevant script -${ANALCALCSH:-$SCRgfs/exglobal_atmos_analysis_calc.sh} +${ANALCALCSH:-${SCRgfs}/exglobal_atmos_analysis_calc.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -138,15 +133,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP index d40a22da0f..c2730b8464 100755 --- a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP +++ b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP @@ -1,19 +1,18 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done @@ -21,10 +20,9 @@ done # Obtain unique process id (pid) and make temp directory ############################################## export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -49,16 +47,16 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} ############################################## CDATE=${CDATE:-${PDY}${cyc}} -GDATE=$($NDATE -06 $CDATE) -PDY_m6hrs=$(echo $GDATE | cut -c1-8) -cyc_m6hrs=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -06 ${CDATE}) +PDY_m6hrs=$(echo ${GDATE} | cut -c1-8) +cyc_m6hrs=$(echo ${GDATE} | cut -c9-10) export cycle_m6hrs=t${cyc_m6hrs}z -export COMPONENT=${COMPONENT:-atmos} -export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMPONENT="atmos" +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/${COMPONENT}} -export COMINobsproc=${COMINobsproc:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} -export COMIN_m6hrs=${COMIN_m6hrs:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY_m6hrs}/${cyc_m6hrs}/$COMPONENT} +export COMINobsproc=${COMINobsproc:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} +export COMIN_m6hrs=${COMIN_m6hrs:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY_m6hrs}/${cyc_m6hrs}/${COMPONENT}} export IMS_FILE=${COMINobsproc}/${RUN}.${cycle}.imssnow96.grib2 export FIVE_MIN_ICE_FILE=${COMINobsproc}/${RUN}.${cycle}.seaice.5min.grib2 @@ -72,9 +70,9 @@ export BLENDED_ICE_FILE_m6hrs=${BLENDED_ICE_FILE_m6hrs:-${COMIN_m6hrs}/${RUN}.${ # Run relevant script ############################################################### -${EMCSFCPREPSH:-$SCRgfs/exemcsfc_global_sfc_prep.sh} +${EMCSFCPREPSH:-${SCRgfs}/exemcsfc_global_sfc_prep.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # End JOB SPECIFIC work @@ -84,14 +82,14 @@ status=$? # Final processing ############################################## if [ -e ${pgmout} ]; then - cat $pgmout + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_ATMOS_POST b/jobs/JGLOBAL_ATMOS_POST index ab75918aa6..c0327a8311 100755 --- a/jobs/JGLOBAL_ATMOS_POST +++ b/jobs/JGLOBAL_ATMOS_POST @@ -2,34 +2,9 @@ source "${HOMEgfs}/ush/preamble.sh" -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -configs="base post" -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -config_path=${EXPDIR:-${PACKAGEROOT}/gfs.${gfs_ver}/parm/config} -for config in ${configs}; do - . "${config_path}/config.${config}" - status=$? - (( status != 0 )) && exit "${status}" -done - - -########################################## -# Source machine runtime environment -########################################## -. "${HOMEgfs}/env/${machine}.env" post -status=$? -(( status != 0 )) && exit "${status}" - - ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL${job}"} export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p "${DATA}" cd "${DATA}" || exit 1 @@ -46,9 +21,31 @@ setpdy.sh ############################################## # 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}" + + #################################### # Specify version numbers #################################### @@ -62,7 +59,7 @@ export g2tmpl_ver=${g2tmpl_ver:-v1.5.0} ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER index 01323846db..88aca2896f 100755 --- a/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -1,61 +1,62 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +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=${pid:-$$} +export jobid="${outid}.o${pid}" +export pgmout="OUTPUT.${pid}" + ######################################## # GFS post manager ######################################## -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base post" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env post +. ${HOMEgfs}/env/${machine}.env post status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} -set -xue -# #### 07/30/1999 ################### -# SET SHELL PROCESSING VARIABLES -# ################################### -export PS4='$SECONDS + ' -date #################################### # Specify NET and RUN Name and model #################################### export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" -#################################### -# obtain unique process id (pid) and make temp directories -#################################### -export pid=${pid:-$$} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir $DATA -cd $DATA - -#################################### -# Determine Job Output Name on System -#################################### -export outid="LL$job" -export jobid="${outid}.o${pid}" -export pgmout="OUTPUT.${pid}" #################################### # Specify version numbers @@ -66,37 +67,23 @@ export gfs_ver=${gfs_ver:-v15.0.0} # Specify Execution Areas #################################### export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} -export EXECgfs=${HOMEgfs:-$HOMEgfs/exec} -export FIXgfs=${HOMEgfs:-$HOMEgfs/fix} -export PARMgfs=${HOMEgfs:-$HOMEgfs/parm} -export USHgfs=${HOMEgfs:-$HOMEgfs/ush} +export EXECgfs=${HOMEgfs:-${HOMEgfs}/exec} +export FIXgfs=${HOMEgfs:-${HOMEgfs}/fix} +export PARMgfs=${HOMEgfs:-${HOMEgfs}/parm} +export USHgfs=${HOMEgfs:-${HOMEgfs}/ush} ########################### # Set up EXT variable ########################### export EXT_FCST=NO -################################### -# Set up the UTILITIES -################################### -# export HOMEutil=${HOMEutil:-/nw${envir}/util.${util_ver}} -# export utilscript=${utilscript:-$HOMEutil/ush} -# export utilexec=${utilexec:-$HOMEutil/exec} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -export cycle=t${cyc}z -setpdy.sh -. ./PDY - -export ROTDIR=${ROTDIR:-${COMROOT:?}/$NET/$envir} -export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} -export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} +export ROTDIR=${ROTDIR:-${COMROOT:?}/${NET}/${envir}} +export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} ######################################################## # Execute the script. -$HOMEgfs/scripts/exglobal_atmos_pmgr.sh +${HOMEgfs}/scripts/exglobal_atmos_pmgr.sh ######################################################## diff --git a/jobs/JGLOBAL_ATMOS_SFCANL b/jobs/JGLOBAL_ATMOS_SFCANL index 2e8e8a7160..c574f9d0e3 100755 --- a/jobs/JGLOBAL_ATMOS_SFCANL +++ b/jobs/JGLOBAL_ATMOS_SFCANL @@ -1,38 +1,13 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base sfcanl" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/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/preamble.sh" ############################################## # Obtain unique process id (pid) and make temp directory ############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} - -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -46,18 +21,38 @@ setpdy.sh ############################################## # 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} + + ############################################## # Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir +export COMPONENT="atmos" +if [ ${RUN_ENVIR} = "nco" ]; then + export ROTDIR=${COMROOT:?}/${NET}/${envir} fi @@ -65,37 +60,37 @@ fi # Begin JOB SPECIFIC work ############################################## -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +gPDY=$(echo ${GDATE} | cut -c1-8) +gcyc=$(echo ${GDATE} | cut -c9-10) GDUMP=${GDUMP:-"gdas"} export OPREFIX="${CDUMP}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export APREFIX="${CDUMP}.t${cyc}z." -export GSUFFIX=${GSUFFIX:-$SUFFIX} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export GSUFFIX=${GSUFFIX:-${SUFFIX}} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} -if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} +if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_OBS=${COMIN_OBS:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} + export COMIN_GES_OBS=${COMIN_GES_OBS:-${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} else - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN_OBS="${DMPDIR}/${CDATE}/${CDUMP}" + export COMIN_GES_OBS="${DMPDIR}/${GDATE}/${GDUMP}" fi -mkdir -m 775 -p $COMOUT +mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" -export ATMGES="$COMIN_GES/${GPREFIX}atmf006${GSUFFIX}" -if [ ! -f $ATMGES ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES = $ATMGES" +export ATMGES="${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}" +if [ ! -f ${ATMGES} ]; then + echo "FATAL ERROR: FILE MISSING: ATMGES = ${ATMGES}" exit 1 fi @@ -103,9 +98,9 @@ fi ############################################################### # Run relevant script -${SFCANALSH:-$SCRgfs/exglobal_atmos_sfcanl.sh} +${SFCANALSH:-${SCRgfs}/exglobal_atmos_sfcanl.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -115,15 +110,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC index e9c9b9db1e..7aa3e5111e 100755 --- a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC +++ b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC @@ -1,38 +1,36 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base prep" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env prep +. ${HOMEgfs}/env/${machine}.env prep status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # Obtain unique process id (pid) and make temp directory ############################################## export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} ############################################## @@ -55,7 +53,7 @@ export pgmerr=errfile ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" ############################################## @@ -67,7 +65,7 @@ export DO_RELOCATE=${DO_RELOCATE:-NO} # Turn on tropical cyclone reloc export tmmark=tm00 export ARCHSYND=${ROTDIR}/syndat # this location is unique, do not change -if [ ! -d ${ARCHSYND} ]; then mkdir -p $ARCHSYND; fi +if [ ! -d ${ARCHSYND} ]; then mkdir -p ${ARCHSYND}; fi export HOMENHC=${HOMENHC:-/lfs/h1/ops/prod/dcom/nhc/atcf/ncep} @@ -76,13 +74,13 @@ export TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}} # path to tropical cyclone reco ############################################## # Define COM directories ############################################## -export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT -export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT -if [ ! -d ${COMOUT} ]; then mkdir -p $COMOUT; fi +export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} +export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} +if [ ! -d ${COMOUT} ]; then mkdir -p ${COMOUT}; fi #export COMINgdas=${ROTDIR}/gdas.${PDY}/${cyc} #export COMINgfs=${ROTDIR}/gfs.${PDY}/${cyc} -export CRES=$(echo $CASE | cut -c2-) +export CRES=$(echo ${CASE} | cut -c2-) export LATB=$((CRES*2)) export LONB=$((CRES*4)) export BKGFREQ=1 # for hourly relocation @@ -92,23 +90,23 @@ export BKGFREQ=1 # for hourly relocation # Run relevant script ############################################## -${TROPCYQCRELOSH:-$SCRgfs/exglobal_atmos_tropcy_qc_reloc.sh} +${TROPCYQCRELOSH:-${SCRgfs}/exglobal_atmos_tropcy_qc_reloc.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index 7f6dbd9a26..e272e449fa 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -1,50 +1,14 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} - -#-------------------------------- -if [ $RUN_ENVIR = "emc" ]; then -#-------------------------------- +source "${HOMEgfs}/ush/preamble.sh" ############################################## -# Set variables used in the exglobal script +# make temp directory ############################################## -export CDATE=${CDATE:-${PDY}${cyc}} -export CDUMP=${CDUMP:-${RUN:-"gfs"}} +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} -############################# -# Source relevant config files -############################# -configs="base fcst" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config - status=$? - [[ $status -ne 0 ]] && exit $status -done - -########################################## -# Source machine runtime environment -########################################## -. $HOMEgfs/env/${machine}.env fcst -status=$? -[[ $status -ne 0 ]] && exit $status - -#-------------------------------- -fi -#-------------------------------- - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA ############################################## # Run setpdy and initialize PDY variables @@ -57,47 +21,35 @@ setpdy.sh ############################################## # Determine Job Output Name on System ############################################## +export pid=${pid:-$$} export pgmout="OUTPUT.${pid}" export pgmerr=errfile -#-------------------------------- -if [ $RUN_ENVIR = "nco" ]; then -#-------------------------------- - ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base fcst" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +[[ ${DO_WAVE:-"NO"} = "YES" ]] && configs+=" wave" +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done -# Source additional configs -if [ ${DO_WAVE:-"NO"} = "YES" ]; then - configs="wave" - for config in $configs; do - . $config_path/config.$config - status=$? - [[ $status -ne 0 ]] && exit $status - done -fi + ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env fcst +. ${HOMEgfs}/env/${machine}.env fcst status=$? -[[ $status -ne 0 ]] && exit $status - -#-------------------------------- -fi -#-------------------------------- +[[ ${status} -ne 0 ]] && exit ${status} +############################################## +# Set variables used in the script +############################################## # Set wave variables if [ ${DO_WAVE:-"NO"} = "YES" ]; then # WAVE component directory @@ -111,15 +63,15 @@ fi ############################################## # Restart conditions for GFS cycle come from GDAS -rCDUMP=$CDUMP -[[ $CDUMP = "gfs" ]] && export rCDUMP="gdas" +rCDUMP=${CDUMP} +[[ ${CDUMP} = "gfs" ]] && export rCDUMP="gdas" # Forecast length for GFS forecast -if [ $CDUMP = "gfs" ]; then - export FHMAX=$FHMAX_GFS - export FHOUT=$FHOUT_GFS - export FHMAX_HF=$FHMAX_HF_GFS - export FHOUT_HF=$FHOUT_HF_GFS +if [ ${CDUMP} = "gfs" ]; then + export FHMAX=${FHMAX_GFS} + export FHOUT=${FHOUT_GFS} + export FHMAX_HF=${FHMAX_HF_GFS} + export FHOUT_HF=${FHOUT_HF_GFS} else export FHMAX_HF=0 export FHOUT_HF=0 @@ -129,9 +81,9 @@ fi ############################################################### # Run relevant exglobal script -${FORECASTSH:-$SCRgfs/exglobal_forecast.sh} +${FORECASTSH:-${SCRgfs}/exglobal_forecast.sh} status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################## @@ -141,15 +93,15 @@ status=$? ############################################## # Final processing ############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout +if [ -e "${pgmout}" ] ; then + cat ${pgmout} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_WAVE_GEMPAK b/jobs/JGLOBAL_WAVE_GEMPAK index baf2f437f1..76cc44ec1a 100755 --- a/jobs/JGLOBAL_WAVE_GEMPAK +++ b/jobs/JGLOBAL_WAVE_GEMPAK @@ -1,34 +1,43 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +############################################## +# make temp directory +############################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - +############################################## +# 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=${COMPONENT:-wave} +export COMPONENT="wave" export machine=${machine:-WCOSS2} -export HOMEgfs=${HOMEgfs:-$(dirname $(dirname $0))} # Add default errchk = err_chk 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 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.$$" @@ -38,8 +47,8 @@ export SENDDBN=${SENDDBN:-YES} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT +if [ ${SENDCOM} = YES ] ; then + mkdir -m 775 -p ${COMOUT} fi @@ -47,12 +56,13 @@ fi # Execute the script. ${HOMEgfs}/scripts/exgfs_wave_nawips.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ################################### + # Remove temp directories -if [ "$KEEPDATA" != "YES" ]; then - cd $DATAROOT - rm -rf $DATA +cd ${DATAROOT} +if [ "${KEEPDATA}" != "YES" ]; then + rm -rf ${DATA} fi diff --git a/jobs/JGLOBAL_WAVE_INIT b/jobs/JGLOBAL_WAVE_INIT index c111330ca9..80726f2918 100755 --- a/jobs/JGLOBAL_WAVE_INIT +++ b/jobs/JGLOBAL_WAVE_INIT @@ -1,79 +1,86 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +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 -export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base wave waveinit" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env waveinit +. ${HOMEgfs}/env/${machine}.env waveinit status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # PATH for working directory export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-wave} +export COMPONENT="wave" # Add default errchk = err_chk export errchk=${errchk:-err_chk} -# Create and go to DATA directory -export DATA=${DATA:-${DATAROOT:?}/${jobid}} -mkdir -p $DATA -cd $DATA - -cyc=${cyc:-00} -export cycle=${cycle:-t${cyc}z} - -# Set PDY -setpdy.sh -. ./PDY - -export pgmout=OUTPUT.$$ - export MP_PULSE=0 # Path to HOME Directory -export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} -export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} -export USHwave=${USHwave:-$HOMEgfs/ush} -export EXECwave=${EXECwave:-$HOMEgfs/exec} +export FIXwave=${FIXwave:-${HOMEgfs}/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} +export USHwave=${USHwave:-${HOMEgfs}/ush} +export EXECwave=${EXECwave:-${HOMEgfs}/exec} # Set COM Paths and GETGES environment -export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} -[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +[[ ! -d ${COMOUT} ]] && mkdir -m 775 -p ${COMOUT} -if [ $SENDCOM = YES ]; then - mkdir -p $COMOUT/rundata +if [ ${SENDCOM} = YES ]; then + mkdir -p ${COMOUT}/rundata fi # Set mpi serial command export wavempexec=${wavempexec:-"mpirun -n"} export wave_mpmd=${wave_mpmd:-"cfp"} -# Execute the Script -$HOMEgfs/scripts/exgfs_wave_init.sh +# Execute the Script +${HOMEgfs}/scripts/exgfs_wave_init.sh ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNT b/jobs/JGLOBAL_WAVE_POST_BNDPNT index 0f0370c940..00c87870bb 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNT +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNT @@ -1,71 +1,78 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +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 -export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base wave wavepostsbs wavepostbndpnt" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env wavepostbndpnt +. ${HOMEgfs}/env/${machine}.env wavepostbndpnt status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # PATH for working directory export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-wave} +export COMPONENT="wave" -export HOMEgefs=${HOMEgefs:-$PACKAGEROOT/$NET.${gefs_ver}} -export HOMEgfs=${HOMEgfs:-$PACKAGEROOT/$NET.${gfs_ver}} +export HOMEgefs=${HOMEgefs:-${PACKAGEROOT}/${NET}.${gefs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/${NET}.${gfs_ver}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} -# Create and go to DATA directory -export DATA=${DATA:-${DATAROOT:?}/${jobid}} -mkdir -p $DATA -cd $DATA - -export cyc=${cyc:-00} -export cycle=${cycle:-t${cyc}z} - -# Set PDY -setpdy.sh -. ./PDY - -export CDATE=$PDY$cyc - -export pgmout=OUTPUT.$$ +export CDATE=${PDY}${cyc} export MP_PULSE=0 # Path to HOME Directory -export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} -export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} -export USHwave=${USHwave:-$HOMEgfs/ush} -export EXECwave=${EXECwave:-$HOMEgfs/exec} +export FIXwave=${FIXwave:-${HOMEgfs}/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} +export USHwave=${USHwave:-${HOMEgfs}/ush} +export EXECwave=${EXECwave:-${HOMEgfs}/exec} # Set COM Paths and GETGES environment -export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT/station +mkdir -p ${COMOUT}/station -# Set wave model ID tag to include member number +# Set wave model ID tag to include member number # if ensemble; waveMEMB var empty in deterministic membTAG='p' if [ "${waveMEMB}" == "00" ]; then membTAG='c'; fi @@ -75,15 +82,15 @@ export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} export CFP_VERBOSE=1 export FHMAX_WAV_PNT=180 -if [ $FHMAX_WAV -lt $FHMAX_WAV_PNT ] ; then export FHMAX_WAV_IBP=$FHMAX_WAV ; fi +if [ ${FHMAX_WAV} -lt ${FHMAX_WAV_PNT} ] ; then export FHMAX_WAV_IBP=${FHMAX_WAV} ; fi export DOSPC_WAV='YES' # Spectral post export DOBLL_WAV='NO' # Bulletin post export DOBNDPNT_WAV='YES' #not boundary points -# Execute the Script -$HOMEgfs/scripts/exgfs_wave_post_pnt.sh +# Execute the Script +${HOMEgfs}/scripts/exgfs_wave_post_pnt.sh err=$? -if [ $err -ne 0 ]; then +if [ ${err} -ne 0 ]; then echo "FATAL ERROR: ex-script of GWES_POST failed!" exit ${err} fi @@ -91,8 +98,8 @@ fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL index 8b5819a954..863a741438 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL @@ -1,69 +1,75 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +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 -export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base wave wavepostsbs wavepostbndpntbll" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env wavepostbndpntbll +. ${HOMEgfs}/env/${machine}.env wavepostbndpntbll status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # PATH for working directory export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-wave} +export COMPONENT="wave" -export HOMEgefs=${HOMEgefs:-$PACKAGEROOT/$NET.${gefs_ver}} -export HOMEgfs=${HOMEgfs:-$PACKAGEROOT/$NET.${gfs_ver}} +export HOMEgefs=${HOMEgefs:-${PACKAGEROOT}/${NET}.${gefs_ver}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} -# Create and go to DATA directory -export DATA=${DATA:-${DATAROOT:?}/${jobid}} -mkdir -p $DATA -cd $DATA - -export cyc=${cyc:-00} -export cycle=${cycle:-t${cyc}z} - -# Set PDY -setpdy.sh -. ./PDY - -export CDATE=$PDY$cyc - -export pgmout=OUTPUT.$$ +export CDATE=${PDY}${cyc} export MP_PULSE=0 # Path to HOME Directory -export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} -export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} -export USHwave=${USHwave:-$HOMEgfs/ush} -export EXECwave=${EXECwave:-$HOMEgfs/exec} +export FIXwave=${FIXwave:-${HOMEgfs}/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} +export USHwave=${USHwave:-${HOMEgfs}/ush} +export EXECwave=${EXECwave:-${HOMEgfs}/exec} # Set COM Paths and GETGES environment -export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT/station +mkdir -p ${COMOUT}/station # Set wave model ID tag to include member number @@ -78,15 +84,15 @@ export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} export CFP_VERBOSE=1 export FHMAX_WAV_PNT=180 -if [ $FHMAX_WAV -lt $FHMAX_WAV_PNT ] ; then export FHMAX_WAV_IBP=$FHMAX_WAV ; fi +if [ ${FHMAX_WAV} -lt ${FHMAX_WAV_PNT} ] ; then export FHMAX_WAV_IBP=${FHMAX_WAV} ; fi export DOSPC_WAV='NO' # Spectral post export DOBLL_WAV='YES' # Bulletin post export DOBNDPNT_WAV='YES' #boundary points # Execute the Script -$HOMEgfs/scripts/exgfs_wave_post_pnt.sh +${HOMEgfs}/scripts/exgfs_wave_post_pnt.sh err=$? -if [ $err -ne 0 ]; then +if [ ${err} -ne 0 ]; then echo "FATAL ERROR: ex-script of GFS_WAVE_POST_PNT failed!" exit ${err} fi @@ -94,8 +100,8 @@ fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index 1a2d394a6f..dd35efd15f 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -1,71 +1,77 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +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 -export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base wave wavepostsbs wavepostpnt" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-${PACKAGEROOT:-}/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env wavepostpnt +. ${HOMEgfs}/env/${machine}.env wavepostpnt status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # PATH for working directory export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-wave} +export COMPONENT="wave" -export HOMEgefs=${HOMEgefs:-${PACKAGEROOT:-}/$NET.${gefs_ver:-}} -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT:-}/$NET.${gfs_ver}} +export HOMEgefs=${HOMEgefs:-${PACKAGEROOT:-}/${NET}.${gefs_ver:-}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} -# Create and go to DATA directory -export DATA=${DATA:-${DATAROOT:?}/${jobid}} -mkdir -p $DATA -cd $DATA - -export cyc=${cyc:-00} -export cycle=${cycle:-t${cyc}z} - -# Set PDY -setpdy.sh -. ./PDY - -export CDATE=$PDY$cyc - -export pgmout=OUTPUT.$$ +export CDATE=${PDY}${cyc} export MP_PULSE=0 # Path to HOME Directory -export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} -export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} -export USHwave=${USHwave:-$HOMEgfs/ush} -export EXECwave=${EXECwave:-$HOMEgfs/exec} +export FIXwave=${FIXwave:-${HOMEgfs}/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} +export USHwave=${USHwave:-${HOMEgfs}/ush} +export EXECwave=${EXECwave:-${HOMEgfs}/exec} # Set COM Paths and GETGES environment -export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} -mkdir -p $COMOUT/station +mkdir -p ${COMOUT}/station -# Set wave model ID tag to include member number +# Set wave model ID tag to include member number # if ensemble; waveMEMB var empty in deterministic # Set wave model ID tag to include member number # if ensemble; waveMEMB var empty in deterministic @@ -82,10 +88,10 @@ export DOBLL_WAV='YES' # Bulletin post export DOBNDPNT_WAV='NO' #not boundary points -# Execute the Script -$HOMEgfs/scripts/exgfs_wave_post_pnt.sh +# Execute the Script +${HOMEgfs}/scripts/exgfs_wave_post_pnt.sh err=$? -if [ $err -ne 0 ]; then +if [ ${err} -ne 0 ]; then echo "FATAL ERROR: ex-script of GWES_POST failed!" exir ${err} fi @@ -93,8 +99,8 @@ fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_WAVE_POST_SBS b/jobs/JGLOBAL_WAVE_POST_SBS index aca8e03f36..dc847f7e46 100755 --- a/jobs/JGLOBAL_WAVE_POST_SBS +++ b/jobs/JGLOBAL_WAVE_POST_SBS @@ -1,72 +1,78 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +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 -export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base wave wavepostsbs" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-${PACKAGEROOT:-}/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env wavepostsbs +. ${HOMEgfs}/env/${machine}.env wavepostsbs status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # PATH for working directory export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-wave} +export COMPONENT="wave" -export HOMEgefs=${HOMEgefs:-${PACKAGEROOT:-}/$NET.${gefs_ver:-}} -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT:-}/$NET.${gfs_ver}} +export HOMEgefs=${HOMEgefs:-${PACKAGEROOT:-}/${NET}.${gefs_ver:-}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} -# Create and go to DATA directory -export DATA=${DATA:-${DATAROOT:?}/${jobid}} -mkdir -p $DATA -cd $DATA - -export cyc=${cyc:-00} -export cycle=${cycle:-t${cyc}z} - -# Set PDY -setpdy.sh -. ./PDY - -export CDATE=$PDY$cyc - -export pgmout=OUTPUT.$$ +export CDATE=${PDY}${cyc} export MP_PULSE=0 # Path to HOME Directory -export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} -export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} -export USHwave=${USHwave:-$HOMEgfs/ush} -export EXECwave=${EXECwave:-$HOMEgfs/exec} +export FIXwave=${FIXwave:-${HOMEgfs}/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} +export USHwave=${USHwave:-${HOMEgfs}/ush} +export EXECwave=${EXECwave:-${HOMEgfs}/exec} # Set COM Paths and GETGES environment -export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} export COMINice=${COMINice:-${COMROOTp2:-${COMROOT}}/omb/prod} export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$(compath.py ${envir}/rtofs/${rtofs_ver})} -mkdir -p $COMOUT/gridded +mkdir -p ${COMOUT}/gridded # Set wave model ID tag to include member number @@ -81,18 +87,18 @@ export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} export CFP_VERBOSE=1 # Execute the Script -$HOMEgfs/scripts/exgfs_wave_post_gridded_sbs.sh +${HOMEgfs}/scripts/exgfs_wave_post_gridded_sbs.sh err=$? -if [ $err -ne 0 ]; then +if [ ${err} -ne 0 ]; then echo "FATAL ERROR: ex-script of GWES_POST failed!" - exit $err + exit ${err} fi ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS index 52481f848a..d52a85ce46 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS +++ b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS @@ -1,32 +1,42 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +############################################## +# make temp directory +############################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} -# Set PDY +############################################## +# 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=${COMPONENT:-wave} -export HOMEgfs=${HOMEgfs:-$(dirname $(dirname $0))} # parent directory of current job card +export COMPONENT="wave" # Add default errchk = err_chk 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} +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}} export PCOM=${PCOM:-${COMOUT}/wmo} export SENDCOM=${SENDCOM:-YES} @@ -35,25 +45,24 @@ export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ]; then - mkdir -p $COMOUT $PCOM +if [ ${SENDCOM} = YES ]; then + mkdir -p ${COMOUT} ${PCOM} fi ################################### -# Execute the Script +# Execute the Script -$HOMEgfs/scripts/exgfs_wave_prdgen_bulls.sh +${HOMEgfs}/scripts/exgfs_wave_prdgen_bulls.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} + ################################### # Remove temp directories - -if [ "$KEEPDATA" != "YES" ]; then - cd $DATAROOT - rm -rf $DATA +cd ${DATAROOT} +if [ "${KEEPDATA}" != "YES" ]; then + rm -rf ${DATA} fi exit 0 - diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED index 7a54c87ccc..5374d31648 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +++ b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED @@ -1,25 +1,35 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA +############################################## +# make temp directory +############################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p ${DATA} +cd ${DATA} -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} -# Set PDY +############################################## +# 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=${COMPONENT:-wave} -export HOMEgfs=${HOMEgfs:-$(dirname $(dirname $0))} # parent directory of current job card +export COMPONENT="wave" # Add default errchk = err_chk export errchk=${errchk:-err_chk} @@ -27,8 +37,8 @@ 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} +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}} export PCOM=${PCOM:-${COMOUT}/wmo} export SENDCOM=${SENDCOM:-YES} @@ -36,22 +46,23 @@ export SENDDBN_NTC=${SENDDBN_NTC:-YES} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ $SENDCOM = YES ]; then - mkdir -p $COMOUT $PCOM +if [ ${SENDCOM} = YES ]; then + mkdir -p ${COMOUT} ${PCOM} fi ################################### -# Execute the Script +# Execute the Script ################################### -$HOMEgfs/scripts/exgfs_wave_prdgen_gridded.sh +${HOMEgfs}/scripts/exgfs_wave_prdgen_gridded.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} + ################################### # Remove temp directories ################################### -if [ "$KEEPDATA" != "YES" ]; then - cd $DATAROOT - rm -rf $DATA +cd ${DATAROOT} +if [ "${KEEPDATA}" != "YES" ]; then + rm -rf ${DATA} fi diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP index eba4af8784..ddc68cde3b 100755 --- a/jobs/JGLOBAL_WAVE_PREP +++ b/jobs/JGLOBAL_WAVE_PREP @@ -1,53 +1,59 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +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 -export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# +export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} configs="base wave waveprep" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env waveprep +. ${HOMEgfs}/env/${machine}.env waveprep status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # PATH for working directory export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT=${COMPONENT:-wave} - -export HOMEgfs=${HOMEgfs:-$PACKAGEROOT/gfs.${gfs_ver}} +export COMPONENT="wave" # Add default errchk = err_chk export errchk=${errchk:-err_chk} -# Create and go to DATA directory -export DATA=${DATA:-${DATAROOT:?}/${jobid}} -mkdir -p $DATA -cd $DATA - -cyc=${cyc:-00} -export cycle=${cycle:-t${cyc}z} - -# Set PDY -setpdy.sh -. ./PDY # Set rtofs PDY -export RPDY=$PDY - -export pgmout=OUTPUT.$$ +export RPDY=${PDY} export MP_PULSE=0 @@ -55,47 +61,47 @@ export MP_PULSE=0 export CDO=${CDO_ROOT}/bin/cdo # Path to HOME Directory -export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} -export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} -export USHwave=${USHwave:-$HOMEgfs/ush} -export EXECwave=${EXECwave:-$HOMEgfs/exec} +export FIXwave=${FIXwave:-${HOMEgfs}/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} +export USHwave=${USHwave:-${HOMEgfs}/ush} +export EXECwave=${EXECwave:-${HOMEgfs}/exec} # Set COM Paths and GETGES environment -export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} -[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +[[ ! -d ${COMOUT} ]] && mkdir -m 775 -p ${COMOUT} -if [ $RUN_ENVIR = "nco" ]; then +if [ ${RUN_ENVIR} = "nco" ]; then export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py ${envir}/obsproc/${obsproc_ver})}/${CDUMP}.${PDY}/${cyc}/atmos export COMIN_WAV_RTOFS=${COMIN_WAV_RTOFS:-$(compath.py ${envir}/${WAVECUR_DID}/${rtofs_ver})} else - if [ $WW3CURINP = "YES" ]; then - if [ ! -d $DMPDIR/${WAVECUR_DID}.${RPDY} ]; then export RPDY=$($NDATE -24 ${PDY}00 | cut -c1-8); fi - if [ ! -L $ROTDIR/${WAVECUR_DID}.${RPDY} ]; then # Check if symlink already exists in ROTDIR - $NLN $DMPDIR/${WAVECUR_DID}.${RPDY} $ROTDIR/${WAVECUR_DID}.${RPDY} + if [ ${WW3CURINP} = "YES" ]; then + if [ ! -d ${DMPDIR}/${WAVECUR_DID}.${RPDY} ]; then export RPDY=$(${NDATE} -24 ${PDY}00 | cut -c1-8); fi + if [ ! -L ${ROTDIR}/${WAVECUR_DID}.${RPDY} ]; then # Check if symlink already exists in ROTDIR + ${NLN} ${DMPDIR}/${WAVECUR_DID}.${RPDY} ${ROTDIR}/${WAVECUR_DID}.${RPDY} fi - BRPDY=$($NDATE -24 ${RPDY}00 | cut -c1-8) - if [ ! -L $ROTDIR/${WAVECUR_DID}.${BRPDY} ]; then # Check if symlink already exists in ROTDIR - $NLN $DMPDIR/${WAVECUR_DID}.${BRPDY} $ROTDIR/${WAVECUR_DID}.${BRPDY} + BRPDY=$(${NDATE} -24 ${RPDY}00 | cut -c1-8) + if [ ! -L ${ROTDIR}/${WAVECUR_DID}.${BRPDY} ]; then # Check if symlink already exists in ROTDIR + ${NLN} ${DMPDIR}/${WAVECUR_DID}.${BRPDY} ${ROTDIR}/${WAVECUR_DID}.${BRPDY} fi - export COMIN_WAV_RTOFS=${COMIN_WAV_RTOFS:-$ROTDIR} - fi - if [ $WW3ICEINP = "YES" ]; then - if [ ! -L $ROTDIR/${CDUMP}.${PDY}/${cyc}/atmos/${WAVICEFILE} ]; then # Check if symlink already exists in ROTDIR - $NLN $DMPDIR/$CDUMP.${PDY}/$cyc/atmos/${WAVICEFILE} $ROTDIR/$CDUMP.${PDY}/$cyc/atmos/${WAVICEFILE} + export COMIN_WAV_RTOFS=${COMIN_WAV_RTOFS:-${ROTDIR}} + fi + if [ ${WW3ICEINP} = "YES" ]; then + if [ ! -L ${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos/${WAVICEFILE} ]; then # Check if symlink already exists in ROTDIR + ${NLN} ${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos/${WAVICEFILE} ${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos/${WAVICEFILE} fi - export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$ROTDIR/$RUN.$PDY/$cyc/atmos} - fi + export COMIN_WAV_ICE=${COMIN_WAV_ICE:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + fi fi # Execute the Script -$HOMEgfs/scripts/exgfs_wave_prep.sh +${HOMEgfs}/scripts/exgfs_wave_prep.sh ########################################## # Remove the Temporary working directory ########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA +cd ${DATAROOT} +[[ ${KEEPDATA} = "NO" ]] && rm -rf ${DATA} exit 0 diff --git a/jobs/rocoto/anal.sh b/jobs/rocoto/anal.sh index cd7fdc932a..d99152ef19 100755 --- a/jobs/rocoto/anal.sh +++ b/jobs/rocoto/anal.sh @@ -1,16 +1,19 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="anal" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_ATMOS_ANALYSIS +${HOMEgfs}/jobs/JGLOBAL_ATMOS_ANALYSIS status=$? diff --git a/jobs/rocoto/analcalc.sh b/jobs/rocoto/analcalc.sh index d80756cfc7..2e669b0163 100755 --- a/jobs/rocoto/analcalc.sh +++ b/jobs/rocoto/analcalc.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="analcalc" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +${HOMEgfs}/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/analdiag.sh b/jobs/rocoto/analdiag.sh index f9d97360c6..cd6e1113f0 100755 --- a/jobs/rocoto/analdiag.sh +++ b/jobs/rocoto/analdiag.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="analdiag" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +${HOMEgfs}/jobs/JGDAS_ATMOS_ANALYSIS_DIAG status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/atmanalpost.sh b/jobs/rocoto/atmanalpost.sh index 5be6644140..71ace70c8b 100755 --- a/jobs/rocoto/atmanalpost.sh +++ b/jobs/rocoto/atmanalpost.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash export STRICT="NO" -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export STRICT="YES" ############################################################### # Source UFSDA workflow modules -. $HOMEgfs/ush/load_ufsda_modules.sh +. ${HOMEgfs}/ush/load_ufsda_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} + +export job="atmanalpost" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST +${HOMEgfs}/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/atmanalprep.sh b/jobs/rocoto/atmanalprep.sh index f37de54d1d..d5b729194a 100755 --- a/jobs/rocoto/atmanalprep.sh +++ b/jobs/rocoto/atmanalprep.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash export STRICT="NO" -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export STRICT="YES" ############################################################### # Source UFSDA workflow modules -. $HOMEgfs/ush/load_ufsda_modules.sh +. ${HOMEgfs}/ush/load_ufsda_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} + +export job="atmanalprep" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP +${HOMEgfs}/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/atmanalrun.sh b/jobs/rocoto/atmanalrun.sh index 56bf47db89..63aa08c184 100755 --- a/jobs/rocoto/atmanalrun.sh +++ b/jobs/rocoto/atmanalrun.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash export STRICT="NO" -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export STRICT="YES" ############################################################### # Source UFSDA workflow modules -. $HOMEgfs/ush/load_ufsda_modules.sh +. ${HOMEgfs}/ush/load_ufsda_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} + +export job="atmanalrun" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN +${HOMEgfs}/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/atmensanalpost.sh b/jobs/rocoto/atmensanalpost.sh index 92f5541f60..91ac2d6212 100755 --- a/jobs/rocoto/atmensanalpost.sh +++ b/jobs/rocoto/atmensanalpost.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash export STRICT="NO" -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export STRICT="YES" ############################################################### # Source UFSDA workflow modules -. $HOMEgfs/ush/load_ufsda_modules.sh +. ${HOMEgfs}/ush/load_ufsda_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} + +export job="atmensanalpost" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST +${HOMEgfs}/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/atmensanalprep.sh b/jobs/rocoto/atmensanalprep.sh index e47f2cdcfa..b54a1b464e 100755 --- a/jobs/rocoto/atmensanalprep.sh +++ b/jobs/rocoto/atmensanalprep.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash export STRICT="NO" -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export STRICT="YES" ############################################################### # Source UFSDA workflow modules -. $HOMEgfs/ush/load_ufsda_modules.sh +. ${HOMEgfs}/ush/load_ufsda_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} + +export job="atmensanalprep" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP +${HOMEgfs}/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/atmensanalrun.sh b/jobs/rocoto/atmensanalrun.sh index 5b778a5830..a2509a310e 100755 --- a/jobs/rocoto/atmensanalrun.sh +++ b/jobs/rocoto/atmensanalrun.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash export STRICT="NO" -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" export STRICT="YES" ############################################################### # Source UFSDA workflow modules -. $HOMEgfs/ush/load_ufsda_modules.sh +. ${HOMEgfs}/ush/load_ufsda_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} + +export job="atmensanalrun" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN +${HOMEgfs}/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/ecen.sh b/jobs/rocoto/ecen.sh index dd4a8ac8a6..8a98974615 100755 --- a/jobs/rocoto/ecen.sh +++ b/jobs/rocoto/ecen.sh @@ -1,26 +1,27 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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} ############################################################### # Loop over groups to Execute the JJOB -fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') -for fhr in $fhrlst; do +fhrlst=$(echo ${FHRLST} | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') +for fhr in ${fhrlst}; do - export FHMIN_ECEN=$fhr - export FHMAX_ECEN=$fhr - export FHOUT_ECEN=$fhr + export FHMIN_ECEN=${fhr} + export FHMAX_ECEN=${fhr} + export FHOUT_ECEN=${fhr} export job=ecen${fhr} + export jobid="${job}.$$" - $HOMEgfs/jobs/JGDAS_ENKF_ECEN + ${HOMEgfs}/jobs/JGDAS_ENKF_ECEN status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done diff --git a/jobs/rocoto/echgres.sh b/jobs/rocoto/echgres.sh index 3171388f6a..5779a91f06 100755 --- a/jobs/rocoto/echgres.sh +++ b/jobs/rocoto/echgres.sh @@ -1,16 +1,19 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="echgres" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_ATMOS_CHGRES_FORENKF +${HOMEgfs}/jobs/JGDAS_ATMOS_CHGRES_FORENKF status=$? diff --git a/jobs/rocoto/ediag.sh b/jobs/rocoto/ediag.sh index b09a7f4963..8462edf296 100755 --- a/jobs/rocoto/ediag.sh +++ b/jobs/rocoto/ediag.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="ediag" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_ENKF_DIAG +${HOMEgfs}/jobs/JGDAS_ENKF_DIAG status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/efcs.sh b/jobs/rocoto/efcs.sh index 4454ad6c8b..b202015149 100755 --- a/jobs/rocoto/efcs.sh +++ b/jobs/rocoto/efcs.sh @@ -1,16 +1,19 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="efcs" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_ENKF_FCST +${HOMEgfs}/jobs/JGDAS_ENKF_FCST status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/eobs.sh b/jobs/rocoto/eobs.sh index f6dc275578..95fa42cb08 100755 --- a/jobs/rocoto/eobs.sh +++ b/jobs/rocoto/eobs.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="eobs" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_ENKF_SELECT_OBS +${HOMEgfs}/jobs/JGDAS_ENKF_SELECT_OBS status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/eomg.sh b/jobs/rocoto/eomg.sh deleted file mode 100755 index de981c02bb..0000000000 --- a/jobs/rocoto/eomg.sh +++ /dev/null @@ -1,17 +0,0 @@ -#! /usr/bin/env bash - -source "$HOMEgfs/ush/preamble.sh" - -############################################################### -# Source FV3GFS workflow modules -. $HOMEgfs/ush/load_fv3gfs_modules.sh -status=$? -[[ $status -ne 0 ]] && exit $status - -############################################################### -# Execute the JJOB -$HOMEgfs/jobs/JGDAS_ENKF_INNOVATE_OBS -status=$? - - -exit $status diff --git a/jobs/rocoto/epos.sh b/jobs/rocoto/epos.sh index 1039b8ab20..21c8e0019e 100755 --- a/jobs/rocoto/epos.sh +++ b/jobs/rocoto/epos.sh @@ -1,27 +1,28 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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} ############################################################### # Loop over groups to Execute the JJOB -fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') +fhrlst=$(echo ${FHRLST} | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') -for fhr in $fhrlst; do - - export FHMIN_EPOS=$fhr - export FHMAX_EPOS=$fhr - export FHOUT_EPOS=$fhr +for fhr in ${fhrlst}; do + + export FHMIN_EPOS=${fhr} + export FHMAX_EPOS=${fhr} + export FHOUT_EPOS=${fhr} export job=epos${fhr} - - $HOMEgfs/jobs/JGDAS_ENKF_POST + export jobid="${job}.$$" + + ${HOMEgfs}/jobs/JGDAS_ENKF_POST status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done diff --git a/jobs/rocoto/esfc.sh b/jobs/rocoto/esfc.sh index d830c59c50..85f44151c9 100755 --- a/jobs/rocoto/esfc.sh +++ b/jobs/rocoto/esfc.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="esfc" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_ENKF_SFC +${HOMEgfs}/jobs/JGDAS_ENKF_SFC status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/eupd.sh b/jobs/rocoto/eupd.sh index d202c45aef..3ed028f87a 100755 --- a/jobs/rocoto/eupd.sh +++ b/jobs/rocoto/eupd.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="eupd" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGDAS_ENKF_UPDATE +${HOMEgfs}/jobs/JGDAS_ENKF_UPDATE status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/fcst.sh b/jobs/rocoto/fcst.sh index d59872c60c..ba40472d99 100755 --- a/jobs/rocoto/fcst.sh +++ b/jobs/rocoto/fcst.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="fcst" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_FORECAST +${HOMEgfs}/jobs/JGLOBAL_FORECAST status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/metp.sh b/jobs/rocoto/metp.sh index 80138b9026..82254a0435 100755 --- a/jobs/rocoto/metp.sh +++ b/jobs/rocoto/metp.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### ## Abstract: @@ -19,62 +19,78 @@ source "$HOMEgfs/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="metp${METPCASE}" +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 ############################################################### echo echo "=============== START TO SOURCE RELEVANT CONFIGS ===============" configs="base metp" -for config in $configs; do - . $EXPDIR/config.${config} +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ############################################################### echo echo "=============== START TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. $BASE_ENV/${machine}.env metp +. ${BASE_ENV}/${machine}.env metp status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################################### -export COMPONENT=${COMPONENT:-atmos} -export VDATE="$(echo $($NDATE -${VRFYBACK_HRS} $CDATE) | cut -c1-8)" - -export pid=${pid:-$$} -export jobid=${job}.${pid} -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/metp.${jobid}" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT +export COMPONENT="atmos" +export VDATE="$(echo $(${NDATE} -${VRFYBACK_HRS} ${CDATE}) | cut -c1-8)" +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +# TODO: This should not be permitted as DATAROOT is set at the job-card level. +# TODO: DATAROOT is being used as DATA in metp jobs. This should be rectified in metp. +# TODO: The temporary directory is DATA and is created at the top of the J-Job. +# TODO: remove this line +export DATAROOT=${DATA} ############################################################### echo echo "=============== START TO RUN METPLUS VERIFICATION ===============" -if [ $CDUMP = "gfs" ]; then +if [ ${CDUMP} = "gfs" ]; then - if [ $RUN_GRID2GRID_STEP1 = "YES" -o $RUN_GRID2OBS_STEP1 = "YES" -o $RUN_PRECIP_STEP1 = "YES" ]; then + if [ ${RUN_GRID2GRID_STEP1} = "YES" -o ${RUN_GRID2OBS_STEP1} = "YES" -o ${RUN_PRECIP_STEP1} = "YES" ]; then - $VERIF_GLOBALSH + ${VERIF_GLOBALSH} status=$? - [[ $status -ne 0 ]] && exit $status - [[ $status -eq 0 ]] && echo "Succesfully ran $VERIF_GLOBALSH" + [[ ${status} -ne 0 ]] && exit ${status} + [[ ${status} -eq 0 ]] && echo "Succesfully ran ${VERIF_GLOBALSH}" fi fi -if [ $CDUMP = "gdas" ]; then +if [ ${CDUMP} = "gdas" ]; then echo "METplus verification currently not supported for CDUMP=${CDUMP}" fi ############################################################### # Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf ${DATAROOT} ; fi # TODO: This should be $DATA exit 0 diff --git a/jobs/rocoto/ocnpost.sh b/jobs/rocoto/ocnpost.sh index 7f242ea2a5..54e3652b44 100755 --- a/jobs/rocoto/ocnpost.sh +++ b/jobs/rocoto/ocnpost.sh @@ -1,55 +1,27 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### -## CICE5/MOM6 post driver script +## CICE5/MOM6 post driver script ## FHRGRP : forecast hour group to post-process (e.g. 0, 1, 2 ...) ## FHRLST : forecast hourlist to be post-process (e.g. anl, f000, f000_f001_f002, ...) ############################################################### # Source FV3GFS workflow modules -. $HOMEgfs/ush/load_fv3gfs_modules.sh +. ${HOMEgfs}/ush/load_fv3gfs_modules.sh status=$? -[[ $status -ne 0 ]] && exit $status - -############################# -# Source relevant config files -############################# -configs="base ocnpost" -config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config - status=$? - [[ $status -ne 0 ]] && exit $status -done - - -########################################## -# Source machine runtime environment -########################################## -. $HOMEgfs/env/${machine}.env ocnpost -status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} +export job="ocnpost" +export jobid=${job}.$$ ############################################## -# Obtain unique process id (pid) and make temp directory +# make temp directory ############################################## -export job=${job:-"ocnpost"} -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export jobid=${jobid:-"${outid}.o${pid}"} - -export DATAROOT="$RUNDIR/$CDATE/$CDUMP" -[[ ! -d $DATAROOT ]] && mkdir -p $DATAROOT - -export DATA="$DATAROOT/${job}.${pid}" -# DATA dir not used for now. - -[[ -d $DATA ]] && rm -rf $DATA -mkdir -p $DATA -cd $DATA +export DATA="${DATAROOT}/${jobid}" +[[ -d ${DATA} ]] && rm -rf ${DATA} +mkdir -p ${DATA} && cd ${DATA} ############################################## # Run setpdy and initialize PDY variables @@ -61,94 +33,115 @@ setpdy.sh ############################################## # Determine Job Output Name on System ############################################## +export pid=${pid:-$$} export pgmout="OUTPUT.${pid}" export pgmerr=errfile +############################# +# Source relevant config files +############################# +config_path=${EXPDIR:-${PACKAGEROOT}/gfs.${gfs_ver}/parm/config} +configs="base ocnpost" +for config in ${configs}; do + . ${config_path}/config.${config} + status=$? + [[ ${status} -ne 0 ]] && exit ${status} +done + + +########################################## +# Source machine runtime environment +########################################## +. ${HOMEgfs}/env/${machine}.env ocnpost +status=$? +[[ ${status} -ne 0 ]] && exit ${status} + + ############################################## # Set variables used in the exglobal script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir +if [ ${RUN_ENVIR} = "nco" ]; then + export ROTDIR=${COMROOT:?}/${NET}/${envir} fi ############################################## # Begin JOB SPECIFIC work ############################################## -[[ ! -d $COMOUTocean ]] && mkdir -p $COMOUTocean -[[ ! -d $COMOUTice ]] && mkdir -p $COMOUTice +[[ ! -d ${COMOUTocean} ]] && mkdir -p ${COMOUTocean} +[[ ! -d ${COMOUTice} ]] && mkdir -p ${COMOUTice} -fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') +fhrlst=$(echo ${FHRLST} | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') export OMP_NUM_THREADS=1 export ENSMEM=${ENSMEM:-01} -export IDATE=$CDATE +export IDATE=${CDATE} -for fhr in $fhrlst; do - export fhr=$fhr - VDATE=$($NDATE $fhr $IDATE) +for fhr in ${fhrlst}; do + export fhr=${fhr} + VDATE=$(${NDATE} ${fhr} ${IDATE}) # Regrid the MOM6 and CICE5 output from tripolar to regular grid via NCL # This can take .25 degree input and convert to .5 degree - other opts avail # The regrid scripts use CDATE for the current day, restore it to IDATE afterwards - export CDATE=$VDATE - cd $DATA - if [ $fhr -gt 0 ]; then - export MOM6REGRID=${MOM6REGRID:-$HOMEgfs} - $MOM6REGRID/scripts/run_regrid.sh + export CDATE=${VDATE} + cd ${DATA} + if [ ${fhr} -gt 0 ]; then + export MOM6REGRID=${MOM6REGRID:-${HOMEgfs}} + ${MOM6REGRID}/scripts/run_regrid.sh status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} # Convert the netcdf files to grib2 - export executable=$MOM6REGRID/exec/reg2grb2.x - $MOM6REGRID/scripts/run_reg2grb2.sh + export executable=${MOM6REGRID}/exec/reg2grb2.x + ${MOM6REGRID}/scripts/run_reg2grb2.sh status=$? - [[ $status -ne 0 ]] && exit $status - + [[ ${status} -ne 0 ]] && exit ${status} + - #break up ocn netcdf into multiple files: - if [ -f $COMOUTocean/ocn_2D_$VDATE.$ENSMEM.$IDATE.nc ]; then - echo "File $COMOUTocean/ocn_2D_$VDATE.$ENSMEM.$IDATE.nc already exists" + #break up ocn netcdf into multiple files: + if [ -f ${COMOUTocean}/ocn_2D_${VDATE}.${ENSMEM}.${IDATE}.nc ]; then + echo "File ${COMOUTocean}/ocn_2D_${VDATE}.${ENSMEM}.${IDATE}.nc already exists" else - ncks -x -v vo,uo,so,temp $COMOUTocean/ocn$VDATE.$ENSMEM.$IDATE.nc $COMOUTocean/ocn_2D_$VDATE.$ENSMEM.$IDATE.nc + ncks -x -v vo,uo,so,temp ${COMOUTocean}/ocn${VDATE}.${ENSMEM}.${IDATE}.nc ${COMOUTocean}/ocn_2D_${VDATE}.${ENSMEM}.${IDATE}.nc status=$? - [[ $status -ne 0 ]] && exit $status - fi - if [ -f $COMOUTocean/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc ]; then - echo "File $COMOUTocean/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc already exists" - else - ncks -x -v Heat_PmE,LW,LwLatSens,MLD_003,MLD_0125,SSH,SSS,SST,SSU,SSV,SW,cos_rot,ePBL,evap,fprec,frazil,latent,lprec,lrunoff,sensible,sin_rot,speed,taux,tauy,wet_c,wet_u,wet_v $COMOUTocean/ocn$VDATE.$ENSMEM.$IDATE.nc $COMOUTocean/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc + [[ ${status} -ne 0 ]] && exit ${status} + fi + if [ -f ${COMOUTocean}/ocn_3D_${VDATE}.${ENSMEM}.${IDATE}.nc ]; then + echo "File ${COMOUTocean}/ocn_3D_${VDATE}.${ENSMEM}.${IDATE}.nc already exists" + else + ncks -x -v Heat_PmE,LW,LwLatSens,MLD_003,MLD_0125,SSH,SSS,SST,SSU,SSV,SW,cos_rot,ePBL,evap,fprec,frazil,latent,lprec,lrunoff,sensible,sin_rot,speed,taux,tauy,wet_c,wet_u,wet_v ${COMOUTocean}/ocn${VDATE}.${ENSMEM}.${IDATE}.nc ${COMOUTocean}/ocn_3D_${VDATE}.${ENSMEM}.${IDATE}.nc status=$? - [[ $status -ne 0 ]] && exit $status - fi - if [ -f $COMOUTocean/ocn-temp-EQ_$VDATE.$ENSMEM.$IDATE.nc ]; then - echo "File $COMOUTocean/ocn-temp-EQ_$VDATE.$ENSMEM.$IDATE.nc already exists" - else - ncks -v temp -d yh,503 -d xh,-299.92,60.03 $COMOUTocean/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc $COMOUTocean/ocn-temp-EQ_$VDATE.$ENSMEM.$IDATE.nc + [[ ${status} -ne 0 ]] && exit ${status} + fi + if [ -f ${COMOUTocean}/ocn-temp-EQ_${VDATE}.${ENSMEM}.${IDATE}.nc ]; then + echo "File ${COMOUTocean}/ocn-temp-EQ_${VDATE}.${ENSMEM}.${IDATE}.nc already exists" + else + ncks -v temp -d yh,503 -d xh,-299.92,60.03 ${COMOUTocean}/ocn_3D_${VDATE}.${ENSMEM}.${IDATE}.nc ${COMOUTocean}/ocn-temp-EQ_${VDATE}.${ENSMEM}.${IDATE}.nc status=$? - [[ $status -ne 0 ]] && exit $status - fi - if [ -f $COMOUTocean/ocn-uo-EQ_$VDATE.$ENSMEM.$IDATE.nc ]; then - echo "File $COMOUTocean/ocn-uo-EQ_$VDATE.$ENSMEM.$IDATE.nc already exists" - else - ncks -v uo -d yh,503 -d xh,-299.92,60.03 $COMOUTocean/ocn_3D_$VDATE.$ENSMEM.$IDATE.nc $COMOUTocean/ocn-uo-EQ_$VDATE.$ENSMEM.$IDATE.nc + [[ ${status} -ne 0 ]] && exit ${status} + fi + if [ -f ${COMOUTocean}/ocn-uo-EQ_${VDATE}.${ENSMEM}.${IDATE}.nc ]; then + echo "File ${COMOUTocean}/ocn-uo-EQ_${VDATE}.${ENSMEM}.${IDATE}.nc already exists" + else + ncks -v uo -d yh,503 -d xh,-299.92,60.03 ${COMOUTocean}/ocn_3D_${VDATE}.${ENSMEM}.${IDATE}.nc ${COMOUTocean}/ocn-uo-EQ_${VDATE}.${ENSMEM}.${IDATE}.nc status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} fi fi done # Restore CDATE to what is expected -export CDATE=$IDATE -$NMV ocn_ice*.grb2 $COMOUTocean/ +export CDATE=${IDATE} +${NMV} ocn_ice*.grb2 ${COMOUTocean}/ status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} # clean up working folder -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATA ; fi +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf ${DATA} ; fi ############################################################### # Exit out cleanly diff --git a/jobs/rocoto/post.sh b/jobs/rocoto/post.sh index a6dfb0fbaf..bc7da5709a 100755 --- a/jobs/rocoto/post.sh +++ b/jobs/rocoto/post.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### ## NCEP post driver script @@ -9,27 +9,29 @@ source "$HOMEgfs/ush/preamble.sh" ############################################################### # 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 COMPONENT=${COMPONENT:-atmos} +export COMPONENT="atmos" -if [ $FHRGRP = 'anl' ]; then +if [ ${FHRGRP} = 'anl' ]; then fhrlst="anl" - restart_file=$ROTDIR/${CDUMP}.${PDY}/${cyc}/$COMPONENT/${CDUMP}.t${cyc}z.atm + restart_file=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}/${CDUMP}.t${cyc}z.atm else - fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') - restart_file=$ROTDIR/${CDUMP}.${PDY}/${cyc}/$COMPONENT/${CDUMP}.t${cyc}z.logf + fhrlst=$(echo ${FHRLST} | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') + restart_file=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}/${CDUMP}.t${cyc}z.logf fi #--------------------------------------------------------------- -for fhr in $fhrlst; do - export post_times=$fhr - $HOMEgfs/jobs/JGLOBAL_ATMOS_POST +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 + [[ ${status} -ne 0 ]] && exit ${status} done exit 0 diff --git a/jobs/rocoto/postsnd.sh b/jobs/rocoto/postsnd.sh index fadfaa6d9e..bc274361db 100755 --- a/jobs/rocoto/postsnd.sh +++ b/jobs/rocoto/postsnd.sh @@ -1,20 +1,22 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="postsnd" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGFS_ATMOS_POSTSND +${HOMEgfs}/jobs/JGFS_ATMOS_POSTSND status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/sfcanl.sh b/jobs/rocoto/sfcanl.sh index 7b9812f37b..44f93ee0c3 100755 --- a/jobs/rocoto/sfcanl.sh +++ b/jobs/rocoto/sfcanl.sh @@ -1,17 +1,20 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### # 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 job="sfcanl" +export jobid="${job}.$$" ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_ATMOS_SFCANL +${HOMEgfs}/jobs/JGLOBAL_ATMOS_SFCANL status=$? -exit $status +exit ${status} diff --git a/jobs/rocoto/vrfy.sh b/jobs/rocoto/vrfy.sh index 50750a94ec..aef08ec90e 100755 --- a/jobs/rocoto/vrfy.sh +++ b/jobs/rocoto/vrfy.sh @@ -1,109 +1,117 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" -############################################################### -## Abstract: -## Inline verification and diagnostics driver script -## RUN_ENVIR : runtime environment (emc | nco) -## HOMEgfs : /full/path/to/workflow -## EXPDIR : /full/path/to/config/files -## CDATE : current analysis date (YYYYMMDDHH) -## CDUMP : cycle name (gdas / gfs) -## PDY : current date (YYYYMMDD) -## cyc : current cycle (HH) -############################################################### - -############################################################### echo echo "=============== START 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 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} +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ############################################################### echo echo "=============== START TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. $BASE_ENV/${machine}.env vrfy +. ${BASE_ENV}/${machine}.env vrfy status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################################### -export COMPONENT=${COMPONENT:-atmos} -export CDATEm1=$($NDATE -24 $CDATE) -export PDYm1=$(echo $CDATEm1 | cut -c1-8) +export COMPONENT="atmos" +export CDATEm1=$(${NDATE} -24 ${CDATE}) +export PDYm1=$(echo ${CDATEm1} | cut -c1-8) -CDATEm1c=$($NDATE -06 $CDATE) -PDYm1c=$(echo $CDATEm1c | cut -c1-8) +CDATEm1c=$(${NDATE} -06 ${CDATE}) +PDYm1c=$(echo ${CDATEm1c} | cut -c1-8) pcyc=$(echo ${CDATEm1c} | cut -c9-10) -export pid=${pid:-$$} -export jobid=${job}.${pid} -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/vrfy.${jobid}" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" ############################################################### echo echo "=============== START TO GENERATE QUARTER DEGREE GRIB1 FILES ===============" -if [ $MKPGB4PRCP = "YES" -a $CDUMP = "gfs" ]; then - if [ ! -d $ARCDIR ]; then mkdir $ARCDIR ; fi +if [ ${MKPGB4PRCP} = "YES" -a ${CDUMP} = "gfs" ]; then + if [ ! -d ${ARCDIR} ]; then mkdir ${ARCDIR} ; fi nthreads_env=${OMP_NUM_THREADS:-1} # get threads set in env export OMP_NUM_THREADS=1 - cd $COMIN - fhmax=${vhr_rain:-$FHMAX_GFS} + cd ${COMIN} + fhmax=${vhr_rain:-${FHMAX_GFS}} fhr=0 - while [ $fhr -le $fhmax ]; do - fhr2=$(printf %02i $fhr) - fhr3=$(printf %03i $fhr) - fname=${CDUMP}.t${cyc}z.sfluxgrbf$fhr3.grib2 - fileout=$ARCDIR/pgbq${fhr2}.${CDUMP}.${CDATE}.grib2 - $WGRIB2 $fname -match "(:PRATE:surface:)|(:TMP:2 m above ground:)" -grib $fileout - (( fhr = $fhr + 6 )) + while [ ${fhr} -le ${fhmax} ]; do + fhr2=$(printf %02i ${fhr}) + fhr3=$(printf %03i ${fhr}) + fname=${CDUMP}.t${cyc}z.sfluxgrbf${fhr3}.grib2 + fileout=${ARCDIR}/pgbq${fhr2}.${CDUMP}.${CDATE}.grib2 + ${WGRIB2} ${fname} -match "(:PRATE:surface:)|(:TMP:2 m above ground:)" -grib ${fileout} + (( fhr = ${fhr} + 6 )) done - export OMP_NUM_THREADS=$nthreads_env # revert to threads set in env + export OMP_NUM_THREADS=${nthreads_env} # revert to threads set in env fi ############################################################### echo echo "=============== START TO RUN MOS ===============" -if [ $RUNMOS = "YES" -a $CDUMP = "gfs" ]; then - $RUNGFSMOSSH $PDY$cyc +if [ ${RUNMOS} = "YES" -a ${CDUMP} = "gfs" ]; then + ${RUNGFSMOSSH} ${PDY}${cyc} fi ############################################################### echo echo "=============== START TO RUN FIT2OBS VERIFICATION ===============" -if [ $VRFYFITS = "YES" -a $CDUMP = $CDFNL -a $CDATE != $SDATE ]; then +if [ ${VRFYFITS} = "YES" -a ${CDUMP} = ${CDFNL} -a ${CDATE} != ${SDATE} ]; then - export CDUMPFCST=$VDUMP - export TMPDIR="$RUNDIR/$CDATE/$CDUMP" - [[ ! -d $TMPDIR ]] && mkdir -p $TMPDIR + export CDUMPFCST=${VDUMP} + export TMPDIR="${RUNDIR}/${CDATE}/${CDUMP}" + [[ ! -d ${TMPDIR} ]] && mkdir -p ${TMPDIR} - xdate=$($NDATE -${VBACKUP_FITS} $CDATE) + xdate=$(${NDATE} -${VBACKUP_FITS} ${CDATE}) - export RUN_ENVIR_SAVE=$RUN_ENVIR - export RUN_ENVIR=$OUTPUT_FILE + export RUN_ENVIR_SAVE=${RUN_ENVIR} + export RUN_ENVIR=${OUTPUT_FILE} - $PREPQFITSH $PSLOT $xdate $ROTDIR $ARCDIR $TMPDIR + ${PREPQFITSH} ${PSLOT} ${xdate} ${ROTDIR} ${ARCDIR} ${TMPDIR} - export RUN_ENVIR=$RUN_ENVIR_SAVE + export RUN_ENVIR=${RUN_ENVIR_SAVE} fi @@ -111,7 +119,7 @@ fi ############################################################### echo echo "=============== START TO RUN RADMON DATA EXTRACTION ===============" -if [ $VRFYRAD = "YES" -a "${CDUMP}" = "${CDFNL}" -a "${CDATE}" != "${SDATE}" ]; then +if [ ${VRFYRAD} = "YES" -a "${CDUMP}" = "${CDFNL}" -a "${CDATE}" != "${SDATE}" ]; then export EXP=${PSLOT} export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" @@ -184,7 +192,8 @@ fi ############################################################### # Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf "${DATAROOT}" ; fi +cd ${DATAROOT} +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf ${DATA} ; fi exit 0 diff --git a/jobs/rocoto/wafs.sh b/jobs/rocoto/wafs.sh index 8aab955cc8..59d1ede139 100755 --- a/jobs/rocoto/wafs.sh +++ b/jobs/rocoto/wafs.sh @@ -1,59 +1,46 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wafs" +export jobid="${job}.$$" + +############################################################### ############################################################### +# TODO: sourcing configs should be in the j-job echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" configs="base wafs" -for config in $configs; do - . $EXPDIR/config.${config} +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ############################################################### -export pid=${pid:-$$} -export jobid=${job}.${pid} -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafs.$jobid" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT - -export DATA="${DATAROOT}/$job" - -############################################################### echo echo "=============== START TO RUN WAFS ===============" # Loop through fcsthrs hr=0 -while [ $hr -le 120 ]; do +while [ ${hr} -le 120 ]; do - if [ $hr -le 100 ]; then - export fcsthrs="$(printf "%02d" $(( 10#$hr )) )" - else - export fcsthrs=$hr - fi + export fcsthrs=$(printf "%03d" ${hr}) # Execute the JJOB - $HOMEgfs/jobs/JGFS_ATMOS_WAFS + ${HOMEgfs}/jobs/JGFS_ATMOS_WAFS status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} - hr=$(expr $hr + 6) + hr=$(expr ${hr} + 6) done -############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi - - exit 0 diff --git a/jobs/rocoto/wafsblending.sh b/jobs/rocoto/wafsblending.sh index 2793986e80..e16e8fa2b3 100755 --- a/jobs/rocoto/wafsblending.sh +++ b/jobs/rocoto/wafsblending.sh @@ -1,43 +1,38 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wafsblending" +export jobid="${job}.$$" ############################################################### +# TODO: sourcing configs should be in the j-job echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" configs="base wafsblending" -for config in $configs; do - . $EXPDIR/config.${config} +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done -############################################################### - -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsblending" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT - -export pid=${pid:-$$} -export jobid=${job}.${pid} -export DATA="${DATAROOT}/$job" +# TODO: Mising source machine runtime environment ############################################################### + echo echo "=============== START TO RUN WAFSBLENDING ===============" # Execute the JJOB -$HOMEgfs/jobs/JGFS_ATMOS_WAFS_BLENDING +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_BLENDING status=$? +[[ ${status} -ne 0 ]] && exit ${status} ############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi - -exit $status +exit 0 diff --git a/jobs/rocoto/wafsblending0p25.sh b/jobs/rocoto/wafsblending0p25.sh index fb06284f55..11788baf4d 100755 --- a/jobs/rocoto/wafsblending0p25.sh +++ b/jobs/rocoto/wafsblending0p25.sh @@ -1,43 +1,38 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" + +export job="wafsblending0p25" +export jobid="${job}.$$" ############################################################### echo echo "=============== START 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} ############################################################### +# TODO: sourcing configs should be in the j-job echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" configs="base wafsblending0p25" -for config in $configs; do - . $EXPDIR/config.${config} +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done -############################################################### - -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsblending0p25" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT - -export pid=${pid:-$$} -export jobid=${job}.${pid} -export DATA="${DATAROOT}/$job" +# TODO: Mising source machine runtime environment ############################################################### + echo echo "=============== START TO RUN WAFSBLENDING0P25 ===============" # Execute the JJOB -$HOMEgfs/jobs/JGFS_ATMOS_WAFS_BLENDING_0P25 +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_BLENDING_0P25 status=$? +[[ ${status} -ne 0 ]] && exit ${status} ############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi - -exit $status +exit 0 diff --git a/jobs/rocoto/wafsgcip.sh b/jobs/rocoto/wafsgcip.sh index 53cfd90da5..36b2b491d7 100755 --- a/jobs/rocoto/wafsgcip.sh +++ b/jobs/rocoto/wafsgcip.sh @@ -1,50 +1,45 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wafsgcip" +export jobid="${job}.$$" + +# ############################################################### +# TODO: sourcing configs should be in the j-job echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" configs="base wafsgcip" -for config in $configs; do - . $EXPDIR/config.${config} +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env wafsgcip +. ${HOMEgfs}/env/${machine}.env wafsgcip status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} ############################################################### -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsgcip" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT - -export pid=${pid:-$$} -export jobid=${job}.${pid} -export DATA="${DATAROOT}/$job" - ############################################################### echo echo "=============== START TO RUN WAFSGCIP ===============" # Execute the JJOB -$HOMEgfs/jobs/JGFS_ATMOS_WAFS_GCIP +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_GCIP status=$? +[[ ${status} -ne 0 ]] && exit ${status} ############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi - -exit $status +exit 0 diff --git a/jobs/rocoto/wafsgrib2.sh b/jobs/rocoto/wafsgrib2.sh index c7dbead30d..a2903e5aa2 100755 --- a/jobs/rocoto/wafsgrib2.sh +++ b/jobs/rocoto/wafsgrib2.sh @@ -1,43 +1,38 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wafsgrib2" +export jobid=${job}.$$ ############################################################### +# TODO: Sourcing configs should be done in the j-job echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" configs="base wafsgrib2" -for config in $configs; do - . $EXPDIR/config.${config} +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done -############################################################### - -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsgrib2" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT - -export pid=${pid:-$$} -export jobid=${job}.${pid} -export DATA="${DATAROOT}/$job" +# TODO: Missing sourcing of $MACHINE.env ############################################################### + echo echo "=============== START TO RUN WAFSGRIB2 ===============" # Execute the JJOB -$HOMEgfs/jobs/JGFS_ATMOS_WAFS_GRIB2 +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_GRIB2 status=$? +[[ ${status} -ne 0 ]] && exit ${status} ############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi - -exit $status +exit 0 diff --git a/jobs/rocoto/wafsgrib20p25.sh b/jobs/rocoto/wafsgrib20p25.sh index e99ee210d9..585ca23524 100755 --- a/jobs/rocoto/wafsgrib20p25.sh +++ b/jobs/rocoto/wafsgrib20p25.sh @@ -1,43 +1,37 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wafsgrib20p25" +export jobid="${job}.$$" ############################################################### +# TODO: sourcing configs should be in the j-job echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" configs="base wafsgrib20p25" -for config in $configs; do - . $EXPDIR/config.${config} +for config in ${configs}; do + . ${EXPDIR}/config.${config} status=$? - [[ $status -ne 0 ]] && exit $status + [[ ${status} -ne 0 ]] && exit ${status} done -############################################################### - -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsgrib20p25" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT - -export pid=${pid:-$$} -export jobid=${job}.${pid} -export DATA="${DATAROOT}/$job" +# TODO: missing sourcing $MACHINE.env ############################################################### echo echo "=============== START TO RUN WAFSGRIB20p25 ===============" # Execute the JJOB -$HOMEgfs/jobs/JGFS_ATMOS_WAFS_GRIB2_0P25 +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_GRIB2_0P25 status=$? +[[ ${status} -ne 0 ]] && exit ${status} ############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi - -exit $status +exit 0 diff --git a/jobs/rocoto/waveinit.sh b/jobs/rocoto/waveinit.sh index 5995b85302..d0c3f49929 100755 --- a/jobs/rocoto/waveinit.sh +++ b/jobs/rocoto/waveinit.sh @@ -1,20 +1,23 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="waveinit" +export jobid="${job}.$$" ############################################################### echo echo "=============== START TO RUN WAVE INIT ===============" # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_WAVE_INIT +${HOMEgfs}/jobs/JGLOBAL_WAVE_INIT status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} exit 0 diff --git a/jobs/rocoto/wavepostbndpnt.sh b/jobs/rocoto/wavepostbndpnt.sh index fe0e2a0723..5d26498356 100755 --- a/jobs/rocoto/wavepostbndpnt.sh +++ b/jobs/rocoto/wavepostbndpnt.sh @@ -1,20 +1,23 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wavepostbndpnt" +export jobid="${job}.$$" ############################################################### echo echo "=============== START TO RUN WAVE_POST_BNDPNT ===============" # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_WAVE_POST_BNDPNT +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_BNDPNT status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} exit 0 diff --git a/jobs/rocoto/wavepostbndpntbll.sh b/jobs/rocoto/wavepostbndpntbll.sh index cea3c0bc6b..ce4f9e6b2d 100755 --- a/jobs/rocoto/wavepostbndpntbll.sh +++ b/jobs/rocoto/wavepostbndpntbll.sh @@ -1,20 +1,23 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wavepostbndpntbll" +export jobid="${job}.$$" ############################################################### echo echo "=============== START TO RUN WAVE_POST_BNDPNT ===============" # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} exit 0 diff --git a/jobs/rocoto/wavepostpnt.sh b/jobs/rocoto/wavepostpnt.sh index 1b1d8c9765..9efb755dec 100755 --- a/jobs/rocoto/wavepostpnt.sh +++ b/jobs/rocoto/wavepostpnt.sh @@ -1,20 +1,23 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wavepostpnt" +export jobid="${job}.$$" ############################################################### echo echo "=============== START TO RUN WAVE_POST_PNT ===============" # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_WAVE_POST_PNT +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_PNT status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} exit 0 diff --git a/jobs/rocoto/wavepostsbs.sh b/jobs/rocoto/wavepostsbs.sh index fb4fdfbd8b..fa61d31eec 100755 --- a/jobs/rocoto/wavepostsbs.sh +++ b/jobs/rocoto/wavepostsbs.sh @@ -1,20 +1,23 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="wavepostsbs" +export jobid="${job}.$$" ############################################################### echo echo "=============== START TO RUN WAVE POST_SBS ===============" # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_WAVE_POST_SBS +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_SBS status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} exit 0 diff --git a/jobs/rocoto/waveprep.sh b/jobs/rocoto/waveprep.sh index c55c8526d9..0cbafde87e 100755 --- a/jobs/rocoto/waveprep.sh +++ b/jobs/rocoto/waveprep.sh @@ -1,20 +1,23 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ############################################################### echo echo "=============== START 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 job="waveprep" +export jobid="${job}.$$" ############################################################### echo echo "=============== START TO RUN WAVE PREP ===============" # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_WAVE_PREP +${HOMEgfs}/jobs/JGLOBAL_WAVE_PREP status=$? -[[ $status -ne 0 ]] && exit $status +[[ ${status} -ne 0 ]] && exit ${status} exit 0 diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index 107441b6be..29bdbe9fec 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -37,11 +37,10 @@ export FIXreg2grb2=$HOMEgfs/fix/reg2grb2 ######################################################################## # GLOBAL static environment parameters -export PACKAGEROOT="@PACKAGEROOT@" -export COMROOT="@COMROOT@" +export PACKAGEROOT="@PACKAGEROOT@" # TODO: set via prod_envir in Ops +export COMROOT="@COMROOT@" # TODO: set via prod_envir in Ops export COMINsyn="@COMINsyn@" export DMPDIR="@DMPDIR@" -export RTMFIX=$CRTM_FIX # USER specific paths export HOMEDIR="@HOMEDIR@" @@ -110,8 +109,8 @@ export DUMP_SUFFIX="" if [[ "$CDATE" -ge "2019092100" && "$CDATE" -le "2019110700" ]]; then export DUMP_SUFFIX="p" # Use dumps from NCO GFS v15.3 parallel fi -export RUNDIR="$STMP/RUNDIRS/$PSLOT" -export DATAROOT="$RUNDIR/$CDATE/$CDUMP" +export DATAROOT="${STMP}/RUNDIRS/${PSLOT}" # TODO: set via prod_envir in Ops +export RUNDIR="${DATAROOT}" # TODO: Should be removed; use DATAROOT instead export ARCDIR="$NOSCRUB/archive/$PSLOT" export ICSDIR="@ICSDIR@" export ATARDIR="@ATARDIR@" diff --git a/parm/config/config.resources b/parm/config/config.resources index bee8a83d46..875470e0c8 100755 --- a/parm/config/config.resources +++ b/parm/config/config.resources @@ -197,15 +197,15 @@ elif [ ${step} = "aeroanlinit" ]; then elif [ ${step} = "aeroanlrun" ]; then case ${CASE} in - C768) + C768) layout_x=6 layout_y=6 ;; - C384) + C384) layout_x=5 layout_y=5 ;; - C192 | C96 | C48) + C192 | C96 | C48) layout_x=3 layout_y=3 ;; diff --git a/scripts/exgfs_atmos_post.sh b/scripts/exgfs_atmos_post.sh index 6777b1a380..fc44274502 100755 --- a/scripts/exgfs_atmos_post.sh +++ b/scripts/exgfs_atmos_post.sh @@ -206,7 +206,7 @@ if [ "${stime}" = "anl" ]; then wafsgrid="latlon 0:1440:0.25 90:721:-0.25" ${WGRIB2} "${PGBOUT}" -set_grib_type same -new_grid_winds earth \ -new_grid_interpolation bilinear -set_bitmap 1 \ - -new_grid "${wafsgrid}" "${PGBOUT}.tmp" + -new_grid ${wafsgrid} "${PGBOUT}.tmp" if [ "${SENDCOM}" = "YES" ]; then cp "${PGBOUT}.tmp" "${COMOUT}/${PREFIX}wafs.0p25.anl" @@ -437,7 +437,7 @@ else ## not_anl if_stime "${USHgfs}/link_crtm_fix.sh" "${FIXCRTM}" if [ "${GRIBVERSION}" = 'grib2' ]; then - export PostFlatFile="${PARMpost}/postxconfig-NT-GFS-GOES.txt " + export PostFlatFile="${PARMpost}/postxconfig-NT-GFS-GOES.txt" export CTLFILE="${PARMpost}/postcntrl_gfs_goes.xml" fi export FLXINP=flxfile diff --git a/scripts/exglobal_atmos_analysis.sh b/scripts/exglobal_atmos_analysis.sh index c1d3c01834..17a9c9984a 100755 --- a/scripts/exglobal_atmos_analysis.sh +++ b/scripts/exglobal_atmos_analysis.sh @@ -19,7 +19,7 @@ # Set environment. -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" # Directories. pwd=$(pwd) @@ -30,12 +30,12 @@ CDUMP=${CDUMP:-"gdas"} GDUMP=${GDUMP:-"gdas"} # Derived base variables -GDATE=$($NDATE -$assim_freq $CDATE) -BDATE=$($NDATE -3 $CDATE) -PDY=$(echo $CDATE | cut -c1-8) -cyc=$(echo $CDATE | cut -c9-10) -bPDY=$(echo $BDATE | cut -c1-8) -bcyc=$(echo $BDATE | cut -c9-10) +GDATE=$(${NDATE} -${assim_freq} ${CDATE}) +BDATE=$(${NDATE} -3 ${CDATE}) +PDY=$(echo ${CDATE} | cut -c1-8) +cyc=$(echo ${CDATE} | cut -c9-10) +bPDY=$(echo ${BDATE} | cut -c1-8) +bcyc=$(echo ${BDATE} | cut -c9-10) # Utilities export NCP=${NCP:-"/bin/cp"} @@ -43,7 +43,7 @@ export NMV=${NMV:-"/bin/mv"} export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} export NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get} -export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +export NCLEN=${NCLEN:-${HOMEgfs}/ush/getncdimlen} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} APRUNCFP=${APRUNCFP:-""} @@ -69,20 +69,20 @@ DOIAU=${DOIAU:-"NO"} export IAUFHRS=${IAUFHRS:-"6"} # Dependent Scripts and Executables -GSIEXEC=${GSIEXEC:-$HOMEgfs/exec/gsi.x} +GSIEXEC=${GSIEXEC:-${HOMEgfs}/exec/gsi.x} export NTHREADS_CALCINC=${NTHREADS_CALCINC:-1} export APRUN_CALCINC=${APRUN_CALCINC:-${APRUN:-""}} export APRUN_CALCANL=${APRUN_CALCANL:-${APRUN:-""}} export APRUN_CHGRES=${APRUN_CALCANL:-${APRUN:-""}} -export CALCINCEXEC=${CALCINCEXEC:-$HOMEgfs/exec/calc_increment_ens.x} -export CALCINCNCEXEC=${CALCINCNCEXEC:-$HOMEgfs/exec/calc_increment_ens_ncio.x} -export CALCANLEXEC=${CALCANLEXEC:-$HOMEgfs/exec/calc_analysis.x} -export CHGRESNCEXEC=${CHGRESNCEXEC:-$HOMEgfs/exec/enkf_chgres_recenter_nc.x} -export CHGRESINCEXEC=${CHGRESINCEXEC:-$HOMEgfs/exec/interp_inc.x} -CHGRESEXEC=${CHGRESEXEC:-$HOMEgfs/exec/enkf_chgres_recenter.x} +export CALCINCEXEC=${CALCINCEXEC:-${HOMEgfs}/exec/calc_increment_ens.x} +export CALCINCNCEXEC=${CALCINCNCEXEC:-${HOMEgfs}/exec/calc_increment_ens_ncio.x} +export CALCANLEXEC=${CALCANLEXEC:-${HOMEgfs}/exec/calc_analysis.x} +export CHGRESNCEXEC=${CHGRESNCEXEC:-${HOMEgfs}/exec/enkf_chgres_recenter_nc.x} +export CHGRESINCEXEC=${CHGRESINCEXEC:-${HOMEgfs}/exec/interp_inc.x} +CHGRESEXEC=${CHGRESEXEC:-${HOMEgfs}/exec/enkf_chgres_recenter.x} export NTHREADS_CHGRES=${NTHREADS_CHGRES:-24} -CALCINCPY=${CALCINCPY:-$HOMEgfs/ush/calcinc_gfs.py} -CALCANLPY=${CALCANLPY:-$HOMEgfs/ush/calcanl_gfs.py} +CALCINCPY=${CALCINCPY:-${HOMEgfs}/ush/calcinc_gfs.py} +CALCANLPY=${CALCANLPY:-${HOMEgfs}/ush/calcanl_gfs.py} # OPS flags RUN=${RUN:-""} @@ -90,7 +90,7 @@ SENDECF=${SENDECF:-"NO"} SENDDBN=${SENDDBN:-"NO"} RUN_GETGES=${RUN_GETGES:-"NO"} GETGESSH=${GETGESSH:-"getges.sh"} -export gesenvir=${gesenvir:-$envir} +export gesenvir=${gesenvir:-${envir}} # Observations OPREFIX=${OPREFIX:-""} @@ -158,7 +158,7 @@ HDOB=${HDOB:-${COMIN_OBS}/${OPREFIX}hdob.tm00.bufr_d${OSUFFIX}} # Guess files GPREFIX=${GPREFIX:-""} -GSUFFIX=${GSUFFIX:-$SUFFIX} +GSUFFIX=${GSUFFIX:-${SUFFIX}} SFCG03=${SFCG03:-${COMIN_GES}/${GPREFIX}sfcf003${GSUFFIX}} SFCG04=${SFCG04:-${COMIN_GES}/${GPREFIX}sfcf004${GSUFFIX}} SFCG05=${SFCG05:-${COMIN_GES}/${GPREFIX}sfcf005${GSUFFIX}} @@ -180,7 +180,7 @@ GRADSTAT=${GRADSTAT:-${COMIN_GES}/${GPREFIX}radstat} # Analysis files export APREFIX=${APREFIX:-""} -export ASUFFIX=${ASUFFIX:-$SUFFIX} +export ASUFFIX=${ASUFFIX:-${SUFFIX}} SFCANL=${SFCANL:-${COMOUT}/${APREFIX}sfcanl${ASUFFIX}} DTFANL=${DTFANL:-${COMOUT}/${APREFIX}dtfanl.nc} ATMANL=${ATMANL:-${COMOUT}/${APREFIX}atmanl${ASUFFIX}} @@ -204,7 +204,7 @@ USE_RADSTAT=${USE_RADSTAT:-"YES"} SELECT_OBS=${SELECT_OBS:-${COMOUT}/${APREFIX}obsinput} GENDIAG=${GENDIAG:-"YES"} DIAG_SUFFIX=${DIAG_SUFFIX:-""} -if [ $netcdf_diag = ".true." ] ; then +if [ ${netcdf_diag} = ".true." ] ; then DIAG_SUFFIX="${DIAG_SUFFIX}.nc4" fi DIAG_COMPRESS=${DIAG_COMPRESS:-"YES"} @@ -212,7 +212,7 @@ DIAG_TARBALL=${DIAG_TARBALL:-"YES"} USE_CFP=${USE_CFP:-"NO"} CFP_MP=${CFP_MP:-"NO"} nm="" -if [ $CFP_MP = "YES" ]; then +if [ ${CFP_MP} = "YES" ]; then nm=0 fi DIAG_DIR=${DIAG_DIR:-${COMOUT}/gsidiags} @@ -238,62 +238,62 @@ USE_CORRELATED_OBERRS=${USE_CORRELATED_OBERRS:-"YES"} # Get header information from Guess files if [ ${SUFFIX} = ".nc" ]; then - LONB=${LONB:-$($NCLEN $ATMGES grid_xt)} # get LONB - LATB=${LATB:-$($NCLEN $ATMGES grid_yt)} # get LATB - LEVS=${LEVS:-$($NCLEN $ATMGES pfull)} # get LEVS + LONB=${LONB:-$(${NCLEN} ${ATMGES} grid_xt)} # get LONB + LATB=${LATB:-$(${NCLEN} ${ATMGES} grid_yt)} # get LATB + LEVS=${LEVS:-$(${NCLEN} ${ATMGES} pfull)} # get LEVS JCAP=${JCAP:--9999} # there is no jcap in these files else - LONB=${LONB:-$($NEMSIOGET $ATMGES dimx | grep -i "dimx" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LONB - LATB=${LATB:-$($NEMSIOGET $ATMGES dimy | grep -i "dimy" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LATB - LEVS=${LEVS:-$($NEMSIOGET $ATMGES dimz | grep -i "dimz" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LEVS - JCAP=${JCAP:-$($NEMSIOGET $ATMGES jcap | grep -i "jcap" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get JCAP + LONB=${LONB:-$(${NEMSIOGET} ${ATMGES} dimx | grep -i "dimx" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LONB + LATB=${LATB:-$(${NEMSIOGET} ${ATMGES} dimy | grep -i "dimy" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LATB + LEVS=${LEVS:-$(${NEMSIOGET} ${ATMGES} dimz | grep -i "dimz" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LEVS + JCAP=${JCAP:-$(${NEMSIOGET} ${ATMGES} jcap | grep -i "jcap" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get JCAP fi -[ $JCAP -eq -9999 -a $LATB -ne -9999 ] && JCAP=$((LATB-2)) -[ $LONB -eq -9999 -o $LATB -eq -9999 -o $LEVS -eq -9999 -o $JCAP -eq -9999 ] && exit -9999 +[ ${JCAP} -eq -9999 -a ${LATB} -ne -9999 ] && JCAP=$((LATB-2)) +[ ${LONB} -eq -9999 -o ${LATB} -eq -9999 -o ${LEVS} -eq -9999 -o ${JCAP} -eq -9999 ] && exit -9999 # Get header information from Ensemble Guess files -if [ $DOHYBVAR = "YES" ]; then +if [ ${DOHYBVAR} = "YES" ]; then SFCGES_ENSMEAN=${SFCGES_ENSMEAN:-${COMIN_GES_ENS}/${GPREFIX}sfcf006.ensmean${GSUFFIX}} export ATMGES_ENSMEAN=${ATMGES_ENSMEAN:-${COMIN_GES_ENS}/${GPREFIX}atmf006.ensmean${GSUFFIX}} if [ ${SUFFIX} = ".nc" ]; then - LONB_ENKF=${LONB_ENKF:-$($NCLEN $ATMGES_ENSMEAN grid_xt)} # get LONB_ENKF - LATB_ENKF=${LATB_ENKF:-$($NCLEN $ATMGES_ENSMEAN grid_yt)} # get LATB_ENFK - LEVS_ENKF=${LEVS_ENKF:-$($NCLEN $ATMGES_ENSMEAN pfull)} # get LATB_ENFK + LONB_ENKF=${LONB_ENKF:-$(${NCLEN} ${ATMGES_ENSMEAN} grid_xt)} # get LONB_ENKF + LATB_ENKF=${LATB_ENKF:-$(${NCLEN} ${ATMGES_ENSMEAN} grid_yt)} # get LATB_ENFK + LEVS_ENKF=${LEVS_ENKF:-$(${NCLEN} ${ATMGES_ENSMEAN} pfull)} # get LATB_ENFK JCAP_ENKF=${JCAP_ENKF:--9999} # again, no jcap in the netcdf files else - LONB_ENKF=${LONB_ENKF:-$($NEMSIOGET $ATMGES_ENSMEAN dimx | grep -i "dimx" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LONB_ENKF - LATB_ENKF=${LATB_ENKF:-$($NEMSIOGET $ATMGES_ENSMEAN dimy | grep -i "dimy" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LATB_ENKF - LEVS_ENKF=${LEVS_ENKF:-$($NEMSIOGET $ATMGES_ENSMEAN dimz | grep -i "dimz" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LEVS_ENKF - JCAP_ENKF=${JCAP_ENKF:-$($NEMSIOGET $ATMGES_ENSMEAN jcap | grep -i "jcap" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get JCAP_ENKF + LONB_ENKF=${LONB_ENKF:-$(${NEMSIOGET} ${ATMGES_ENSMEAN} dimx | grep -i "dimx" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LONB_ENKF + LATB_ENKF=${LATB_ENKF:-$(${NEMSIOGET} ${ATMGES_ENSMEAN} dimy | grep -i "dimy" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LATB_ENKF + LEVS_ENKF=${LEVS_ENKF:-$(${NEMSIOGET} ${ATMGES_ENSMEAN} dimz | grep -i "dimz" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LEVS_ENKF + JCAP_ENKF=${JCAP_ENKF:-$(${NEMSIOGET} ${ATMGES_ENSMEAN} jcap | grep -i "jcap" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get JCAP_ENKF fi - NLON_ENKF=${NLON_ENKF:-$LONB_ENKF} - NLAT_ENKF=${NLAT_ENKF:-$(($LATB_ENKF+2))} - [ $JCAP_ENKF -eq -9999 -a $LATB_ENKF -ne -9999 ] && JCAP_ENKF=$((LATB_ENKF-2)) - [ $LONB_ENKF -eq -9999 -o $LATB_ENKF -eq -9999 -o $LEVS_ENKF -eq -9999 -o $JCAP_ENKF -eq -9999 ] && exit -9999 + NLON_ENKF=${NLON_ENKF:-${LONB_ENKF}} + NLAT_ENKF=${NLAT_ENKF:-$((${LATB_ENKF}+2))} + [ ${JCAP_ENKF} -eq -9999 -a ${LATB_ENKF} -ne -9999 ] && JCAP_ENKF=$((LATB_ENKF-2)) + [ ${LONB_ENKF} -eq -9999 -o ${LATB_ENKF} -eq -9999 -o ${LEVS_ENKF} -eq -9999 -o ${JCAP_ENKF} -eq -9999 ] && exit -9999 else LONB_ENKF=0 # just for if statement later fi # Get dimension information based on CASE -res=$(echo $CASE | cut -c2-) +res=$(echo ${CASE} | cut -c2-) JCAP_CASE=$((res*2-2)) LATB_CASE=$((res*2)) LONB_CASE=$((res*4)) # Set analysis resolution information -if [ $DOHYBVAR = "YES" ]; then - JCAP_A=${JCAP_A:-${JCAP_ENKF:-$JCAP}} - LONA=${LONA:-${LONB_ENKF:-$LONB}} - LATA=${LATA:-${LATB_ENKF:-$LATB}} +if [ ${DOHYBVAR} = "YES" ]; then + JCAP_A=${JCAP_A:-${JCAP_ENKF:-${JCAP}}} + LONA=${LONA:-${LONB_ENKF:-${LONB}}} + LATA=${LATA:-${LATB_ENKF:-${LATB}}} else - JCAP_A=${JCAP_A:-$JCAP} - LONA=${LONA:-$LONB} - LATA=${LATA:-$LATB} + JCAP_A=${JCAP_A:-${JCAP}} + LONA=${LONA:-${LONB}} + LATA=${LATA:-${LATB}} fi -NLON_A=${NLON_A:-$LONA} -NLAT_A=${NLAT_A:-$(($LATA+2))} +NLON_A=${NLON_A:-${LONA}} +NLAT_A=${NLAT_A:-$((${LATA}+2))} -DELTIM=${DELTIM:-$((3600/($JCAP_A/20)))} +DELTIM=${DELTIM:-$((3600/(${JCAP_A}/20)))} # logic for netCDF I/O if [ ${SUFFIX} = ".nc" ]; then @@ -307,17 +307,17 @@ else fi # determine if writing or calculating increment -if [ $DO_CALC_INCREMENT = "YES" ]; then +if [ ${DO_CALC_INCREMENT} = "YES" ]; then write_fv3_increment=".false." else write_fv3_increment=".true." - WRITE_INCR_ZERO="incvars_to_zero= $INCREMENTS_TO_ZERO," - WRITE_ZERO_STRAT="incvars_zero_strat= $INCVARS_ZERO_STRAT," - WRITE_STRAT_EFOLD="incvars_efold= $INCVARS_EFOLD," + WRITE_INCR_ZERO="incvars_to_zero= ${INCREMENTS_TO_ZERO}," + WRITE_ZERO_STRAT="incvars_zero_strat= ${INCVARS_ZERO_STRAT}," + WRITE_STRAT_EFOLD="incvars_efold= ${INCVARS_EFOLD}," fi # GSI Fix files -RTMFIX=${RTMFIX:-${CRTM_FIX}} +RTMFIX=${CRTM_FIX} BERROR=${BERROR:-${FIXgsi}/Big_Endian/global_berror.l${LEVS}y${NLAT_A}.f77} SATANGL=${SATANGL:-${FIXgsi}/global_satangbias.txt} SATINFO=${SATINFO:-${FIXgsi}/global_satinfo.txt} @@ -353,7 +353,7 @@ NST=${NST:-""} #uGSI Namelist parameters lrun_subdirs=${lrun_subdirs:-".true."} -if [ $DOHYBVAR = "YES" ]; then +if [ ${DOHYBVAR} = "YES" ]; then l_hyb_ens=.true. export l4densvar=${l4densvar:-".false."} export lwrite4danl=${lwrite4danl:-".false."} @@ -364,7 +364,7 @@ else fi # Set 4D-EnVar specific variables -if [ $DOHYBVAR = "YES" -a $l4densvar = ".true." -a $lwrite4danl = ".true." ]; then +if [ ${DOHYBVAR} = "YES" -a ${l4densvar} = ".true." -a ${lwrite4danl} = ".true." ]; then ATMA03=${ATMA03:-${COMOUT}/${APREFIX}atma003${ASUFFIX}} ATMI03=${ATMI03:-${COMOUT}/${APREFIX}atmi003.nc} ATMA04=${ATMA04:-${COMOUT}/${APREFIX}atma004${ASUFFIX}} @@ -382,44 +382,44 @@ fi ################################################################################ # Preprocessing mkdata=NO -if [ ! -d $DATA ]; then +if [ ! -d ${DATA} ]; then mkdata=YES - mkdir -p $DATA + mkdir -p ${DATA} fi -cd $DATA || exit 99 +cd ${DATA} || exit 99 ############################################################## # Fixed files -$NLN $BERROR berror_stats -$NLN $SATANGL satbias_angle -$NLN $SATINFO satinfo -$NLN $RADCLOUDINFO cloudy_radiance_info.txt -$NLN $ATMSFILTER atms_beamwidth.txt -$NLN $ANAVINFO anavinfo -$NLN $CONVINFO convinfo -$NLN $vqcdat vqctp001.dat -$NLN $INSITUINFO insituinfo -$NLN $OZINFO ozinfo -$NLN $PCPINFO pcpinfo -$NLN $AEROINFO aeroinfo -$NLN $SCANINFO scaninfo -$NLN $HYBENSINFO hybens_info -$NLN $OBERROR errtable +${NLN} ${BERROR} berror_stats +${NLN} ${SATANGL} satbias_angle +${NLN} ${SATINFO} satinfo +${NLN} ${RADCLOUDINFO} cloudy_radiance_info.txt +${NLN} ${ATMSFILTER} atms_beamwidth.txt +${NLN} ${ANAVINFO} anavinfo +${NLN} ${CONVINFO} convinfo +${NLN} ${vqcdat} vqctp001.dat +${NLN} ${INSITUINFO} insituinfo +${NLN} ${OZINFO} ozinfo +${NLN} ${PCPINFO} pcpinfo +${NLN} ${AEROINFO} aeroinfo +${NLN} ${SCANINFO} scaninfo +${NLN} ${HYBENSINFO} hybens_info +${NLN} ${OBERROR} errtable #If using correlated error, link to the covariance files -if [ $USE_CORRELATED_OBERRS == "YES" ]; then - if grep -q "Rcov" $ANAVINFO ; then +if [ ${USE_CORRELATED_OBERRS} == "YES" ]; then + if grep -q "Rcov" ${ANAVINFO} ; then if ls ${FIXgsi}/Rcov* 1> /dev/null 2>&1; then - $NLN ${FIXgsi}/Rcov* $DATA + ${NLN} ${FIXgsi}/Rcov* ${DATA} echo "using correlated obs error" else echo "FATAL ERROR: Satellite error covariance files (Rcov) are missing." - echo "Check for the required Rcov files in " $ANAVINFO + echo "Check for the required Rcov files in " ${ANAVINFO} exit 1 fi else - echo "FATAL ERROR: Satellite error covariance info missing in " $ANAVINFO + echo "FATAL ERROR: Satellite error covariance info missing in " ${ANAVINFO} exit 1 fi @@ -436,138 +436,136 @@ fi # CRTM Spectral and Transmittance coefficients mkdir -p crtm_coeffs for file in $(awk '{if($1!~"!"){print $1}}' satinfo | sort | uniq); do - $NLN $RTMFIX/${file}.SpcCoeff.bin ./crtm_coeffs/${file}.SpcCoeff.bin - $NLN $RTMFIX/${file}.TauCoeff.bin ./crtm_coeffs/${file}.TauCoeff.bin + ${NLN} ${RTMFIX}/${file}.SpcCoeff.bin ./crtm_coeffs/${file}.SpcCoeff.bin + ${NLN} ${RTMFIX}/${file}.TauCoeff.bin ./crtm_coeffs/${file}.TauCoeff.bin done -$NLN $RTMFIX/amsua_metop-a_v2.SpcCoeff.bin ./crtm_coeffs/amsua_metop-a_v2.SpcCoeff.bin - -$NLN $RTMFIX/Nalli.IRwater.EmisCoeff.bin ./crtm_coeffs/Nalli.IRwater.EmisCoeff.bin -$NLN $RTMFIX/NPOESS.IRice.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRice.EmisCoeff.bin -$NLN $RTMFIX/NPOESS.IRland.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRland.EmisCoeff.bin -$NLN $RTMFIX/NPOESS.IRsnow.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRsnow.EmisCoeff.bin -$NLN $RTMFIX/NPOESS.VISice.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISice.EmisCoeff.bin -$NLN $RTMFIX/NPOESS.VISland.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISland.EmisCoeff.bin -$NLN $RTMFIX/NPOESS.VISsnow.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISsnow.EmisCoeff.bin -$NLN $RTMFIX/NPOESS.VISwater.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISwater.EmisCoeff.bin -$NLN $RTMFIX/FASTEM6.MWwater.EmisCoeff.bin ./crtm_coeffs/FASTEM6.MWwater.EmisCoeff.bin -$NLN $RTMFIX/AerosolCoeff.bin ./crtm_coeffs/AerosolCoeff.bin -$NLN $RTMFIX/CloudCoeff.bin ./crtm_coeffs/CloudCoeff.bin +${NLN} ${RTMFIX}/amsua_metop-a_v2.SpcCoeff.bin ./crtm_coeffs/amsua_metop-a_v2.SpcCoeff.bin + +${NLN} ${RTMFIX}/Nalli.IRwater.EmisCoeff.bin ./crtm_coeffs/Nalli.IRwater.EmisCoeff.bin +${NLN} ${RTMFIX}/NPOESS.IRice.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRice.EmisCoeff.bin +${NLN} ${RTMFIX}/NPOESS.IRland.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRland.EmisCoeff.bin +${NLN} ${RTMFIX}/NPOESS.IRsnow.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRsnow.EmisCoeff.bin +${NLN} ${RTMFIX}/NPOESS.VISice.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISice.EmisCoeff.bin +${NLN} ${RTMFIX}/NPOESS.VISland.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISland.EmisCoeff.bin +${NLN} ${RTMFIX}/NPOESS.VISsnow.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISsnow.EmisCoeff.bin +${NLN} ${RTMFIX}/NPOESS.VISwater.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISwater.EmisCoeff.bin +${NLN} ${RTMFIX}/FASTEM6.MWwater.EmisCoeff.bin ./crtm_coeffs/FASTEM6.MWwater.EmisCoeff.bin +${NLN} ${RTMFIX}/AerosolCoeff.bin ./crtm_coeffs/AerosolCoeff.bin +${NLN} ${RTMFIX}/CloudCoeff.bin ./crtm_coeffs/CloudCoeff.bin #$NLN $RTMFIX/CloudCoeff.GFDLFV3.-109z-1.bin ./crtm_coeffs/CloudCoeff.bin ############################################################## # Observational data -$NLN $PREPQC prepbufr -$NLN $PREPQCPF prepbufr_profl -$NLN $SATWND satwndbufr -$NLN $OSCATBF oscatbufr -$NLN $RAPIDSCATBF rapidscatbufr -$NLN $GSNDBF gsndrbufr -$NLN $GSNDBF1 gsnd1bufr -$NLN $B1HRS2 hirs2bufr -$NLN $B1MSU msubufr -$NLN $B1HRS3 hirs3bufr -$NLN $B1HRS4 hirs4bufr -$NLN $B1AMUA amsuabufr -$NLN $B1AMUB amsubbufr -$NLN $B1MHS mhsbufr -$NLN $ESHRS3 hirs3bufrears -$NLN $ESAMUA amsuabufrears -$NLN $ESAMUB amsubbufrears +${NLN} ${PREPQC} prepbufr +${NLN} ${PREPQCPF} prepbufr_profl +${NLN} ${SATWND} satwndbufr +${NLN} ${OSCATBF} oscatbufr +${NLN} ${RAPIDSCATBF} rapidscatbufr +${NLN} ${GSNDBF} gsndrbufr +${NLN} ${GSNDBF1} gsnd1bufr +${NLN} ${B1HRS2} hirs2bufr +${NLN} ${B1MSU} msubufr +${NLN} ${B1HRS3} hirs3bufr +${NLN} ${B1HRS4} hirs4bufr +${NLN} ${B1AMUA} amsuabufr +${NLN} ${B1AMUB} amsubbufr +${NLN} ${B1MHS} mhsbufr +${NLN} ${ESHRS3} hirs3bufrears +${NLN} ${ESAMUA} amsuabufrears +${NLN} ${ESAMUB} amsubbufrears #$NLN $ESMHS mhsbufrears -$NLN $HRS3DB hirs3bufr_db -$NLN $AMUADB amsuabufr_db -$NLN $AMUBDB amsubbufr_db +${NLN} ${HRS3DB} hirs3bufr_db +${NLN} ${AMUADB} amsuabufr_db +${NLN} ${AMUBDB} amsubbufr_db #$NLN $MHSDB mhsbufr_db -$NLN $SBUVBF sbuvbufr -$NLN $OMPSNPBF ompsnpbufr -$NLN $OMPSLPBF ompslpbufr -$NLN $OMPSTCBF ompstcbufr -$NLN $GOMEBF gomebufr -$NLN $OMIBF omibufr -$NLN $MLSBF mlsbufr -$NLN $SMIPCP ssmirrbufr -$NLN $TMIPCP tmirrbufr -$NLN $AIRSBF airsbufr -$NLN $IASIBF iasibufr -$NLN $ESIASI iasibufrears -$NLN $IASIDB iasibufr_db -$NLN $AMSREBF amsrebufr -$NLN $AMSR2BF amsr2bufr -$NLN $GMI1CRBF gmibufr -$NLN $SAPHIRBF saphirbufr -$NLN $SEVIRIBF seviribufr -$NLN $CRISBF crisbufr -$NLN $ESCRIS crisbufrears -$NLN $CRISDB crisbufr_db -$NLN $CRISFSBF crisfsbufr -$NLN $ESCRISFS crisfsbufrears -$NLN $CRISFSDB crisfsbufr_db -$NLN $ATMSBF atmsbufr -$NLN $ESATMS atmsbufrears -$NLN $ATMSDB atmsbufr_db -$NLN $SSMITBF ssmitbufr -$NLN $SSMISBF ssmisbufr -$NLN $GPSROBF gpsrobufr -$NLN $TCVITL tcvitl -$NLN $B1AVHAM avhambufr -$NLN $B1AVHPM avhpmbufr -$NLN $AHIBF ahibufr -$NLN $ABIBF abibufr -$NLN $HDOB hdobbufr -$NLN $SSTVIIRS sstviirs - -[[ $DONST = "YES" ]] && $NLN $NSSTBF nsstbufr +${NLN} ${SBUVBF} sbuvbufr +${NLN} ${OMPSNPBF} ompsnpbufr +${NLN} ${OMPSLPBF} ompslpbufr +${NLN} ${OMPSTCBF} ompstcbufr +${NLN} ${GOMEBF} gomebufr +${NLN} ${OMIBF} omibufr +${NLN} ${MLSBF} mlsbufr +${NLN} ${SMIPCP} ssmirrbufr +${NLN} ${TMIPCP} tmirrbufr +${NLN} ${AIRSBF} airsbufr +${NLN} ${IASIBF} iasibufr +${NLN} ${ESIASI} iasibufrears +${NLN} ${IASIDB} iasibufr_db +${NLN} ${AMSREBF} amsrebufr +${NLN} ${AMSR2BF} amsr2bufr +${NLN} ${GMI1CRBF} gmibufr +${NLN} ${SAPHIRBF} saphirbufr +${NLN} ${SEVIRIBF} seviribufr +${NLN} ${CRISBF} crisbufr +${NLN} ${ESCRIS} crisbufrears +${NLN} ${CRISDB} crisbufr_db +${NLN} ${CRISFSBF} crisfsbufr +${NLN} ${ESCRISFS} crisfsbufrears +${NLN} ${CRISFSDB} crisfsbufr_db +${NLN} ${ATMSBF} atmsbufr +${NLN} ${ESATMS} atmsbufrears +${NLN} ${ATMSDB} atmsbufr_db +${NLN} ${SSMITBF} ssmitbufr +${NLN} ${SSMISBF} ssmisbufr +${NLN} ${GPSROBF} gpsrobufr +${NLN} ${TCVITL} tcvitl +${NLN} ${B1AVHAM} avhambufr +${NLN} ${B1AVHPM} avhpmbufr +${NLN} ${AHIBF} ahibufr +${NLN} ${ABIBF} abibufr +${NLN} ${HDOB} hdobbufr +${NLN} ${SSTVIIRS} sstviirs + +[[ ${DONST} = "YES" ]] && ${NLN} ${NSSTBF} nsstbufr ############################################################## # Required bias guess files -$NLN $GBIAS satbias_in -$NLN $GBIASPC satbias_pc -$NLN $GBIASAIR aircftbias_in -$NLN $GRADSTAT radstat.gdas +${NLN} ${GBIAS} satbias_in +${NLN} ${GBIASPC} satbias_pc +${NLN} ${GBIASAIR} aircftbias_in +${NLN} ${GRADSTAT} radstat.gdas ############################################################## # Required model guess files -$NLN $ATMG03 sigf03 -$NLN $ATMGES sigf06 -$NLN $ATMG09 sigf09 +${NLN} ${ATMG03} sigf03 +${NLN} ${ATMGES} sigf06 +${NLN} ${ATMG09} sigf09 -$NLN $SFCG03 sfcf03 -$NLN $SFCGES sfcf06 -$NLN $SFCG09 sfcf09 +${NLN} ${SFCG03} sfcf03 +${NLN} ${SFCGES} sfcf06 +${NLN} ${SFCG09} sfcf09 -# Link hourly backgrounds (if present) +[[ -f ${ATMG04} ]] && ${NLN} ${ATMG04} sigf04 +[[ -f ${ATMG05} ]] && ${NLN} ${ATMG05} sigf05 +[[ -f ${ATMG07} ]] && ${NLN} ${ATMG07} sigf07 +[[ -f ${ATMG08} ]] && ${NLN} ${ATMG08} sigf08 -[[ -f $ATMG04 ]] && $NLN $ATMG04 sigf04 -[[ -f $ATMG05 ]] && $NLN $ATMG05 sigf05 -[[ -f $ATMG07 ]] && $NLN $ATMG07 sigf07 -[[ -f $ATMG08 ]] && $NLN $ATMG08 sigf08 +[[ -f ${SFCG04} ]] && ${NLN} ${SFCG04} sfcf04 +[[ -f ${SFCG05} ]] && ${NLN} ${SFCG05} sfcf05 +[[ -f ${SFCG07} ]] && ${NLN} ${SFCG07} sfcf07 +[[ -f ${SFCG08} ]] && ${NLN} ${SFCG08} sfcf08 -[[ -f $SFCG04 ]] && $NLN $SFCG04 sfcf04 -[[ -f $SFCG05 ]] && $NLN $SFCG05 sfcf05 -[[ -f $SFCG07 ]] && $NLN $SFCG07 sfcf07 -[[ -f $SFCG08 ]] && $NLN $SFCG08 sfcf08 - -if [ $DOHYBVAR = "YES" ]; then +if [ ${DOHYBVAR} = "YES" ]; then # Link ensemble members mkdir -p ensemble_data ENKF_SUFFIX="s" - [[ $SMOOTH_ENKF = "NO" ]] && ENKF_SUFFIX="" + [[ ${SMOOTH_ENKF} = "NO" ]] && ENKF_SUFFIX="" fhrs="06" - if [ $l4densvar = ".true." ]; then + if [ ${l4densvar} = ".true." ]; then fhrs="03 04 05 06 07 08 09" nhr_obsbin=1 fi - for imem in $(seq 1 $NMEM_ENKF); do - memchar="mem"$(printf %03i $imem) - for fhr in $fhrs; do - $NLN ${COMIN_GES_ENS}/$memchar/${GPREFIX}atmf0${fhr}${ENKF_SUFFIX}${GSUFFIX} ./ensemble_data/sigf${fhr}_ens_$memchar - if [ $cnvw_option = ".true." ]; then - $NLN ${COMIN_GES_ENS}/$memchar/${GPREFIX}sfcf0${fhr}${GSUFFIX} ./ensemble_data/sfcf${fhr}_ens_$memchar + for imem in $(seq 1 ${NMEM_ENKF}); do + memchar="mem"$(printf %03i ${imem}) + for fhr in ${fhrs}; do + ${NLN} ${COMIN_GES_ENS}/${memchar}/${GPREFIX}atmf0${fhr}${ENKF_SUFFIX}${GSUFFIX} ./ensemble_data/sigf${fhr}_ens_${memchar} + if [ ${cnvw_option} = ".true." ]; then + ${NLN} ${COMIN_GES_ENS}/${memchar}/${GPREFIX}sfcf0${fhr}${GSUFFIX} ./ensemble_data/sfcf${fhr}_ens_${memchar} fi done done @@ -577,11 +575,11 @@ fi ############################################################## # Handle inconsistent surface mask between background, ensemble and analysis grids # This needs re-visiting in the context of NSST; especially references to JCAP* -if [ $JCAP -ne $JCAP_A ]; then - if [ $DOHYBVAR = "YES" -a $JCAP_A = $JCAP_ENKF ]; then - if [ -e $SFCGES_ENSMEAN ]; then +if [ ${JCAP} -ne ${JCAP_A} ]; then + if [ ${DOHYBVAR} = "YES" -a ${JCAP_A} = ${JCAP_ENKF} ]; then + if [ -e ${SFCGES_ENSMEAN} ]; then USE_READIN_ANL_SFCMASK=.true. - $NLN $SFCGES_ENSMEAN sfcf06_anlgrid + ${NLN} ${SFCGES_ENSMEAN} sfcf06_anlgrid else echo "Warning: Inconsistent sfc mask between analysis and ensemble grids, GSI will interpolate" fi @@ -593,108 +591,108 @@ fi ############################################################## # Diagnostic files # if requested, link GSI diagnostic file directories for use later -if [ $GENDIAG = "YES" ] ; then - if [ $lrun_subdirs = ".true." ] ; then - if [ -d $DIAG_DIR ]; then - rm -rf $DIAG_DIR +if [ ${GENDIAG} = "YES" ] ; then + if [ ${lrun_subdirs} = ".true." ] ; then + if [ -d ${DIAG_DIR} ]; then + rm -rf ${DIAG_DIR} fi - npe_m1="$(($npe_gsi-1))" - for pe in $(seq 0 $npe_m1); do - pedir="dir."$(printf %04i $pe) - mkdir -p $DIAG_DIR/$pedir - $NLN $DIAG_DIR/$pedir $pedir + npe_m1="$((${npe_gsi}-1))" + for pe in $(seq 0 ${npe_m1}); do + pedir="dir."$(printf %04i ${pe}) + mkdir -p ${DIAG_DIR}/${pedir} + ${NLN} ${DIAG_DIR}/${pedir} ${pedir} done else - err_exit "FATAL ERROR: lrun_subdirs must be true. lrun_subdirs=$lrun_subdirs" + err_exit "FATAL ERROR: lrun_subdirs must be true. lrun_subdirs=${lrun_subdirs}" fi fi ############################################################## # Output files -$NLN $ATMANL siganl -$NLN $ATMINC siginc.nc -if [ $DOHYBVAR = "YES" -a $l4densvar = ".true." -a $lwrite4danl = ".true." ]; then - $NLN $ATMA03 siga03 - $NLN $ATMI03 sigi03.nc - $NLN $ATMA04 siga04 - $NLN $ATMI04 sigi04.nc - $NLN $ATMA05 siga05 - $NLN $ATMI05 sigi05.nc - $NLN $ATMA07 siga07 - $NLN $ATMI07 sigi07.nc - $NLN $ATMA08 siga08 - $NLN $ATMI08 sigi08.nc - $NLN $ATMA09 siga09 - $NLN $ATMI09 sigi09.nc +${NLN} ${ATMANL} siganl +${NLN} ${ATMINC} siginc.nc +if [ ${DOHYBVAR} = "YES" -a ${l4densvar} = ".true." -a ${lwrite4danl} = ".true." ]; then + ${NLN} ${ATMA03} siga03 + ${NLN} ${ATMI03} sigi03.nc + ${NLN} ${ATMA04} siga04 + ${NLN} ${ATMI04} sigi04.nc + ${NLN} ${ATMA05} siga05 + ${NLN} ${ATMI05} sigi05.nc + ${NLN} ${ATMA07} siga07 + ${NLN} ${ATMI07} sigi07.nc + ${NLN} ${ATMA08} siga08 + ${NLN} ${ATMI08} sigi08.nc + ${NLN} ${ATMA09} siga09 + ${NLN} ${ATMI09} sigi09.nc fi -$NLN $ABIAS satbias_out -$NLN $ABIASPC satbias_pc.out -$NLN $ABIASAIR aircftbias_out +${NLN} ${ABIAS} satbias_out +${NLN} ${ABIASPC} satbias_pc.out +${NLN} ${ABIASAIR} aircftbias_out -if [ $DONST = "YES" ]; then - $NLN $DTFANL dtfanl +if [ ${DONST} = "YES" ]; then + ${NLN} ${DTFANL} dtfanl fi # If requested, link (and if tarred, de-tar obsinput.tar) into obs_input.* files -if [ $USE_SELECT = "YES" ]; then +if [ ${USE_SELECT} = "YES" ]; then rm obs_input.* - nl=$(file $SELECT_OBS | cut -d: -f2 | grep tar | wc -l) - if [ $nl -eq 1 ]; then + nl=$(file ${SELECT_OBS} | cut -d: -f2 | grep tar | wc -l) + if [ ${nl} -eq 1 ]; then rm obsinput.tar - $NLN $SELECT_OBS obsinput.tar + ${NLN} ${SELECT_OBS} obsinput.tar tar -xvf obsinput.tar rm obsinput.tar else - for filetop in $(ls $SELECT_OBS/obs_input.*); do - fileloc=$(basename $filetop) - $NLN $filetop $fileloc + for filetop in $(ls ${SELECT_OBS}/obs_input.*); do + fileloc=$(basename ${filetop}) + ${NLN} ${filetop} ${fileloc} done fi fi ############################################################## # If requested, copy and de-tar guess radstat file -if [ $USE_RADSTAT = "YES" ]; then - if [ $USE_CFP = "YES" ]; then - [[ -f $DATA/unzip.sh ]] && rm $DATA/unzip.sh - [[ -f $DATA/mp_unzip.sh ]] && rm $DATA/mp_unzip.sh - cat > $DATA/unzip.sh << EOFunzip +if [ ${USE_RADSTAT} = "YES" ]; then + if [ ${USE_CFP} = "YES" ]; then + [[ -f ${DATA}/unzip.sh ]] && rm ${DATA}/unzip.sh + [[ -f ${DATA}/mp_unzip.sh ]] && rm ${DATA}/mp_unzip.sh + cat > ${DATA}/unzip.sh << EOFunzip #!/bin/sh diag_file=\$1 diag_suffix=\$2 fname=\$(echo \$diag_file | cut -d'.' -f1) fdate=\$(echo \$diag_file | cut -d'.' -f2) - $UNCOMPRESS \$diag_file + ${UNCOMPRESS} \$diag_file fnameges=\$(echo \$fname | sed 's/_ges//g') - $NMV \$fname.\$fdate\$diag_suffix \$fnameges + ${NMV} \$fname.\$fdate\$diag_suffix \$fnameges EOFunzip - chmod 755 $DATA/unzip.sh + chmod 755 ${DATA}/unzip.sh fi listdiag=$(tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges) - for type in $listdiag; do - diag_file=$(echo $type | cut -d',' -f1) - if [ $USE_CFP = "YES" ] ; then - echo "$nm $DATA/unzip.sh $diag_file $DIAG_SUFFIX" | tee -a $DATA/mp_unzip.sh + for type in ${listdiag}; do + diag_file=$(echo ${type} | cut -d',' -f1) + if [ ${USE_CFP} = "YES" ] ; then + echo "${nm} ${DATA}/unzip.sh ${diag_file} ${DIAG_SUFFIX}" | tee -a ${DATA}/mp_unzip.sh if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=$((nm+1)) fi else - fname=$(echo $diag_file | cut -d'.' -f1) - date=$(echo $diag_file | cut -d'.' -f2) - $UNCOMPRESS $diag_file - fnameges=$(echo $fname|sed 's/_ges//g') - $NMV $fname.$date$DIAG_SUFFIX $fnameges + fname=$(echo ${diag_file} | cut -d'.' -f1) + date=$(echo ${diag_file} | cut -d'.' -f2) + ${UNCOMPRESS} ${diag_file} + fnameges=$(echo ${fname}|sed 's/_ges//g') + ${NMV} ${fname}.${date}${DIAG_SUFFIX} ${fnameges} fi done - if [ $USE_CFP = "YES" ] ; then - chmod 755 $DATA/mp_unzip.sh - ncmd=$(cat $DATA/mp_unzip.sh | wc -l) - if [ $ncmd -gt 0 ]; then + if [ ${USE_CFP} = "YES" ] ; then + chmod 755 ${DATA}/mp_unzip.sh + ncmd=$(cat ${DATA}/mp_unzip.sh | wc -l) + if [ ${ncmd} -gt 0 ]; then ncmd_max=$((ncmd < npe_node_max ? ncmd : npe_node_max)) - APRUNCFP_UNZIP=$(eval echo $APRUNCFP) - $APRUNCFP_UNZIP $DATA/mp_unzip.sh + APRUNCFP_UNZIP=$(eval echo ${APRUNCFP}) + ${APRUNCFP_UNZIP} ${DATA}/mp_unzip.sh export err=$?; err_chk fi fi @@ -702,18 +700,18 @@ fi # if [ $USE_RADSTAT = "YES" ] ############################################################## # GSI Namelist options -if [ $DOHYBVAR = "YES" ]; then - HYBRID_ENSEMBLE="n_ens=$NMEM_ENKF,jcap_ens=$JCAP_ENKF,nlat_ens=$NLAT_ENKF,nlon_ens=$NLON_ENKF,jcap_ens_test=$JCAP_ENKF,$HYBRID_ENSEMBLE" - if [ $l4densvar = ".true." ]; then - SETUP="niter(1)=50,niter(2)=150,niter_no_qc(1)=25,niter_no_qc(2)=0,thin4d=.true.,ens_nstarthr=3,l4densvar=$l4densvar,lwrite4danl=$lwrite4danl,$SETUP" - JCOPTS="ljc4tlevs=.true.,$JCOPTS" - STRONGOPTS="tlnmc_option=3,$STRONGOPTS" - OBSQC="c_varqc=0.04,$OBSQC" +if [ ${DOHYBVAR} = "YES" ]; then + HYBRID_ENSEMBLE="n_ens=${NMEM_ENKF},jcap_ens=${JCAP_ENKF},nlat_ens=${NLAT_ENKF},nlon_ens=${NLON_ENKF},jcap_ens_test=${JCAP_ENKF},${HYBRID_ENSEMBLE}" + if [ ${l4densvar} = ".true." ]; then + SETUP="niter(1)=50,niter(2)=150,niter_no_qc(1)=25,niter_no_qc(2)=0,thin4d=.true.,ens_nstarthr=3,l4densvar=${l4densvar},lwrite4danl=${lwrite4danl},${SETUP}" + JCOPTS="ljc4tlevs=.true.,${JCOPTS}" + STRONGOPTS="tlnmc_option=3,${STRONGOPTS}" + OBSQC="c_varqc=0.04,${OBSQC}" fi fi -if [ $DONST = "YES" ]; then - NST="nstinfo=$NSTINFO,fac_dtl=$FAC_DTL,fac_tsl=$FAC_TSL,zsea1=$ZSEA1,zsea2=$ZSEA2,$NST" +if [ ${DONST} = "YES" ]; then + NST="nstinfo=${NSTINFO},fac_dtl=${FAC_DTL},fac_tsl=${FAC_TSL},zsea1=${ZSEA1},zsea2=${ZSEA2},${NST}" fi ############################################################## @@ -725,33 +723,33 @@ cat > gsiparm.anl << EOF niter_no_qc(1)=50,niter_no_qc(2)=0, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., qoption=2, - gencode=${IGEN:-0},deltim=$DELTIM, + gencode=${IGEN:-0},deltim=${DELTIM}, factqmin=0.5,factqmax=0.0002, iguess=-1, - tzr_qc=$TZR_QC, + tzr_qc=${TZR_QC}, oneobtest=.false.,retrieval=.false.,l_foto=.false., use_pbl=.false.,use_compress=.true.,nsig_ext=12,gpstop=50.,commgpstop=45.,commgpserrinf=1.0, use_gfs_nemsio=${use_gfs_nemsio},use_gfs_ncio=${use_gfs_ncio},sfcnst_comb=.true., use_readin_anl_sfcmask=${USE_READIN_ANL_SFCMASK}, - lrun_subdirs=$lrun_subdirs, + lrun_subdirs=${lrun_subdirs}, crtm_coeffs_path='./crtm_coeffs/', newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,nhr_obsbin=${nhr_obsbin:-3}, - cwoption=3,imp_physics=$imp_physics,lupp=$lupp,cnvw_option=$cnvw_option,cao_check=${cao_check}, - netcdf_diag=$netcdf_diag,binary_diag=$binary_diag, - lobsdiag_forenkf=$lobsdiag_forenkf, - write_fv3_incr=$write_fv3_increment, + cwoption=3,imp_physics=${imp_physics},lupp=${lupp},cnvw_option=${cnvw_option},cao_check=${cao_check}, + netcdf_diag=${netcdf_diag},binary_diag=${binary_diag}, + lobsdiag_forenkf=${lobsdiag_forenkf}, + write_fv3_incr=${write_fv3_increment}, nhr_anal=${IAUFHRS}, ta2tb=${ta2tb}, - $WRITE_INCR_ZERO - $WRITE_ZERO_STRAT - $WRITE_STRAT_EFOLD - $SETUP + ${WRITE_INCR_ZERO} + ${WRITE_ZERO_STRAT} + ${WRITE_STRAT_EFOLD} + ${SETUP} / &GRIDOPTS - JCAP_B=$JCAP,JCAP=$JCAP_A,NLAT=$NLAT_A,NLON=$NLON_A,nsig=$LEVS, + JCAP_B=${JCAP},JCAP=${JCAP_A},NLAT=${NLAT_A},NLON=${NLON_A},nsig=${LEVS}, regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS + ${GRIDOPTS} / &BKGERR vs=0.7, @@ -761,30 +759,30 @@ cat > gsiparm.anl << EOF bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, bkgv_write=.false., cwcoveqqcov=.false., - $BKGVERR + ${BKGVERR} / &ANBKGERR anisotropic=.false., - $ANBKGERR + ${ANBKGERR} / &JCOPTS ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7, - $JCOPTS + ${JCOPTS} / &STRONGOPTS tlnmc_option=2,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - $STRONGOPTS + ${STRONGOPTS} / &OBSQC dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.false.,nvqc=.true., aircraft_t_bc=.true.,biaspredt=1.0e5,upd_aircraft=.true.,cleanup_tail=.true., tcp_width=70.0,tcp_ermax=7.35, - $OBSQC + ${OBSQC} / &OBS_INPUT dmesh(1)=145.0,dmesh(2)=150.0,dmesh(3)=100.0,dmesh(4)=25.0,time_window_max=3.0, - $OBSINPUT + ${OBSINPUT} / OBS_INPUT:: ! dfile dtype dplat dsis dval dthin dsfcalc @@ -906,37 +904,37 @@ OBS_INPUT:: gomebufr gome metop-c gome_metop-c 0.0 2 0 :: &SUPEROB_RADAR - $SUPERRAD + ${SUPERRAD} / &LAG_DATA - $LAGDATA + ${LAGDATA} / &HYBRID_ENSEMBLE - l_hyb_ens=$l_hyb_ens, + l_hyb_ens=${l_hyb_ens}, generate_ens=.false., beta_s0=0.125,readin_beta=.false., s_ens_h=800.,s_ens_v=-0.8,readin_localization=.true., aniso_a_en=.false.,oz_univ_static=.false.,uv_hyb_ens=.true., ensemble_path='./ensemble_data/', ens_fast_read=.true., - $HYBRID_ENSEMBLE + ${HYBRID_ENSEMBLE} / &RAPIDREFRESH_CLDSURF dfi_radar_latent_heat_time_period=30.0, - $RAPIDREFRESH_CLDSURF + ${RAPIDREFRESH_CLDSURF} / &CHEM - $CHEM + ${CHEM} / &SINGLEOB_TEST maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=$CDATE, + oblat=45.,oblon=180.,obpres=1000.,obdattim=${CDATE}, obhourset=0., - $SINGLEOB + ${SINGLEOB} / &NST - nst_gsi=$NST_GSI, - $NST + nst_gsi=${NST_GSI}, + ${NST} / EOF cat gsiparm.anl @@ -944,20 +942,20 @@ cat gsiparm.anl ############################################################## # Run gsi analysis -export OMP_NUM_THREADS=$NTHREADS_GSI -export pgm=$GSIEXEC +export OMP_NUM_THREADS=${NTHREADS_GSI} +export pgm=${GSIEXEC} . prep_step -$NCP $GSIEXEC $DATA -$APRUN_GSI ${DATA}/$(basename $GSIEXEC) 1>&1 2>&2 +${NCP} ${GSIEXEC} ${DATA} +${APRUN_GSI} ${DATA}/$(basename ${GSIEXEC}) 1>&1 2>&2 export err=$?; err_chk ############################################################## # If full analysis field written, calculate analysis increment # here before releasing FV3 forecast -if [ $DO_CALC_INCREMENT = "YES" ]; then - $CALCINCPY +if [ ${DO_CALC_INCREMENT} = "YES" ]; then + ${CALCINCPY} export err=$?; err_chk fi @@ -965,52 +963,52 @@ fi ############################################################## # For eupd if [ -s satbias_out.int ]; then - $NCP satbias_out.int $ABIASe + ${NCP} satbias_out.int ${ABIASe} else - $NCP satbias_in $ABIASe + ${NCP} satbias_in ${ABIASe} fi # Cat runtime output files. -cat fort.2* > $GSISTAT +cat fort.2* > ${GSISTAT} # If requested, create obsinput tarball from obs_input.* files -if [ $RUN_SELECT = "YES" ]; then +if [ ${RUN_SELECT} = "YES" ]; then echo $(date) START tar obs_input >&2 [[ -s obsinput.tar ]] && rm obsinput.tar - $NLN $SELECT_OBS obsinput.tar + ${NLN} ${SELECT_OBS} obsinput.tar ${CHGRP_CMD} obs_input.* tar -cvf obsinput.tar obs_input.* - chmod 750 $SELECT_OBS - ${CHGRP_CMD} $SELECT_OBS + chmod 750 ${SELECT_OBS} + ${CHGRP_CMD} ${SELECT_OBS} rm obsinput.tar echo $(date) END tar obs_input >&2 fi ################################################################################ # Send alerts -if [ $SENDDBN = "YES" ]; then - if [ $RUN = "gfs" ]; then - $DBNROOT/bin/dbn_alert MODEL GFS_abias $job $ABIAS +if [ ${SENDDBN} = "YES" ]; then + if [ ${RUN} = "gfs" ]; then + ${DBNROOT}/bin/dbn_alert MODEL GFS_abias ${job} ${ABIAS} fi fi ################################################################################ # Postprocessing -cd $pwd -[[ $mkdata = "YES" ]] && rm -rf $DATA +cd ${pwd} +[[ ${mkdata} = "YES" ]] && rm -rf ${DATA} ############################################################## # Add this statement to release the forecast job once the # atmopsheric analysis and updated surface RESTARTS are # available. Do not release forecast when RUN=enkf ############################################################## -if [ $SENDECF = "YES" -a "$RUN" != "enkf" ]; then +if [ ${SENDECF} = "YES" -a "${RUN}" != "enkf" ]; then ecflow_client --event release_fcst fi -echo "$CDUMP $CDATE atminc done at $(date)" > $COMOUT/${APREFIX}loginc.txt +echo "${CDUMP} ${CDATE} atminc done at $(date)" > ${COMOUT}/${APREFIX}loginc.txt ################################################################################ -exit $err +exit ${err} ################################################################################ diff --git a/sorc/checkout.sh b/sorc/checkout.sh index dc58f19253..066502abc7 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -19,7 +19,7 @@ Usage: ${BASH_SOURCE[0]} [-c][-h][-m ufs_hash][-o] Check out this UFS hash instead of the default -o: Check out operational-only code (GTG and WAFS) - -g: + -g: Check out GSI for GSI-based DA -u: Check out GDASApp for UFS-based DA diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index 36dd448cb9..42345ea4ed 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -27,7 +27,7 @@ OPTIND=1 while getopts ":ho" option; do case "${option}" in h) usage ;; - o) + o) echo "-o option received, configuring for NCO" RUN_ENVIR="nco";; :) diff --git a/workflow/applications.py b/workflow/applications.py index 5622b6ff70..d2776f7f7b 100644 --- a/workflow/applications.py +++ b/workflow/applications.py @@ -103,7 +103,7 @@ def __init__(self, configuration: Configuration) -> None: self.do_bufrsnd = _base.get('DO_BUFRSND', False) self.do_gempak = _base.get('DO_GEMPAK', False) self.do_awips = _base.get('DO_AWIPS', False) - self.do_wafs = _base.get('DO_WAFS', False) + self.do_wafs = _base.get('WAFSF', False) self.do_vrfy = _base.get('DO_VRFY', True) self.do_metp = _base.get('DO_METP', False) self.do_jedivar = _base.get('DO_JEDIVAR', False) diff --git a/workflow/rocoto/workflow_tasks.py b/workflow/rocoto/workflow_tasks.py index 67c2847a53..6273c16491 100644 --- a/workflow/rocoto/workflow_tasks.py +++ b/workflow/rocoto/workflow_tasks.py @@ -41,7 +41,9 @@ def __init__(self, app_config: AppConfig, cdump: str) -> None: 'CDUMP': self.cdump, 'CDATE': '@Y@m@d@H', 'PDY': '@Y@m@d', - 'cyc': '@H'} + 'cyc': '@H', + 'COMROOT': self._base.get('COMROOT'), + 'DATAROOT': self._base.get('DATAROOT')} self.envars = self._set_envars(envar_dict) @staticmethod