From 28c5fb3e95164e919cf12b1653b9051a85342ec7 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Tue, 11 Feb 2025 15:43:49 +0000 Subject: [PATCH 1/8] Improve messaging for snogrb setting - Add INFO echo to state which snogrb file will be used in log - Also fix bug with res setting in exgdas_enkf_sfc.sh Resolves bugzilla 1373 Refs #2500 --- scripts/exgdas_enkf_sfc.sh | 10 +++++++--- scripts/exglobal_atmos_sfcanl.sh | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index 1944325317b..b29dedaf3fa 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -78,7 +78,7 @@ bPDY=${BDATE:0:8} bcyc=${BDATE:8:2} # Get dimension information based on CASE -res=${CASE:2:} +res=${CASE:1} JCAP_CASE=$((res*2-2)) LATB_CASE=$((res*2)) LONB_CASE=$((res*4)) @@ -87,9 +87,13 @@ LONB_CASE=$((res*4)) export FNTSFA=${FNTSFA:-' '} export FNACNA=${FNACNA:-${COM_OBS}/${OPREFIX}seaice.5min.blend.grb} export FNSNOA=${FNSNOA:-${COM_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} +# Check if resolution specific FNSNOA exists, if not use t1534 version [[ ! -f $FNSNOA ]] && export FNSNOA="${COM_OBS}/${OPREFIX}snogrb_t1534.3072.1536" -FNSNOG=${FNSNOG:-${COM_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} -[[ ! -f $FNSNOG ]] && FNSNOG="${COM_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +echo "INFO: Current snow file is ${FNSNOA}" +export FNSNOG=${FNSNOG:-${COM_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} +# Check if resolution specific FNSNOG exists, if not use t1534 version +[[ ! -f $FNSNOG ]] && export FNSNOG="${COM_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +echo "INFO: Previous snow file is ${FNSNOG}" # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle if [ ${RUN_GETGES:-"NO"} = "YES" ]; then diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index cbc43b0979e..1bfb912b67f 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -62,9 +62,13 @@ LONB_CASE=$((res*4)) export FNTSFA=${FNTSFA:-${COMIN_OBS}/${OPREFIX}rtgssthr.grb} export FNACNA=${FNACNA:-${COMIN_OBS}/${OPREFIX}seaice.5min.blend.grb} export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} -[[ ! -f ${FNSNOA} ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" -FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} -[[ ! -f ${FNSNOG} ]] && FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +# Check if resolution specific FNSNOA exists, if not use t1534 version +[[ ! -f $FNSNOA ]] && export FNSNOA="${COM_OBS}/${OPREFIX}snogrb_t1534.3072.1536" +echo "INFO: Current snow file is ${FNSNOA}" +export FNSNOG=${FNSNOG:-${COM_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} +# Check if resolution specific FNSNOG exists, if not use t1534 version +[[ ! -f $FNSNOG ]] && export FNSNOG="${COM_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +echo "INFO: Previous snow file is ${FNSNOG}" # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle if [[ ${RUN_GETGES} = "YES" ]]; then From dad27580ed2dd0b719e48eb12aff68a4d152d546 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Tue, 11 Feb 2025 16:09:50 +0000 Subject: [PATCH 2/8] Add FATAL ERROR exit and update COM variables - Add "FATAL ERROR" message if either snogrb file is missing. - Update COMIN/COMOUT variable settings (needed) Refs #2500 --- jobs/JGDAS_ENKF_SFC | 9 ++++--- scripts/exgdas_enkf_sfc.sh | 44 +++++++++++++++++++------------- scripts/exglobal_atmos_sfcanl.sh | 14 +++++++--- 3 files changed, 42 insertions(+), 25 deletions(-) diff --git a/jobs/JGDAS_ENKF_SFC b/jobs/JGDAS_ENKF_SFC index 1ed10f20c0f..d6ac3c803c3 100755 --- a/jobs/JGDAS_ENKF_SFC +++ b/jobs/JGDAS_ENKF_SFC @@ -32,12 +32,13 @@ export APREFIX_ENS="${RUN}.t${cyc}z." export GPREFIX="${GDUMP}.t${gcyc}z." export GPREFIX_ENS="${GDUMP_ENS}.t${gcyc}z." -RUN=${RUN/enkf} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COM_OBS \ - COM_ATMOS_ANALYSIS_DET:COM_ATMOS_ANALYSIS_TMPL +RUN=${RUN/enkf} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ + COMIN_OBS:COM_OBS_TMPL \ + COMIN_ATMOS_ANALYSIS_DET:COM_ATMOS_ANALYSIS_TMPL RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ - COM_OBS_PREV:COM_OBS_TMPL \ - COM_ATMOS_ANALYSIS_DET_PREV:COM_ATMOS_ANALYSIS_TMPL + COMIN_OBS_PREV:COM_OBS_TMPL \ + COMIN_ATMOS_ANALYSIS_DET_PREV:COM_ATMOS_ANALYSIS_TMPL ############################################################### # Run relevant script diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index b29dedaf3fa..f71c072ace4 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -85,15 +85,23 @@ LONB_CASE=$((res*4)) # Global cycle requires these files export FNTSFA=${FNTSFA:-' '} -export FNACNA=${FNACNA:-${COM_OBS}/${OPREFIX}seaice.5min.blend.grb} -export FNSNOA=${FNSNOA:-${COM_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} +export FNACNA=${FNACNA:-${COMIN_OBS}/${OPREFIX}seaice.5min.blend.grb} +export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOA exists, if not use t1534 version -[[ ! -f $FNSNOA ]] && export FNSNOA="${COM_OBS}/${OPREFIX}snogrb_t1534.3072.1536" +[[ ! -f $FNSNOA ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" echo "INFO: Current snow file is ${FNSNOA}" -export FNSNOG=${FNSNOG:-${COM_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} +if [[ ! -f $FNSNOA ]]; then + echo "FATAL ERROR: Current snow file ${FNSNOA} is missing. Exiting." + exit 1 +fi +export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version -[[ ! -f $FNSNOG ]] && export FNSNOG="${COM_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +[[ ! -f $FNSNOG ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" echo "INFO: Previous snow file is ${FNSNOG}" +if [[ ! -f $FNSNOG ]]; then + echo "FATAL ERROR: Previous snow file ${FNSNOG} is missing. Exiting." + exit 1 +fi # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle if [ ${RUN_GETGES:-"NO"} = "YES" ]; then @@ -114,7 +122,7 @@ else fi if [ $DONST = "YES" ]; then - export NST_FILE=${NST_FILE:-${COM_ATMOS_ANALYSIS_DET}/${APREFIX}dtfanl.nc} + export NST_FILE=${NST_FILE:-${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}dtfanl.nc} else export NST_FILE="NULL" fi @@ -142,13 +150,13 @@ if [ $DOIAU = "YES" ]; then memchar="mem$cmem" MEMDIR=${memchar} YMD=${PDY} HH=${cyc} declare_from_tmpl \ - COM_ATMOS_RESTART_MEM:COM_ATMOS_RESTART_TMPL + COMOUT_ATMOS_RESTART_MEM:COM_ATMOS_RESTART_TMPL MEMDIR=${gmemchar} RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} declare_from_tmpl \ COMIN_ATMOS_RESTART_MEM_PREV:COM_ATMOS_RESTART_TMPL MEMDIR=${memchar} YMD=${PDY} HH=${cyc} declare_from_tmpl \ - COM_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL + COMIN_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL MEMDIR=${memchar} YMD=${PDY} HH=${cyc} declare_from_tmpl \ COMIN_SNOW_ANALYSIS_MEM:COM_SNOW_ANALYSIS_TMPL @@ -160,7 +168,7 @@ if [ $DOIAU = "YES" ]; then sfcdata_dir="${COMIN_ATMOS_RESTART_MEM_PREV}" fi - [[ ${TILE_NUM} -eq 1 ]] && mkdir -p "${COM_ATMOS_RESTART_MEM}" + [[ ${TILE_NUM} -eq 1 ]] && mkdir -p "${COMOUT_ATMOS_RESTART_MEM}" ${NCP} "${sfcdata_dir}/${bPDY}.${bcyc}0000.sfc_data.tile${n}.nc" \ "${DATA}/fnbgsi.${cmem}" ${NCP} "${DATA}/fnbgsi.${cmem}" "${DATA}/fnbgso.${cmem}" @@ -169,7 +177,7 @@ if [ $DOIAU = "YES" ]; then if [[ ${GSI_SOILANAL} = "YES" ]]; then FHR=6 - ${NCP} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}sfci00${FHR}.nc" \ + ${NCP} "${COMIN_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}sfci00${FHR}.nc" \ "${DATA}/lnd_incr.${cmem}" fi done # ensembles @@ -188,18 +196,18 @@ if [ $DOIAU = "YES" ]; then memchar="mem$cmem" MEMDIR=${memchar} YMD=${PDY} HH=${cyc} declare_from_tmpl \ - COM_ATMOS_RESTART_MEM:COM_ATMOS_RESTART_TMPL + COMOUT_ATMOS_RESTART_MEM:COM_ATMOS_RESTART_TMPL MEMDIR=${memchar} YMD=${PDY} HH=${cyc} declare_from_tmpl \ - COM_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL + COMIN_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL - [[ ${TILE_NUM} -eq 1 ]] && mkdir -p "${COM_ATMOS_RESTART_MEM}" - cpfs "${DATA}/fnbgso.${cmem}" "${COM_ATMOS_RESTART_MEM}/${bPDY}.${bcyc}0000.sfcanl_data.tile${n}.nc" + [[ ${TILE_NUM} -eq 1 ]] && mkdir -p "${COMOUT_ATMOS_RESTART_MEM}" + cpfs "${DATA}/fnbgso.${cmem}" "${COMOUT_ATMOS_RESTART_MEM}/${bPDY}.${bcyc}0000.sfcanl_data.tile${n}.nc" if [[ ${GSI_SOILANAL} = "YES" ]]; then FHR=6 - ${NCP} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}sfci00${FHR}.nc" \ + ${NCP} "${COMIN_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}sfci00${FHR}.nc" \ "${DATA}/lnd_incr.${cmem}" fi done # ensembles @@ -258,11 +266,11 @@ if [ $DOSFCANL_ENKF = "YES" ]; then memchar="mem${cmem}" MEMDIR=${memchar} YMD=${PDY} HH=${cyc} declare_from_tmpl \ - COM_ATMOS_RESTART_MEM:COM_ATMOS_RESTART_TMPL + COMOUT_ATMOS_RESTART_MEM:COM_ATMOS_RESTART_TMPL - [[ ! -d "${COM_ATMOS_RESTART_MEM}" ]] && mkdir -p "${COM_ATMOS_RESTART_MEM}" + [[ ! -d "${COMOUT_ATMOS_RESTART_MEM}" ]] && mkdir -p "${COMOUT_ATMOS_RESTART_MEM}" - cpfs "${DATA}/fnbgso.${cmem}" "${COM_ATMOS_RESTART_MEM}/${PDY}.${cyc}0000.sfcanl_data.tile${n}.nc" + cpfs "${DATA}/fnbgso.${cmem}" "${COMOUT_ATMOS_RESTART_MEM}/${PDY}.${cyc}0000.sfcanl_data.tile${n}.nc" done diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index 1bfb912b67f..2d62bb738f7 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -63,12 +63,20 @@ export FNTSFA=${FNTSFA:-${COMIN_OBS}/${OPREFIX}rtgssthr.grb} export FNACNA=${FNACNA:-${COMIN_OBS}/${OPREFIX}seaice.5min.blend.grb} export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOA exists, if not use t1534 version -[[ ! -f $FNSNOA ]] && export FNSNOA="${COM_OBS}/${OPREFIX}snogrb_t1534.3072.1536" +[[ ! -f $FNSNOA ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" echo "INFO: Current snow file is ${FNSNOA}" -export FNSNOG=${FNSNOG:-${COM_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} +if [[ ! -f $FNSNOA ]]; then + echo "FATAL ERROR: Current snow file ${FNSNOA} is missing. Exiting." + exit 1 +fi +export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version -[[ ! -f $FNSNOG ]] && export FNSNOG="${COM_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +[[ ! -f $FNSNOG ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" echo "INFO: Previous snow file is ${FNSNOG}" +if [[ ! -f $FNSNOG ]]; then + echo "FATAL ERROR: Previous snow file ${FNSNOG} is missing. Exiting." + exit 1 +fi # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle if [[ ${RUN_GETGES} = "YES" ]]; then From e6c5e05bdaff412d1fb42353a26b04502d20c8bb Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Tue, 11 Feb 2025 11:03:56 -0600 Subject: [PATCH 3/8] Move new INFO message inside if-block Combine the INFO and FATAL ERROR messaging for snogrb files into the same if-block. Refs #2500 --- scripts/exgdas_enkf_sfc.sh | 6 ++++-- scripts/exglobal_atmos_sfcanl.sh | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index f71c072ace4..e8e8aafa6d8 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -89,18 +89,20 @@ export FNACNA=${FNACNA:-${COMIN_OBS}/${OPREFIX}seaice.5min.blend.grb} export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOA exists, if not use t1534 version [[ ! -f $FNSNOA ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" -echo "INFO: Current snow file is ${FNSNOA}" if [[ ! -f $FNSNOA ]]; then echo "FATAL ERROR: Current snow file ${FNSNOA} is missing. Exiting." exit 1 +else + echo "INFO: Current snow file is ${FNSNOA}" fi export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version [[ ! -f $FNSNOG ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" -echo "INFO: Previous snow file is ${FNSNOG}" if [[ ! -f $FNSNOG ]]; then echo "FATAL ERROR: Previous snow file ${FNSNOG} is missing. Exiting." exit 1 +else + echo "INFO: Previous snow file is ${FNSNOG}" fi # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index 2d62bb738f7..63635e6c411 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -64,18 +64,20 @@ export FNACNA=${FNACNA:-${COMIN_OBS}/${OPREFIX}seaice.5min.blend.grb} export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOA exists, if not use t1534 version [[ ! -f $FNSNOA ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" -echo "INFO: Current snow file is ${FNSNOA}" if [[ ! -f $FNSNOA ]]; then echo "FATAL ERROR: Current snow file ${FNSNOA} is missing. Exiting." exit 1 +else + echo "INFO: Current snow file is ${FNSNOA}" fi export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version [[ ! -f $FNSNOG ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" -echo "INFO: Previous snow file is ${FNSNOG}" if [[ ! -f $FNSNOG ]]; then echo "FATAL ERROR: Previous snow file ${FNSNOG} is missing. Exiting." exit 1 +else + echo "INFO: Previous snow file is ${FNSNOG}" fi # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle From 5a55a10ab547c8af04a9cd3853d116cd46d1ebeb Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Tue, 11 Feb 2025 13:42:00 -0600 Subject: [PATCH 4/8] Resolve shellcheck warnings Refs #2500 --- scripts/exgdas_enkf_sfc.sh | 8 ++++---- scripts/exglobal_atmos_sfcanl.sh | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index e8e8aafa6d8..35418d781d0 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -88,8 +88,8 @@ export FNTSFA=${FNTSFA:-' '} export FNACNA=${FNACNA:-${COMIN_OBS}/${OPREFIX}seaice.5min.blend.grb} export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOA exists, if not use t1534 version -[[ ! -f $FNSNOA ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" -if [[ ! -f $FNSNOA ]]; then +[[ ! -f ${FNSNOA} ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" +if [[ ! -f ${FNSNOA} ]]; then echo "FATAL ERROR: Current snow file ${FNSNOA} is missing. Exiting." exit 1 else @@ -97,8 +97,8 @@ else fi export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version -[[ ! -f $FNSNOG ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" -if [[ ! -f $FNSNOG ]]; then +[[ ! -f ${FNSNOG} ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +if [[ ! -f ${FNSNOG} ]]; then echo "FATAL ERROR: Previous snow file ${FNSNOG} is missing. Exiting." exit 1 else diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index 63635e6c411..c178f948f07 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -63,8 +63,8 @@ export FNTSFA=${FNTSFA:-${COMIN_OBS}/${OPREFIX}rtgssthr.grb} export FNACNA=${FNACNA:-${COMIN_OBS}/${OPREFIX}seaice.5min.blend.grb} export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOA exists, if not use t1534 version -[[ ! -f $FNSNOA ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" -if [[ ! -f $FNSNOA ]]; then +[[ ! -f ${FNSNOA} ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" +if [[ ! -f ${FNSNOA} ]]; then echo "FATAL ERROR: Current snow file ${FNSNOA} is missing. Exiting." exit 1 else @@ -72,8 +72,8 @@ else fi export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version -[[ ! -f $FNSNOG ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" -if [[ ! -f $FNSNOG ]]; then +[[ ! -f ${FNSNOG} ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +if [[ ! -f ${FNSNOG} ]]; then echo "FATAL ERROR: Previous snow file ${FNSNOG} is missing. Exiting." exit 1 else From 500aeca7032c4489fa27606bd59d890636094ba5 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Tue, 11 Feb 2025 13:45:10 -0600 Subject: [PATCH 5/8] Update new snow file messaging to clarify cycle Refs #2500 --- scripts/exgdas_enkf_sfc.sh | 8 ++++---- scripts/exglobal_atmos_sfcanl.sh | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index 35418d781d0..005bd12692b 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -90,19 +90,19 @@ export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE} # Check if resolution specific FNSNOA exists, if not use t1534 version [[ ! -f ${FNSNOA} ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" if [[ ! -f ${FNSNOA} ]]; then - echo "FATAL ERROR: Current snow file ${FNSNOA} is missing. Exiting." + echo "FATAL ERROR: Current cycle snow file ${FNSNOA} is missing. Exiting." exit 1 else - echo "INFO: Current snow file is ${FNSNOA}" + echo "INFO: Current cycle snow file is ${FNSNOA}" fi export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version [[ ! -f ${FNSNOG} ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" if [[ ! -f ${FNSNOG} ]]; then - echo "FATAL ERROR: Previous snow file ${FNSNOG} is missing. Exiting." + echo "FATAL ERROR: Previous cycle snow file ${FNSNOG} is missing. Exiting." exit 1 else - echo "INFO: Previous snow file is ${FNSNOG}" + echo "INFO: Previous cycle snow file is ${FNSNOG}" fi # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index c178f948f07..41543b37bfb 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -65,19 +65,19 @@ export FNSNOA=${FNSNOA:-${COMIN_OBS}/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE} # Check if resolution specific FNSNOA exists, if not use t1534 version [[ ! -f ${FNSNOA} ]] && export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" if [[ ! -f ${FNSNOA} ]]; then - echo "FATAL ERROR: Current snow file ${FNSNOA} is missing. Exiting." + echo "FATAL ERROR: Current cycle snow file ${FNSNOA} is missing. Exiting." exit 1 else - echo "INFO: Current snow file is ${FNSNOA}" + echo "INFO: Current cycle snow file is ${FNSNOA}" fi export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version [[ ! -f ${FNSNOG} ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" if [[ ! -f ${FNSNOG} ]]; then - echo "FATAL ERROR: Previous snow file ${FNSNOG} is missing. Exiting." + echo "FATAL ERROR: Previous cycle snow file ${FNSNOG} is missing. Exiting." exit 1 else - echo "INFO: Previous snow file is ${FNSNOG}" + echo "INFO: Previous cycle snow file is ${FNSNOG}" fi # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle From 136f33872aba3394cd32ad605d15ab1a8ed20f76 Mon Sep 17 00:00:00 2001 From: "Kate.Friedman" Date: Mon, 10 Mar 2025 18:02:02 +0000 Subject: [PATCH 6/8] Remove reference to getges Refs #2500 --- jobs/JGLOBAL_WAVE_POST_BNDPNT | 2 +- jobs/JGLOBAL_WAVE_POST_BNDPNTBLL | 2 +- jobs/JGLOBAL_WAVE_POST_PNT | 2 +- jobs/JGLOBAL_WAVE_POST_SBS | 2 +- jobs/JGLOBAL_WAVE_PREP | 2 +- scripts/exglobal_atmos_analysis.sh | 2 -- 6 files changed, 5 insertions(+), 7 deletions(-) diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNT b/jobs/JGLOBAL_WAVE_POST_BNDPNT index 808ba7d9f3f..b6d6acd647b 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNT +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNT @@ -8,7 +8,7 @@ export errchk=${errchk:-err_chk} export MP_PULSE=0 -# Set COM Paths and GETGES environment +# Set COM Paths YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ COMIN_WAVE_PREP:COM_WAVE_PREP_TMPL \ COMIN_WAVE_HISTORY:COM_WAVE_HISTORY_TMPL \ diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL index c85b1cb5f3c..c2ee758ff5e 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL @@ -12,7 +12,7 @@ export CDATE=${PDY}${cyc} export MP_PULSE=0 -# Set COM Paths and GETGES environment +# Set COM Paths YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ COMIN_WAVE_PREP:COM_WAVE_PREP_TMPL \ COMIN_WAVE_HISTORY:COM_WAVE_HISTORY_TMPL \ diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index 6be2d88906d..a77c336ec47 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -8,7 +8,7 @@ export errchk=${errchk:-err_chk} export MP_PULSE=0 -# Set COM Paths and GETGES environment +# Set COM Paths YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ COMIN_WAVE_PREP:COM_WAVE_PREP_TMPL \ COMIN_WAVE_HISTORY:COM_WAVE_HISTORY_TMPL \ diff --git a/jobs/JGLOBAL_WAVE_POST_SBS b/jobs/JGLOBAL_WAVE_POST_SBS index acd654d6fa0..cc82aea1229 100755 --- a/jobs/JGLOBAL_WAVE_POST_SBS +++ b/jobs/JGLOBAL_WAVE_POST_SBS @@ -9,7 +9,7 @@ export errchk=${errchk:-err_chk} export MP_PULSE=0 -# Set COM Paths and GETGES environment +# Set COM Paths YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ COMIN_WAVE_PREP:COM_WAVE_PREP_TMPL \ COMIN_WAVE_HISTORY:COM_WAVE_HISTORY_TMPL \ diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP index 5d4e76dc8a2..a642c67bc24 100755 --- a/jobs/JGLOBAL_WAVE_PREP +++ b/jobs/JGLOBAL_WAVE_PREP @@ -14,7 +14,7 @@ export MP_PULSE=0 # CDO required for processing RTOFS currents export CDO=${CDO_ROOT}/bin/cdo -# Set COM Paths and GETGES environment +# Set COM Paths YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ COMIN_OBS:COM_OBS_TMPL \ COMIN_WAVE_PREP:COM_WAVE_PREP_TMPL \ diff --git a/scripts/exglobal_atmos_analysis.sh b/scripts/exglobal_atmos_analysis.sh index bd11b81c392..54e04a94963 100755 --- a/scripts/exglobal_atmos_analysis.sh +++ b/scripts/exglobal_atmos_analysis.sh @@ -83,8 +83,6 @@ CALCINCPY=${CALCINCPY:-${USHgfs}/calcinc_gfs.py} RUN=${RUN:-""} SENDECF=${SENDECF:-"NO"} SENDDBN=${SENDDBN:-"NO"} -RUN_GETGES=${RUN_GETGES:-"NO"} -GETGESSH=${GETGESSH:-"getges.sh"} export gesenvir=${gesenvir:-${envir}} export hofx_2m_sfcfile=${hofx_2m_sfcfile:-".false."} From cd86c5f5d1b9bf0e950372cfcc8fc85230799f80 Mon Sep 17 00:00:00 2001 From: "Kate.Friedman" Date: Mon, 10 Mar 2025 18:02:48 +0000 Subject: [PATCH 7/8] Remove getges and replace snoprv with FNSNOG Refs #2500 --- scripts/exgdas_enkf_sfc.sh | 10 +--------- scripts/exglobal_atmos_sfcanl.sh | 10 +--------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index 005bd12692b..8683a2073d4 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -106,16 +106,8 @@ else fi # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle -if [ ${RUN_GETGES:-"NO"} = "YES" ]; then - # Ignore possible spelling error (nothing is misspelled) - # shellcheck disable=SC2153 - snoprv=$($GETGESSH -q -t snogrb_$JCAP_CASE -e $gesenvir -n $GDUMP -v $GDATE) -else - snoprv=${snoprv:-$FNSNOG} -fi - if [ $($WGRIB -4yr $FNSNOA 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') -le \ - $($WGRIB -4yr $snoprv 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') ] ; then + $($WGRIB -4yr $FNSNOG 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') ] ; then export FNSNOA=" " export CYCLVARS="FSNOL=99999.,FSNOS=99999.," else diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index 41543b37bfb..e2e9d986201 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -39,8 +39,6 @@ export FHOUR=${FHOUR:-0} export DELTSFC=${DELTSFC:-6} # Other info used in this script -RUN_GETGES=${RUN_GETGES:-"NO"} -GETGESSH=${GETGESSH:-"getges.sh"} export gesenvir=${gesenvir:-${envir}} # Ignore possible spelling error (nothing is misspelled) # shellcheck disable=SC2153 @@ -81,14 +79,8 @@ else fi # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle -if [[ ${RUN_GETGES} = "YES" ]]; then - snoprv=$(${GETGESSH} -q -t "snogrb_${JCAP_CASE}" -e "${gesenvir}" -n "${GDUMP}" -v "${GDATE}") -else - snoprv=${snoprv:-${FNSNOG}} -fi - if [[ $(${WGRIB} -4yr "${FNSNOA}" 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') -le \ - $(${WGRIB} -4yr "${snoprv}" 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') ]] ; then + $(${WGRIB} -4yr "${FNSNOG}" 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') ]] ; then export FNSNOA=" " export CYCLVARS="FSNOL=99999.,FSNOS=99999.," else From 135930b4966ea6fd2dfac2c97a341a12449f390b Mon Sep 17 00:00:00 2001 From: "Kate.Friedman" Date: Wed, 12 Mar 2025 15:57:17 +0000 Subject: [PATCH 8/8] Change FATAL to WARNING Refs #2500 --- scripts/exgdas_enkf_sfc.sh | 24 +++++++++++++----------- scripts/exglobal_atmos_sfcanl.sh | 16 ++++++++++------ 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index 11775bba2d4..8da1fd0f3cd 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -93,8 +93,7 @@ if [[ ! -f ${FNSNOA} ]]; then export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" fi if [[ ! -f ${FNSNOA} ]]; then - echo "FATAL ERROR: Current cycle snow file ${FNSNOA} is missing. Exiting." - exit 1 + echo "WARNING: Current cycle snow file ${FNSNOA} is missing. Snow coverage will not be updated." else echo "INFO: Current cycle snow file is ${FNSNOA}" fi @@ -104,26 +103,29 @@ if [[ ! -f ${FNSNOG} ]]; then export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" fi if [[ ! -f ${FNSNOG} ]]; then - echo "FATAL ERROR: Previous cycle snow file ${FNSNOG} is missing. Exiting." - exit 1 + echo "WARNING: Previous cycle snow file ${FNSNOG} is missing. Snow coverage will not be updated." else echo "INFO: Previous cycle snow file is ${FNSNOG}" fi +# If any snow files are missing, don't apply snow in the global_cycle step. +if [[ ! -f ${FNSNOA} ]] || [[ ! -f ${FNSNOG} ]]; then + export FNSNOA=" " + export CYCLVARS="FSNOL=99999.,FSNOS=99999.," # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle -if [ $($WGRIB -4yr $FNSNOA 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') -le \ +elif [ $($WGRIB -4yr $FNSNOA 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') -le \ $($WGRIB -4yr $FNSNOG 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') ] ; then - export FNSNOA=" " - export CYCLVARS="FSNOL=99999.,FSNOS=99999.," + export FNSNOA=" " + export CYCLVARS="FSNOL=99999.,FSNOS=99999.," else - export SNOW_NUDGE_COEFF=${SNOW_NUDGE_COEFF:-0.} - export CYCLVARS="FSNOL=${SNOW_NUDGE_COEFF},$CYCLVARS" + export SNOW_NUDGE_COEFF=${SNOW_NUDGE_COEFF:-0.} + export CYCLVARS="FSNOL=${SNOW_NUDGE_COEFF},$CYCLVARS" fi if [ $DONST = "YES" ]; then - export NST_FILE=${NST_FILE:-${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}dtfanl.nc} + export NST_FILE=${NST_FILE:-${COMIN_ATMOS_ANALYSIS_DET}/${APREFIX}dtfanl.nc} else - export NST_FILE="NULL" + export NST_FILE="NULL" fi # regrid the surface increment files diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index 4d71a861ac2..a8b9ac71701 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -66,23 +66,27 @@ if [[ ! -f ${FNSNOA} ]]; then export FNSNOA="${COMIN_OBS}/${OPREFIX}snogrb_t1534.3072.1536" fi if [[ ! -f ${FNSNOA} ]]; then - echo "FATAL ERROR: Current cycle snow file ${FNSNOA} is missing. Exiting." - exit 1 + echo "WARNING: Current cycle snow file ${FNSNOA} is missing. Snow coverage will not be updated." else echo "INFO: Current cycle snow file is ${FNSNOA}" fi export FNSNOG=${FNSNOG:-${COMIN_OBS_PREV}/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} # Check if resolution specific FNSNOG exists, if not use t1534 version -[[ ! -f ${FNSNOG} ]] && export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" if [[ ! -f ${FNSNOG} ]]; then - echo "FATAL ERROR: Previous cycle snow file ${FNSNOG} is missing. Exiting." - exit 1 + export FNSNOG="${COMIN_OBS_PREV}/${GPREFIX}snogrb_t1534.3072.1536" +fi +if [[ ! -f ${FNSNOG} ]]; then + echo "WARNING: Previous cycle snow file ${FNSNOG} is missing. Snow coverage will not be updated." else echo "INFO: Previous cycle snow file is ${FNSNOG}" fi +# If any snow files are missing, don't apply snow in the global_cycle step. +if [[ ! -f ${FNSNOA} ]] || [[ ! -f ${FNSNOG} ]]; then + export FNSNOA=" " + export CYCLVARS="FSNOL=99999.,FSNOS=99999.," # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle -if [[ $(${WGRIB} -4yr "${FNSNOA}" 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') -le \ +elif [[ $(${WGRIB} -4yr "${FNSNOA}" 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') -le \ $(${WGRIB} -4yr "${FNSNOG}" 2>/dev/null | grep -i snowc | awk -F: '{print $3}' | awk -F= '{print $2}') ]] ; then export FNSNOA=" " export CYCLVARS="FSNOL=99999.,FSNOS=99999.,"