diff --git a/.gitignore b/.gitignore index 9ac9ece1dd..f94c17ba35 100644 --- a/.gitignore +++ b/.gitignore @@ -30,7 +30,6 @@ fix/chem fix/cice fix/cpl fix/datm -fix/gdas fix/gldas fix/gsi fix/lut @@ -47,7 +46,7 @@ fix/wafs #-------------------------- parm/config/config.base parm/gldas -parm/mon +parm/monitor parm/post/AEROSOL_LUTS.dat parm/post/nam_micro_lookup.dat parm/post/optics_luts_DUST.dat diff --git a/fix/product/gfs_minmon_cost.txt b/fix/product/gfs_minmon_cost.txt deleted file mode 100644 index 7b4341587b..0000000000 --- a/fix/product/gfs_minmon_cost.txt +++ /dev/null @@ -1,4 +0,0 @@ -cost_target:cost,grad,step,b,step?: -cost_number:4: -costterms_target:costterms Jb,Jo,Jc,Jl: - diff --git a/fix/product/gfs_minmon_gnorm.txt b/fix/product/gfs_minmon_gnorm.txt deleted file mode 100644 index 4687139cf3..0000000000 --- a/fix/product/gfs_minmon_gnorm.txt +++ /dev/null @@ -1,6 +0,0 @@ -igrad_target:cost,grad,step,b,step?: -igrad_number:5: -gnorm_target:penalty and grad reduction WRT outer and initial iter: -gnorm_number:14: -expected_gnorms:202: -gross_check_val:3.5E-4: diff --git a/jobs/JGDAS_ATMOS_VERFOZN b/jobs/JGDAS_ATMOS_VERFOZN index 3b75359e6a..65479a9fec 100755 --- a/jobs/JGDAS_ATMOS_VERFOZN +++ b/jobs/JGDAS_ATMOS_VERFOZN @@ -6,38 +6,13 @@ source "${HOMEgfs}/ush/preamble.sh" source "${HOMEgfs}/ush/jjob_header.sh" -e "verfozn" -c "base verfozn" -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 HOMEoznmon=${HOMEoznmon:-${HOMEgfs_ozn}} -export EXECoznmon=${EXECoznmon:-${HOMEoznmon}/exec} -export FIXoznmon=${FIXoznmon:-${HOMEoznmon}/fix} -export USHoznmon=${USHoznmon:-${HOMEoznmon}/ush} - - -#----------------------------------- -# source the parm file -# -. ${PARMgdas_ozn}/gdas_oznmon.parm - - ############################################# # determine PDY and cyc for previous cycle ############################################# - -pdate=$(${NDATE} -6 ${PDY}${cyc}) -echo "pdate = ${pdate}" - -export P_PDY=${pdate:0:8} -export p_cyc=${pdate:8:2} +# shellcheck disable=SC2153 +GDATE=$(date --utc +%Y%m%d%H -d "${PDY} ${cyc} - ${assim_freq} hours") +export gPDY=${GDATE:0:8} +export gcyc=${GDATE:8:2} #--------------------------------------------- # OZN_TANKDIR - WHERE OUTPUT DATA WILL RESIDE @@ -45,30 +20,19 @@ export p_cyc=${pdate:8:2} YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_OZNMON +export oznstat="${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.oznstat" export TANKverf_ozn=${TANKverf_ozn:-${COM_ATMOS_OZNMON}} if [[ ! -d ${TANKverf_ozn} ]]; then mkdir -p -m 775 ${TANKverf_ozn} ; fi -#--------------------------------------- -# set up validation file -# -if [[ ${VALIDATE_DATA} -eq 1 ]]; then - export ozn_val_file=${ozn_val_file:-${FIXgdas_ozn}/gdas_oznmon_base.tar} -fi - -#--------------------------------------- -# Set necessary environment variables -# -export OZN_AREA=${OZN_AREA:-glb} -export oznstat=${oznstat:-${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.oznstat} - - #------------------------------------------------------- # Execute the script. # -${OZNMONSH:-${SCRgdas_ozn}/exgdas_atmos_verfozn.sh} ${PDY} ${cyc} +"${SCRgfs}/exgdas_atmos_verfozn.sh" err=$? -[[ ${err} -ne 0 ]] && exit ${err} +if (( err != 0 )); then + exit "${err}" +fi ################################ diff --git a/jobs/JGDAS_ATMOS_VERFRAD b/jobs/JGDAS_ATMOS_VERFRAD index 301af7d06e..d440f91b6e 100755 --- a/jobs/JGDAS_ATMOS_VERFRAD +++ b/jobs/JGDAS_ATMOS_VERFRAD @@ -6,42 +6,13 @@ source "${HOMEgfs}/ush/preamble.sh" source "${HOMEgfs}/ush/jjob_header.sh" -e "verfrad" -c "base verfrad" -export COMPONENT="atmos" - -export RADMON_SUFFIX=${RADMON_SUFFIX:-${RUN}} -export CYCLE_INTERVAL=${CYCLE_INTERVAL:-6} - -############################################## -# Specify Execution Areas -############################################## -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export SCRgfs=${SCRgfs:-${HOMEgfs}/scripts} - -export FIXgdas=${FIXgdas:-${HOMEgfs}/fix/gdas} -export PARMmon=${PARMmon:-${HOMEgfs}/parm/mon} - -export HOMEradmon=${HOMEradmon:-${HOMEgfs}} -export EXECradmon=${EXECradmon:-${HOMEradmon}/exec} -export FIXradmon=${FIXradmon:-${FIXgfs}} -export USHradmon=${USHradmon:-${HOMEradmon}/ush} - - -################################### -# source the parm file -################################### -parm_file=${parm_file:-${PARMmon}/da_mon.parm} -. ${parm_file} - - ############################################# # determine PDY and cyc for previous cycle ############################################# - -pdate=$(${NDATE} -6 ${PDY}${cyc}) -echo "pdate = ${pdate}" - -export P_PDY=${pdate:0:8} -export p_cyc=${pdate:8:2} +# shellcheck disable=SC2153 +GDATE=$(date --utc +%Y%m%d%H -d "${PDY} ${cyc} - ${assim_freq} hours") +export gPDY=${GDATE:0:8} +export gcyc=${GDATE:8:2} ############################################# # COMOUT - WHERE GSI OUTPUT RESIDES @@ -49,38 +20,22 @@ export p_cyc=${pdate:8:2} ############################################# YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_RADMON -YMD=${P_PDY} HH=${p_cyc} generate_com -rx COM_ATMOS_RADMON_PREV:COM_ATMOS_RADMON_TMPL +YMD=${gPDY} HH=${gcyc} generate_com -rx COM_ATMOS_RADMON_PREV:COM_ATMOS_RADMON_TMPL +export biascr="${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.abias" +export radstat="${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.radstat" export TANKverf_rad=${TANKverf_rad:-${COM_ATMOS_RADMON}} export TANKverf_radM1=${TANKverf_radM1:-${COM_ATMOS_RADMON_PREV}} if [[ ! -d ${TANKverf_rad} ]]; then mkdir -p -m 775 ${TANKverf_rad} ; fi if [[ ! -d ${TANKverf_radM1} ]]; then mkdir -p -m 775 ${TANKverf_radM1} ; fi -######################################## -# Set necessary environment variables -######################################## -export RAD_AREA=${RAD_AREA:-glb} - -export biascr=${biascr:-${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.abias} -export radstat=${radstat:-${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.radstat} - -echo " " -echo "JOB HAS STARTED" -echo " " - - ######################################################## # Execute the script. -${RADMONSH:-${SCRgfs}/exgdas_atmos_verfrad.sh} ${PDY} ${cyc} +"${SCRgfs}/exgdas_atmos_verfrad.sh" err=$? - -if [[ ${err} -ne 0 ]] ; then - exit ${err} -else - echo " " - echo "JOB HAS COMPLETED NORMALLY" - echo " " +if (( err != 0 )); then + exit "${err}" fi ################################ diff --git a/jobs/JGDAS_ATMOS_VMINMON b/jobs/JGDAS_ATMOS_VMINMON deleted file mode 100755 index c7c6d12f9a..0000000000 --- a/jobs/JGDAS_ATMOS_VMINMON +++ /dev/null @@ -1,73 +0,0 @@ -#! /usr/bin/env bash - -########################################################### -# GDAS Minimization Monitor (MinMon) job -########################################################### -source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" -e "vminmon" -c "base vminmon" - -########################################################### -# obtain unique process id (pid) and make temp directories -########################################################### -export MINMON_SUFFIX=${MINMON_SUFFIX:-${NET}} -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_FIXgdas=${M_FIXgdas:-${HOMEgfs}/fix/gdas} - -export HOMEminmon=${HOMEminmon:-${HOMEgfs}} -export EXECminmon=${EXECminmon:-${HOMEminmon}/exec} -export USHminmon=${USHminmon:-${HOMEminmon}/ush} - - -############################################# -# determine PDY and cyc for previous cycle -############################################# - -pdate=$(${NDATE} -6 ${PDY}${cyc}) -echo "pdate = ${pdate}" - -export P_PDY=${pdate:0:8} -export p_cyc=${pdate:8:2} - - -############################################# -# TANKverf - WHERE OUTPUT DATA WILL RESIDE -############################################# -YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS -YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_MINMON -YMD=${P_PDY} HH=${p_cyc} generate_com -rx COM_ATMOS_MINMON_PREV:COM_ATMOS_MINMON_TMPL - -export M_TANKverf=${M_TANKverf:-${COM_ATMOS_MINMON}} -export M_TANKverfM1=${M_TANKverfM1:-${COM_ATMOS_MINMON_PREV}} - -if [[ ! -d ${M_TANKverf} ]]; then mkdir -p -m 775 ${M_TANKverf} ; fi -if [[ ! -d ${M_TANKverfM1} ]]; then mkdir -p -m 775 ${M_TANKverfM1} ; fi - - -######################################## -# Set necessary environment variables -######################################## -export CYCLE_INTERVAL=6 -export gsistat=${gsistat:-${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.gsistat} - - -######################################################## -# Execute the script. -${GMONSH:-${SCRgfs}/exgdas_atmos_vminmon.sh} ${PDY} ${cyc} -err=$? -[[ ${err} -ne 0 ]] && exit ${err} - - -################################ -# Remove the Working Directory -################################ -[[ "${KEEPDATA}" = "NO" ]] && rm -rf "${DATA}" - -exit 0 diff --git a/jobs/JGFS_ATMOS_VMINMON b/jobs/JGFS_ATMOS_VMINMON deleted file mode 100755 index c548d806f5..0000000000 --- a/jobs/JGFS_ATMOS_VMINMON +++ /dev/null @@ -1,71 +0,0 @@ -#! /usr/bin/env bash - -########################################################### -# GFS Minimization Monitor (MinMon) job -########################################################### -source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" -e "vminmon" -c "base vminmon" - -########################################################### -# obtain unique process id (pid) and make temp directories -########################################################### -export MINMON_SUFFIX=${MINMON_SUFFIX:-GFS} -export m_job=${m_job:-${MINMON_SUFFIX}_mmDE} - - -############################################## -# Specify Package Areas -############################################## -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} - - -############################################# -# determine PDY and cyc for previous cycle -############################################# - -pdate=$(${NDATE} -6 ${PDY}${cyc}) -echo 'pdate = ${pdate}' - -export P_PDY=${pdate:0:8} -export p_cyc=${pdate:8:2} - - -############################################# -# TANKverf - WHERE OUTPUT DATA WILL RESIDE -############################################# -YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS -YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_MINMON -YMD=${P_PDY} HH=${p_cyc} generate_com -rx COM_ATMOS_MINMON_PREV:COM_ATMOS_MINMON_TMPL - -export M_TANKverf=${M_TANKverf:-${COM_ATMOS_MINMON}} -export M_TANKverfM1=${M_TANKverfM1:-${COM_ATMOS_MINMON_PREV}} - -if [[ ! -d ${M_TANKverf} ]]; then mkdir -p -m 775 ${M_TANKverf} ; fi -if [[ ! -d ${M_TANKverfM1} ]]; then mkdir -p -m 775 ${M_TANKverfM1} ; fi - - -######################################## -# Set necessary environment variables -######################################## -export CYCLE_INTERVAL=6 -export gsistat=${gsistat:-${COM_ATMOS_ANALYSIS}/gfs.t${cyc}z.gsistat} - - -######################################################## -# Execute the script. -${GMONSH:-${SCRgfs}/exgfs_atmos_vminmon.sh} ${PDY} ${cyc} -err=$? -[[ ${err} -ne 0 ]] && exit ${err} - - -################################ -# Remove the Working Directory -################################ -[[ "${KEEPDATA}" = "NO" ]] && rm -rf "${DATA}" - -exit 0 diff --git a/jobs/JGLOBAL_ATMOS_VMINMON b/jobs/JGLOBAL_ATMOS_VMINMON new file mode 100755 index 0000000000..dbd76aed5b --- /dev/null +++ b/jobs/JGLOBAL_ATMOS_VMINMON @@ -0,0 +1,44 @@ +#! /usr/bin/env bash + +########################################################### +# Global Minimization Monitor (MinMon) job +########################################################### +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" -e "vminmon" -c "base vminmon" + +############################################# +# Determine PDY and cyc for previous cycle +############################################# +# shellcheck disable=SC2153 +GDATE=$(date --utc +%Y%m%d%H -d "${PDY} ${cyc} - ${assim_freq} hours") +export gPDY=${GDATE:0:8} +export gcyc=${GDATE:8:2} + +############################################# +# TANKverf - WHERE OUTPUT DATA WILL RESIDE +############################################# +YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS +YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_MINMON +YMD=${gPDY} HH=${gcyc} generate_com -rx COM_ATMOS_MINMON_PREV:COM_ATMOS_MINMON_TMPL + +export gsistat="${COM_ATMOS_ANALYSIS}/${RUN}.t${cyc}z.gsistat" +export M_TANKverf=${M_TANKverf:-${COM_ATMOS_MINMON}} +export M_TANKverfM1=${M_TANKverfM1:-${COM_ATMOS_MINMON_PREV}} + +if [[ ! -d ${M_TANKverf} ]]; then mkdir -p -m 775 "${M_TANKverf}" ; fi +if [[ ! -d ${M_TANKverfM1} ]]; then mkdir -p -m 775 "${M_TANKverfM1}" ; fi + +######################################################## +# Execute the script. +"${SCRgfs}/exglobal_atmos_vminmon.sh" +err=$? +if (( err != 0 )); then + exit "${err}" +fi + +################################ +# Remove the Working Directory +################################ +[[ "${KEEPDATA}" = "NO" ]] && rm -rf "${DATA}" + +exit 0 diff --git a/jobs/rocoto/vminmon.sh b/jobs/rocoto/vminmon.sh index 2bbb7599ca..73f10167e5 100755 --- a/jobs/rocoto/vminmon.sh +++ b/jobs/rocoto/vminmon.sh @@ -16,7 +16,7 @@ export jobid="${job}.$$" echo echo "=============== START TO RUN MINMON ===============" -"${HOMEgfs}/jobs/J${RUN^^}_ATMOS_VMINMON" +"${HOMEgfs}/jobs/JGLOBAL_ATMOS_VMINMON" status=$? exit "${status}" diff --git a/parm/config/gfs/config.verfozn b/parm/config/gfs/config.verfozn index 4091db3a11..9eea0f25a3 100644 --- a/parm/config/gfs/config.verfozn +++ b/parm/config/gfs/config.verfozn @@ -6,4 +6,18 @@ echo "BEGIN: config.verfozn" # Get task specific resources . "${EXPDIR}/config.resources" verfozn +export DO_DATA_RPT=1 +export OZN_AREA="glb" +export OZNMON_SUFFIX=${NET} +export PARMmonitor=${PARMgfs}/monitor +export SATYPE_FILE=${PARMmonitor}/gdas_oznmon_satype.txt + +# Source the parm file +. "${PARMmonitor}/gdas_oznmon.parm" + +# Set up validation file +if [[ ${VALIDATE_DATA} -eq 1 ]]; then + export ozn_val_file=${PARMmonitor}/gdas_oznmon_base.tar +fi + echo "END: config.verfozn" diff --git a/parm/config/gfs/config.verfrad b/parm/config/gfs/config.verfrad index e6dffcaa45..dd65020180 100644 --- a/parm/config/gfs/config.verfrad +++ b/parm/config/gfs/config.verfrad @@ -6,4 +6,22 @@ echo "BEGIN: config.verfrad" # Get task specific resources . "${EXPDIR}/config.resources" verfrad +export PARMmonitor=${PARMgfs}/monitor +export satype_file=${PARMmonitor}/gdas_radmon_satype.txt + +# Source the parm file +. "${PARMmonitor}/da_mon.parm" + +# Other variables +export RAD_AREA="glb" +export MAKE_CTL=1 +export MAKE_DATA=1 +export USE_ANL=1 +export DO_DIAG_RPT=1 +export DO_DATA_RPT=1 + +export RADMON_SUFFIX=${RUN} +export CYCLE_INTERVAL=${assim_freq:-6} +export VERBOSE="YES" + echo "END: config.verfrad" diff --git a/parm/config/gfs/config.vminmon b/parm/config/gfs/config.vminmon index d8888a7cb6..8929c36e0e 100644 --- a/parm/config/gfs/config.vminmon +++ b/parm/config/gfs/config.vminmon @@ -6,4 +6,11 @@ echo "BEGIN: config.vminmon" # Get task specific resources . "${EXPDIR}/config.resources" vminmon +export MINMON_SUFFIX=${MINMON_SUFFIX:-${NET}} +export CYCLE_INTERVAL=${assim_freq:-6} + +export PARMmonitor=${PARMgfs}/monitor +export mm_gnormfile=${PARMmonitor}/${RUN}_minmon_gnorm.txt +export mm_costfile=${PARMmonitor}/${RUN}_minmon_cost.txt + echo "END: config.vminmon" diff --git a/scripts/exgdas_atmos_verfozn.sh b/scripts/exgdas_atmos_verfozn.sh index ae4954891a..1810fdef5d 100755 --- a/scripts/exgdas_atmos_verfozn.sh +++ b/scripts/exgdas_atmos_verfozn.sh @@ -1,9 +1,9 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ################################################################################ -# exgdas_vrfyozn.sh +# exgdas_atmos_verfozn.sh # # This script runs the data extract/validation portion of the Ozone Monitor # (OznMon) DA package. @@ -11,40 +11,6 @@ source "$HOMEgfs/ush/preamble.sh" ################################################################################ err=0 -#------------------------------------------------------------------------------- -# Set environment -# -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export envir=${envir:-prod} - -# Other variables -export SATYPE_FILE=${SATYPE_FILE:-$FIXgdas_ozn/gdas_oznmon_satype.txt} -export PDATE=${PDY}${cyc} -export DO_DATA_RPT=${DO_DATA_RPT:-1} -export NCP=${NCP:-/bin/cp} - - -#----------------------------------------------------------------- -# ensure work and TANK dirs exist, verify oznstat is available -# -export OZN_WORK_DIR=${OZN_WORK_DIR:-$(pwd)} - -if [[ ! -d ${OZN_WORK_DIR} ]]; then - mkdir $OZN_WORK_DIR -fi -cd $OZN_WORK_DIR - -if [[ ! -d ${TANKverf_ozn} ]]; then - mkdir -p $TANKverf_ozn -fi - -if [[ -s ${oznstat} ]]; then - echo ${oznstat} is available -fi - - - data_available=0 if [[ -s ${oznstat} ]]; then @@ -55,24 +21,24 @@ if [[ -s ${oznstat} ]]; then # Untar oznstat file. #------------------------------------------------------------------ - $NCP $oznstat ./oznstat.$PDATE + ${NCP} "${oznstat}" "./oznstat.${PDY}${cyc}" - tar -xvf oznstat.$PDATE - rm oznstat.$PDATE + tar -xvf "oznstat.${PDY}${cyc}" + rm "oznstat.${PDY}${cyc}" netcdf=0 count=$(ls diag* | grep ".nc4" | wc -l) - if [ $count -gt 0 ] ; then + if [ "${count}" -gt 0 ] ; then netcdf=1 for filenc4 in $(ls diag*nc4.gz); do - file=$(echo $filenc4 | cut -d'.' -f1-2).gz - mv $filenc4 $file + file=$(echo "${filenc4}" | cut -d'.' -f1-2).gz + mv "${filenc4}" "${file}" done fi export OZNMON_NETCDF=${netcdf} - ${HOMEoznmon}/ush/ozn_xtrct.sh + "${USHgfs}/ozn_xtrct.sh" err=$? else diff --git a/scripts/exgdas_atmos_verfrad.sh b/scripts/exgdas_atmos_verfrad.sh index f6f244b708..50320ffba1 100755 --- a/scripts/exgdas_atmos_verfrad.sh +++ b/scripts/exgdas_atmos_verfrad.sh @@ -1,11 +1,11 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exgdas_vrfyrad.sh +# Script name: exgdas_atmos_verfrad.sh # Script description: Runs data extract/validation for global radiance diag data # # Author: Ed Safford Org: NP23 Date: 2012-01-18 @@ -19,45 +19,8 @@ source "$HOMEgfs/ush/preamble.sh" # ################################################################################ -export VERBOSE=${VERBOSE:-YES} - -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export envir=${envir:-prod} - -# Filenames -biascr=${biascr:-${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.abias} -radstat=${radstat:-${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.radstat} -satype_file=${satype_file:-${FIXgdas}/gdas_radmon_satype.txt} - -# Other variables -export RAD_AREA=${RAD_AREA:-glb} -export MAKE_CTL=${MAKE_CTL:-1} -export MAKE_DATA=${MAKE_DATA:-1} -export USE_ANL=${USE_ANL:-1} -export PDATE=${PDY}${cyc} -export DO_DIAG_RPT=${DO_DIAG_RPT:-1} -export DO_DATA_RPT=${DO_DATA_RPT:-1} -export NCP=${NCP:-/bin/cp} - -########################################################################### -# ensure TANK dir exists, verify radstat and biascr are available -# -if [[ ! -d ${TANKverf_rad} ]]; then - mkdir -p $TANKverf_rad -fi - -if [[ "$VERBOSE" = "YES" ]]; then - if [[ -s ${radstat} ]]; then - echo ${radstat} is available - fi - if [[ -s ${biascr} ]]; then - echo ${biascr} is available - fi -fi -##################################################################### - data_available=0 + if [[ -s ${radstat} && -s ${biascr} ]]; then data_available=1 @@ -66,11 +29,11 @@ if [[ -s ${radstat} && -s ${biascr} ]]; then # Untar radstat file. #------------------------------------------------------------------ - $NCP $biascr ./biascr.$PDATE - $NCP $radstat ./radstat.$PDATE + ${NCP} "${biascr}" "./biascr.${PDY}${cyc}" + ${NCP} "${radstat}" "./radstat.${PDY}${cyc}" - tar -xvf radstat.$PDATE - rm radstat.$PDATE + tar -xvf "radstat.${PDY}${cyc}" + rm "radstat.${PDY}${cyc}" #------------------------------------------------------------------ # SATYPE is the list of expected satellite/instrument sources @@ -81,25 +44,25 @@ if [[ -s ${radstat} && -s ${biascr} ]]; then #------------------------------------------------------------------ radstat_satype=$(ls d*ges* | awk -F_ '{ print $2 "_" $3 }') - if [[ "$VERBOSE" = "YES" ]]; then - echo $radstat_satype + if [[ "${VERBOSE}" = "YES" ]]; then + echo "${radstat_satype}" fi - echo satype_file = $satype_file + echo satype_file = "${satype_file}" #------------------------------------------------------------------ # Get previous cycle's date, and look for the satype_file. Using # the previous cycle will get us the previous day's directory if # the cycle being processed is 00z. #------------------------------------------------------------------ - if [[ $cyc = "00" ]]; then + if [[ ${cyc} = "00" ]]; then use_tankdir=${TANKverf_radM1} else use_tankdir=${TANKverf_rad} fi - echo satype_file = $satype_file - export SATYPE=$(cat ${satype_file}) + echo satype_file = "${satype_file}" + export SATYPE=$(cat "${satype_file}") #------------------------------------------------------------- @@ -108,16 +71,16 @@ if [[ -s ${radstat} && -s ${biascr} ]]; then # to $TANKverf/radmon.$PDY. #------------------------------------------------------------- satype_changes=0 - new_satype=$SATYPE + new_satype=${SATYPE} for type in ${radstat_satype}; do - test=$(echo $SATYPE | grep $type | wc -l) + type_count=$(echo "${SATYPE}" | grep "${type}" | wc -l) - if [[ $test -eq 0 ]]; then - if [[ "$VERBOSE" = "YES" ]]; then - echo "Found $type in radstat file but not in SATYPE list. Adding it now." + if (( type_count == 0 )); then + if [[ "${VERBOSE}" = "YES" ]]; then + echo "Found ${type} in radstat file but not in SATYPE list. Adding it now." fi satype_changes=1 - new_satype="$new_satype $type" + new_satype="${new_satype} ${type}" fi done @@ -129,43 +92,43 @@ if [[ -s ${radstat} && -s ${biascr} ]]; then for type in ${SATYPE}; do - if [[ netcdf -eq 0 && -e diag_${type}_ges.${PDATE}.nc4.${Z} ]]; then + if (( netcdf == 0 )) && [[ -e "diag_${type}_ges.${PDY}${cyc}.nc4.${Z}" ]]; then netcdf=1 fi - if [[ $(find . -maxdepth 1 -type f -name "diag_${type}_ges.${PDATE}*.${Z}" | wc -l) -gt 0 ]]; then - mv diag_${type}_ges.${PDATE}*.${Z} ${type}.${Z} - ${UNCOMPRESS} ./${type}.${Z} + if [[ $(find . -maxdepth 1 -type f -name "diag_${type}_ges.${PDY}${cyc}*.${Z}" | wc -l) -gt 0 ]]; then + mv "diag_${type}_ges.${PDY}${cyc}"*".${Z}" "${type}.${Z}" + ${UNCOMPRESS} "./${type}.${Z}" else - echo "WARNING: diag_${type}_ges.${PDATE}*.${Z} not available, skipping" + echo "WARNING: diag_${type}_ges.${PDY}${cyc}*.${Z} not available, skipping" fi - if [[ $USE_ANL -eq 1 ]]; then - if [[ $(find . -maxdepth 1 -type f -name "diag_${type}_anl.${PDATE}*.${Z}" | wc -l) -gt 0 ]]; then - mv diag_${type}_anl.${PDATE}*.${Z} ${type}_anl.${Z} - ${UNCOMPRESS} ./${type}_anl.${Z} + if [[ ${USE_ANL} -eq 1 ]]; then + if [[ $(find . -maxdepth 1 -type f -name "diag_${type}_anl.${PDY}${cyc}*.${Z}" | wc -l) -gt 0 ]]; then + mv "diag_${type}_anl.${PDY}${cyc}"*".${Z}" "${type}_anl.${Z}" + ${UNCOMPRESS} "./${type}_anl.${Z}" else - echo "WARNING: diag_${type}_anl.${PDATE}*.${Z} not available, skipping" + echo "WARNING: diag_${type}_anl.${PDY}${cyc}*.${Z} not available, skipping" fi fi done - export RADMON_NETCDF=$netcdf + export RADMON_NETCDF=${netcdf} #------------------------------------------------------------------ - # Run the child sccripts. + # Run the child scripts. #------------------------------------------------------------------ - ${USHradmon}/radmon_verf_angle.sh ${PDATE} + "${USHgfs}/radmon_verf_angle.sh" rc_angle=$? - ${USHradmon}/radmon_verf_bcoef.sh ${PDATE} + "${USHgfs}/radmon_verf_bcoef.sh" rc_bcoef=$? - ${USHradmon}/radmon_verf_bcor.sh "${PDATE}" + "${USHgfs}/radmon_verf_bcor.sh" rc_bcor=$? - ${USHradmon}/radmon_verf_time.sh "${PDATE}" + "${USHgfs}/radmon_verf_time.sh" rc_time=$? #-------------------------------------- @@ -174,7 +137,7 @@ if [[ -s ${radstat} && -s ${biascr} ]]; then if [[ ${CLEAN_TANKVERF:-0} -eq 1 ]]; then "${USHradmon}/clean_tankdir.sh" glb 60 rc_clean_tankdir=$? - echo "rc_clean_tankdir = $rc_clean_tankdir" + echo "rc_clean_tankdir = ${rc_clean_tankdir}" fi fi @@ -187,23 +150,23 @@ fi err=0 if [[ ${data_available} -ne 1 ]]; then err=1 -elif [[ $rc_angle -ne 0 ]]; then - err=$rc_angle -elif [[ $rc_bcoef -ne 0 ]]; then - err=$rc_bcoef -elif [[ $rc_bcor -ne 0 ]]; then - err=$rc_bcor -elif [[ $rc_time -ne 0 ]]; then - err=$rc_time +elif [[ ${rc_angle} -ne 0 ]]; then + err=${rc_angle} +elif [[ ${rc_bcoef} -ne 0 ]]; then + err=${rc_bcoef} +elif [[ ${rc_bcor} -ne 0 ]]; then + err=${rc_bcor} +elif [[ ${rc_time} -ne 0 ]]; then + err=${rc_time} fi ##################################################################### # Restrict select sensors and satellites export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} rlist="saphir" -for rtype in $rlist; do - if compgen -G "$TANKverf_rad/*${rtype}*" > /dev/null; then - ${CHGRP_CMD} "${TANKverf_rad}"/*${rtype}* +for rtype in ${rlist}; do + if compgen -G "${TANKverf_rad}/"*"${rtype}"* > /dev/null; then + ${CHGRP_CMD} "${TANKverf_rad}/"*"${rtype}"* fi done diff --git a/scripts/exgfs_atmos_vminmon.sh b/scripts/exgfs_atmos_vminmon.sh deleted file mode 100755 index d0ab4e3674..0000000000 --- a/scripts/exgfs_atmos_vminmon.sh +++ /dev/null @@ -1,115 +0,0 @@ -#! /usr/bin/env bash - -source "$HOMEgfs/ush/preamble.sh" - -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: exgfs_vrfminmon.sh -# Script description: Runs data extract/validation for GSI normalization diag data -# -# Author: Ed Safford Org: NP23 Date: 2015-04-10 -# -# Abstract: This script runs the data extract/validation portion of the -# MinMon package. -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -################################################################################ - - -######################################## -# Set environment -######################################## -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export envir=${envir:-prod} - -######################################## -# Command line arguments -######################################## -export PDY=${1:-${PDY:?}} -export cyc=${2:-${cyc:?}} - -######################################## -# Directories -######################################## -export DATA=${DATA:-$(pwd)} - - -######################################## -# Filenames -######################################## -gsistat=${gsistat:-${COM_ATMOS_ANALYSIS}/gfs.t${cyc}z.gsistat} -export mm_gnormfile=${gnormfile:-${M_FIXgfs}/gfs_minmon_gnorm.txt} -export mm_costfile=${costfile:-${M_FIXgfs}/gfs_minmon_cost.txt} - -######################################## -# Other variables -######################################## -export MINMON_SUFFIX=${MINMON_SUFFIX:-GFS} -export PDATE=${PDY}${cyc} -export NCP=${NCP:-/bin/cp} -export pgm=exgfs_vrfminmon.sh - - - -if [[ ! -d ${DATA} ]]; then - mkdir $DATA -fi -cd $DATA - -###################################################################### - -data_available=0 - -if [[ -s ${gsistat} ]]; then - - data_available=1 - - #------------------------------------------------------------------ - # Copy the $MINMON_SUFFIX.gnorm_data.txt file to the working directory - # It's ok if it doesn't exist; we'll create a new one if needed. - #------------------------------------------------------------------ - if [[ -s ${M_TANKverf}/gnorm_data.txt ]]; then - $NCP ${M_TANKverf}/gnorm_data.txt gnorm_data.txt - elif [[ -s ${M_TANKverfM1}/gnorm_data.txt ]]; then - $NCP ${M_TANKverfM1}/gnorm_data.txt gnorm_data.txt - fi - - - #------------------------------------------------------------------ - # Run the child sccripts. - #------------------------------------------------------------------ - ${USHminmon}/minmon_xtrct_costs.pl ${MINMON_SUFFIX} ${PDY} ${cyc} ${gsistat} dummy - rc_costs=$? - echo "rc_costs = $rc_costs" - - ${USHminmon}/minmon_xtrct_gnorms.pl ${MINMON_SUFFIX} ${PDY} ${cyc} ${gsistat} dummy - rc_gnorms=$? - echo "rc_gnorms = $rc_gnorms" - - ${USHminmon}/minmon_xtrct_reduct.pl ${MINMON_SUFFIX} ${PDY} ${cyc} ${gsistat} dummy - rc_reduct=$? - echo "rc_reduct = $rc_reduct" - -fi - -##################################################################### -# Postprocessing - -err=0 -if [[ ${data_available} -ne 1 ]]; then - err=1 -elif [[ $rc_costs -ne 0 ]]; then - err=$rc_costs -elif [[ $rc_gnorms -ne 0 ]]; then - err=$rc_gnorms -elif [[ $rc_reduct -ne 0 ]]; then - err=$rc_reduct -fi - -exit ${err} - diff --git a/scripts/exgdas_atmos_vminmon.sh b/scripts/exglobal_atmos_vminmon.sh similarity index 51% rename from scripts/exgdas_atmos_vminmon.sh rename to scripts/exglobal_atmos_vminmon.sh index 94790c67c5..a4453dcf1a 100755 --- a/scripts/exgdas_atmos_vminmon.sh +++ b/scripts/exglobal_atmos_vminmon.sh @@ -1,11 +1,11 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exgdas_vrfminmon.sh +# Script name: exglobal_atmos_vminmon.sh # Script description: Runs data extract/validation for GSI normalization diag data # # Author: Ed Safford Org: NP23 Date: 2015-04-10 @@ -19,42 +19,6 @@ source "$HOMEgfs/ush/preamble.sh" # ################################################################################ - -######################################## -# Set environment -######################################## -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export envir=${envir:-prod} - -######################################## -# Directories -######################################## -export DATA=${DATA:-$(pwd)} - - -######################################## -# Filenames -######################################## -gsistat=${gsistat:-${COM_ATMOS_ANALYSIS}/gdas.t${cyc}z.gsistat} -export mm_gnormfile=${gnormfile:-${M_FIXgdas}/gdas_minmon_gnorm.txt} -export mm_costfile=${costfile:-${M_FIXgdas}/gdas_minmon_cost.txt} - -######################################## -# Other variables -######################################## -export MINMON_SUFFIX=${MINMON_SUFFIX:-GDAS} -export PDATE=${PDY}${cyc} -export NCP=${NCP:-/bin/cp} -export pgm=exgdas_vrfminmon.sh - -if [[ ! -d ${DATA} ]]; then - mkdir $DATA -fi -cd $DATA - -###################################################################### - data_available=0 if [[ -s ${gsistat} ]]; then @@ -71,26 +35,26 @@ if [[ -s ${gsistat} ]]; then # data into ${cyc} subdirectories (elif condition). #----------------------------------------------------------------------- if [[ -s ${M_TANKverf}/gnorm_data.txt ]]; then - $NCP ${M_TANKverf}/gnorm_data.txt gnorm_data.txt + ${NCP} "${M_TANKverf}/gnorm_data.txt" gnorm_data.txt elif [[ -s ${M_TANKverfM1}/gnorm_data.txt ]]; then - $NCP ${M_TANKverfM1}/gnorm_data.txt gnorm_data.txt + ${NCP} "${M_TANKverfM1}/gnorm_data.txt" gnorm_data.txt fi #------------------------------------------------------------------ # Run the child sccripts. #------------------------------------------------------------------ - ${USHminmon}/minmon_xtrct_costs.pl ${MINMON_SUFFIX} ${PDY} ${cyc} ${gsistat} dummy + "${USHgfs}/minmon_xtrct_costs.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}" dummy rc_costs=$? - echo "rc_costs = $rc_costs" + echo "rc_costs = ${rc_costs}" - ${USHminmon}/minmon_xtrct_gnorms.pl ${MINMON_SUFFIX} ${PDY} ${cyc} ${gsistat} dummy + "${USHgfs}/minmon_xtrct_gnorms.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}" dummy rc_gnorms=$? - echo "rc_gnorms = $rc_gnorms" + echo "rc_gnorms = ${rc_gnorms}" - ${USHminmon}/minmon_xtrct_reduct.pl ${MINMON_SUFFIX} ${PDY} ${cyc} ${gsistat} dummy + "${USHgfs}/minmon_xtrct_reduct.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}" dummy rc_reduct=$? - echo "rc_reduct = $rc_reduct" + echo "rc_reduct = ${rc_reduct}" fi @@ -100,13 +64,13 @@ fi err=0 if [[ ${data_available} -ne 1 ]]; then err=1 -elif [[ $rc_costs -ne 0 ]]; then - err=$rc_costs -elif [[ $rc_gnorms -ne 0 ]]; then - err=$rc_gnorms -elif [[ $rc_reduct -ne 0 ]]; then - err=$rc_reduct +elif [[ ${rc_costs} -ne 0 ]]; then + err=${rc_costs} +elif [[ ${rc_gnorms} -ne 0 ]]; then + err=${rc_gnorms} +elif [[ ${rc_reduct} -ne 0 ]]; then + err=${rc_reduct} fi -exit ${err} +exit "${err}" diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index cdb9256479..2c37046da1 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -221,20 +221,19 @@ fi #------------------------------ if [[ -d "${HOMEgfs}/sorc/gsi_monitor.fd" ]]; then - cd "${HOMEgfs}/fix" || exit 1 - [[ ! -d gdas ]] && ( mkdir -p gdas || exit 1 ) - cd gdas || exit 1 + cd "${HOMEgfs}/parm" || exit 1 + [[ -d monitor ]] && rm -rf monitor + mkdir -p monitor + cd monitor || exit 1 ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gdas/fix/gdas_minmon_cost.txt" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gdas/fix/gdas_minmon_gnorm.txt" . + ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gfs/fix/gfs_minmon_cost.txt" . + ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gfs/fix/gfs_minmon_gnorm.txt" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Ozone_Monitor/nwprod/gdas_oznmon/fix/gdas_oznmon_base.tar" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Ozone_Monitor/nwprod/gdas_oznmon/fix/gdas_oznmon_satype.txt" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/fix/gdas_radmon_base.tar" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/fix/gdas_radmon_satype.txt" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/fix/gdas_radmon_scaninfo.txt" . - cd "${HOMEgfs}/parm" || exit 1 - [[ -d mon ]] && rm -rf mon - mkdir -p mon - cd mon || exit 1 ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Radiance_Monitor/nwprod/gdas_radmon/parm/gdas_radmon.parm" da_mon.parm # ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gdas/parm/gdas_minmon.parm" . # ${LINK_OR_COPY} "${HOMEgfs}/sorc/gsi_monitor.fd/src/Minimization_Monitor/nwprod/gfs/parm/gfs_minmon.parm" . diff --git a/ush/ozn_xtrct.sh b/ush/ozn_xtrct.sh index 3f6b3fed19..57ff87be5f 100755 --- a/ush/ozn_xtrct.sh +++ b/ush/ozn_xtrct.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" #------------------------------------------------------------------ # ozn_xtrct.sh @@ -11,9 +11,9 @@ source "$HOMEgfs/ush/preamble.sh" # $TANKverf_ozn. # # Calling scripts must define: -# $TANKverf_ozn -# $HOMEoznmon -# $PDATE +# $TANKverf_ozn +# $PDY +# $cyc # # Return values are # 0 = normal @@ -28,7 +28,7 @@ source "$HOMEgfs/ush/preamble.sh" # gdas_oznmon_satype.txt to $avail_satype which is # determined by the contents of the oznstat file. # Report any missing diag files in a file named -# bad_diag.$PDATE +# bad_diag.$PDY$cyc # check_diag_files() { pdate=$1 @@ -40,10 +40,10 @@ check_diag_files() { echo ""; echo ""; echo "--> check_diag_files" for type in ${found_satype}; do - len_check=$(echo ${avail_satype} | grep ${type} | wc -c) + len_check=$(echo "${avail_satype}" | grep "${type}" | wc -c) if [[ ${len_check} -le 1 ]]; then - echo "missing diag file -- diag_${type}_ges.${pdate}.gz not found " >> ./${out_file} + echo "missing diag file -- diag_${type}_ges.${pdate}.gz not found" >> "./${out_file}" fi done @@ -58,13 +58,13 @@ nregion=${nregion:-6} DO_DATA_RPT=${DO_DATA_RPT:-0} netcdf_boolean=".false." -if [[ $OZNMON_NETCDF -eq 1 ]]; then +if [[ ${OZNMON_NETCDF} -eq 1 ]]; then netcdf_boolean=".true." fi OZNMON_NEW_HDR=${OZNMON_NEW_HDR:-0} new_hdr="F" -if [[ $OZNMON_NEW_HDR -eq 1 ]]; then +if [[ ${OZNMON_NEW_HDR} -eq 1 ]]; then new_hdr="T" fi @@ -72,19 +72,19 @@ fi # if VALIDATE_DATA then locate and untar base file # validate=".FALSE." -if [[ $VALIDATE_DATA -eq 1 ]]; then - if [[ ! -e $ozn_val_file && ! -h $ozn_val_file ]]; then - echo "WARNING: VALIDATE_DATA set to 1, but unable to locate $ozn_val_file" +if [[ ${VALIDATE_DATA} -eq 1 ]]; then + if [[ ! -e ${ozn_val_file} && ! -h ${ozn_val_file} ]]; then + echo "WARNING: VALIDATE_DATA set to 1, but unable to locate ${ozn_val_file}" echo " Setting VALIDATE_DATA to 0/OFF" VALIDATE_DATA=0 else validate=".TRUE." - val_file=$(basename ${ozn_val_file}) - ${NCP} $ozn_val_file $val_file - tar -xvf $val_file + val_file=$(basename "${ozn_val_file}") + ${NCP} "${ozn_val_file}" "${val_file}" + tar -xvf "${val_file}" fi fi -echo "VALIDATE_DATA, validate = $VALIDATE_DATA, $validate " +echo "VALIDATE_DATA, validate = ${VALIDATE_DATA}, ${validate} " @@ -106,8 +106,8 @@ avail_satype=$(ls -1 d*ges* | sed -e 's/_/ /g;s/\./ /' | gawk '{ print $2 "_" $3 if [[ ${DO_DATA_RPT} -eq 1 ]]; then if [[ -e ${SATYPE_FILE} ]]; then - satype=$(cat ${SATYPE_FILE}) - check_diag_files ${PDATE} "${satype}" "${avail_satype}" + satype=$(cat "${SATYPE_FILE}") + check_diag_files "${PDY}${cyc}" "${satype}" "${avail_satype}" else echo "WARNING: missing ${SATYPE_FILE}" fi @@ -119,7 +119,7 @@ if [[ ${len_satype} -le 1 ]]; then satype=${avail_satype} fi -echo ${satype} +echo "${satype}" len_satype=$(echo -n "${satype}" | wc -c) @@ -132,12 +132,12 @@ else #-------------------------------------------------------------------- # Copy extraction programs to working directory # - ${NCP} ${HOMEoznmon}/exec/oznmon_time.x ./oznmon_time.x + ${NCP} "${HOMEgfs}/exec/oznmon_time.x" ./oznmon_time.x if [[ ! -e oznmon_time.x ]]; then iret=2 exit ${iret} fi - ${NCP} ${HOMEoznmon}/exec/oznmon_horiz.x ./oznmon_horiz.x + ${NCP} "${HOMEgfs}/exec/oznmon_horiz.x" ./oznmon_horiz.x if [[ ! -e oznmon_horiz.x ]]; then iret=3 exit ${iret} @@ -149,15 +149,15 @@ else # for ptype in ${ozn_ptype}; do - iyy=$(echo ${PDATE} | cut -c1-4) - imm=$(echo ${PDATE} | cut -c5-6) - idd=$(echo ${PDATE} | cut -c7-8) - ihh=$(echo ${PDATE} | cut -c9-10) + iyy="${PDY:0:4}" + imm="${PDY:4:2}" + idd="${PDY:6:2}" + ihh=${cyc} for type in ${avail_satype}; do - if [[ -f "diag_${type}_${ptype}.${PDATE}.gz" ]]; then - mv diag_${type}_${ptype}.${PDATE}.gz ${type}.${ptype}.gz - gunzip ./${type}.${ptype}.gz + if [[ -f "diag_${type}_${ptype}.${PDY}${cyc}.gz" ]]; then + mv "diag_${type}_${ptype}.${PDY}${cyc}.gz" "${type}.${ptype}.gz" + gunzip "./${type}.${ptype}.gz" echo "processing ptype, type: ${ptype}, ${type}" rm -f input @@ -188,17 +188,17 @@ EOF echo "oznmon_time.x HAS STARTED ${type}" - ./oznmon_time.x < input > stdout.time.${type}.${ptype} + ./oznmon_time.x < input > "stdout.time.${type}.${ptype}" echo "oznmon_time.x HAS ENDED ${type}" if [[ ! -d ${TANKverf_ozn}/time ]]; then - mkdir -p ${TANKverf_ozn}/time + mkdir -p "${TANKverf_ozn}/time" fi - $NCP ${type}.${ptype}.ctl ${TANKverf_ozn}/time/ - $NCP ${type}.${ptype}.${PDATE}.ieee_d ${TANKverf_ozn}/time/ + ${NCP} "${type}.${ptype}.ctl" "${TANKverf_ozn}/time/" + ${NCP} "${type}.${ptype}.${PDY}${cyc}.ieee_d" "${TANKverf_ozn}/time/" - $NCP bad* ${TANKverf_ozn}/time/ + ${NCP} bad* "${TANKverf_ozn}/time/" rm -f input @@ -219,17 +219,17 @@ EOF echo "oznmon_horiz.x HAS STARTED ${type}" - ./oznmon_horiz.x < input > stdout.horiz.${type}.${ptype} + ./oznmon_horiz.x < input > "stdout.horiz.${type}.${ptype}" echo "oznmon_horiz.x HAS ENDED ${type}" if [[ ! -d ${TANKverf_ozn}/horiz ]]; then - mkdir -p ${TANKverf_ozn}/horiz + mkdir -p "${TANKverf_ozn}/horiz" fi - $NCP ${type}.${ptype}.ctl ${TANKverf_ozn}/horiz/ + ${NCP} "${type}.${ptype}.ctl" "${TANKverf_ozn}/horiz/" - $COMPRESS ${type}.${ptype}.${PDATE}.ieee_d - $NCP ${type}.${ptype}.${PDATE}.ieee_d.${Z} ${TANKverf_ozn}/horiz/ + ${COMPRESS} "${type}.${ptype}.${PDY}${cyc}.ieee_d" + ${NCP} "${type}.${ptype}.${PDY}${cyc}.ieee_d.${Z}" "${TANKverf_ozn}/horiz/" echo "finished processing ptype, type: ${ptype}, ${type}" @@ -244,18 +244,11 @@ EOF tar -cvf stdout.horiz.tar stdout.horiz* ${COMPRESS} stdout.horiz.tar - ${NCP} stdout.horiz.tar.${Z} ${TANKverf_ozn}/horiz/ + ${NCP} "stdout.horiz.tar.${Z}" "${TANKverf_ozn}/horiz/" tar -cvf stdout.time.tar stdout.time* ${COMPRESS} stdout.time.tar - ${NCP} stdout.time.tar.${Z} ${TANKverf_ozn}/time/ + ${NCP} "stdout.time.tar.${Z}" "${TANKverf_ozn}/time/" fi -#------------------------------------------------------- -# Conditionally remove data files older than 40 days -# -if [[ ${CLEAN_TANKDIR:-0} -eq 1 ]]; then - ${HOMEoznmon}/ush/clean_tankdir.sh glb 40 -fi - exit ${iret} diff --git a/ush/radmon_diag_ck.sh b/ush/radmon_diag_ck.sh index 4045ddb2d5..8c4f54bba5 100755 --- a/ush/radmon_diag_ck.sh +++ b/ush/radmon_diag_ck.sh @@ -27,7 +27,7 @@ echo "--> radmon_diag_ck.sh" # Process input arguments # nargs=$# - if [[ $nargs -ne 6 ]]; then + if [[ ${nargs} -ne 6 ]]; then usage exit 1 fi @@ -35,9 +35,9 @@ echo "--> radmon_diag_ck.sh" while [[ $# -ge 1 ]] do key="$1" - echo $key + echo "${key}" - case $key in + case ${key} in -r|--rad) radstat_file="$2" shift # past argument @@ -52,7 +52,7 @@ echo "--> radmon_diag_ck.sh" ;; *) #unspecified key - echo " unsupported key = $key" + echo " unsupported key = ${key}" ;; esac @@ -71,7 +71,7 @@ echo "--> radmon_diag_ck.sh" #--------------------------------------------- # get list of diag files in the radstat file # - radstat_contents=`tar -tf ${radstat_file} | grep '_ges' | + radstat_contents=`tar -tf "${radstat_file}" | grep '_ges' | gawk -F"diag_" '{print $2}' | gawk -F"_ges" '{print $1}'` @@ -79,17 +79,17 @@ echo "--> radmon_diag_ck.sh" #--------------------------------------------- # load contents of satype_file into an array # - satype_contents=`cat ${satype_file}` + satype_contents=$(cat "${satype_file}") #------------------------------------------------- # compare $satype_contents and $radstat_contents # report anything missing # - for sat in $satype_contents; do - test=`echo $radstat_contents | grep $sat` - - if [[ ${#test} -le 0 ]]; then + for sat in ${satype_contents}; do + content_count=$(echo "${radstat_contents}" | grep -c "${sat}") + + if (( content_count <= 0 )); then missing_diag="${missing_diag} ${sat}" fi @@ -117,10 +117,10 @@ echo "--> radmon_diag_ck.sh" # TODO Rewrite these array parsing commands to avoid using Bash's sloppy word splitting # File sizes contain only digits and immediately precede the date # shellcheck disable=SC2207 - sizes=($(tar -vtf ${radstat_file} --wildcards '*_ges*' | grep -P -o '(\d)+(?= \d{4}-\d{2}-\d{2})')) + sizes=($(tar -vtf "${radstat_file}" --wildcards '*_ges*' | grep -P -o '(\d)+(?= \d{4}-\d{2}-\d{2})')) # Filenames are the last group of non-whitespace characters # shellcheck disable=SC2207 - filenames=($(tar -vtf ${radstat_file} --wildcards '*_ges*' | grep -P -o '\S+$')) + filenames=($(tar -vtf "${radstat_file}" --wildcards '*_ges*' | grep -P -o '\S+$')) # shellcheck disable= @@ -144,7 +144,7 @@ echo "--> radmon_diag_ck.sh" zero_len_diag="${zero_len_diag} ${sat}" fi - rm -f ${uz_file_name} + rm -f "${uz_file_name}" fi done @@ -159,13 +159,13 @@ echo "--> radmon_diag_ck.sh" # if [[ ${#zero_len_diag} -gt 0 ]]; then for zld in ${zero_len_diag}; do - echo " Zero Length diagnostic file: $zld" >> $output_file + echo " Zero Length diagnostic file: ${zld}" >> "${output_file}" done fi if [[ ${#missing_diag} -gt 0 ]]; then for md in ${missing_diag}; do - echo " Missing diagnostic file : $md" >> $output_file + echo " Missing diagnostic file : ${md}" >> "${output_file}" done fi diff --git a/ush/radmon_err_rpt.sh b/ush/radmon_err_rpt.sh index 8561563d48..6ae6505624 100755 --- a/ush/radmon_err_rpt.sh +++ b/ush/radmon_err_rpt.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -63,12 +63,12 @@ err=0 RADMON_SUFFIX=${RADMON_SUFFIX} have_diag_rpt=0 -if [[ -s $diag_rpt ]]; then +if [[ -s "${diag_rpt}" ]]; then have_diag_rpt=1 else err=1 fi -echo "have_diag_rpt = $have_diag_rpt" +echo "have_diag_rpt = ${have_diag_rpt}" #----------------------------------------------------------------------------- # read each line in the $file1 @@ -76,15 +76,15 @@ echo "have_diag_rpt = $have_diag_rpt" # if same combination is in both files, add the values to the output file # { while read myline; do - echo "myline = $myline" + echo "myline = ${myline}" bound="" - echo $myline - satname=$(echo $myline | gawk '{print $1}') - channel=$(echo $myline | gawk '{print $3}') - region=$(echo $myline | gawk '{print $5}') - value1=$(echo $myline | gawk '{print $7}') - bound=$(echo $myline | gawk '{print $9}') + echo "${myline}" + satname=$(echo "${myline}" | gawk '{print $1}') + channel=$(echo "${myline}" | gawk '{print $3}') + region=$(echo "${myline}" | gawk '{print $5}') + value1=$(echo "${myline}" | gawk '{print $7}') + bound=$(echo "${myline}" | gawk '{print $9}') # # Check findings against diag_report. If the satellite/instrument is on the @@ -96,40 +96,40 @@ echo "have_diag_rpt = $have_diag_rpt" diag_match="" diag_match_len=0 - if [[ $have_diag_rpt == 1 ]]; then - diag_match=$(gawk "/$satname/" $diag_rpt) + if [[ ${have_diag_rpt} == 1 ]]; then + diag_match=$(gawk "/${satname}/" "${diag_rpt}") diag_match_len=$(echo ${#diag_match}) fi - if [[ $diag_match_len == 0 ]]; then + if [[ ${diag_match_len} == 0 ]]; then - if [[ $type == "chan" ]]; then - echo "looking for match for $satname and $channel" + if [[ ${type} == "chan" ]]; then + echo "looking for match for ${satname} and ${channel}" { while read myline2; do - satname2=$(echo $myline2 | gawk '{print $1}') - channel2=$(echo $myline2 | gawk '{print $3}') + satname2=$(echo "${myline2}" | gawk '{print $1}') + channel2=$(echo "${myline2}" | gawk '{print $3}') - if [[ $satname == $satname2 && $channel == $channel2 ]]; then - match="$satname channel= $channel" - echo "match from gawk = $match" + if [[ ${satname} == ${satname2} && ${channel} == ${channel2} ]]; then + match="${satname} channel= ${channel}" + echo "match from gawk = ${match}" break; else match="" fi - done } < $file2 + done } < "${file2}" else - match=$(gawk "/$satname/ && /channel= $channel / && /region= $region /" $file2) - echo match = $match + match=$(gawk "/${satname}/ && /channel= ${channel} / && /region= ${region} /" "${file2}") + echo match = "${match}" match_len=$(echo ${#match}) - if [[ $match_len > 0 ]]; then - channel2=$(echo $match | gawk '{print $3}') + if (( match_len > 0 )); then + channel2=$(echo "${match}" | gawk '{print $3}') - if [[ $channel2 != $channel ]]; then + if [[ ${channel2} != ${channel} ]]; then match="" fi fi @@ -137,54 +137,54 @@ echo "have_diag_rpt = $have_diag_rpt" fi match_len=$(echo ${#match}) - if [[ $match_len > 0 ]]; then + if (( match_len > 0 )); then - value2=$(echo $match | gawk '{print $7}') - bound2=$(echo $match | gawk '{print $9}') + value2=$(echo "${match}" | gawk '{print $7}') + bound2=$(echo "${match}" | gawk '{print $9}') - if [[ $type == "chan" ]]; then - tmpa=" $satname channel= $channel" + if [[ ${type} == "chan" ]]; then + tmpa=" ${satname} channel= ${channel}" tmpb="" - elif [[ $type == "pen" ]]; then - tmpa="$satname channel= $channel region= $region" - tmpb="$cycle1 $value1 $bound" + elif [[ ${type} == "pen" ]]; then + tmpa="${satname} channel= ${channel} region= ${region}" + tmpb="${cycle1} ${value1} ${bound}" - elif [[ $type == "cnt" ]]; then - tmpa="$satname channel= $channel region= $region" - tmpb="$cycle1 $value1 $bound" + elif [[ ${type} == "cnt" ]]; then + tmpa="${satname} channel= ${channel} region= ${region}" + tmpb="${cycle1} ${value1} ${bound}" else - tmpa="$satname channel= $channel region= $region" - tmpb="$cycle1: $type= $value1" + tmpa="${satname} channel= ${channel} region= ${region}" + tmpb="${cycle1}: ${type}= ${value1}" fi - line1="$tmpa $tmpb" - echo "$line1" >> $outfile + line1="${tmpa} ${tmpb}" + echo "${line1}" >> "${outfile}" - if [[ $type != "chan" ]]; then - tmpc=$(echo $tmpa |sed 's/[a-z]/ /g' | sed 's/[0-9]/ /g' | sed 's/=/ /g' | sed 's/_/ /g' | sed 's/-/ /g') + if [[ ${type} != "chan" ]]; then + tmpc=$(echo "${tmpa}" |sed 's/[a-z]/ /g' | sed 's/[0-9]/ /g' | sed 's/=/ /g' | sed 's/_/ /g' | sed 's/-/ /g') - if [[ $type == "pen" || $type == "cnt" ]]; then - line2=" $tmpc $cycle2 $value2 $bound2" + if [[ ${type} == "pen" || ${type} == "cnt" ]]; then + line2=" ${tmpc} ${cycle2} ${value2} ${bound2}" else - line2=" $tmpc $cycle2: $type= $value2" + line2=" ${tmpc} ${cycle2}: ${type}= ${value2}" fi - echo "$line2" >> $outfile + echo "${line2}" >> "${outfile}" fi #----------------------------------------- # add hyperlink to warning entry # line3=" http://www.emc.ncep.noaa.gov/gmb/gdas/radiance/es_rad/${RADMON_SUFFIX}/index.html?sat=${satname}®ion=${region}&channel=${channel}&stat=${type}" - if [[ $channel -gt 0 ]]; then - echo "$line3" >> $outfile - echo "" >> $outfile + if [[ ${channel} -gt 0 ]]; then + echo "${line3}" >> "${outfile}" + echo "" >> "${outfile}" fi fi fi -done } < $file1 +done } < "${file1}" ################################################################################ diff --git a/ush/radmon_verf_angle.sh b/ush/radmon_verf_angle.sh index b2dab0825a..f68d7c88cc 100755 --- a/ush/radmon_verf_angle.sh +++ b/ush/radmon_verf_angle.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -20,17 +20,17 @@ source "$HOMEgfs/ush/preamble.sh" # other supporting files into a temporary working directory. # # -# Usage: radmon_verf_angle.sh PDATE +# Usage: radmon_verf_angle.sh # # Input script positional parameters: -# PDATE processing date +# PDYcyc processing date # yyyymmddcc format; required # # Imported Shell Variables: # RADMON_SUFFIX data source suffix # defauls to opr -# EXECradmon executable directory -# defaults to current directory +# EXECgfs executable directory +# PARMmonitor parm directory # RAD_AREA global or regional flag # defaults to global # TANKverf_rad data repository @@ -72,26 +72,19 @@ REGIONAL_RR=${REGIONAL_RR:-0} # rapid refresh model flag rgnHH=${rgnHH:-} rgnTM=${rgnTM:-} -export PDATE=${1:-${PDATE:?}} - -echo " REGIONAL_RR, rgnHH, rgnTM = $REGIONAL_RR, $rgnHH, $rgnTM" +echo " REGIONAL_RR, rgnHH, rgnTM = ${REGIONAL_RR}, ${rgnHH}, ${rgnTM}" netcdf_boolean=".false." -if [[ $RADMON_NETCDF -eq 1 ]]; then +if [[ ${RADMON_NETCDF} -eq 1 ]]; then netcdf_boolean=".true." fi -echo " RADMON_NETCDF, netcdf_boolean = ${RADMON_NETCDF}, $netcdf_boolean" +echo " RADMON_NETCDF, netcdf_boolean = ${RADMON_NETCDF}, ${netcdf_boolean}" which prep_step which startmsg -# Directories -FIXgdas=${FIXgdas:-$(pwd)} -EXECradmon=${EXECradmon:-$(pwd)} -TANKverf_rad=${TANKverf_rad:-$(pwd)} - # File names export pgmout=${pgmout:-${jlogfile}} -touch $pgmout +touch "${pgmout}" # Other variables SATYPE=${SATYPE:-} @@ -100,7 +93,7 @@ LITTLE_ENDIAN=${LITTLE_ENDIAN:-0} USE_ANL=${USE_ANL:-0} -if [[ $USE_ANL -eq 1 ]]; then +if [[ ${USE_ANL} -eq 1 ]]; then gesanl="ges anl" else gesanl="ges" @@ -108,14 +101,14 @@ fi err=0 angle_exec=radmon_angle.x -shared_scaninfo=${shared_scaninfo:-$FIXgdas/gdas_radmon_scaninfo.txt} +shared_scaninfo="${shared_scaninfo:-${PARMmonitor}/gdas_radmon_scaninfo.txt}" scaninfo=scaninfo.txt #-------------------------------------------------------------------- # Copy extraction program and supporting files to working directory -$NCP ${EXECradmon}/${angle_exec} ./ -$NCP $shared_scaninfo ./${scaninfo} +${NCP} "${EXECgfs}/${angle_exec}" ./ +${NCP} "${shared_scaninfo}" ./${scaninfo} if [[ ! -s ./${angle_exec} || ! -s ./${scaninfo} ]]; then err=2 @@ -125,10 +118,10 @@ else export pgm=${angle_exec} - iyy=$(echo $PDATE | cut -c1-4) - imm=$(echo $PDATE | cut -c5-6) - idd=$(echo $PDATE | cut -c7-8) - ihh=$(echo $PDATE | cut -c9-10) + iyy="${PDY:0:4}" + imm="${PDY:4:2}" + idd="${PDY:6:2}" + ihh=${cyc} ctr=0 fail=0 @@ -143,24 +136,24 @@ else for dtype in ${gesanl}; do - echo "pgm = $pgm" - echo "pgmout = $pgmout" + echo "pgm = ${pgm}" + echo "pgmout = ${pgmout}" prep_step - ctr=$(expr $ctr + 1) + ctr=$((ctr + 1)) - if [[ $dtype == "anl" ]]; then - data_file=${type}_anl.${PDATE}.ieee_d + if [[ ${dtype} == "anl" ]]; then + data_file="${type}_anl.${PDY}${cyc}.ieee_d" ctl_file=${type}_anl.ctl angl_ctl=angle.${ctl_file} else - data_file=${type}.${PDATE}.ieee_d + data_file="${type}.${PDY}${cyc}.ieee_d" ctl_file=${type}.ctl angl_ctl=angle.${ctl_file} fi angl_file="" - if [[ $REGIONAL_RR -eq 1 ]]; then + if [[ ${REGIONAL_RR} -eq 1 ]]; then angl_file=${rgnHH}.${data_file}.${rgnTM} fi @@ -187,18 +180,18 @@ cat << EOF > input EOF startmsg - ./${angle_exec} < input >> ${pgmout} 2>>errfile + ./${angle_exec} < input >> "${pgmout}" 2>>errfile export err=$?; err_chk - if [[ $err -ne 0 ]]; then - fail=$(expr $fail + 1) + if [[ ${err} -ne 0 ]]; then + fail=$(( fail + 1 )) fi if [[ -s ${angl_file} ]]; then - ${COMPRESS} -f ${angl_file} + ${COMPRESS} -f "${angl_file}" fi if [[ -s ${angl_ctl} ]]; then - ${COMPRESS} -f ${angl_ctl} + ${COMPRESS} -f "${angl_ctl}" fi @@ -207,24 +200,24 @@ EOF done # for type in ${SATYPE} loop - ${USHradmon}/rstprod.sh + "${USHgfs}/rstprod.sh" tar_file=radmon_angle.tar if compgen -G "angle*.ieee_d*" > /dev/null || compgen -G "angle*.ctl*" > /dev/null; then - tar -cf $tar_file angle*.ieee_d* angle*.ctl* + tar -cf "${tar_file}" angle*.ieee_d* angle*.ctl* ${COMPRESS} ${tar_file} - mv $tar_file.${Z} ${TANKverf_rad}/. + mv "${tar_file}.${Z}" "${TANKverf_rad}/." - if [[ $RAD_AREA = "rgn" ]]; then + if [[ ${RAD_AREA} = "rgn" ]]; then cwd=$(pwd) - cd ${TANKverf_rad} - tar -xf ${tar_file}.${Z} - rm ${tar_file}.${Z} - cd ${cwd} + cd "${TANKverf_rad}" + tar -xf "${tar_file}.${Z}" + rm "${tar_file}.${Z}" + cd "${cwd}" fi fi - if [[ $ctr -gt 0 && $fail -eq $ctr || $fail -gt $ctr ]]; then + if [[ ${ctr} -gt 0 && ${fail} -eq ${ctr} || ${fail} -gt ${ctr} ]]; then err=3 fi fi diff --git a/ush/radmon_verf_bcoef.sh b/ush/radmon_verf_bcoef.sh index 374c8db7b2..ab1058711e 100755 --- a/ush/radmon_verf_bcoef.sh +++ b/ush/radmon_verf_bcoef.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -20,23 +20,19 @@ source "$HOMEgfs/ush/preamble.sh" # other supporting files into a temporary working directory. # # -# Usage: radmon_verf_bcoef.sh PDATE +# Usage: radmon_verf_bcoef.sh # # Input script positional parameters: -# PDATE processing date +# PDYcyc processing date # yyyymmddcc format; required # # Imported Shell Variables: # RADMON_SUFFIX data source suffix # defauls to opr -# EXECradmon executable directory -# defaults to current directory -# FIXradmon fixed data directory -# defaults to current directory +# EXECgfs executable directory # RAD_AREA global or regional flag # defaults to global # TANKverf_rad data repository -# defaults to current directory # SATYPE list of satellite/instrument sources # defaults to none # LITTLE_ENDIAN flag for LE machine @@ -65,23 +61,16 @@ source "$HOMEgfs/ush/preamble.sh" # >0 - some problem encountered # #################################################################### -# Command line arguments. -export PDATE=${1:-${PDATE:?}} netcdf_boolean=".false." -if [[ $RADMON_NETCDF -eq 1 ]]; then +if [[ ${RADMON_NETCDF} -eq 1 ]]; then netcdf_boolean=".true." fi -echo " RADMON_NETCDF, netcdf_boolean = ${RADMON_NETCDF}, $netcdf_boolean" - -# Directories -FIXgdas=${FIXgdas:-$(pwd)} -EXECradmon=${EXECradmon:-$(pwd)} -TANKverf_rad=${TANKverf_rad:-$(pwd)} +echo " RADMON_NETCDF, netcdf_boolean = ${RADMON_NETCDF}, ${netcdf_boolean}" # File names pgmout=${pgmout:-${jlogfile}} -touch $pgmout +touch "${pgmout}" # Other variables RAD_AREA=${RAD_AREA:-glb} @@ -96,7 +85,7 @@ USE_ANL=${USE_ANL:-0} err=0 bcoef_exec=radmon_bcoef.x -if [[ $USE_ANL -eq 1 ]]; then +if [[ ${USE_ANL} -eq 1 ]]; then gesanl="ges anl" else gesanl="ges" @@ -105,8 +94,8 @@ fi #-------------------------------------------------------------------- # Copy extraction program and supporting files to working directory -$NCP $EXECradmon/${bcoef_exec} ./${bcoef_exec} -$NCP ${biascr} ./biascr.txt +${NCP} "${EXECgfs}/${bcoef_exec}" ./${bcoef_exec} +${NCP} "${biascr}" ./biascr.txt if [[ ! -s ./${bcoef_exec} || ! -s ./biascr.txt ]]; then err=4 @@ -118,10 +107,10 @@ else export pgm=${bcoef_exec} - iyy=$(echo $PDATE | cut -c1-4) - imm=$(echo $PDATE | cut -c5-6) - idd=$(echo $PDATE | cut -c7-8) - ihh=$(echo $PDATE | cut -c9-10) + iyy="${PDY:0:4}" + imm="${PDY:4:2}" + idd="${PDY:6:2}" + ihh=${cyc} ctr=0 fail=0 @@ -140,19 +129,19 @@ else prep_step - ctr=$(expr $ctr + 1) + ctr=$(( ctr + 1 )) - if [[ $dtype == "anl" ]]; then - data_file=${type}_anl.${PDATE}.ieee_d + if [[ ${dtype} == "anl" ]]; then + data_file="${type}_anl.${PDY}${cyc}.ieee_d" ctl_file=${type}_anl.ctl bcoef_ctl=bcoef.${ctl_file} else - data_file=${type}.${PDATE}.ieee_d + data_file="${type}.${PDY}${cyc}.ieee_d" ctl_file=${type}.ctl bcoef_ctl=bcoef.${ctl_file} fi - if [[ $REGIONAL_RR -eq 1 ]]; then + if [[ ${REGIONAL_RR} -eq 1 ]]; then bcoef_file=${rgnHH}.bcoef.${data_file}.${rgnTM} else bcoef_file=bcoef.${data_file} @@ -180,10 +169,10 @@ cat << EOF > input / EOF startmsg - ./${bcoef_exec} < input >>${pgmout} 2>>errfile + ./${bcoef_exec} < input >>"${pgmout}" 2>>errfile export err=$?; err_chk - if [[ $err -ne 0 ]]; then - fail=$(expr $fail + 1) + if [[ ${err} -ne 0 ]]; then + fail=$(( fail + 1 )) fi @@ -192,11 +181,11 @@ EOF # if [[ -s ${bcoef_file} ]]; then - ${COMPRESS} ${bcoef_file} + ${COMPRESS} "${bcoef_file}" fi if [[ -s ${bcoef_ctl} ]]; then - ${COMPRESS} ${bcoef_ctl} + ${COMPRESS} "${bcoef_ctl}" fi @@ -204,24 +193,24 @@ EOF done # type in $SATYPE loop - ${USHradmon}/rstprod.sh + "${USHgfs}/rstprod.sh" if compgen -G "bcoef*.ieee_d*" > /dev/null || compgen -G "bcoef*.ctl*" > /dev/null; then tar_file=radmon_bcoef.tar - tar -cf $tar_file bcoef*.ieee_d* bcoef*.ctl* + tar -cf ${tar_file} bcoef*.ieee_d* bcoef*.ctl* ${COMPRESS} ${tar_file} - mv $tar_file.${Z} ${TANKverf_rad} + mv "${tar_file}.${Z}" "${TANKverf_rad}" - if [[ $RAD_AREA = "rgn" ]]; then + if [[ ${RAD_AREA} = "rgn" ]]; then cwd=$(pwd) - cd ${TANKverf_rad} - tar -xf ${tar_file}.${Z} - rm ${tar_file}.${Z} - cd ${cwd} + cd "${TANKverf_rad}" + tar -xf "${tar_file}.${Z}" + rm "${tar_file}.${Z}" + cd "${cwd}" fi fi - if [[ $ctr -gt 0 && $fail -eq $ctr || $fail -gt $ctr ]]; then + if [[ ${ctr} -gt 0 && ${fail} -eq ${ctr} || ${fail} -gt ${ctr} ]]; then err=5 fi fi diff --git a/ush/radmon_verf_bcor.sh b/ush/radmon_verf_bcor.sh index 3e267f018c..f1f97c247e 100755 --- a/ush/radmon_verf_bcor.sh +++ b/ush/radmon_verf_bcor.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -20,16 +20,16 @@ source "$HOMEgfs/ush/preamble.sh" # other supporting files into a temporary working directory. # # -# Usage: radmon_verf_bcor.sh PDATE +# Usage: radmon_verf_bcor.sh # # Input script positional parameters: -# PDATE processing date +# PDYcyc processing date # yyyymmddcc format; required # # Imported Shell Variables: # RADMON_SUFFIX data source suffix # defauls to opr -# EXECradmon executable directory +# EXECgfs executable directory # defaults to current directory # RAD_AREA global or regional flag # defaults to global @@ -64,16 +64,9 @@ source "$HOMEgfs/ush/preamble.sh" # #################################################################### -# Command line arguments. -export PDATE=${1:-${PDATE:?}} - -# Directories -EXECradmon=${EXECradmon:-$(pwd)} -TANKverf_rad=${TANKverf_rad:-$(pwd)} - # File names pgmout=${pgmout:-${jlogfile}} -touch $pgmout +touch "${pgmout}" # Other variables RAD_AREA=${RAD_AREA:-glb} @@ -85,11 +78,11 @@ bcor_exec=radmon_bcor.x err=0 netcdf_boolean=".false." -if [[ $RADMON_NETCDF -eq 1 ]]; then +if [[ ${RADMON_NETCDF} -eq 1 ]]; then netcdf_boolean=".true." fi -if [[ $USE_ANL -eq 1 ]]; then +if [[ ${USE_ANL} -eq 1 ]]; then gesanl="ges anl" else gesanl="ges" @@ -99,7 +92,7 @@ fi #-------------------------------------------------------------------- # Copy extraction program to working directory -$NCP ${EXECradmon}/${bcor_exec} ./${bcor_exec} +${NCP} "${EXECgfs}/${bcor_exec}" ./${bcor_exec} if [[ ! -s ./${bcor_exec} ]]; then err=6 @@ -111,10 +104,10 @@ else export pgm=${bcor_exec} - iyy=$(echo $PDATE | cut -c1-4) - imm=$(echo $PDATE | cut -c5-6) - idd=$(echo $PDATE | cut -c7-8) - ihh=$(echo $PDATE | cut -c9-10) + iyy="${PDY:0:4}" + imm="${PDY:4:2}" + idd="${PDY:6:2}" + ihh=${cyc} ctr=0 fail=0 @@ -126,10 +119,10 @@ else prep_step - ctr=$(expr $ctr + 1) + ctr=$(( ctr + 1 )) - if [[ $dtype == "anl" ]]; then - data_file=${type}_anl.${PDATE}.ieee_d + if [[ ${dtype} == "anl" ]]; then + data_file="${type}_anl.${PDY}${cyc}.ieee_d" bcor_file=bcor.${data_file} ctl_file=${type}_anl.ctl bcor_ctl=bcor.${ctl_file} @@ -137,7 +130,7 @@ else bcor_stdout=bcor.${stdout_file} input_file=${type}_anl else - data_file=${type}.${PDATE}.ieee_d + data_file="${type}.${PDY}${cyc}.ieee_d" bcor_file=bcor.${data_file} ctl_file=${type}.ctl bcor_ctl=bcor.${ctl_file} @@ -151,7 +144,7 @@ else # Check for 0 length input file here and avoid running # the executable if $input_file doesn't exist or is 0 bytes # - if [[ -s $input_file ]]; then + if [[ -s "${input_file}" ]]; then nchanl=-999 cat << EOF > input @@ -173,10 +166,10 @@ cat << EOF > input EOF startmsg - ./${bcor_exec} < input >> ${pgmout} 2>>errfile + ./${bcor_exec} < input >> "${pgmout}" 2>>errfile export err=$?; err_chk if [[ $? -ne 0 ]]; then - fail=$(expr $fail + 1) + fail=$(( fail + 1 )) fi @@ -185,11 +178,11 @@ EOF # if [[ -s ${bcor_file} ]]; then - ${COMPRESS} ${bcor_file} + ${COMPRESS} "${bcor_file}" fi if [[ -s ${bcor_ctl} ]]; then - ${COMPRESS} ${bcor_ctl} + ${COMPRESS} "${bcor_ctl}" fi fi @@ -197,24 +190,24 @@ EOF done # type in $SATYPE loop - ${USHradmon}/rstprod.sh + "${USHgfs}/rstprod.sh" tar_file=radmon_bcor.tar if compgen -G "bcor*.ieee_d*" > /dev/null || compgen -G "bcor*.ctl*" > /dev/null; then - tar -cf $tar_file bcor*.ieee_d* bcor*.ctl* + tar -cf "${tar_file}" bcor*.ieee_d* bcor*.ctl* ${COMPRESS} ${tar_file} - mv $tar_file.${Z} ${TANKverf_rad}/. + mv "${tar_file}.${Z}" "${TANKverf_rad}/." - if [[ $RAD_AREA = "rgn" ]]; then + if [[ ${RAD_AREA} = "rgn" ]]; then cwd=$(pwd) - cd ${TANKverf_rad} - tar -xf ${tar_file}.${Z} - rm ${tar_file}.${Z} - cd ${cwd} + cd "${TANKverf_rad}" + tar -xf "${tar_file}.${Z}" + rm "${tar_file}.${Z}" + cd "${cwd}" fi fi - if [[ $ctr -gt 0 && $fail -eq $ctr || $fail -gt $ctr ]]; then + if [[ ${ctr} -gt 0 && ${fail} -eq ${ctr} || ${fail} -gt ${ctr} ]]; then err=7 fi fi diff --git a/ush/radmon_verf_time.sh b/ush/radmon_verf_time.sh index 51743277c9..7f98407ec5 100755 --- a/ush/radmon_verf_time.sh +++ b/ush/radmon_verf_time.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${HOMEgfs}/ush/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -22,10 +22,10 @@ source "$HOMEgfs/ush/preamble.sh" # other supporting files into a temporary working directory. # # -# Usage: radmon_verf_time.sh PDATE +# Usage: radmon_verf_time.sh ${PDY}${cyc} # # Input script positional parameters: -# PDATE processing date +# PDYcyc processing date # yyyymmddcc format; required # # Imported Shell Variables: @@ -33,14 +33,11 @@ source "$HOMEgfs/ush/preamble.sh" # defaults to 1 (on) # RADMON_SUFFIX data source suffix # defauls to opr -# EXECradmon executable directory -# defaults to current directory -# FIXgdas fixed data directory -# defaults to current directory +# EXECgfs executable directory +# PARMmonitor parm data directory # RAD_AREA global or regional flag # defaults to global # TANKverf_rad data repository -# defaults to current directory # SATYPE list of satellite/instrument sources # defaults to none # VERBOSE Verbose flag (YES or NO) @@ -77,20 +74,12 @@ source "$HOMEgfs/ush/preamble.sh" # #################################################################### -# Command line arguments. -export PDATE=${1:-${PDATE:?}} - -# Directories -FIXgdas=${FIXgdas:-$(pwd)} -EXECradmon=${EXECradmon:-$(pwd)} -TANKverf_rad=${TANKverf_rad:-$(pwd)} - # File names #pgmout=${pgmout:-${jlogfile}} #touch $pgmout -radmon_err_rpt=${radmon_err_rpt:-${USHradmon}/radmon_err_rpt.sh} -base_file=${base_file:-$FIXgdas/gdas_radmon_base.tar} +radmon_err_rpt=${radmon_err_rpt:-${USHgfs}/radmon_err_rpt.sh} +base_file=${base_file:-${PARMmonitor}/gdas_radmon_base.tar} report=report.txt disclaimer=disclaimer.txt @@ -109,7 +98,7 @@ count_hdr=count_hdr.txt count_err=count_err.txt netcdf_boolean=".false." -if [[ $RADMON_NETCDF -eq 1 ]]; then +if [[ ${RADMON_NETCDF} -eq 1 ]]; then netcdf_boolean=".true." fi @@ -127,7 +116,7 @@ time_exec=radmon_time.x USE_ANL=${USE_ANL:-0} err=0 -if [[ $USE_ANL -eq 1 ]]; then +if [[ ${USE_ANL} -eq 1 ]]; then gesanl="ges anl" else gesanl="ges" @@ -137,26 +126,24 @@ fi #-------------------------------------------------------------------- # Copy extraction program and base files to working directory #------------------------------------------------------------------- -$NCP ${EXECradmon}/${time_exec} ./ +${NCP} "${EXECgfs}/${time_exec}" ./ if [[ ! -s ./${time_exec} ]]; then err=8 fi -iyy=$(echo $PDATE | cut -c1-4) -imm=$(echo $PDATE | cut -c5-6) -idd=$(echo $PDATE | cut -c7-8) -ihh=$(echo $PDATE | cut -c9-10) -cyc=$ihh -CYCLE=$cyc +iyy="${PDY:0:4}" +imm="${PDY:4:2}" +idd="${PDY:6:2}" +ihh=${cyc} local_base="local_base" -if [[ $DO_DATA_RPT -eq 1 ]]; then +if [[ ${DO_DATA_RPT} -eq 1 ]]; then if [[ -e ${base_file}.${Z} ]]; then - $NCP ${base_file}.${Z} ./${local_base}.{Z} - ${UNCOMPRESS} ${local_base}.${Z} + ${NCP} "${base_file}.${Z}" "./${local_base}.${Z}" + ${UNCOMPRESS} "${local_base}.${Z}" else - $NCP ${base_file} ./${local_base} + ${NCP} "${base_file}" ./${local_base} fi if [[ ! -s ./${local_base} ]]; then @@ -168,7 +155,7 @@ if [[ $DO_DATA_RPT -eq 1 ]]; then fi fi -if [[ $err -eq 0 ]]; then +if [[ ${err} -eq 0 ]]; then ctr=0 fail=0 @@ -183,23 +170,23 @@ if [[ $err -eq 0 ]]; then continue fi - ctr=$(expr $ctr + 1) + ctr=$(( ctr + 1 )) for dtype in ${gesanl}; do if [[ -f input ]]; then rm input; fi - if [[ $dtype == "anl" ]]; then - data_file=${type}_anl.${PDATE}.ieee_d + if [[ ${dtype} == "anl" ]]; then + data_file="${type}_anl.${PDY}${cyc}.ieee_d" ctl_file=${type}_anl.ctl time_ctl=time.${ctl_file} else - data_file=${type}.${PDATE}.ieee_d + data_file="${type}.${PDY}${cyc}.ieee_d" ctl_file=${type}.ctl time_ctl=time.${ctl_file} fi - if [[ $REGIONAL_RR -eq 1 ]]; then + if [[ ${REGIONAL_RR} -eq 1 ]]; then time_file=${rgnHH}.time.${data_file}.${rgnTM} else time_file=time.${data_file} @@ -227,48 +214,48 @@ cat << EOF > input / EOF - ./${time_exec} < input >> stdout.${type} 2>>errfile + ./${time_exec} < input >> stdout."${type}" 2>>errfile - if [[ $err -ne 0 ]]; then - fail=$(expr $fail + 1) + if [[ ${err} -ne 0 ]]; then + fail=$(( fail + 1 )) fi #------------------------------------------------------------------- # move data, control, and stdout files to $TANKverf_rad and compress #------------------------------------------------------------------- - cat stdout.${type} >> stdout.time + cat "stdout.${type}" >> stdout.time if [[ -s ${time_file} ]]; then - ${COMPRESS} ${time_file} + ${COMPRESS} "${time_file}" fi if [[ -s ${time_ctl} ]]; then - ${COMPRESS} ${time_ctl} + ${COMPRESS} "${time_ctl}" fi done done - ${USHradmon}/rstprod.sh + "${USHgfs}/rstprod.sh" if compgen -G "time*.ieee_d*" > /dev/null || compgen -G "time*.ctl*" > /dev/null; then tar_file=radmon_time.tar - tar -cf $tar_file time*.ieee_d* time*.ctl* + tar -cf "${tar_file}" time*.ieee_d* time*.ctl* ${COMPRESS} ${tar_file} - mv $tar_file.${Z} ${TANKverf_rad}/. + mv "${tar_file}.${Z}" "${TANKverf_rad}/." - if [[ $RAD_AREA = "rgn" ]]; then + if [[ ${RAD_AREA} = "rgn" ]]; then cwd=$(pwd) - cd ${TANKverf_rad} - tar -xf ${tar_file}.${Z} - rm ${tar_file}.${Z} - cd ${cwd} + cd "${TANKverf_rad}" + tar -xf "${tar_file}.${Z}" + rm "${tar_file}.${Z}" + cd "${cwd}" fi fi - if [[ $ctr -gt 0 && $fail -eq $ctr || $fail -gt $ctr ]]; then - echo "fail, ctr = $fail, $ctr" + if [[ ${ctr} -gt 0 && ${fail} -eq ${ctr} || ${fail} -gt ${ctr} ]]; then + echo "fail, ctr = ${fail}, ${ctr}" err=10 fi @@ -282,7 +269,7 @@ fi #------------------------------------------------------------------- #################################################################### -if [[ $DO_DATA_RPT -eq 1 ]]; then +if [[ ${DO_DATA_RPT} -eq 1 ]]; then #--------------------------- # build report disclaimer @@ -301,8 +288,8 @@ EOF # Check for missing diag files # tmp_satype="./tmp_satype.txt" - echo ${SATYPE} > ${tmp_satype} - ${USHradmon}/radmon_diag_ck.sh --rad ${radstat} --sat ${tmp_satype} --out ${diag} + echo "${SATYPE}" > ${tmp_satype} + "${USHgfs}/radmon_diag_ck.sh" --rad "${radstat}" --sat "${tmp_satype}" --out "${diag}" if [[ -s ${diag} ]]; then cat << EOF > ${diag_hdr} @@ -328,11 +315,11 @@ EOF # if [[ -s ${diag} ]]; then lines=$(wc -l <${diag}) - echo "lines in diag = $lines" + echo "lines in diag = ${lines}" - if [[ $lines -gt 0 ]]; then + if [[ ${lines} -gt 0 ]]; then cat ${diag_report} - cp ${diag} ${TANKverf_rad}/bad_diag.${PDATE} + cp ${diag} "${TANKverf_rad}/bad_diag.${PDY}${cyc}" else rm ${diag_report} fi @@ -344,12 +331,12 @@ EOF # Identify bad_pen and bad_chan files for this cycle and # previous cycle - bad_pen=bad_pen.${PDATE} - bad_chan=bad_chan.${PDATE} - low_count=low_count.${PDATE} + bad_pen=bad_pen.${PDY}${cyc} + bad_chan=bad_chan.${PDY}${cyc} + low_count=low_count.${PDY}${cyc} - qdate=$($NDATE -${CYCLE_INTERVAL} $PDATE) - pday=$(echo $qdate | cut -c1-8) + qdate=$(date --utc +%Y%m%d%H -d "${PDY} ${cyc} - ${assim_freq} hours") + pday="${qdate:0:8}" prev_bad_pen=bad_pen.${qdate} prev_bad_chan=bad_chan.${qdate} @@ -359,35 +346,35 @@ EOF prev_bad_chan=${TANKverf_radM1}/${prev_bad_chan} prev_low_count=${TANKverf_radM1}/${prev_low_count} - if [[ -s $bad_pen ]]; then - echo "pad_pen = $bad_pen" + if [[ -s ${bad_pen} ]]; then + echo "pad_pen = ${bad_pen}" fi - if [[ -s $prev_bad_pen ]]; then - echo "prev_pad_pen = $prev_bad_pen" + if [[ -s ${prev_bad_pen} ]]; then + echo "prev_pad_pen = ${prev_bad_pen}" fi - if [[ -s $bad_chan ]]; then - echo "bad_chan = $bad_chan" + if [[ -s ${bad_chan} ]]; then + echo "bad_chan = ${bad_chan}" fi - if [[ -s $prev_bad_chan ]]; then - echo "prev_bad_chan = $prev_bad_chan" + if [[ -s ${prev_bad_chan} ]]; then + echo "prev_bad_chan = ${prev_bad_chan}" fi - if [[ -s $low_count ]]; then - echo "low_count = $low_count" + if [[ -s ${low_count} ]]; then + echo "low_count = ${low_count}" fi - if [[ -s $prev_low_count ]]; then - echo "prev_low_count = $prev_low_count" + if [[ -s ${prev_low_count} ]]; then + echo "prev_low_count = ${prev_low_count}" fi do_pen=0 do_chan=0 do_cnt=0 - if [[ -s $bad_pen && -s $prev_bad_pen ]]; then + if [[ -s ${bad_pen} && -s ${prev_bad_pen} ]]; then do_pen=1 fi - if [[ -s $low_count && -s $prev_low_count ]]; then + if [[ -s ${low_count} && -s ${prev_low_count} ]]; then do_cnt=1 fi @@ -395,7 +382,7 @@ EOF # avoid doing the bad_chan report for REGIONAL_RR sources -- because # they run hourly they often have 0 count channels for off-hour runs. # - if [[ -s $bad_chan && -s $prev_bad_chan && REGIONAL_RR -eq 0 ]]; then + if [[ -s ${bad_chan} && -s ${prev_bad_chan} && REGIONAL_RR -eq 0 ]]; then do_chan=1 fi @@ -403,37 +390,37 @@ EOF # Remove extra spaces in new bad_pen & low_count files # if [[ -s ${bad_pen} ]]; then - gawk '{$1=$1}1' $bad_pen > tmp.bad_pen - mv -f tmp.bad_pen $bad_pen + gawk '{$1=$1}1' "${bad_pen}" > tmp.bad_pen + mv -f tmp.bad_pen "${bad_pen}" fi if [[ -s ${low_count} ]]; then - gawk '{$1=$1}1' $low_count > tmp.low_count - mv -f tmp.low_count $low_count + gawk '{$1=$1}1' "${low_count}" > tmp.low_count + mv -f tmp.low_count "${low_count}" fi - echo " do_pen, do_chan, do_cnt = $do_pen, $do_chan, $do_cnt" - echo " diag_report = $diag_report " - if [[ $do_pen -eq 1 || $do_chan -eq 1 || $do_cnt -eq 1 || -s ${diag_report} ]]; then + echo " do_pen, do_chan, do_cnt = ${do_pen}, ${do_chan}, ${do_cnt}" + echo " diag_report = ${diag_report} " + if [[ ${do_pen} -eq 1 || ${do_chan} -eq 1 || ${do_cnt} -eq 1 || -s ${diag_report} ]]; then - if [[ $do_pen -eq 1 ]]; then + if [[ ${do_pen} -eq 1 ]]; then echo "calling radmon_err_rpt for pen" - ${radmon_err_rpt} ${prev_bad_pen} ${bad_pen} pen ${qdate} \ - ${PDATE} ${diag_report} ${pen_err} + ${radmon_err_rpt} "${prev_bad_pen}" "${bad_pen}" pen "${qdate}" \ + "${PDY}${cyc}" ${diag_report} ${pen_err} fi - if [[ $do_chan -eq 1 ]]; then + if [[ ${do_chan} -eq 1 ]]; then echo "calling radmon_err_rpt for chan" - ${radmon_err_rpt} ${prev_bad_chan} ${bad_chan} chan ${qdate} \ - ${PDATE} ${diag_report} ${chan_err} + ${radmon_err_rpt} "${prev_bad_chan}" "${bad_chan}" chan "${qdate}" \ + "${PDY}${cyc}" ${diag_report} ${chan_err} fi - if [[ $do_cnt -eq 1 ]]; then + if [[ ${do_cnt} -eq 1 ]]; then echo "calling radmon_err_rpt for cnt" - ${radmon_err_rpt} ${prev_low_count} ${low_count} cnt ${qdate} \ - ${PDATE} ${diag_report} ${count_err} + ${radmon_err_rpt} "${prev_low_count}" "${low_count}" cnt "${qdate}" \ + "${PDY}${cyc}" ${diag_report} ${count_err} fi #------------------------------------------------------------------- @@ -445,18 +432,18 @@ EOF echo DOING ERROR REPORTING - cat << EOF > $report + cat << EOF > ${report} Radiance Monitor warning report Net: ${RADMON_SUFFIX} Run: ${RUN} - Cycle: $PDATE + Cycle: ${PDY}${cyc} EOF if [[ -s ${diag_report} ]]; then echo OUTPUTING DIAG_REPORT - cat ${diag_report} >> $report + cat ${diag_report} >> ${report} fi if [[ -s ${chan_err} ]]; then @@ -472,8 +459,8 @@ EOF EOF - cat ${chan_hdr} >> $report - cat ${chan_err} >> $report + cat ${chan_hdr} >> ${report} + cat ${chan_err} >> ${report} fi @@ -490,8 +477,8 @@ Satellite/Instrument Obs Count Avg Count EOF - cat ${count_hdr} >> $report - cat ${count_err} >> $report + cat ${count_hdr} >> ${report} + cat ${count_err} >> ${report} fi @@ -507,15 +494,15 @@ EOF ============ ======= ====== Cycle Penalty Bound ----- ------- ----- EOF - cat ${pen_hdr} >> $report - cat ${pen_err} >> $report + cat ${pen_hdr} >> ${report} + cat ${pen_err} >> ${report} rm -f ${pen_hdr} rm -f ${pen_err} fi - echo >> $report - cat ${disclaimer} >> $report - echo >> $report + echo >> ${report} + cat ${disclaimer} >> ${report} + echo >> ${report} fi #------------------------------------------------------------------- @@ -523,10 +510,10 @@ EOF # if [[ -s ${report} ]]; then lines=$(wc -l <${report}) - if [[ $lines -gt 2 ]]; then + if [[ ${lines} -gt 2 ]]; then cat ${report} - $NCP ${report} ${TANKverf_rad}/warning.${PDATE} + ${NCP} ${report} "${TANKverf_rad}/warning.${PDY}${cyc}" fi fi @@ -537,22 +524,22 @@ EOF # copy new bad_pen, bad_chan, and low_count files to $TANKverf_rad # if [[ -s ${bad_chan} ]]; then - mv ${bad_chan} ${TANKverf_rad}/. + mv "${bad_chan}" "${TANKverf_rad}/." fi if [[ -s ${bad_pen} ]]; then - mv ${bad_pen} ${TANKverf_rad}/. + mv "${bad_pen}" "${TANKverf_rad}/." fi if [[ -s ${low_count} ]]; then - mv ${low_count} ${TANKverf_rad}/. + mv "${low_count}" "${TANKverf_rad}/." fi fi for type in ${SATYPE}; do - rm -f stdout.${type} + rm -f "stdout.${type}" done ################################################################################