From cbcc193c1368a8e5580ef5e9d401e1c89bcf0778 Mon Sep 17 00:00:00 2001 From: David Huber Date: Wed, 22 Apr 2026 13:15:28 +0000 Subject: [PATCH 01/11] Increase wallclock for gempak jobs to 10 minutes --- dev/parm/config/gfs/config.resources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/parm/config/gfs/config.resources b/dev/parm/config/gfs/config.resources index f5707caa2c3..47e4172638c 100644 --- a/dev/parm/config/gfs/config.resources +++ b/dev/parm/config/gfs/config.resources @@ -1379,7 +1379,7 @@ case ${step} in "gempak") # Walltime is per forecast hour; will be multipled by group size - walltime="00:05:00" + walltime="00:10:00" threads_per_task=1 if [[ "${RUN}" = *gdas ]]; then ntasks=2 From 7bdeec29833cb9b4f67601d845961e8580975eca Mon Sep 17 00:00:00 2001 From: DavidHuber-NOAA Date: Tue, 7 Apr 2026 13:15:48 +0000 Subject: [PATCH 02/11] Add messages to all err_exit/err_chk calls --- dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX | 6 +-- dev/jobs/JGDAS_ATMOS_CHGRES_FORENKF | 2 +- dev/jobs/JGDAS_ATMOS_GEMPAK | 4 +- dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC | 7 ++-- dev/jobs/JGDAS_ATMOS_VERFOZN | 2 +- dev/jobs/JGDAS_ATMOS_VERFRAD | 2 +- dev/jobs/JGDAS_ENKF_POST | 2 +- dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG | 2 +- dev/jobs/JGFS_ATMOS_CYCLONE_GENESIS | 2 +- dev/jobs/JGFS_ATMOS_CYCLONE_TRACKER | 4 +- dev/jobs/JGFS_ATMOS_FBWIND | 2 +- dev/jobs/JGFS_ATMOS_GEMPAK | 10 ++--- dev/jobs/JGFS_ATMOS_GEMPAK_META | 2 +- dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF | 2 +- dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC | 2 +- dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS | 2 +- dev/jobs/JGFS_ATMOS_POSTSND | 2 +- dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE | 2 +- dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE | 2 +- dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL | 2 +- dev/jobs/JGLOBAL_ANALYSIS_STATS | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE | 2 +- .../JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL | 2 +- dev/jobs/JGLOBAL_ATMOS_ANALYSIS | 4 +- dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC | 4 +- dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI | 2 +- dev/jobs/JGLOBAL_ATMOS_ANALYSIS_DIAG | 2 +- dev/jobs/JGLOBAL_ATMOS_ENSSTAT | 2 +- dev/jobs/JGLOBAL_ATMOS_PRODUCTS | 2 +- dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID | 2 +- dev/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC | 2 +- dev/jobs/JGLOBAL_ATMOS_UPP | 2 +- dev/jobs/JGLOBAL_ATMOS_VMINMON | 2 +- dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE | 2 +- dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT | 2 +- dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE | 2 +- dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL | 2 +- dev/jobs/JGLOBAL_ENKF_DIAG | 2 +- dev/jobs/JGLOBAL_ENKF_ECEN | 2 +- dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI | 2 +- dev/jobs/JGLOBAL_ENKF_SELECT_OBS | 2 +- dev/jobs/JGLOBAL_ENKF_SFC_GCYCLE | 2 +- dev/jobs/JGLOBAL_ENKF_UPDATE | 2 +- dev/jobs/JGLOBAL_FORECAST | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_CHECKPOINT | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE | 4 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL | 2 +- dev/jobs/JGLOBAL_MARINE_BMAT | 2 +- dev/jobs/JGLOBAL_MARINE_BMAT_INITIALIZE | 2 +- dev/jobs/JGLOBAL_OCEANICE_PRODUCTS | 2 +- dev/jobs/JGLOBAL_PREP_OCEAN_OBS | 2 +- dev/jobs/JGLOBAL_SNOWENS_ANALYSIS | 2 +- dev/jobs/JGLOBAL_SNOW_ANALYSIS | 2 +- dev/jobs/JGLOBAL_WAVE_GEMPAK | 2 +- dev/jobs/JGLOBAL_WAVE_INIT | 2 +- dev/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL | 2 +- dev/jobs/JGLOBAL_WAVE_PRDGEN_BULLS | 2 +- dev/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED | 2 +- dev/scripts/exgdas_atmos_chgres_forenkf.sh | 2 +- dev/scripts/exgdas_atmos_gempak_gif_ncdc.sh | 2 +- dev/scripts/exgfs_atmos_nawips.sh | 2 +- dev/scripts/exgfs_atmos_postsnd.sh | 6 ++- ush/gfs_bufr.sh | 2 +- ush/tropcy_relocate.sh | 4 +- ush/tropcy_relocate_extrkr.sh | 33 +++++++++------ ush/wave_prnc_cur.sh | 1 - ush/wave_tar.sh | 41 +++++++++---------- 74 files changed, 131 insertions(+), 119 deletions(-) diff --git a/dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX b/dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX index 884647017be..23b1d780206 100755 --- a/dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX +++ b/dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX @@ -41,7 +41,7 @@ EXSCRIPT=${GDASAEROBMATPY:-${SCRgfs}/exgdas_aero_analysis_generate_bmatrix.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate bmatrix for aerosol analysis" fi ############################################## @@ -58,10 +58,10 @@ fi ########################################## # Remove the Temporary working directory ########################################## -cd "${DATAROOT}" && true +cd "${DATAROOT}" || true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to change directory to ${DATAROOT}" fi if [[ "${KEEPDATA}" == "NO" ]]; then rm -rf "${DATA}" diff --git a/dev/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/dev/jobs/JGDAS_ATMOS_CHGRES_FORENKF index 7e93cb36ce9..75c7356e301 100755 --- a/dev/jobs/JGDAS_ATMOS_CHGRES_FORENKF +++ b/dev/jobs/JGDAS_ATMOS_CHGRES_FORENKF @@ -36,7 +36,7 @@ declare -rx COMIN_ATMOS_HISTORY_MEM="${ROTDIR}/${RUN}.${PDY}/${cyc}/mem001/model ${CHGRESFCSTSH:-${SCRgfs}/exgdas_atmos_chgres_forenkf.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run chgres for the ensemble" fi ############################################## diff --git a/dev/jobs/JGDAS_ATMOS_GEMPAK b/dev/jobs/JGDAS_ATMOS_GEMPAK index 13b3a2629aa..c9db40529d5 100755 --- a/dev/jobs/JGDAS_ATMOS_GEMPAK +++ b/dev/jobs/JGDAS_ATMOS_GEMPAK @@ -42,7 +42,7 @@ done export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate AWIPS products at 1 degree resolution" fi ######################################################## @@ -53,7 +53,7 @@ fi export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate AWIPS products at 0.25 degree resolution" fi ############################################ diff --git a/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index 8277afd5a4a..9fd251c1a19 100755 --- a/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -66,16 +66,17 @@ export pgmout=OUTPUT.$$ "${HOMEgfs}/gempak/ush/gdas_meta_na.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate North American meta gempak products" fi "${HOMEgfs}/gempak/ush/gdas_meta_loop.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate looped image meta gempak products" fi if [[ "${cyc}" == '06' ]]; then + # TODO remove ECMWF and UKMET meta generation once the products are no longer needed "${HOMEgfs}/gempak/ush/gdas_ecmwf_meta_ver.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then @@ -101,7 +102,7 @@ if ((cyc % 12 == 0)); then fi export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate GDAS GEMPAK GIF products for NCDC" fi ######################################################## diff --git a/dev/jobs/JGDAS_ATMOS_VERFOZN b/dev/jobs/JGDAS_ATMOS_VERFOZN index aa516ba8719..1321da8cdac 100755 --- a/dev/jobs/JGDAS_ATMOS_VERFOZN +++ b/dev/jobs/JGDAS_ATMOS_VERFOZN @@ -42,7 +42,7 @@ if [[ ! -d ${TANKverf_ozn} ]]; then mkdir -p "${TANKverf_ozn}"; fi "${SCRgfs}/exgdas_atmos_verfozn.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate ozone monitor products" fi ################################ diff --git a/dev/jobs/JGDAS_ATMOS_VERFRAD b/dev/jobs/JGDAS_ATMOS_VERFRAD index 32bce617758..18cd6b5cd92 100755 --- a/dev/jobs/JGDAS_ATMOS_VERFRAD +++ b/dev/jobs/JGDAS_ATMOS_VERFRAD @@ -45,7 +45,7 @@ if [[ ! -d ${TANKverf_rad} ]]; then mkdir -p "${TANKverf_rad}"; fi "${SCRgfs}/exgdas_atmos_verfrad.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate radiance monitor products" fi ################################ diff --git a/dev/jobs/JGDAS_ENKF_POST b/dev/jobs/JGDAS_ENKF_POST index 4f32f8f42db..f15b6d09be9 100755 --- a/dev/jobs/JGDAS_ENKF_POST +++ b/dev/jobs/JGDAS_ENKF_POST @@ -33,7 +33,7 @@ export LEVS=$((LEVS - 1)) ${ENKFPOSTSH:-${SCRgfs}/exgdas_enkf_post.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run ensemble post processing" fi ############################################## diff --git a/dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index 36989f0998c..4f247d285f1 100755 --- a/dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +++ b/dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -42,7 +42,7 @@ export pgmout=OUTPUT.$$ "${SCRgfs}/exgfs_atmos_awips_20km_1p0deg.sh" "${fcsthr}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate AWIPS products at 20km resolution" fi ######################################################## diff --git a/dev/jobs/JGFS_ATMOS_CYCLONE_GENESIS b/dev/jobs/JGFS_ATMOS_CYCLONE_GENESIS index 5e63b57201d..bac2fe10372 100755 --- a/dev/jobs/JGFS_ATMOS_CYCLONE_GENESIS +++ b/dev/jobs/JGFS_ATMOS_CYCLONE_GENESIS @@ -51,7 +51,7 @@ source "${USHgfs}/unset_strict.sh" export err=$? source "${USHgfs}/set_strict.sh" if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run the tropical cyclone genesis script" fi ############################################## diff --git a/dev/jobs/JGFS_ATMOS_CYCLONE_TRACKER b/dev/jobs/JGFS_ATMOS_CYCLONE_TRACKER index 63f8dc8f316..3a3a98cde55 100755 --- a/dev/jobs/JGFS_ATMOS_CYCLONE_TRACKER +++ b/dev/jobs/JGFS_ATMOS_CYCLONE_TRACKER @@ -60,14 +60,14 @@ export loopnum=1 "${USHens_tracker}/data_check_gfs.sh" export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Data check failed for GFS input data. Cannot run the tracker script." fi #------------------------------------------------ "${USHens_tracker}/extrkr_gfs.sh" "${loopnum}" "${cmodel}" "${PDY}${cyc}" "${pert}" "${DATA}" export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Tropical cyclone tracking failed" fi # cat ${DATA}/trak.avnx.atcfunix.${PDY}${cyc} | \ diff --git a/dev/jobs/JGFS_ATMOS_FBWIND b/dev/jobs/JGFS_ATMOS_FBWIND index bbe1e9bf8f0..69665fc4f11 100755 --- a/dev/jobs/JGFS_ATMOS_FBWIND +++ b/dev/jobs/JGFS_ATMOS_FBWIND @@ -36,7 +36,7 @@ fi "${SCRgfs}/exgfs_atmos_fbwind.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate Pacific WMO wind products" fi ######################################################## diff --git a/dev/jobs/JGFS_ATMOS_GEMPAK b/dev/jobs/JGFS_ATMOS_GEMPAK index e30df0ca682..bdc717d6879 100755 --- a/dev/jobs/JGFS_ATMOS_GEMPAK +++ b/dev/jobs/JGFS_ATMOS_GEMPAK @@ -56,7 +56,7 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "1p00" "${FHR3}" "GFS_GEMPAK" "${COMOUT_ATMOS_GEMPAK_1p00}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 1 degree GEMPAK products for forecast hour ${FHR3}" fi fi fi @@ -68,7 +68,7 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "1p00" "${FHR3}" "GFS_GEMPAK" "${COMOUT_ATMOS_GEMPAK_1p00}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 1 degree GEMPAK products for forecast hour ${FHR3}" fi fi fi @@ -83,7 +83,7 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "0p50" "${FHR3}" "GFS_GEMPAK" "${COMOUT_ATMOS_GEMPAK_0p50}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 0.5 degree GEMPAK products for forecast hour ${FHR3}" fi fi fi @@ -95,7 +95,7 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "0p50" "${FHR3}" "GFS_GEMPAK" "${COMOUT_ATMOS_GEMPAK_0p50}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 0.5 degree GEMPAK products for forecast hour ${FHR3}" fi fi fi @@ -107,7 +107,7 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "0p50" "${FHR3}" "GFS_GEMPAK" "${COMOUT_ATMOS_GEMPAK_0p50}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 0.5 degree GEMPAK products for forecast hour ${FHR3}" fi fi fi diff --git a/dev/jobs/JGFS_ATMOS_GEMPAK_META b/dev/jobs/JGFS_ATMOS_GEMPAK_META index e1dc84c44d7..007c9328bc2 100755 --- a/dev/jobs/JGFS_ATMOS_GEMPAK_META +++ b/dev/jobs/JGFS_ATMOS_GEMPAK_META @@ -65,7 +65,7 @@ mkdir -m 775 -p "${COMOUT_ATMOS_GEMPAK_META}" "${SCRgfs}/exgfs_atmos_gempak_meta.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate at least one GFS GEMPAK meta product" fi ######################################################## diff --git a/dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF index 94cef0a567e..105fa348a00 100755 --- a/dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +++ b/dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -57,7 +57,7 @@ export pgmout=OUTPUT.$$ "${SCRgfs}/exgfs_atmos_gempak_gif_ncdc_skew_t.sh" export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate GEMPAK skew-T GIFs for NCDC" fi ######################################################## diff --git a/dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index dd8673568ea..92a4ebd9dde 100755 --- a/dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -58,7 +58,7 @@ export EXT=".grd221" export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate simulated GOES GEMPAK products for forecast hour ${FHR3}" fi cd "${DATA}" || exit 1 diff --git a/dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index 7f89cd2e28b..86b0c4cf327 100755 --- a/dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS +++ b/dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -36,7 +36,7 @@ mkdir -m 775 -p "${COMOUT_ATMOS_GOES}" "${SCRgfs}/exgfs_atmos_grib2_special_npoess.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate simulated NPOESS products" fi ############################################################# diff --git a/dev/jobs/JGFS_ATMOS_POSTSND b/dev/jobs/JGFS_ATMOS_POSTSND index 1908373cead..4cf83c7354c 100755 --- a/dev/jobs/JGFS_ATMOS_POSTSND +++ b/dev/jobs/JGFS_ATMOS_POSTSND @@ -43,7 +43,7 @@ fi "${SCRgfs}/exgfs_atmos_postsnd.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate GFS BUFR soundings and/or associated WMO products" fi ############################################## diff --git a/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE index 3cd6c97744c..d2b9bf742d6 100755 --- a/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE @@ -43,7 +43,7 @@ EXSCRIPT=${GDASAEROFINALPY:-${SCRgfs}/exglobal_aero_analysis_finalize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to finalize aerosol analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE b/dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE index 3f15ba6973f..9cd20a64416 100755 --- a/dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE +++ b/dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE @@ -52,7 +52,7 @@ EXSCRIPT=${GDASAEROINITPY:-${SCRgfs}/exglobal_aero_analysis_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to initialize aerosol analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL b/dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL index e107c5ebdf6..7011ce1cec5 100755 --- a/dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL +++ b/dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL @@ -34,7 +34,7 @@ EXSCRIPT=${GDASAEROVARSH:-${SCRgfs}/exglobal_aero_analysis_variational.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run variational aerosol analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ANALYSIS_STATS b/dev/jobs/JGLOBAL_ANALYSIS_STATS index a2dc8ec2837..245b23fc71a 100755 --- a/dev/jobs/JGLOBAL_ANALYSIS_STATS +++ b/dev/jobs/JGLOBAL_ANALYSIS_STATS @@ -58,7 +58,7 @@ EXSCRIPT=${ANLSTATSPY:-${SCRgfs}/exglobal_analysis_stats.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate analysis statistics for ${RUN} ${PDY}${cyc}" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE index dedd4439b4f..c9fb2f2f8ae 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE @@ -42,7 +42,7 @@ EXSCRIPT=${GDASATMENSFINALPY:-${SCRgfs}/exglobal_atmens_analysis_finalize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to finalize the atmospheric ensemble analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT index 9d441f496a6..43431379a7f 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT @@ -34,7 +34,7 @@ EXSCRIPT=${GDASATMENSRUNSH:-${SCRgfs}/exglobal_atmens_analysis_fv3_increment.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate the atmospheric ensemble analysis FV3 increment" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE index b70c3c31935..411e1880d8a 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE @@ -42,7 +42,7 @@ EXSCRIPT=${GDASATMENSINITPY:-${SCRgfs}/exglobal_atmens_analysis_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to initialize the atmospheric ensemble analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF index c16d3cad7b4..6519bc5eb3e 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF @@ -33,7 +33,7 @@ EXSCRIPT=${GDASATMENSRUNSH:-${SCRgfs}/exglobal_atmens_analysis_letkf.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run the atmospheric ensemble LETKF analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS index 969c24b341b..d9fdff11190 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS @@ -33,7 +33,7 @@ EXSCRIPT=${GDASATMENSOBSSH:-${SCRgfs}/exglobal_atmens_analysis_obs.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to assimilate observations for the atmospheric ensemble analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL index ed9e4db50f3..9deb84c42c9 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL @@ -34,7 +34,7 @@ EXSCRIPT=${GDASATMENSSOLSH:-${SCRgfs}/exglobal_atmens_analysis_sol.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to solve the atmospheric ensemble analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS index d0d7852b7bb..1e104ddbeac 100755 --- a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS +++ b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -69,7 +69,7 @@ export LEVS LEVS=$(${NCLEN} "${ATMGES}" pfull) && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to get LEVS from ${ATMGES}" fi if [[ "${DOHYBVAR}" == "YES" ]]; then @@ -103,7 +103,7 @@ fi ${ANALYSISSH:-${SCRgfs}/exglobal_atmos_analysis.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run the GSI atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index 9a01513ab83..f5cf40da6d9 100755 --- a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +++ b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -58,7 +58,7 @@ export LEVS LEVS=$(${NCLEN} "${ATMGES}" pfull) && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to get LEVS from ${ATMGES}" fi export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} @@ -69,7 +69,7 @@ export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} ${ANALCALCSH:-${SCRgfs}/exglobal_atmos_analysis_calc.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate gaussian gridded analysis for ${RUN} ${PDY}${cyc}" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI index f4f98b191e6..2e44f043dbc 100755 --- a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI +++ b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI @@ -48,7 +48,7 @@ EXSCRIPT=${GDASATMRUNPY:-${SCRgfs}/exglobal_atmos_analysis_calc_fv3jedi.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the atmospheric analysis with fv3jedi" fi # Write analysis log file diff --git a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_DIAG b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_DIAG index 3d2427702e2..53ac40f7cbd 100755 --- a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_DIAG +++ b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_DIAG @@ -47,7 +47,7 @@ export pCOMIN_ATMOS_ANALYSIS ${ANALDIAGSH:-${SCRgfs}/exglobal_diag.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate GSI diagnostics from the atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_ENSSTAT b/dev/jobs/JGLOBAL_ATMOS_ENSSTAT index 59d467d8346..0064e75c7d6 100755 --- a/dev/jobs/JGLOBAL_ATMOS_ENSSTAT +++ b/dev/jobs/JGLOBAL_ATMOS_ENSSTAT @@ -36,7 +36,7 @@ done "${SCRgfs}/exglobal_atmos_ensstat.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the atmospheric ensemble statistics" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_PRODUCTS b/dev/jobs/JGLOBAL_ATMOS_PRODUCTS index 6550afe7dc9..9f8445d68c8 100755 --- a/dev/jobs/JGLOBAL_ATMOS_PRODUCTS +++ b/dev/jobs/JGLOBAL_ATMOS_PRODUCTS @@ -48,7 +48,7 @@ export PREFIX="${RUN}.t${cyc}z." "${SCRgfs}/exglobal_atmos_products.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate atmospheric GRIB2 products" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID b/dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID index 7b954bbb5b7..a57ceeb8f4f 100755 --- a/dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID +++ b/dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID @@ -49,7 +49,7 @@ export USE_CFP=YES ${SFCANALSH:-${SCRgfs}/exglobal_atmos_sfcanl_regrid.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the surface analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC b/dev/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC index eb763f01498..81c5522172d 100755 --- a/dev/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC +++ b/dev/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC @@ -47,7 +47,7 @@ export BKGFREQ=1 # for hourly relocation ${TROPCYQCRELOSH:-${SCRgfs}/exglobal_atmos_tropcy_qc_reloc.sh} export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run tropical cyclone QC and/or relocation" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_UPP b/dev/jobs/JGLOBAL_ATMOS_UPP index 055de9beea2..890b2594c31 100755 --- a/dev/jobs/JGLOBAL_ATMOS_UPP +++ b/dev/jobs/JGLOBAL_ATMOS_UPP @@ -37,7 +37,7 @@ mkdir -p "${COMOUT_ATMOS_MASTER}" "${SCRgfs}/exglobal_atmos_upp.py" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate atmospheric GRIB2 master files" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_VMINMON b/dev/jobs/JGLOBAL_ATMOS_VMINMON index b0484201dab..c7a186af541 100755 --- a/dev/jobs/JGLOBAL_ATMOS_VMINMON +++ b/dev/jobs/JGLOBAL_ATMOS_VMINMON @@ -44,7 +44,7 @@ mkdir -p "${M_TANKverf}" "${SCRgfs}/exglobal_atmos_vminmon.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run the GSI minimization monitor" fi ################################ diff --git a/dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE index 150d1dd185d..acfa976d8d5 100755 --- a/dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE @@ -41,7 +41,7 @@ EXSCRIPT=${GDASATMFINALPY:-${SCRgfs}/exglobal_atm_analysis_finalize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to finalize the atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT b/dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT index c20e9eed7c8..d5609a967ff 100755 --- a/dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT +++ b/dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT @@ -34,7 +34,7 @@ EXSCRIPT=${GDASATMRUNSH:-${SCRgfs}/exglobal_atm_analysis_fv3_increment.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the atmospheric FV3 increment" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE b/dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE index de2b58def65..903cb6c7bde 100755 --- a/dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE +++ b/dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE @@ -45,7 +45,7 @@ EXSCRIPT=${GDASATMINITPY:-${SCRgfs}/exglobal_atm_analysis_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to initialize the atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL b/dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL index e8e0ae9a5de..7b56ec61264 100755 --- a/dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL +++ b/dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL @@ -34,7 +34,7 @@ EXSCRIPT=${GDASATMRUNSH:-${SCRgfs}/exglobal_atm_analysis_variational.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the atmospheric variational analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ENKF_DIAG b/dev/jobs/JGLOBAL_ENKF_DIAG index de2ce752000..60960ffdcc6 100755 --- a/dev/jobs/JGLOBAL_ENKF_DIAG +++ b/dev/jobs/JGLOBAL_ENKF_DIAG @@ -52,7 +52,7 @@ export DIAG_COMPRESS="NO" ${ANALDIAGSH:-${SCRgfs}/exglobal_diag.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate GSI diagnostics from the atmospheric ensemble analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ENKF_ECEN b/dev/jobs/JGLOBAL_ENKF_ECEN index 5cebaa0bad7..4b5dd7c098e 100755 --- a/dev/jobs/JGLOBAL_ENKF_ECEN +++ b/dev/jobs/JGLOBAL_ENKF_ECEN @@ -48,7 +48,7 @@ declare -rx COMIN_ATMOS_HISTORY_STAT_PREV="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/en ${ENKFRECENSH:-${SCRgfs}/exglobal_enkf_ecen.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to recenter the ensemble mean" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI b/dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI index 5f18052ed49..a2efa2f3882 100755 --- a/dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI +++ b/dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI @@ -49,7 +49,7 @@ EXSCRIPT=${GDASATMRUNPY:-${SCRgfs}/exglobal_enkf_ecen_fv3jedi.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to recenter the JEDI ensemble mean" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ENKF_SELECT_OBS b/dev/jobs/JGLOBAL_ENKF_SELECT_OBS index 62ccc55374e..86393b35d9a 100755 --- a/dev/jobs/JGLOBAL_ENKF_SELECT_OBS +++ b/dev/jobs/JGLOBAL_ENKF_SELECT_OBS @@ -132,7 +132,7 @@ done ${INVOBSSH:-${SCRgfs}/exglobal_enkf_select_obs.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to assimilate observations for the GSI ensemble mean analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ENKF_SFC_GCYCLE b/dev/jobs/JGLOBAL_ENKF_SFC_GCYCLE index 4853f27c7b5..b258dba8273 100755 --- a/dev/jobs/JGLOBAL_ENKF_SFC_GCYCLE +++ b/dev/jobs/JGLOBAL_ENKF_SFC_GCYCLE @@ -55,7 +55,7 @@ export USE_CFP=YES ${ENKFSFCGCYCLESH:-${SCRgfs}/exglobal_enkf_sfc_gcycle.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the ensemble surface analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ENKF_UPDATE b/dev/jobs/JGLOBAL_ENKF_UPDATE index 5448f86f7d2..3afe71d8b02 100755 --- a/dev/jobs/JGLOBAL_ENKF_UPDATE +++ b/dev/jobs/JGLOBAL_ENKF_UPDATE @@ -40,7 +40,7 @@ declare -rx COMIN_ATMOS_HISTORY_STAT_PREV="${ROTDIR}/enkfgdas.${GDATE:0:8}/${GDA ${ENKFUPDSH:-${SCRgfs}/exglobal_enkf_update.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to update the ensemble" fi ############################################## diff --git a/dev/jobs/JGLOBAL_FORECAST b/dev/jobs/JGLOBAL_FORECAST index bddde40df87..70fc2cac30f 100755 --- a/dev/jobs/JGLOBAL_FORECAST +++ b/dev/jobs/JGLOBAL_FORECAST @@ -123,7 +123,7 @@ fi "${FORECASTSH:-${SCRgfs}/exglobal_forecast.sh}" && true # The && true prevents the shell from exiting when set -e export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run the ${RUN} forecast for ${PDY}${cyc}" fi # Send DBN alerts for EnKF diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_CHECKPOINT b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_CHECKPOINT index ebce191aed5..fea9d8d29ef 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_CHECKPOINT +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_CHECKPOINT @@ -35,7 +35,7 @@ EXSCRIPT=${GDASMARINEANALYSIS:-${SCRgfs}/exglobal_marine_analysis_checkpoint.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to update the ocean increment and/or ice restarts" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN index 35b413e7ab4..8849fa1a682 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN @@ -58,7 +58,7 @@ EXSCRIPT=${GDASOCNCENPY:-${HOMEgfs}/scripts/exglobal_marine_analysis_ecen.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to recenter the ocean and/or ice analyses" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE index 0acd0f400b3..40baa2dc49e 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE @@ -49,7 +49,7 @@ EXSCRIPT=${GDASMARINEANALYSIS:-${SCRgfs}/exglobal_marine_analysis_finalize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to finalize the ocean and/or ice analyses" fi ########################################## @@ -58,7 +58,7 @@ fi cd "${DATAROOT}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to change directory to ${DATAROOT} to remove temporary data" fi if [[ "${KEEPDATA}" == "NO" ]]; then diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE index a010b0f66af..484ab26990f 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE @@ -51,7 +51,7 @@ EXSCRIPT=${GDASMARINEANALYSIS:-${SCRgfs}/exglobal_marine_analysis_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to initialize the ocean and/or ice analyses" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF index 46a8a2754f7..213e9448b0f 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF @@ -69,7 +69,7 @@ EXSCRIPT=${GDASOCNLETKFPY:-${HOMEgfs}/scripts/exglobal_marine_analysis_letkf.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run the marine LETKF analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL index 0e2ed848fd9..f8bb91a0a96 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL @@ -35,7 +35,7 @@ EXSCRIPT=${GDASMARINERUNSH:-${SCRgfs}/exglobal_marine_analysis_variational.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run the variational marine analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_BMAT b/dev/jobs/JGLOBAL_MARINE_BMAT index 2feefdd0054..8899c6b1718 100755 --- a/dev/jobs/JGLOBAL_MARINE_BMAT +++ b/dev/jobs/JGLOBAL_MARINE_BMAT @@ -73,7 +73,7 @@ EXSCRIPT=${GDASMARINEBMATRUNPY:-${SCRgfs}/exglobal_marinebmat.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the marine background error covariance matrix" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_BMAT_INITIALIZE b/dev/jobs/JGLOBAL_MARINE_BMAT_INITIALIZE index ba979aa7dcf..e3611fe8050 100755 --- a/dev/jobs/JGLOBAL_MARINE_BMAT_INITIALIZE +++ b/dev/jobs/JGLOBAL_MARINE_BMAT_INITIALIZE @@ -72,7 +72,7 @@ EXSCRIPT=${GDASMARINEBMATRUNPY:-${SCRgfs}/exglobal_marinebmat_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to initialize the marine background error covariance matrix" fi ############################################## # End JOB SPECIFIC work diff --git a/dev/jobs/JGLOBAL_OCEANICE_PRODUCTS b/dev/jobs/JGLOBAL_OCEANICE_PRODUCTS index 963ed8fa204..daf814d8c2a 100755 --- a/dev/jobs/JGLOBAL_OCEANICE_PRODUCTS +++ b/dev/jobs/JGLOBAL_OCEANICE_PRODUCTS @@ -50,7 +50,7 @@ fi "${SCRgfs}/exglobal_oceanice_products.py" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate ${COMPONENT} products." fi ############################################## diff --git a/dev/jobs/JGLOBAL_PREP_OCEAN_OBS b/dev/jobs/JGLOBAL_PREP_OCEAN_OBS index 1ff296989e8..c9d46dd210b 100755 --- a/dev/jobs/JGLOBAL_PREP_OCEAN_OBS +++ b/dev/jobs/JGLOBAL_PREP_OCEAN_OBS @@ -33,7 +33,7 @@ EXSCRIPT=${GDASPREPOCNOBSPY:-${SCRgfs}/exglobal_prep_ocean_obs.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to prepare ocean observations for assimilation" fi ############################################## diff --git a/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS b/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS index 9ed765ace34..66b113f0aed 100755 --- a/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS +++ b/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS @@ -63,7 +63,7 @@ EXSCRIPT=${SNOWANLPY:-${SCRgfs}/exglobal_snowens_analysis.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to caluclate the ensemble snow analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_SNOW_ANALYSIS b/dev/jobs/JGLOBAL_SNOW_ANALYSIS index 57af8a8d9a1..5dd8daf29d8 100755 --- a/dev/jobs/JGLOBAL_SNOW_ANALYSIS +++ b/dev/jobs/JGLOBAL_SNOW_ANALYSIS @@ -47,7 +47,7 @@ EXSCRIPT=${SNOWANLPY:-${SCRgfs}/exglobal_snow_analysis.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the snow analysis for ${RUN} at ${PDY}${cyc}" fi ############################################## diff --git a/dev/jobs/JGLOBAL_WAVE_GEMPAK b/dev/jobs/JGLOBAL_WAVE_GEMPAK index 1423580e74b..ffd027bf22a 100755 --- a/dev/jobs/JGLOBAL_WAVE_GEMPAK +++ b/dev/jobs/JGLOBAL_WAVE_GEMPAK @@ -38,7 +38,7 @@ if [[ ! -d ${COMOUT_WAVE_GEMPAK} ]]; then mkdir -p "${COMOUT_WAVE_GEMPAK}"; fi "${SCRgfs}/exgfs_wave_nawips.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate wave gempak/AWIPS products." fi ################################### diff --git a/dev/jobs/JGLOBAL_WAVE_INIT b/dev/jobs/JGLOBAL_WAVE_INIT index 3c905929eb7..c847c3bbfb2 100755 --- a/dev/jobs/JGLOBAL_WAVE_INIT +++ b/dev/jobs/JGLOBAL_WAVE_INIT @@ -37,7 +37,7 @@ export wave_mpmd=${wave_mpmd:-"cfp"} "${SCRgfs}/exgfs_wave_init.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate wave grids for model initialization." fi ########################################## diff --git a/dev/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL b/dev/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL index 703444bc441..bf2e51c197c 100755 --- a/dev/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL +++ b/dev/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL @@ -36,7 +36,7 @@ export DOBNDPNT_WAV='YES' # Boundary points "${SCRgfs}/exgfs_wave_post_pnt.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate wave boundary point bulletins." fi ########################################## diff --git a/dev/jobs/JGLOBAL_WAVE_PRDGEN_BULLS b/dev/jobs/JGLOBAL_WAVE_PRDGEN_BULLS index 76100906fe6..34f8d02b69b 100755 --- a/dev/jobs/JGLOBAL_WAVE_PRDGEN_BULLS +++ b/dev/jobs/JGLOBAL_WAVE_PRDGEN_BULLS @@ -29,7 +29,7 @@ mkdir -p "${COMOUT_WAVE_WMO}" "${SCRgfs}/exgfs_wave_prdgen_bulls.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate wave WMO bulletins." fi ################################### diff --git a/dev/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED b/dev/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED index 6343bace200..ae94f9ccb12 100755 --- a/dev/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +++ b/dev/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED @@ -39,7 +39,7 @@ fi "${SCRgfs}/exgfs_wave_prdgen_gridded.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate wave gridded WMO bulletins." fi ################################### diff --git a/dev/scripts/exgdas_atmos_chgres_forenkf.sh b/dev/scripts/exgdas_atmos_chgres_forenkf.sh index f51be67b285..c56dd17e919 100755 --- a/dev/scripts/exgdas_atmos_chgres_forenkf.sh +++ b/dev/scripts/exgdas_atmos_chgres_forenkf.sh @@ -142,7 +142,7 @@ EOF "${USHgfs}/run_mpmd.sh" "${DATA}/mp_chgres.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run chgres on one or more ensemble members!" fi else echo "DO_CALC_ANALYSIS != YES, doing nothing" diff --git a/dev/scripts/exgdas_atmos_gempak_gif_ncdc.sh b/dev/scripts/exgdas_atmos_gempak_gif_ncdc.sh index aaa4072cc7f..b1a4da791bc 100755 --- a/dev/scripts/exgdas_atmos_gempak_gif_ncdc.sh +++ b/dev/scripts/exgdas_atmos_gempak_gif_ncdc.sh @@ -37,7 +37,7 @@ if [[ ${MODEL} == GDAS ]]; then "${HOMEgfs}/gempak/ush/gempak_${RUN}_f${fhr3}_gif.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate GIF for forecast hour ${fhr3}" fi done fi diff --git a/dev/scripts/exgfs_atmos_nawips.sh b/dev/scripts/exgfs_atmos_nawips.sh index 950f479fb34..6098c7225b2 100755 --- a/dev/scripts/exgfs_atmos_nawips.sh +++ b/dev/scripts/exgfs_atmos_nawips.sh @@ -115,7 +115,7 @@ EOF export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to run convert GRIB to GEMPAK grid for forecast hour ${fhr3}" fi cpfs "${GEMGRD}" "${destination}/${GEMGRD}" diff --git a/dev/scripts/exgfs_atmos_postsnd.sh b/dev/scripts/exgfs_atmos_postsnd.sh index 725acf5548b..c7aa606c7c6 100755 --- a/dev/scripts/exgfs_atmos_postsnd.sh +++ b/dev/scripts/exgfs_atmos_postsnd.sh @@ -147,7 +147,11 @@ if [[ $((10#${fhr})) -eq 0 ]]; then else export F00FLAG="NO" fi -${runscript} "${fhr}" "${fhr_p}" "${FINT}" "${F00FLAG}" "${DATA}" +${runscript} "${fhr}" "${fhr_p}" "${FINT}" "${F00FLAG}" "${DATA}" && true +export err=$? +if [[ ${err} -ne 0 ]]; then + err_exit "Failed to generate BUFR sounding files for forecast hour ${fhr}!" +fi ############################################ # Tar and gzip the bufr files created so far diff --git a/ush/gfs_bufr.sh b/ush/gfs_bufr.sh index e1b880b9ea3..9fb4651f1fa 100755 --- a/ush/gfs_bufr.sh +++ b/ush/gfs_bufr.sh @@ -109,7 +109,7 @@ if [[ ${err} -ne 0 ]]; then echo "FATAL ERROR: GFS postsnd job error, Please check files " echo "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.atm.f${fhr}.${atmfm}" echo "${COMIN_ATMOS_HISTORY}/${RUN}.${cycle}.sfc.f${fhr}.${atmfm}" - err_exit + exit 1 fi exit 0 diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh index d7b21daba56..9ba5f973ed6 100755 --- a/ush/tropcy_relocate.sh +++ b/ush/tropcy_relocate.sh @@ -187,7 +187,7 @@ if [[ "${err0}" -ne 0 ]]; then # problem with obtaining date record so exit export err="${err0}" msg="FATAL ERROR: problem with obtaining date record" - err_exit "${msg}" + exit "${err}" fi modhr=$((cyc % 3)) @@ -429,7 +429,7 @@ else # ------------------------------------------------ export err echo "FATAL ERROR: ${USHgfs}/tropcy_relocate_extrkr.sh failed" - err_exit "${msg}" + err_exit "${err}" fi # relocate model tropical cyclone vortices in ges sigma files diff --git a/ush/tropcy_relocate_extrkr.sh b/ush/tropcy_relocate_extrkr.sh index c8fa5927e74..070b93453fa 100755 --- a/ush/tropcy_relocate_extrkr.sh +++ b/ush/tropcy_relocate_extrkr.sh @@ -315,7 +315,8 @@ Model= ---> ${cmodel} <--- ..... Please submit the script again.... EOF ) err=8 - err_exit "${msg}" + echo "${msg}" + exit "${err}" ;; esac @@ -374,7 +375,8 @@ replace the forecast hour characters 00 with XX. Please check the name in the kickoff script and qsub it again. EOF err=8 - err_exit "${msg}" + echo "${msg}" + exit "${err}" fi fflag='y' @@ -425,7 +427,8 @@ EOF EOF ) err=8 - err_exit "${msg}" + echo "${msg}" + exit "${err}" fi cat << EOF @@ -510,7 +513,8 @@ if [[ ${numvitrecs} -eq 0 ]]; then EOF ) err=8 - err_exit "${msg}" + echo "${msg}" + exit "${err}" fi # - - - - - - - - - - - - - @@ -600,7 +604,8 @@ else EOF ) err=9 - err_exit "${msg}" + echo "${msg}" + exit "${err}" fi #------------------------------------------------------------------# @@ -621,7 +626,7 @@ if [[ "${numvitrecs}" -eq 0 ]]; then EOF err=8 - err_exit + exit "${err}" fi cat << EOF | tee stormlist @@ -770,7 +775,8 @@ EOF EOF ) err=8 - err_exit "${msg}" + echo "${msg}" + exit "${err}" fi cat "${TMPDIR}/ngmllu850.grb.f${fhour}" "${TMPDIR}/ngmllu700.grb.f${fhour}" \ @@ -866,7 +872,7 @@ EOF EOF err=8 - err_exit + exit "${err}" fi cat "${TMPDIR}/namllu850.grb.f${fhour}" "${TMPDIR}/namllu700.grb.f${fhour}" \ @@ -915,7 +921,8 @@ if [[ "${model}" -eq 4 ]]; then EOF ) err=8 - err_exit "${msg}" + echo "${msg}" + exit "${err}" fi ${GRBINDEX:?} "${ecmwfdir}/${ecmwfgfile}" "${TMPDIR}/${ecmwfgfile}.ix" @@ -1182,7 +1189,8 @@ if [[ "${model}" -eq 7 ]]; then EOF ) err=8 - err_exit "${msg}" + echo "${msg}" + exit "${err}" fi gfile="${ngpsdir}/${ngpsgfile}" @@ -1323,7 +1331,8 @@ EOF EOF ) err=8 - err_exit "${msg}" + echo "${msg}" + exit "${err}" fi cat "${TMPDIR}/otherllu850.grb.f${fhour}" "${TMPDIR}/otherllu700.grb.f${fhour}" \ @@ -1457,7 +1466,7 @@ EOF if [[ "${err}" -gt 0 ]]; then err=9 - err_exit + exit "${err}" fi rm -f fort.* diff --git a/ush/wave_prnc_cur.sh b/ush/wave_prnc_cur.sh index a52b9336dc6..d7796e7e402 100755 --- a/ush/wave_prnc_cur.sh +++ b/ush/wave_prnc_cur.sh @@ -76,7 +76,6 @@ source prep_step "${EXECgfs}/${pgm}" 1> "prnc_${WAVECUR_FID}_${ymdh_rtofs}.out" 2>&1 export err=$? -err_chk if [[ "${err}" -ne 0 ]]; then cat "prnc_${WAVECUR_FID}_${ymdh_rtofs}.out" echo "WARNING: NON-FATAL ERROR IN ${pgm}." diff --git a/ush/wave_tar.sh b/ush/wave_tar.sh index e23162dd47e..60d9bc52162 100755 --- a/ush/wave_tar.sh +++ b/ush/wave_tar.sh @@ -35,8 +35,8 @@ export err if [[ "$#" -lt '3' ]]; then msg='FATAL ERROR: VARIABLES IN ww3_tar.sh NOT SET' - err=1 - err_exit "${msg}" + echo "${msg}" + exit 1 else ID=$1 type=$2 @@ -72,9 +72,8 @@ mkdir "TAR_${filext}_${ID}" # The tested variables should be exported by the postprocessor script. if [[ -z "${COMOUT_WAVE_STATION+x}" || -z "${SENDDBN+x}" || -z "${STA_DIR+x}" ]]; then - msg='FATAL ERROR: EXPORTED VARIABLES IN ww3_tar.sh NOT SET' - err=2 - err_exit "${msg}" + echo 'FATAL ERROR: EXPORTED VARIABLES IN ww3_tar.sh NOT SET' + exit 2 fi # --------------------------------------------------------------------------- # @@ -95,16 +94,14 @@ while [[ "${tardone}" == "no" ]]; do err=$? if [[ ${err} -ne 0 ]]; then - msg='FATAL ERROR: TAR CREATION FAILED *** ' - err=3 - err_exit "${msg}" + echo 'FATAL ERROR: TAR CREATION FAILED *** ' + exit 3 fi filename="${ID}.${type}.tar" if ! wait_for_file "${filename}" "${sleep_interval}" "${countMAX}"; then - msg="FATAL ERROR: File ${filename} not found after waiting $((sleep_interval * (countMAX + 1))) secs" - err=3 - err_exit "${msg}" + echo "FATAL ERROR: File ${filename} not found after waiting $((sleep_interval * (countMAX + 1))) secs" + exit 3 fi if [[ -f "${ID}.${type}.tar" ]]; then @@ -115,21 +112,24 @@ while [[ "${tardone}" == "no" ]]; do done if [[ "${tardone}" == 'no' ]]; then - msg='FATAL ERROR: TAR CREATION FAILED *** ' - err=3 - err_exit "${msg}" + echo 'FATAL ERROR: TAR CREATION FAILED *** ' + exit 4 fi if [[ "${type}" == 'spec' ]]; then if [[ -s "${ID}.${type}.tar" ]]; then file_name="${ID}.${type}.tar.gz" - /usr/bin/gzip -c "${ID}.${type}.tar" > "${file_name}" + # Check if gzip is available + if ! command -v gzip &> /dev/null; then + echo "FATAL ERROR: gzip command not found!" + exit 5 + fi + gzip -c "${ID}.${type}.tar" > "${file_name}" err=$? if [[ ${err} -ne 0 ]]; then - msg='FATAL ERROR: SPECTRAL TAR COMPRESSION FAILED *** ' - err=4 - err_exit + echo 'FATAL ERROR: SPECTRAL TAR COMPRESSION FAILED *** ' + exit 6 fi fi else @@ -146,9 +146,8 @@ cpfs "${file_name}" "${COMOUT_WAVE_STATION}/." err=$? if [[ ${err} -ne 0 ]]; then - msg='FATAL ERROR: TAR COPY FAILED *** ' - export err=4 - err_exit "${msg}" + echo 'FATAL ERROR: TAR COPY FAILED *** ' + export err=6 fi if [[ "${SENDDBN}" == "YES" ]]; then From 02c318267d22212b4fcb90353576e6cecb4aea5b Mon Sep 17 00:00:00 2001 From: Anton Fernando Date: Wed, 6 May 2026 14:43:20 -0400 Subject: [PATCH 03/11] Refactor error handling in tropcy_relocate.sh to use direct exit calls and echo error messages --- ush/tropcy_relocate.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh index 9ba5f973ed6..de0ac735ea9 100755 --- a/ush/tropcy_relocate.sh +++ b/ush/tropcy_relocate.sh @@ -187,6 +187,7 @@ if [[ "${err0}" -ne 0 ]]; then # problem with obtaining date record so exit export err="${err0}" msg="FATAL ERROR: problem with obtaining date record" + echo "${msg}" exit "${err}" fi @@ -234,7 +235,7 @@ if [[ "${modhr}" -ne 0 ]]; then # ----------------------------------------------------------------------------- export err=9 msg="FATAL ERROR: cannot perform tropical cyclone processing because cycle hour is not a multiple of 3-hrs" - err_exit "${msg}" + exit 9 fi for fhr in 6 12; do @@ -312,9 +313,8 @@ EOF errges=$? if [[ "${errges}" -ne 0 ]]; then # problem obtaining global sigma first guess so exit - export err="${errges}" - msg="FATAL ERROR: problem obtaining global sigma guess valid ${fhr} hrs relative to center relocation date/time" - err_exit "${msg}" + echo "FATAL ERROR: problem obtaining global sigma guess valid ${fhr} hrs relative to center relocation date/time" + exit "${errges}" fi # For center time sigma guess file obtained via getges, store pathname from From c3e7330802fc1d4c3200c0405bb5a8989ac2ffa9 Mon Sep 17 00:00:00 2001 From: Anton Fernando Date: Wed, 6 May 2026 15:11:43 -0400 Subject: [PATCH 04/11] Enhance error handling in job scripts by adding descriptive messages to err_exit calls --- dev/jobs/JGDAS_FIT2OBS | 4 ++-- dev/jobs/JGLOBAL_ARCHIVE_VRFY | 6 +++--- dev/jobs/JGLOBAL_ATMOS_POST_MANAGER | 2 +- dev/jobs/JGLOBAL_ATMOS_SFCANL_GCYCLE | 2 +- dev/jobs/JGLOBAL_CLEANUP | 2 +- dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY | 5 ++--- dev/jobs/JGLOBAL_ENKF_SFC_REGRID | 2 +- dev/jobs/JGLOBAL_GLOBUS_ARCH | 8 +++++--- dev/jobs/JGLOBAL_STAGE_IC | 8 ++++++-- dev/jobs/JGLOBAL_WAVE_PREP | 2 +- 10 files changed, 23 insertions(+), 18 deletions(-) diff --git a/dev/jobs/JGDAS_FIT2OBS b/dev/jobs/JGDAS_FIT2OBS index 8babc65b5f7..ed8b68d9a7c 100755 --- a/dev/jobs/JGDAS_FIT2OBS +++ b/dev/jobs/JGDAS_FIT2OBS @@ -76,10 +76,10 @@ if [[ ${CDATE} -gt ${SDATE} ]]; then # Un-export SHELLOPTS before going into the Fit2Obs package (let that package handle logging/errors) export -n SHELLOPTS - "${SCRIPTSfit2obs}/excfs_gdas_vrfyfits.sh" + "${SCRIPTSfit2obs}/excfs_gdas_vrfyfits.sh" && true err=$? if [[ ${err} -ne 0 ]]; then - exit "${err}" + err_exit "Failed to run Fit2Obs verification" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ARCHIVE_VRFY b/dev/jobs/JGLOBAL_ARCHIVE_VRFY index 0ed430941a4..e69130481bf 100755 --- a/dev/jobs/JGLOBAL_ARCHIVE_VRFY +++ b/dev/jobs/JGLOBAL_ARCHIVE_VRFY @@ -55,10 +55,10 @@ fi # Run archive script ############################################################### -${GLOBALARCHIVESH:-${SCRgfs}/exglobal_archive_vrfy.py} -err=$? +${GLOBALARCHIVESH:-${SCRgfs}/exglobal_archive_vrfy.py} && true +export err=$? if [[ ${err} -ne 0 ]]; then - exit "${err}" + err_exit "Failed to verify the archived analysis and forecast files" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_POST_MANAGER b/dev/jobs/JGLOBAL_ATMOS_POST_MANAGER index 0b53cbb8207..0d0e8fbc8a9 100755 --- a/dev/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/dev/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -34,6 +34,6 @@ declare -rx COMIN_ATMOS_HISTORY="${ROTDIR}/${RUN}.${PDY}/${cyc}/model/atmos/hist "${SCRgfs}/exglobal_atmos_pmgr.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate atmospheric post files" fi ######################################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_SFCANL_GCYCLE b/dev/jobs/JGLOBAL_ATMOS_SFCANL_GCYCLE index 5e7c11d5b9e..47947d19b09 100755 --- a/dev/jobs/JGLOBAL_ATMOS_SFCANL_GCYCLE +++ b/dev/jobs/JGLOBAL_ATMOS_SFCANL_GCYCLE @@ -50,7 +50,7 @@ export USE_CFP=YES ${SFCANALSH:-${SCRgfs}/exglobal_atmos_sfcanl_gcycle.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the surface analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_CLEANUP b/dev/jobs/JGLOBAL_CLEANUP index 472ba01ed28..4831573fd55 100755 --- a/dev/jobs/JGLOBAL_CLEANUP +++ b/dev/jobs/JGLOBAL_CLEANUP @@ -17,7 +17,7 @@ source "${USHgfs}/set_strict.sh" "${SCRgfs}/exglobal_cleanup.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to complete cleanup" fi ################################################# diff --git a/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY b/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY index 62385602348..046cbfded04 100755 --- a/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY +++ b/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY @@ -29,10 +29,9 @@ declare -rx COMIN_SNOW_ANALYSIS_ENSSTAT="${ROTDIR}/${RUN}.${PDY}/${cyc}/ensstat/ # Run archive script ############################################################### -"${SCRgfs}/exglobal_enkf_earc_vrfy.py" -err=$? +"${SCRgfs}/exglobal_enkf_earc_vrfy.py" && true if [[ ${err} -ne 0 ]]; then - exit "${err}" + err_exit "Failed to verify the archived ensemble mean and spread statistics" fi ############################################################### diff --git a/dev/jobs/JGLOBAL_ENKF_SFC_REGRID b/dev/jobs/JGLOBAL_ENKF_SFC_REGRID index 0c40cfdb865..b0177324baa 100755 --- a/dev/jobs/JGLOBAL_ENKF_SFC_REGRID +++ b/dev/jobs/JGLOBAL_ENKF_SFC_REGRID @@ -43,7 +43,7 @@ export USE_CFP=YES ${ENKFSFCREGRIDSH:-${SCRgfs}/exglobal_enkf_sfc_regrid.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to calculate the ensemble surface analysis regridding" fi ############################################## diff --git a/dev/jobs/JGLOBAL_GLOBUS_ARCH b/dev/jobs/JGLOBAL_GLOBUS_ARCH index 5b082c44706..3a9b95427a9 100755 --- a/dev/jobs/JGLOBAL_GLOBUS_ARCH +++ b/dev/jobs/JGLOBAL_GLOBUS_ARCH @@ -28,9 +28,11 @@ declare -rx COMIN_CONF="${ROTDIR}/${RUN}.${PDY}/${cyc}/conf" ############################################################### export -n SHELLOPTS -${GLOBALGLOBUSARCHSH:-${SCRgfs}/exglobal_globus_arch.py} -err=$? -[[ ${err} -ne 0 ]] && exit "${err}" +${GLOBALGLOBUSARCHSH:-${SCRgfs}/exglobal_globus_arch.py} && true +export err=$? +if [[ ${err} -ne 0 ]]; then + err_exit "Failed to archive data to Globus." +fi ############################################## # End JOB SPECIFIC work diff --git a/dev/jobs/JGLOBAL_STAGE_IC b/dev/jobs/JGLOBAL_STAGE_IC index 4b39968b5c5..b2aade31e79 100755 --- a/dev/jobs/JGLOBAL_STAGE_IC +++ b/dev/jobs/JGLOBAL_STAGE_IC @@ -19,8 +19,12 @@ PYTHONPATH="${HOMEgfs}/ush/python${PYTHONPATH:+:${PYTHONPATH}}" export PYTHONPATH # Execute staging -"${SCRgfs}/exglobal_stage_ic.py" -err=$? +"${SCRgfs}/exglobal_stage_ic.py" && true +export err=$? +if [[ ${err} -ne 0 ]]; then + err_exit "Failed to stage ICs." +fi +################################### ############################################################### # Check for errors and exit if any of the above failed diff --git a/dev/jobs/JGLOBAL_WAVE_PREP b/dev/jobs/JGLOBAL_WAVE_PREP index b1a0e5cdc64..ff6b166aab5 100755 --- a/dev/jobs/JGLOBAL_WAVE_PREP +++ b/dev/jobs/JGLOBAL_WAVE_PREP @@ -41,7 +41,7 @@ mkdir -p "${COMOUT_WAVE_PREP}" export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate GDAS WAVE PREP products for NCDC" fi ########################################## From 0a6f216a6e4d139ecc6ffd8b1595619eb1f86b32 Mon Sep 17 00:00:00 2001 From: Anton Fernando Date: Wed, 6 May 2026 15:14:54 -0400 Subject: [PATCH 05/11] Enhance error handling by adding descriptive messages to err_exit calls across multiple job scripts --- dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC | 4 ++-- dev/jobs/JGFS_ATMOS_GEMPAK | 12 ++++++------ dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF | 2 +- dev/jobs/JGLOBAL_SNOWENS_ANALYSIS | 2 +- dev/jobs/JGLOBAL_SNOW_ANALYSIS | 2 +- ush/tropcy_relocate.sh | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index 9fd251c1a19..9e89d7e6374 100755 --- a/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -80,13 +80,13 @@ if [[ "${cyc}" == '06' ]]; then "${HOMEgfs}/gempak/ush/gdas_ecmwf_meta_ver.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate ECMWF meta gempak products for NCDC" fi "${HOMEgfs}/gempak/ush/gdas_ukmet_meta_ver.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate UKMET meta gempak products for NCDC" fi fi ######################################################## diff --git a/dev/jobs/JGFS_ATMOS_GEMPAK b/dev/jobs/JGFS_ATMOS_GEMPAK index bdc717d6879..7079e56248b 100755 --- a/dev/jobs/JGFS_ATMOS_GEMPAK +++ b/dev/jobs/JGFS_ATMOS_GEMPAK @@ -122,7 +122,7 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "0p25" "${FHR3}" "GFS_GEMPAK" "${COMOUT_ATMOS_GEMPAK_0p25}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 0.25 degree GEMPAK products for forecast hour ${FHR3}" fi fi fi @@ -134,7 +134,7 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "0p25" "${FHR3}" "GFS_GEMPAK" "${COMOUT_ATMOS_GEMPAK_0p25}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 0.25 degree GEMPAK products for forecast hour ${FHR3}" fi fi fi @@ -146,7 +146,7 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "0p25" "${FHR3}" "GFS_GEMPAK" "${COMOUT_ATMOS_GEMPAK_0p25}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 0.25 degree GEMPAK products for forecast hour ${FHR3}" fi fi fi @@ -161,19 +161,19 @@ if [[ "${fhr}" -ge "${fhmin}" ]] && [[ "${fhr}" -le "${fhmax}" ]]; then "${SCRgfs}/exgfs_atmos_nawips.sh" "35km_pac" "${FHR3}" "GFS_GEMPAK_WWB" "${COMOUT_ATMOS_GEMPAK_35km_pac}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate Pacific 35km GEMPAK products for forecast hour ${FHR3}" fi "${SCRgfs}/exgfs_atmos_nawips.sh" "35km_atl" "${FHR3}" "GFS_GEMPAK_WWB" "${COMOUT_ATMOS_GEMPAK_35km_atl}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate Atlantic 35km GEMPAK products for forecast hour ${FHR3}" fi "${SCRgfs}/exgfs_atmos_nawips.sh" "40km" "${FHR3}" "GFS_GEMPAK_WWB" "${COMOUT_ATMOS_GEMPAK_40km}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to generate 40km GEMPAK products for forecast hour ${FHR3}" fi fi fi diff --git a/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE index d2b9bf742d6..f8eb1fc40ce 100755 --- a/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE @@ -63,7 +63,7 @@ fi cd "${DATAROOT}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to change directory to ${DATAROOT} to remove temporary working directory" fi if [[ "${KEEPDATA}" == "NO" ]]; then rm -rf "${DATA}" diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN index 8849fa1a682..98a2d654ee6 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN @@ -78,7 +78,7 @@ fi cd "${DATAROOT/enkf/}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to change directory to ${DATAROOT/enkf/} to remove temporary working directory" fi exit 0 diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF index 213e9448b0f..9aba02d5a7f 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF @@ -90,7 +90,7 @@ fi cd "${DATAROOT/enkf/}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to change directory to ${DATAROOT/enkf/} to remove temporary working directory" fi exit 0 diff --git a/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS b/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS index 66b113f0aed..9dbaad619cc 100755 --- a/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS +++ b/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS @@ -83,7 +83,7 @@ fi cd "${DATAROOT}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to change directory to ${DATAROOT} to remove temporary working directory" fi if [[ "${KEEPDATA}" == "NO" ]]; then rm -rf "${DATA}" diff --git a/dev/jobs/JGLOBAL_SNOW_ANALYSIS b/dev/jobs/JGLOBAL_SNOW_ANALYSIS index 5dd8daf29d8..5b8088197ee 100755 --- a/dev/jobs/JGLOBAL_SNOW_ANALYSIS +++ b/dev/jobs/JGLOBAL_SNOW_ANALYSIS @@ -67,7 +67,7 @@ fi cd "${DATAROOT}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit + err_exit "Failed to change directory to ${DATAROOT} to remove temporary working directory" fi if [[ "${KEEPDATA}" == "NO" ]]; then rm -rf "${DATA}" diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh index de0ac735ea9..353d765fa60 100755 --- a/ush/tropcy_relocate.sh +++ b/ush/tropcy_relocate.sh @@ -501,7 +501,7 @@ else echo if [[ "${errSTATUS}" -gt '0' ]]; then export err="${errSTATUS}" - err_exit + err_exit "FATAL ERROR: tropical cyclone relocation processing failed with error code ${errSTATUS}" fi # further check for success From 14061427efb8f378aaa6fd57ee602f2941dbd3ee Mon Sep 17 00:00:00 2001 From: Anton Fernando Date: Thu, 7 May 2026 11:12:35 -0400 Subject: [PATCH 06/11] Enhance error handling by adding a failure message for directory change in JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX --- dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX b/dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX index 23b1d780206..ea88d92b487 100755 --- a/dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX +++ b/dev/jobs/JGDAS_AERO_ANALYSIS_GENERATE_BMATRIX @@ -58,7 +58,7 @@ fi ########################################## # Remove the Temporary working directory ########################################## -cd "${DATAROOT}" || true +cd "${DATAROOT}" && true export err=$? if [[ ${err} -ne 0 ]]; then err_exit "Failed to change directory to ${DATAROOT}" From 31ce86860c3088e00895fe9f854a05078df911cd Mon Sep 17 00:00:00 2001 From: Anton Fernando Date: Fri, 8 May 2026 14:57:22 -0400 Subject: [PATCH 07/11] Enhance error messages for product generation failures across multiple scripts --- dev/jobs/JGDAS_ATMOS_GEMPAK | 4 ++-- dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC | 2 +- dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG | 2 +- dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF | 2 +- dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC | 2 +- dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS | 2 +- dev/jobs/JGLOBAL_ARCHIVE_VRFY | 2 +- dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID | 2 +- dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY | 2 +- dev/scripts/exgdas_atmos_chgres_forenkf.sh | 2 +- dev/scripts/exgfs_atmos_nawips.sh | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dev/jobs/JGDAS_ATMOS_GEMPAK b/dev/jobs/JGDAS_ATMOS_GEMPAK index c9db40529d5..f45f81cdf8f 100755 --- a/dev/jobs/JGDAS_ATMOS_GEMPAK +++ b/dev/jobs/JGDAS_ATMOS_GEMPAK @@ -42,7 +42,7 @@ done export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to generate AWIPS products at 1 degree resolution" + err_exit "Failed to generate AWIPS products at 1 degree resolution for forecast hour ${FHR3}" fi ######################################################## @@ -53,7 +53,7 @@ fi export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to generate AWIPS products at 0.25 degree resolution" + err_exit "Failed to generate AWIPS products at 0.25 degree resolution for forecast hour ${FHR3}" fi ############################################ diff --git a/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index d6ca3d22114..5982ac9d2ae 100755 --- a/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/dev/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -85,7 +85,7 @@ if ((cyc % 12 == 0)); then fi export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to generate GDAS GEMPAK GIF products for NCDC" + err_exit "Failed to generate NCDC GIFs from GDAS GEMPAK products" fi ######################################################## diff --git a/dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index 4f247d285f1..619fcf05044 100755 --- a/dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +++ b/dev/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -42,7 +42,7 @@ export pgmout=OUTPUT.$$ "${SCRgfs}/exgfs_atmos_awips_20km_1p0deg.sh" "${fcsthr}" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to generate AWIPS products at 20km resolution" + err_exit "Failed to generate AWIPS products at 20km resolution for forecast hour ${fcsthr}" fi ######################################################## diff --git a/dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF index 105fa348a00..58bbfd6d7c8 100755 --- a/dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +++ b/dev/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -57,7 +57,7 @@ export pgmout=OUTPUT.$$ "${SCRgfs}/exgfs_atmos_gempak_gif_ncdc_skew_t.sh" export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to generate GEMPAK skew-T GIFs for NCDC" + err_exit "Failed to generate NCDC skew-T GIFs from GFS GEMPAK products" fi ######################################################## diff --git a/dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index 92a4ebd9dde..622221b7864 100755 --- a/dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/dev/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -58,7 +58,7 @@ export EXT=".grd221" export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to generate simulated GOES GEMPAK products for forecast hour ${FHR3}" + err_exit "Failed to simulate GOES data from GFS GEMPAK products for forecast hour ${FHR3}" fi cd "${DATA}" || exit 1 diff --git a/dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index 86b0c4cf327..d0a1d0583d2 100755 --- a/dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS +++ b/dev/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -36,7 +36,7 @@ mkdir -m 775 -p "${COMOUT_ATMOS_GOES}" "${SCRgfs}/exgfs_atmos_grib2_special_npoess.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to generate simulated NPOESS products" + err_exit "Failed to simulate NPOESS data from GFS GRIB2 products" fi ############################################################# diff --git a/dev/jobs/JGLOBAL_ARCHIVE_VRFY b/dev/jobs/JGLOBAL_ARCHIVE_VRFY index e69130481bf..24d3bccdeb2 100755 --- a/dev/jobs/JGLOBAL_ARCHIVE_VRFY +++ b/dev/jobs/JGLOBAL_ARCHIVE_VRFY @@ -58,7 +58,7 @@ fi ${GLOBALARCHIVESH:-${SCRgfs}/exglobal_archive_vrfy.py} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to verify the archived analysis and forecast files" + err_exit "Failed to archive analysis and forecast files for verification" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID b/dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID index 71783dcd3e1..e59c45888bc 100755 --- a/dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID +++ b/dev/jobs/JGLOBAL_ATMOS_SFCANL_REGRID @@ -49,7 +49,7 @@ export USE_CFP=YES ${SFCANALSH:-${SCRgfs}/exglobal_atmos_sfcanl_regrid.sh} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to calculate the surface analysis" + err_exit "Failed to regrid the land increments" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY b/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY index 046cbfded04..cf1086737e5 100755 --- a/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY +++ b/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY @@ -31,7 +31,7 @@ declare -rx COMIN_SNOW_ANALYSIS_ENSSTAT="${ROTDIR}/${RUN}.${PDY}/${cyc}/ensstat/ "${SCRgfs}/exglobal_enkf_earc_vrfy.py" && true if [[ ${err} -ne 0 ]]; then - err_exit "Failed to verify the archived ensemble mean and spread statistics" + err_exit "Failed to archive ensemble statistics for verification" fi ############################################################### diff --git a/dev/scripts/exgdas_atmos_chgres_forenkf.sh b/dev/scripts/exgdas_atmos_chgres_forenkf.sh index c56dd17e919..62a982f81da 100755 --- a/dev/scripts/exgdas_atmos_chgres_forenkf.sh +++ b/dev/scripts/exgdas_atmos_chgres_forenkf.sh @@ -142,7 +142,7 @@ EOF "${USHgfs}/run_mpmd.sh" "${DATA}/mp_chgres.sh" && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to run chgres on one or more ensemble members!" + err_exit "Failed to run chgres on one or more forecast hours" fi else echo "DO_CALC_ANALYSIS != YES, doing nothing" diff --git a/dev/scripts/exgfs_atmos_nawips.sh b/dev/scripts/exgfs_atmos_nawips.sh index 6098c7225b2..ea7015bb4db 100755 --- a/dev/scripts/exgfs_atmos_nawips.sh +++ b/dev/scripts/exgfs_atmos_nawips.sh @@ -115,7 +115,7 @@ EOF export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to run convert GRIB to GEMPAK grid for forecast hour ${fhr3}" + err_exit "Failed to convert ${grid} grid from GRIB to GEMPAK for forecast hour ${fhr3}" fi cpfs "${GEMGRD}" "${destination}/${GEMGRD}" From 97390b7105481270f4ad0853828fa58b5eaae317 Mon Sep 17 00:00:00 2001 From: Anton Fernando Date: Mon, 11 May 2026 13:42:56 -0400 Subject: [PATCH 08/11] Refine error messages for aerosol, atmospheric, marine, and snow analysis scripts for clarity and consistency --- dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE | 2 +- dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE | 2 +- dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS | 2 +- dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL | 2 +- dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI | 2 +- dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE | 2 +- dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT | 2 +- dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE | 2 +- dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL | 2 +- dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF | 2 +- dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL | 2 +- dev/jobs/JGLOBAL_SNOWENS_ANALYSIS | 2 +- dev/jobs/JGLOBAL_SNOW_ANALYSIS | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE index 0e3b21b591e..1900da29dfd 100755 --- a/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE @@ -42,7 +42,7 @@ EXSCRIPT=${GDASAEROFINALPY:-${SCRgfs}/exglobal_aero_analysis_finalize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to finalize aerosol analysis" + err_exit "Failed to finalize the aerosol analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE b/dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE index 9cd20a64416..e66bff5822b 100755 --- a/dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE +++ b/dev/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE @@ -52,7 +52,7 @@ EXSCRIPT=${GDASAEROINITPY:-${SCRgfs}/exglobal_aero_analysis_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to initialize aerosol analysis" + err_exit "Failed to initialize the aerosol analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL b/dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL index 7011ce1cec5..64120e9b8e9 100755 --- a/dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL +++ b/dev/jobs/JGLOBAL_AERO_ANALYSIS_VARIATIONAL @@ -34,7 +34,7 @@ EXSCRIPT=${GDASAEROVARSH:-${SCRgfs}/exglobal_aero_analysis_variational.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to run variational aerosol analysis" + err_exit "Failed to calculate the aerosol analysis increment" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE index c9fb2f2f8ae..cd46482b066 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE @@ -42,7 +42,7 @@ EXSCRIPT=${GDASATMENSFINALPY:-${SCRgfs}/exglobal_atmens_analysis_finalize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to finalize the atmospheric ensemble analysis" + err_exit "Failed to finalize the ensemble deterministic atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT index 43431379a7f..35af7a365b6 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_FV3_INCREMENT @@ -34,7 +34,7 @@ EXSCRIPT=${GDASATMENSRUNSH:-${SCRgfs}/exglobal_atmens_analysis_fv3_increment.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to generate the atmospheric ensemble analysis FV3 increment" + err_exit "Failed to calculate the ensemble atmospheric FV3 increments" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE index 411e1880d8a..3d057aee5ca 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE @@ -42,7 +42,7 @@ EXSCRIPT=${GDASATMENSINITPY:-${SCRgfs}/exglobal_atmens_analysis_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to initialize the atmospheric ensemble analysis" + err_exit "Failed to initialize the ensemble atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF index 6519bc5eb3e..fc05c7129c5 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF @@ -33,7 +33,7 @@ EXSCRIPT=${GDASATMENSRUNSH:-${SCRgfs}/exglobal_atmens_analysis_letkf.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to run the atmospheric ensemble LETKF analysis" + err_exit "Failed to calculate the ensemble atmospheric analysis increments" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS index d9fdff11190..3e0db5107dd 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS @@ -33,7 +33,7 @@ EXSCRIPT=${GDASATMENSOBSSH:-${SCRgfs}/exglobal_atmens_analysis_obs.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to assimilate observations for the atmospheric ensemble analysis" + err_exit "Failed to assimilate observations for the ensemble atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL index 9deb84c42c9..533b6bc6173 100755 --- a/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL +++ b/dev/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL @@ -34,7 +34,7 @@ EXSCRIPT=${GDASATMENSSOLSH:-${SCRgfs}/exglobal_atmens_analysis_sol.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to solve the atmospheric ensemble analysis" + err_exit "Failed to calculate the ensemble atmospheric analysis increments" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI index 2e44f043dbc..6e9f7d579e4 100755 --- a/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI +++ b/dev/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC_FV3JEDI @@ -48,7 +48,7 @@ EXSCRIPT=${GDASATMRUNPY:-${SCRgfs}/exglobal_atmos_analysis_calc_fv3jedi.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to calculate the atmospheric analysis with fv3jedi" + err_exit "Failed to calculate the deterministic atmospheric analysis" fi # Write analysis log file diff --git a/dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE index acfa976d8d5..b7aa20677cb 100755 --- a/dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE @@ -41,7 +41,7 @@ EXSCRIPT=${GDASATMFINALPY:-${SCRgfs}/exglobal_atm_analysis_finalize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to finalize the atmospheric analysis" + err_exit "Failed to finalize the deterministic atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT b/dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT index d5609a967ff..1abda254f57 100755 --- a/dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT +++ b/dev/jobs/JGLOBAL_ATM_ANALYSIS_FV3_INCREMENT @@ -34,7 +34,7 @@ EXSCRIPT=${GDASATMRUNSH:-${SCRgfs}/exglobal_atm_analysis_fv3_increment.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to calculate the atmospheric FV3 increment" + err_exit "Failed to calculate the deterministic atmospheric FV3 increment" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE b/dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE index 903cb6c7bde..51d67263b21 100755 --- a/dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE +++ b/dev/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE @@ -45,7 +45,7 @@ EXSCRIPT=${GDASATMINITPY:-${SCRgfs}/exglobal_atm_analysis_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to initialize the atmospheric analysis" + err_exit "Failed to initialize the deterministic atmospheric analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL b/dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL index 7b56ec61264..4c53203700f 100755 --- a/dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL +++ b/dev/jobs/JGLOBAL_ATM_ANALYSIS_VARIATIONAL @@ -34,7 +34,7 @@ EXSCRIPT=${GDASATMRUNSH:-${SCRgfs}/exglobal_atm_analysis_variational.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to calculate the atmospheric variational analysis" + err_exit "Failed to calculate the deterministic atmospheric analysis increment" fi ############################################## diff --git a/dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI b/dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI index a2efa2f3882..56fa45ae544 100755 --- a/dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI +++ b/dev/jobs/JGLOBAL_ENKF_ECEN_FV3JEDI @@ -49,7 +49,7 @@ EXSCRIPT=${GDASATMRUNPY:-${SCRgfs}/exglobal_enkf_ecen_fv3jedi.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to recenter the JEDI ensemble mean" + err_exit "Failed to calculate the recentered ensemble atmospheric increments" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN index 98a2d654ee6..2d7558c0d51 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_ECEN @@ -58,7 +58,7 @@ EXSCRIPT=${GDASOCNCENPY:-${HOMEgfs}/scripts/exglobal_marine_analysis_ecen.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to recenter the ocean and/or ice analyses" + err_exit "Failed to recenter the ensemble marine analysis increments" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE index 468ecb84226..7c28e8ce118 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE @@ -48,7 +48,7 @@ EXSCRIPT=${GDASMARINEANALYSIS:-${SCRgfs}/exglobal_marine_analysis_finalize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to finalize the ocean and/or ice analyses" + err_exit "Failed to finalize the marine analysis" fi ########################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE index 484ab26990f..50b3676cc15 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE @@ -51,7 +51,7 @@ EXSCRIPT=${GDASMARINEANALYSIS:-${SCRgfs}/exglobal_marine_analysis_initialize.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to initialize the ocean and/or ice analyses" + err_exit "Failed to initialize the deterministic marine analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF index 9aba02d5a7f..cc96a36913a 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_LETKF @@ -69,7 +69,7 @@ EXSCRIPT=${GDASOCNLETKFPY:-${HOMEgfs}/scripts/exglobal_marine_analysis_letkf.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to run the marine LETKF analysis" + err_exit "Failed to calculate the ensemble marine analysis increments" fi ############################################## diff --git a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL index f8bb91a0a96..a2de9c22d75 100755 --- a/dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL +++ b/dev/jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL @@ -35,7 +35,7 @@ EXSCRIPT=${GDASMARINERUNSH:-${SCRgfs}/exglobal_marine_analysis_variational.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to run the variational marine analysis" + err_exit "Failed to calculate the deterministic marine analysis increment" fi ############################################## diff --git a/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS b/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS index 9dbaad619cc..8abbaba4bf7 100755 --- a/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS +++ b/dev/jobs/JGLOBAL_SNOWENS_ANALYSIS @@ -63,7 +63,7 @@ EXSCRIPT=${SNOWANLPY:-${SCRgfs}/exglobal_snowens_analysis.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to caluclate the ensemble snow analysis" + err_exit "Failed to calculate the ensemble snow analysis" fi ############################################## diff --git a/dev/jobs/JGLOBAL_SNOW_ANALYSIS b/dev/jobs/JGLOBAL_SNOW_ANALYSIS index 5b8088197ee..ef9d97a3186 100755 --- a/dev/jobs/JGLOBAL_SNOW_ANALYSIS +++ b/dev/jobs/JGLOBAL_SNOW_ANALYSIS @@ -47,7 +47,7 @@ EXSCRIPT=${SNOWANLPY:-${SCRgfs}/exglobal_snow_analysis.py} ${EXSCRIPT} && true export err=$? if [[ ${err} -ne 0 ]]; then - err_exit "Failed to calculate the snow analysis for ${RUN} at ${PDY}${cyc}" + err_exit "Failed to calculate the snow analysis" fi ############################################## From 4e8f163bb9ce7e92b2c4d59f01d8318b972fda00 Mon Sep 17 00:00:00 2001 From: AntonMFernando-NOAA <167725623+AntonMFernando-NOAA@users.noreply.github.com> Date: Mon, 18 May 2026 09:55:52 -0400 Subject: [PATCH 09/11] Update ush/tropcy_relocate.sh Co-authored-by: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com> --- ush/tropcy_relocate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh index 353d765fa60..acab905de1e 100755 --- a/ush/tropcy_relocate.sh +++ b/ush/tropcy_relocate.sh @@ -234,7 +234,7 @@ if [[ "${modhr}" -ne 0 ]]; then # if center date/time for relocation processing isn't a multiple of 3-hrs, exit # ----------------------------------------------------------------------------- export err=9 - msg="FATAL ERROR: cannot perform tropical cyclone processing because cycle hour is not a multiple of 3-hrs" + echo "FATAL ERROR: cannot perform tropical cyclone processing because cycle hour is not a multiple of 3-hrs" exit 9 fi From 5730eb6bd79c6b08f3ea1e987a216460c8506aaa Mon Sep 17 00:00:00 2001 From: AntonMFernando-NOAA <167725623+AntonMFernando-NOAA@users.noreply.github.com> Date: Mon, 18 May 2026 09:56:29 -0400 Subject: [PATCH 10/11] Update ush/tropcy_relocate.sh Co-authored-by: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com> --- ush/tropcy_relocate.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh index acab905de1e..c02391a8e4b 100755 --- a/ush/tropcy_relocate.sh +++ b/ush/tropcy_relocate.sh @@ -501,7 +501,8 @@ else echo if [[ "${errSTATUS}" -gt '0' ]]; then export err="${errSTATUS}" - err_exit "FATAL ERROR: tropical cyclone relocation processing failed with error code ${errSTATUS}" + echo "FATAL ERROR: tropical cyclone relocation processing failed with error code ${errSTATUS}" + exit "${err}" fi # further check for success From 8e5ac502fd91de51f5cfaa51ef2b9be6276ff5af Mon Sep 17 00:00:00 2001 From: AntonMFernando-NOAA <167725623+AntonMFernando-NOAA@users.noreply.github.com> Date: Mon, 18 May 2026 09:58:26 -0400 Subject: [PATCH 11/11] Update dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY Co-authored-by: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com> --- dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY b/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY index cf1086737e5..ab6fa750f90 100755 --- a/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY +++ b/dev/jobs/JGLOBAL_ENKF_ARCHIVE_VRFY @@ -30,6 +30,7 @@ declare -rx COMIN_SNOW_ANALYSIS_ENSSTAT="${ROTDIR}/${RUN}.${PDY}/${cyc}/ensstat/ ############################################################### "${SCRgfs}/exglobal_enkf_earc_vrfy.py" && true +export err=$? if [[ ${err} -ne 0 ]]; then err_exit "Failed to archive ensemble statistics for verification" fi