Skip to content
Open
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b4f2422
Move verif-global to spack-stack 2.0.0
DavidHuber-NOAA Jan 16, 2026
dcba1a5
Load verif-global modules
DavidHuber-NOAA Jan 16, 2026
bcdec4d
Reenable metp jobs
DavidHuber-NOAA Jan 16, 2026
bded9b9
Address TODOs in verification J-Job (requires verif-global update)
DavidHuber-NOAA Jan 20, 2026
adc9213
Update model path in config.metp (comes with verif-global update)
DavidHuber-NOAA Jan 20, 2026
9e34d7f
Make metp jobs parallel with correction to VG scripts
DavidHuber-NOAA Jan 20, 2026
e69326c
Remove refs to met/metplus from common module (use verif module instead)
DavidHuber-NOAA Jan 20, 2026
6db2bca
Update VG hash with fixes
DavidHuber-NOAA Jan 20, 2026
eb9d134
Merge remote-tracking branch 'emc/develop' into feature/vg_update
DavidHuber-NOAA Jan 21, 2026
b2f9c37
Correct logic
DavidHuber-NOAA Jan 21, 2026
98f06e8
Disable metp on Hera/Orion
DavidHuber-NOAA Jan 21, 2026
3017d42
Merge branch 'feature/vg_update' of github.com:davidhuber-noaa/global…
DavidHuber-NOAA Jan 21, 2026
ef0b4d1
Merge remote-tracking branch 'emc/develop' into feature/vg_update
DavidHuber-NOAA Jan 21, 2026
5699313
Merge branch 'feature/vg_update' of github.com:davidhuber-noaa/global…
DavidHuber-NOAA Jan 21, 2026
dbece12
Additional updates for WCOSS2
DavidHuber-NOAA Jan 21, 2026
fe59944
Source verif-global versions file for wcoss2
DavidHuber-NOAA Jan 21, 2026
5f5bff1
Make metp jobs run on prepost nodes on wcoss2
DavidHuber-NOAA Jan 21, 2026
a318eb2
Additional fixes for wcoss2
DavidHuber-NOAA Jan 22, 2026
f270132
Merge remote-tracking branch 'emc/develop' into feature/vg_update
DavidHuber-NOAA Feb 4, 2026
e007b5b
Update verif-global hash to fix additional issues
DavidHuber-NOAA Feb 4, 2026
28726d9
Convert to VALID stats
DavidHuber-NOAA Feb 4, 2026
291349f
Update VG hash following a few WCOSS2 and Ursa bug-fixes
DavidHuber-NOAA Feb 17, 2026
550ffbd
Do not exit 1 when loading setup modules
DavidHuber-NOAA Feb 17, 2026
fd512f3
Cleaner way to check for undefined/empty HOMEgfs
DavidHuber-NOAA Feb 17, 2026
0438939
Merge remote-tracking branch 'emc/develop' into feature/vg_update
DavidHuber-NOAA Feb 17, 2026
18deb15
Update support table
DavidHuber-NOAA Feb 17, 2026
fe7a7ec
Degrade Hera support level
DavidHuber-NOAA Feb 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions dev/jobs/JGFS_ATMOS_VERIFICATION
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,18 @@ for grid in '1p00'; do
GRID=${grid} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx "${prod_dir}:COM_ATMOS_GRIB_GRID_TMPL"
done

# TODO: If none of these are on, why are we running this job?
if [[ "${RUN_GRID2GRID_STEP1}" == "YES" || "${RUN_GRID2OBS_STEP1}" == "YES" || "${RUN_PRECIP_STEP1}" == "YES" ]]; then
# Override the -e in VERIF_GLOBALSH's shebang and un-export SHELLOPTS
# TODO: clean up the verif-global script so it does not raise false-positive errors
unset_strict
export -n SHELLOPTS
bash -x "${VERIF_GLOBALSH}"
"${VERIF_GLOBALSH}"
err=$?
set_strict
if [[ ${err} -ne 0 ]]; then
exit "${err}"
fi
else
export err=1
err_exit "FATAL ERROR: No verification steps are enabled. Please check your configuration."
fi

if [[ ${KEEPDATA:-"NO"} == "NO" ]]; then
Expand Down
12 changes: 6 additions & 6 deletions dev/parm/config/gfs/config.base.j2
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,12 @@ export DO_CA="YES"
export DO_METP="{{ DO_METP }}" # Run METPLUS jobs - set METPLUS settings in config.metp
export DO_FIT2OBS="YES" # Run fit to observations package

# METplus verification is not enabled on Hera or Orion
if [[ "${machine}" == "hera" || "${machine}" == "orion" ]] && [[ ${DO_METP} == "YES" ]]; then
echo "WARNING: METplus verification not supported on ${machine}. Setting DO_METP=NO"
export DO_METP="NO"
fi

#--online archive of netcdf files for fit2obs verification
export FHMAX_FITS=132
if [[ "${FHMAX_FITS}" -gt "${FHMAX_GFS}" ]]; then
Expand All @@ -513,12 +519,6 @@ if [[ "${DO_JEDIATMVAR}" = "YES" ]]; then
export DO_VMINMON="NO" # GSI minimization monitoring
fi

# TODO: Enable METplus on Ursa when verif-global has been upgraded to spack-stack 1.9.x+
# TODO: Clean this up by allowing DO_METP to be system-specific and/or allow overriding that parameter
if [[ "${machine}" == "URSA" || "${machine}" == "GAEAC6" || "${machine}" == "ORION" || "${machine}" == "HERCULES" ]]; then
export DO_METP=NO
fi

# If starting ICs that are not at cycle hour
export OFFSET_START_HOUR=0

Expand Down
18 changes: 9 additions & 9 deletions dev/parm/config/gfs/config.metp
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ export VERIF_GLOBALSH=${HOMEverif_global}/ush/run_verif_global_in_global_workflo
## INPUT DATA SETTINGS
export model=${PSLOT}
export model_file_format="pgbf{lead?fmt=%2H}.${RUN}.{init?fmt=%Y%m%d%H}.grib2"
export model_hpss_dir=${ATARDIR}/..
export model_dir=${ARCDIR}/..
export model_hpss_dir=${ATARDIR}
export model_dir=${ARCDIR}
export get_data_from_hpss="NO"
export hpss_walltime="10"
## OUTPUT SETTINGS
Expand All @@ -45,19 +45,19 @@ export g2g1_anom_truth_file_format="pgbanl.${RUN}.{valid?fmt=%Y%m%d%H}.grib2"
export g2g1_anom_fhr_min=${FHMIN_GFS}
export g2g1_anom_fhr_max=${FHMAX_GFS}
export g2g1_anom_grid="G002"
export g2g1_anom_gather_by="VSDB"
export g2g1_anom_gather_by="VALID"
export g2g1_pres_truth_name="self_anl"
export g2g1_pres_truth_file_format="pgbanl.${RUN}.{valid?fmt=%Y%m%d%H}.grib2"
export g2g1_pres_fhr_min=${FHMIN_GFS}
export g2g1_pres_fhr_max=${FHMAX_GFS}
export g2g1_pres_grid="G002"
export g2g1_pres_gather_by="VSDB"
export g2g1_pres_gather_by="VALID"
export g2g1_sfc_truth_name="self_f00"
export g2g1_sfc_truth_file_format="pgbf00.${RUN}.{valid?fmt=%Y%m%d%H}.grib2"
export g2g1_sfc_fhr_min=${FHMIN_GFS}
export g2g1_sfc_fhr_max=${FHMAX_GFS}
export g2g1_sfc_grid="G002"
export g2g1_sfc_gather_by="VSDB"
export g2g1_sfc_gather_by="VALID"
export g2g1_mv_database_name="mv_${PSLOT}_grid2grid_metplus"
export g2g1_mv_database_group="NOAA NCEP"
export g2g1_mv_database_desc="Grid-to-grid METplus data for global workflow experiment ${PSLOT}"
Expand All @@ -68,19 +68,19 @@ export g2o1_upper_air_vhr_list="00 06 12 18"
export g2o1_upper_air_fhr_min=${FHMIN_GFS}
export g2o1_upper_air_fhr_max="240"
export g2o1_upper_air_grid="G003"
export g2o1_upper_air_gather_by="VSDB"
export g2o1_upper_air_gather_by="VALID"
export g2o1_conus_sfc_msg_type_list="ONLYSF ADPUPA"
export g2o1_conus_sfc_vhr_list="00 03 06 09 12 15 18 21"
export g2o1_conus_sfc_fhr_min=${FHMIN_GFS}
export g2o1_conus_sfc_fhr_max="240"
export g2o1_conus_sfc_grid="G104"
export g2o1_conus_sfc_gather_by="VSDB"
export g2o1_conus_sfc_gather_by="VALID"
export g2o1_polar_sfc_msg_type_list="IABP"
export g2o1_polar_sfc_vhr_list="00 03 06 09 12 15 18 21"
export g2o1_polar_sfc_fhr_min=${FHMIN_GFS}
export g2o1_polar_sfc_fhr_max="240"
export g2o1_polar_sfc_grid="G219"
export g2o1_polar_sfc_gather_by="VSDB"
export g2o1_polar_sfc_gather_by="VALID"
export g2o1_prepbufr_data_run_hpss="NO"
export g2o1_mv_database_name="mv_${PSLOT}_grid2obs_metplus"
export g2o1_mv_database_group="NOAA NCEP"
Expand All @@ -93,7 +93,7 @@ export precip1_ccpa_accum24hr_model_file_format="pgbf{lead?fmt=%2H}.${RUN}.{init
export precip1_ccpa_accum24hr_fhr_min=${FHMIN_GFS}
export precip1_ccpa_accum24hr_fhr_max="180"
export precip1_ccpa_accum24hr_grid="G211"
export precip1_ccpa_accum24hr_gather_by="VSDB"
export precip1_ccpa_accum24hr_gather_by="VALID"
export precip1_obs_data_run_hpss="NO"
export precip1_mv_database_name="mv_${PSLOT}_precip_metplus"
export precip1_mv_database_group="NOAA NCEP"
Expand Down
1 change: 1 addition & 0 deletions dev/parm/config/gfs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -1103,6 +1103,7 @@ case ${step} in
ntasks=1
tasks_per_node=1
memory="80G"
prepost=True
;;

"echgres")
Expand Down
3 changes: 2 additions & 1 deletion dev/ush/gw_setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@

# Determine if HOMEgfs is already set
unset_homegfs=NO
if [[ -z "${HOMEgfs+x}" ]]; then
if [[ -z "${HOMEgfs:-}" ]]; then
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)"
HOMEgfs=$(cd "${script_dir}" && git rev-parse --show-toplevel)
export HOMEgfs
unset_homegfs=YES
fi

source "${HOMEgfs}/ush/detect_machine.sh"
source "${HOMEgfs}/ush/module-setup.sh"

Expand Down
29 changes: 25 additions & 4 deletions dev/ush/load_modules.sh
Original file line number Diff line number Diff line change
Expand Up @@ -155,13 +155,34 @@ case "${MODULE_TYPE}" in
export PYTHONPATH
;;

"run" | "gsi" | "verif" | "setup" | "upp")
"verif")
# EMC_verif-global modules -- use that submodule's module files
if [[ "${MACHINE_ID}" == "wcoss2" ]]; then
source "${HOMEgfs}/sorc/verif-global.fd/versions/run.ver"
fi
module use "${HOMEgfs}/sorc/verif-global.fd/modulefiles"
module load "emc_verif_global_${MACHINE_ID}"
export err=$?
if [[ ${err} -ne 0 ]]; then
echo "FATAL ERROR: Failed to load emc_verif_global_${MACHINE_ID}"
exit 1
fi
module list

;;

"run" | "gsi" | "setup" | "upp")

# Test that the version file exists
if [[ ! -f "${HOMEgfs}/versions/run.ver" ]]; then
echo "FATAL ERROR: ${HOMEgfs}/versions/run.ver does not exist!"
echo "HINT: Run link_workflow.sh first."
exit 1
# Exit with 0 if loading setup modules (so the user's terminal doesn't close), else with 1
if [[ "${MODULE_TYPE}" == "setup" ]]; then
exit 0
else
exit 1
fi
fi

# Load our modules:
Expand All @@ -181,8 +202,8 @@ case "${MODULE_TYPE}" in
mod_type="${MODULE_TYPE}"
fi

# Source versions file (except for upp)
if [[ "${mod_type}" != "upp" ]]; then
# Source versions file (except for upp and verification)
if [[ "${mod_type}" != "upp" && "${mod_type}" != "verif" ]]; then
source "${HOMEgfs}/versions/run.ver"
fi

Expand Down
13 changes: 5 additions & 8 deletions docs/source/hpc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@ The following system software requirements are the minimum for any new or existi
+==============+=============+=======================================+
| Bash | 4.4.20 | |
+--------------+-------------+---------------------------------------+
| Python | * 3.8.6 | * 3.10.x is not supported by METplus |
| | * 3.10.13+ | verification software |
| | * 3.11.6+ | * 3.11.6 is packaged with spack-stack |
| | | * 3.9.x is untested |
| Python | 3.11.6 | |
+--------------+-------------+---------------------------------------+
| Spack-Stack | 1.6.0 | * Available everywhere but WCOSS2 |
+--------------+-------------+---------------------------------------+
Expand Down Expand Up @@ -106,7 +103,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
-
-
- X
-
- X
- X
* - Hercules
- 1
Expand All @@ -121,7 +118,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
-
-
- X
-
- X
- X
* - Gaea C6
- 1
Expand All @@ -136,7 +133,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
-
-
- X
-
- X
- X
* - Hera
- 1
Expand All @@ -151,7 +148,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- X
-
- X
- X
-
- X
* - Orion
- 2
Expand Down
3 changes: 0 additions & 3 deletions modulefiles/gw_run.common.lua
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,6 @@ local common_modules = {
"py-pandas",
"py-python-dateutil",
"py-xarray",
-- TODO: Reenable when MET/METplus and verif-global are at compatible versions
-- "met",
-- "metplus",
}

for _, name in pairs(common_modules) do
Expand Down
2 changes: 1 addition & 1 deletion sorc/verif-global.fd
Submodule verif-global.fd updated 185 files
Loading