From c6eefa84d240a606e8b598e064dfa67b6aec9e32 Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Fri, 4 Sep 2026 16:53:50 +0000 Subject: [PATCH 01/10] remove unused config files --- parm/config/gfs/config.analcalc_fv3jedi | 25 ------------- parm/config/gfs/config.anlstat | 14 -------- parm/config/gfs/config.cleanup | 48 ------------------------- parm/config/gfs/config.fetch | 19 ---------- parm/config/gfs/config.genesis_fsu | 12 ------- parm/config/gfs/config.globus | 35 ------------------ parm/config/gfs/config.marineanlletkf | 17 --------- 7 files changed, 170 deletions(-) delete mode 100644 parm/config/gfs/config.analcalc_fv3jedi delete mode 100644 parm/config/gfs/config.anlstat delete mode 100644 parm/config/gfs/config.cleanup delete mode 100644 parm/config/gfs/config.fetch delete mode 100644 parm/config/gfs/config.genesis_fsu delete mode 100644 parm/config/gfs/config.globus delete mode 100644 parm/config/gfs/config.marineanlletkf diff --git a/parm/config/gfs/config.analcalc_fv3jedi b/parm/config/gfs/config.analcalc_fv3jedi deleted file mode 100644 index 431328cfca5..00000000000 --- a/parm/config/gfs/config.analcalc_fv3jedi +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env bash - -########## config.analcalc_fv3jedi ########## -# Diagnostic amospheric analysis calculation specific - -# Ignore possible spelling error (nothing is misspelled) -# shellcheck disable=SC2153 - -echo "BEGIN: config.analcalc_fv3jedi" - -export layout_x_analcalc_fv3jedi=2 -export layout_y_analcalc_fv3jedi=2 - -# Get task specific resources -source "${EXPDIR}/config.resources" analcalc_fv3jedi - -export TASK_CONFIG_YAML="${PARMglobal}/gdas/analcalc/analcalc_config.yaml.j2" - -if [[ ${DOHYBVAR} = "YES" ]]; then - export CASE_ANL=${CASE_ENS} -else - export CASE_ANL=${CASE} -fi - -echo "END: config.analcalc_fv3jedi" diff --git a/parm/config/gfs/config.anlstat b/parm/config/gfs/config.anlstat deleted file mode 100644 index 92f9ba7ca81..00000000000 --- a/parm/config/gfs/config.anlstat +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -x - -########## config.anlstat ########## -# Analysis Stat - -echo "BEGIN: config.anlstat" - -# Get task specific resources -source "${EXPDIR}/config.resources" anlstat - -export JEDI_CONFIG_YAML="${PARMglobal}/gdas/anlstat/anlstat_jedi_config.yaml.j2" -export BASE_CONFIG_YAML="${PARMglobal}/gdas/anlstat/anlstat_base_config.yaml.j2" - -echo "END: config.anlstat" diff --git a/parm/config/gfs/config.cleanup b/parm/config/gfs/config.cleanup deleted file mode 100644 index a4af66b493d..00000000000 --- a/parm/config/gfs/config.cleanup +++ /dev/null @@ -1,48 +0,0 @@ -#! /usr/bin/env bash - -########## config.cleanup ########## -echo "BEGIN: config.cleanup" - -# Get task specific resources -source "${EXPDIR}/config.resources" cleanup - -export CLEANUP_COM="YES" # NO=retain ROTDIR. YES default in cleanup.sh - -#--starting and ending hours of previous cycles to be removed from rotating directory -# RUN-based cleanup variables -# Keep all files newer than SELECTIVE_CLEANUP_MIN hours -# Selectively remove files between SELECTIVE_CLEANUP_MAX and SELECTIVE_CLEANUP_MIN hours old, based on exclude_string -# Remove all GEMPAK files older than GEMPAK_CLEANUP hours if DO_GEMPAK is set to YES and only for RUN==gfs -# Remove **all** files and directories older than max(SELECTIVE_CLEANUP_MAX, GEMPAK_CLEANUP, RTOFS_CLEANUP) - -# RTOFS-specific variables (runs every RUN) -# Remove all RTOFS files older than RTOFS_CLEANUP hours - -export SELECTIVE_CLEANUP_MAX=144 -export SELECTIVE_CLEANUP_MIN=24 -export GEMPAK_CLEANUP=240 -export RTOFS_CLEANUP=24 -if [[ ${SELECTIVE_CLEANUP_MIN} -gt ${SELECTIVE_CLEANUP_MAX} ]]; then - echo "FATAL ERROR: Invalid selective cleanup times: " - echo " SELECTIVE_CLEANUP_MIN=${SELECTIVE_CLEANUP_MIN} > SELECTIVE_CLEANUP_MAX=${SELECTIVE_CLEANUP_MAX}" - exit 1 -fi - -# GEMPAK_CLEANUP must not be less than SELECTIVE_CLEANUP_MIN, which acts as the starting point for cleanup -if [[ "${DO_GEMPAK}" == "YES" && ${GEMPAK_CLEANUP} -lt ${SELECTIVE_CLEANUP_MIN} ]]; then - echo "FATAL ERROR: Invalid GEMPAK cleanup time: " - echo " GEMPAK_CLEANUP=${GEMPAK_CLEANUP} < SELECTIVE_CLEANUP_MIN=${SELECTIVE_CLEANUP_MIN}" - exit 2 -fi - -# Specify the list of files to exclude from the first stage of cleanup -# Because arrays cannot be exported, list is a single string of comma- -# separated values. This string is split to form an array at runtime. -export selective_exclude_string="" -case ${RUN} in - gdas | gfs) selective_exclude_string+="*prepbufr*, *cnvstat.tar*, *analysis.atm.a*.nc" ;; - enkf*) selective_exclude_string+="*f006.ens*" ;; - *) selective_exclude_string="" ;; -esac - -echo "END: config.cleanup" diff --git a/parm/config/gfs/config.fetch b/parm/config/gfs/config.fetch deleted file mode 100644 index 78ad7f4a7cd..00000000000 --- a/parm/config/gfs/config.fetch +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env bash - -########## config.fetch ########## - -echo "BEGIN: config.fetch" - -# Get task specific resources -source "${EXPDIR}/config.resources" fetch - -# Determine start type -if [[ "${EXP_WARM_START}" == ".false." ]]; then - ic_type="cold" -else - ic_type="warm" -fi - -export FETCH_YAML_TMPL="${PARMglobal}/fetch/${NET}_${APP}_${ic_type}_${MODE}.yaml.j2" - -echo "END: config.fetch" diff --git a/parm/config/gfs/config.genesis_fsu b/parm/config/gfs/config.genesis_fsu deleted file mode 100644 index 13948592c41..00000000000 --- a/parm/config/gfs/config.genesis_fsu +++ /dev/null @@ -1,12 +0,0 @@ -#! /usr/bin/env bash - -########## config.genesis_fsu ########## -echo "BEGIN: config.genesis_fsu" - -# Get task specific resources -. "${EXPDIR}/config.resources" genesis_fsu - -# Get tropcy settings -. "${EXPDIR}/config.tropcy" - -echo "END: config.genesis_fsu" diff --git a/parm/config/gfs/config.globus b/parm/config/gfs/config.globus deleted file mode 100644 index 22510ddcd87..00000000000 --- a/parm/config/gfs/config.globus +++ /dev/null @@ -1,35 +0,0 @@ -#! /usr/bin/env bash - -########## config.globus ########## -# Globus-specific variables for all globus-based jobs - -echo "BEGIN: config.globus" - -# Get task specific resources -. "${EXPDIR}/config.resources" globus - -# Set the globus staging directory populated by the arch jobs -export STAGE_DIR="${DATAROOT}/archive_rotdir/${PSLOT}" - -# Set variables used by the Sven and Doorman services - -# Server name where the doorman will run -export SERVER_NAME="mercury" - -# Username on the server -export SERVER_USERNAME="" -# General delivery location on Mercury (staging area for data on server) -export SERVER_HOME="/collab2/data/${SERVER_USERNAME}/${PSLOT}" - -# Location of the doorman package on Mercury -export DOORMAN_ROOT="/home/David.Huber/doorman" - -# Server globus UUID -# niagara_UUID="1bfd8a79-52b2-4589-88b2-0648e0c0b35d" -mercury_UUID="e24545db-4d02-4b80-8aa0-fda791ddc604" -export SERVER_GLOBUS_UUID="${mercury_UUID}" - -# Sven's dropbox (temporary local directory) -export SVEN_DROPBOX_ROOT="${DATA}/SVEN_DROPBOX" - -echo "END: config.globus" diff --git a/parm/config/gfs/config.marineanlletkf b/parm/config/gfs/config.marineanlletkf deleted file mode 100644 index f47b3ee2e42..00000000000 --- a/parm/config/gfs/config.marineanlletkf +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -########## config.marineanlletkf ########## -# Ocn Analysis specific - -echo "BEGIN: config.marineanlletkf" - -# Get task specific resources -source "${EXPDIR}/config.resources" marineanlletkf - -export INPUT_FIX_DIR="${HOMEglobal}/fix/gdas/soca/1440x1080x75/soca" -export ANL_GEOM="${HOMEglobal}/fix/gdas/soca/720x540x75/soca" - -export OBS_LIST_YAML="${HOMEglobal}/parm/gdas/marine/obs/obs_list_gfsv17.yaml.j2" -export TASK_CONFIG_YAML="${PARMglobal}/gdas/marine/marine_ens_config.yaml.j2" - -echo "END: config.marineanlletkf" From 135d247f9cc9af27c56493ce614edfaa2d8f91fb Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Fri, 4 Sep 2026 18:28:39 +0000 Subject: [PATCH 02/10] some additional cleanup --- dev/jobs/JGLOBAL_ATMOS_TROPCY_QC | 1 + dev/ush/setup_gfs_for_nco.py | 23 ++------ parm/config/gfs/config.base | 93 ++------------------------------ parm/config/gfs/config.nsst | 4 -- parm/config/gfs/config.prep | 37 ------------- 5 files changed, 11 insertions(+), 147 deletions(-) diff --git a/dev/jobs/JGLOBAL_ATMOS_TROPCY_QC b/dev/jobs/JGLOBAL_ATMOS_TROPCY_QC index e3c59701538..bb9f10979ff 100755 --- a/dev/jobs/JGLOBAL_ATMOS_TROPCY_QC +++ b/dev/jobs/JGLOBAL_ATMOS_TROPCY_QC @@ -21,6 +21,7 @@ source "${USHglobal}/set_strict.sh" export PROCESS_TROPCY=${PROCESS_TROPCY:-YES} # Turn on tropical cyclone tcvitals QC proc. if YES export tmmark=tm00 +export COMINsyn=${COMINsyn:-$(compath.py "${envir}/com/gfs/${gfs_ver}")/syndat} export ARCHSYND=${ROTDIR}/syndat # this location is unique, do not change mkdir -p "${ARCHSYND}" diff --git a/dev/ush/setup_gfs_for_nco.py b/dev/ush/setup_gfs_for_nco.py index 23042694390..0d50b1d8694 100755 --- a/dev/ush/setup_gfs_for_nco.py +++ b/dev/ush/setup_gfs_for_nco.py @@ -26,9 +26,6 @@ # which J-Jobs to copy to jobs/. Then look for the associated ex-scripts called in the # J-Jobs and copy those to scripts/ with appropriate renaming. base_job_list = [ - "JGLOBAL_ANALYSIS_STATS", - "JGLOBAL_ARCHIVE_TARS", - "JGLOBAL_ARCHIVE_VRFY", "JGLOBAL_ATMOS_ANAL", "JGLOBAL_ATMOS_ANAL_CALC", "JGLOBAL_ATMOS_ANAL_DIAG", @@ -39,8 +36,6 @@ "JGLOBAL_ATMOS_TROPCY_QC", "JGLOBAL_ATMOS_UPP", "JGLOBAL_ATMOS_VMINMON", - "JGLOBAL_CLEANUP", - "JGLOBAL_FETCH", "JGLOBAL_FCST_FSM", "JGLOBAL_FCST", "JGLOBAL_FCST_MANAGER", @@ -73,17 +68,11 @@ "JENKFGDAS_ENS_POST", "JGDAS_FIT2OBS", "JGFS_ATMOS_AWIPS_20KM_1P0", - "JGFS_ATMOS_CYCLONE_GENESIS", - "JGFS_ATMOS_CYCLONE_TRACKER", "JGFS_ATMOS_FBWIND", - "JGFS_ATMOS_FSU_GENESIS", "JGFS_ATMOS_GEMPAK", "JGFS_ATMOS_GEMPAK_PGRB2_SPEC", "JGFS_ATMOS_GEMPAK_PGRB2_SPEC_NPOESS", "JGFS_ATMOS_POST_SND", - "JGFS_ATMOS_VERIFICATION", - "JGLOBAL_ENKF_ARCHIVE_TARS", - "JGLOBAL_ENKF_ARCHIVE_VRFY", "JGLOBAL_ATMOS_ENS_DIAG", "JGLOBAL_ATMOS_ENS_RECENTER", "JGLOBAL_ATMOS_ENS_OBSERVER", @@ -112,9 +101,6 @@ "exglobal_wave_post_pnt.sh", "exgfs_wave_awips_bulls.sh", "exgfs_wave_awips_gridded.sh", - "exglobal_analysis_stats.py", - "exglobal_archive_tars.py", - "exglobal_archive_vrfy.py", "exglobal_atmos_anal.sh", "exglobal_atmos_anal_calc.sh", "exglobal_atmos_products.sh", @@ -123,9 +109,7 @@ "exglobal_atmos_tropcy_qc.sh", "exglobal_atmos_upp.py", "exglobal_atmos_vminmon.sh", - "exglobal_cleanup.sh", "exglobal_atmos_diag.sh", - "exglobal_fetch.py", "exglobal_fcst_fsm.sh", "exglobal_fcst.sh", "exglobal_fcst_manager.sh", @@ -142,13 +126,16 @@ "exglobal_prep_sfc.sh", "exglobal_snow_anal.py", "exglobal_snow_ens_anal.py", - "exglobal_enkf_earc_tars.py", - "exglobal_enkf_earc_vrfy.py", "exglobal_atmos_ens_recenter.sh", "exglobal_atmos_ens_observer.sh", "exglobal_atmos_ens_anal_sfc_gcycle.sh", "exglobal_atmos_ens_anal_sfc_regrid.sh", "exglobal_atmos_ens_update.sh", + #These scripts are needed for development aux workflow and not production + "exglobal_enkf_earc_tars.py", + "exglobal_enkf_earc_vrfy.py", + "exglobal_archive_tars.py", + "exglobal_archive_vrfy.py", ] # If needed, add scripts and jobs that need to be renamed when copied. diff --git a/parm/config/gfs/config.base b/parm/config/gfs/config.base index 4531634c5bb..ee2c7dc0980 100644 --- a/parm/config/gfs/config.base +++ b/parm/config/gfs/config.base @@ -11,62 +11,17 @@ export machine="WCOSS2" # Do not run strict mode (set -e) for production export STRICT="NO" -# Directories relative to installation areas: -export EXECglobal="${HOMEglobal}/exec" -export FIXglobal="${HOMEglobal}/fix" -export PARMglobal="${HOMEglobal}/parm" -export SCRglobal="${HOMEglobal}/scripts" -export USHglobal="${HOMEglobal}/ush" - -export FIXam="${FIXglobal}/am" -export FIXaer="${FIXglobal}/aer" -export FIXcpl="${FIXglobal}/cpl" -export FIXlut="${FIXglobal}/lut" -export FIXcice="${FIXglobal}/cice" -export FIXmom="${FIXglobal}/mom6" -export FIXreg2grb2="${FIXglobal}/reg2grb2" -export FIXgdas="${FIXglobal}/gdas" - -######################################################################## - -# GLOBAL static environment parameters -export PACKAGEROOT="${PACKAGEROOT:-"/lfs/h1/ops/prod/packages"}" # TODO: set via prod_envir in Ops -export COMINsyn="/lfs/h1/ops/prod/com/gfs/v16.3/syndat" -export USE_IODADIR="NO" -ROTDIR=$(compath.py "${envir}/${NET}/${gfs_ver}") -export ROTDIR -export COMROOT=${ROTDIR} - -# Toggle to turn on/off EMCSFC_SFC_PREP job -export DO_PREP_SFC="NO" # SNOGRB dump file production - -# Toggle to turn on/off GFS downstream processing. -export DO_GOES="YES" # GOES products +# This block might be needed for development archiving but not for production export DO_BUFRSND="YES" # BUFR sounding products export DO_GEMPAK="YES" # GEMPAK products -export DO_AWIPS="NO" # AWIPS products -export DO_NPOESS="NO" # NPOESS products -export DO_TRACKER="YES" # Hurricane track verification -export DO_GENESIS="YES" # Cyclone genesis verification -export DO_GENESIS_FSU="NO" # Cyclone genesis verification (FSU) -export DO_VERFOZN="YES" # Ozone data assimilation monitoring -export DO_VERFRAD="YES" # Radiance data assimilation monitoring -export DO_VMINMON="YES" # GSI minimization monitoring # Experiment mode (cycled or forecast-only) export MODE="cycled" # cycled/forecast-only export DO_TEST_MODE="NO" # option to change configuration for automated testing -#################################################### -# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE -# IF YOU HAVE TO MAKE MACHINE SPECIFIC CHANGES BELOW -# FEEL FREE TO MOVE THEM ABOVE THIS LINE TO KEEP IT -# CLEAR -#################################################### # Build paths relative to $HOMEglobal export FIXgsi="${HOMEglobal}/fix/gsi" -export HOMEpost="${HOMEglobal}" -export HOMEobsproc="${BASE_GIT:-}/obsproc/v${obsproc_run_ver:-}" +export BASE_ENV="${HOMEglobal}/env" # CONVENIENT utility scripts and other environment parameters export NMV="mv" @@ -81,9 +36,6 @@ export DEBUG_POSTSCRIPT="NO" # PBS only; sets debug=true export CAT_MPMD_LOGS="NO" # Copy MPMD logs to the parent log. Useful for debugging. export CHECK_DEAD_LINKS="NO" # Whether to check for dead links in DATA directories before execution -# Machine environment, jobs, and other utility scripts -export BASE_ENV="${HOMEglobal}/env" - # EXPERIMENT specific environment parameters export EXP_WARM_START=".true." export assim_freq=6 @@ -128,17 +80,9 @@ else fi export FRAC_GRID=".true." -export DO_NEST="NO" # Whether to run a global-nested domain -if [[ "${DO_NEST:-NO}" == "YES" ]] ; then - export ntiles=7 - export NEST_OUTPUT_GRID="regional_latlon" - export FIXugwd="${FIXglobal}/ugwd_nest" - export FIXorog="${FIXglobal}/orog_nest" -else - export ntiles=6 - export FIXugwd="${FIXglobal}/ugwd" - export FIXorog="${FIXglobal}/orog" -fi +export ntiles=6 +export FIXugwd="${FIXglobal}/ugwd" +export FIXorog="${FIXglobal}/orog" # Resolution specific parameters export LEVS=128 @@ -203,16 +147,6 @@ case "${APP}" in ;; esac -# Aerosol forecasts and analyses may be RUN-dependent -if [[ "${DO_AERO}" == "YES" ]]; then - if [[ ${aero_anl_runs} =~ ${RUN} ]]; then - export DO_AERO_ANL="YES" - fi - if [[ ${aero_fcst_runs} =~ ${RUN} ]]; then - export DO_AERO_FCST="YES" - fi -fi - # Surface cycle update frequency if [[ "${RUN}" =~ "gdas" ]] ; then export FHCYC=1 @@ -423,27 +357,10 @@ fi # Execute the postamble (disable for production) export TRAP_POSTAMBLE=NO -# The monitor jobs are not yet supported for JEDIATMVAR. -if [[ "${DO_JEDIATMVAR}" = "YES" ]]; then - export DO_FIT2OBS="NO" # Run fit to observations package - export DO_VERFOZN="NO" # Ozone data assimilation monitoring - export DO_VERFRAD="NO" # Radiance data assimilation monitoring - export DO_VMINMON="NO" # GSI minimization monitoring -fi - # If starting ICs that are not at cycle hour export OFFSET_START_HOUR=0 # Number of regional collectives to create soundings for export NUM_SND_COLLECTIVES=${NUM_SND_COLLECTIVES:-9} -# Set JEDI atmospheric DA increment type -if [[ "${DO_JEDIATMVAR}" == "YES" ]]; then - if [[ "${DO_JEDIATMENS}" == "YES" ]]; then - export ATMINC_GRID="cubed_sphere_grid" - else - export ATMINC_GRID="gaussian" - fi -fi - echo "END: config.base" diff --git a/parm/config/gfs/config.nsst b/parm/config/gfs/config.nsst index 7bda81f058b..9537b9eed0a 100644 --- a/parm/config/gfs/config.nsst +++ b/parm/config/gfs/config.nsst @@ -17,10 +17,6 @@ fi # nstf_name(2) : NST_SPINUP : 0 = OFF, 1 = ON, export NST_SPINUP=0 -cdate="${PDY}${cyc}" -if (( cdate < 2017072000 )); then - export NST_SPINUP=1 -fi # nstf_name(3) : NST_RESV (Reserved, NSST Analysis) : 0 = OFF, 1 = ON export NST_RESV=0 diff --git a/parm/config/gfs/config.prep b/parm/config/gfs/config.prep index fea57e8f95d..1b9d39764de 100644 --- a/parm/config/gfs/config.prep +++ b/parm/config/gfs/config.prep @@ -8,42 +8,5 @@ echo "BEGIN: config.prep" # Get task specific resources source "${EXPDIR}/config.resources" prep -export cdate10=${PDY}${cyc} - -# Syndata (tcvitals) QC -export PROCESS_TROPCY=${PROCESS_TROPCY:-NO} -[[ ${RUN_ENVIR} == "nco" && ${envir} == "prod" ]] && export PROCESS_TROPCY="YES" -export TROPCYQCSH="${SCRglobal}/exglobal_atmos_tropcy_qc.sh" -export COMINsyn=${COMINsyn:-$(compath.py "${envir}/com/gfs/${gfs_ver}")/syndat} - -# Allow users to control the generation or use of either operational or -# their processed prepbufr, prepbufr.acft_profiles, nsstbufr files -export MAKE_PREPBUFR="YES" # Generate prepbufr, etc. files by executing obsproc -if [[ "${MAKE_PREPBUFR^^}" != "YES" ]]; then - export USE_PREPBUFR_FROM_OPS="YES" # Copy operational prepbufr, etc files - if [[ "${USE_PREPBUFR_FROM_OPS^^}" != "YES" ]]; then - # Location of user processed prepbufr, etc files - export PREPBUFR_DIR="${DMPDIR:-}" # Replace DMPDIR with the location of processed files - fi -fi - -# Set default prepobs_errtable.global -export PRVT="${FIXglobal}/gsi/prepobs_errtable.global" - -# NSST bufr was created with a different set of files prior to 2020102200 -# See comments at the end of -# https://github.com/NOAA-EMC/global-workflow/issues/313 -if [[ "${PDY}${cyc}" -ge "2020102200" ]]; then - export DTYPS_nsst='sfcshp tesac bathy trkob' -else - export DTYPS_nsst='sfcshp dbuoyb mbuoyb tesac bathy trkob' -fi - -# Set flags to optionally use external bias correction files -# TODO: remove when JEDI can cycle bias correcdtion files -export SOURCE_BIASCOR="NO" -export COPY_BIASCOR_SOURCE="NO" -export COPY_BIASCOR_STATIC="NO" -export CONVERT_BIASCOR="NO" echo "END: config.prep" From 4920946d5a09c9bcce8ca7de507ca59dbe81d465 Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Fri, 4 Sep 2026 19:16:23 +0000 Subject: [PATCH 03/10] remove gcafs from fcst --- dev/jobs/JGLOBAL_FCST | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/dev/jobs/JGLOBAL_FCST b/dev/jobs/JGLOBAL_FCST index 4abd4b4fd9e..5547ac054be 100755 --- a/dev/jobs/JGLOBAL_FCST +++ b/dev/jobs/JGLOBAL_FCST @@ -78,13 +78,7 @@ declare -rx COMOUT_ATMOS_RESTART="${COMOUT}/model/atmos/restart" declare -rx COMOUT_ATMOS_HISTORY="${COMOUT}/model/atmos/history" declare -rx COMOUT_ATMOS_MASTER="${COMOUT}/model/atmos/master" -# GCAFS/GCDAS uses an offline atmospheric analysis -if [[ "${RUN}" =~ "gcafs" ]] || [[ "${RUN}" =~ "gcdas" ]]; then - declare -rx COMIN_ATMOS_ANALYSIS="${COMIN_RESTART}/analysis/atmos" -else - # other runs use their own atmospheric analysis - declare -rx COMIN_ATMOS_ANALYSIS="${COMIN}/analysis/atmos" -fi +declare -rx COMIN_ATMOS_ANALYSIS="${COMIN}/analysis/atmos" if [[ "${DO_WAVE}" == "YES" ]]; then declare -rx COMIN_WAVE_INIT="${COMIN}/model/wave/init" @@ -109,12 +103,6 @@ if [[ "${DO_ICE}" == "YES" ]]; then declare -rx COMIN_ICE_RESTART_PREV="${COMIN_RESTART_PREV}/model/ice/restart" fi -if [[ "${DO_AERO_FCST}" == "YES" ]]; then - declare -rx COMOUT_CHEM_HISTORY="${COMOUT}/model/chem/history" - declare -rx COMIN_TRACER_RESTART="${COMIN_RESTART}/model/atmos/restart" - declare -rx COMIN_CHEM_INPUT="${COMIN}/model/chem/input" -fi - ############################################################### # Run relevant exglobal script ############################################################### From 637790ebc3eb125f3ae9c3a2b2b4d19e87c298d6 Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Tue, 8 Sep 2026 15:28:21 +0000 Subject: [PATCH 04/10] add back fix directories --- parm/config/gfs/config.base | 9 +++++++++ ush/jjob_standard_vars.sh | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/parm/config/gfs/config.base b/parm/config/gfs/config.base index ee2c7dc0980..04b4d4476f0 100644 --- a/parm/config/gfs/config.base +++ b/parm/config/gfs/config.base @@ -10,6 +10,15 @@ export machine="WCOSS2" # Do not run strict mode (set -e) for production export STRICT="NO" +# Component FIX directories +export FIXam="${FIXglobal}/am" +export FIXaer="${FIXglobal}/aer" +export FIXcpl="${FIXglobal}/cpl" +export FIXlut="${FIXglobal}/lut" +export FIXcice="${FIXglobal}/cice" +export FIXmom="${FIXglobal}/mom6" +export FIXreg2grb2="${FIXglobal}/reg2grb2" +export FIXgdas="${FIXglobal}/gdas" # This block might be needed for development archiving but not for production export DO_BUFRSND="YES" # BUFR sounding products diff --git a/ush/jjob_standard_vars.sh b/ush/jjob_standard_vars.sh index 1a299ebb62b..abb758676e5 100755 --- a/ush/jjob_standard_vars.sh +++ b/ush/jjob_standard_vars.sh @@ -75,7 +75,7 @@ export DATA="${DATA:-${DATAROOT}/${jobid}}" ################################################ # Set the NET COM base path (ROTDIR) and COMROOT ################################################ -ver_var="${NET}_var" +ver_var="${NET}_ver" ROTDIR=${ROTDIR:-$(compath.py "${envir}/${NET}/${!ver_var}")} export ROTDIR unset ver_var From f88540baeac7232ba9e5e5f23c4ca42a6e6bec60 Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Tue, 8 Sep 2026 15:37:14 +0000 Subject: [PATCH 05/10] move component fix --- parm/config/gfs/config.base | 9 --------- ush/jjob_standard_vars.sh | 14 +++++++++++++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/parm/config/gfs/config.base b/parm/config/gfs/config.base index 04b4d4476f0..ee2c7dc0980 100644 --- a/parm/config/gfs/config.base +++ b/parm/config/gfs/config.base @@ -10,15 +10,6 @@ export machine="WCOSS2" # Do not run strict mode (set -e) for production export STRICT="NO" -# Component FIX directories -export FIXam="${FIXglobal}/am" -export FIXaer="${FIXglobal}/aer" -export FIXcpl="${FIXglobal}/cpl" -export FIXlut="${FIXglobal}/lut" -export FIXcice="${FIXglobal}/cice" -export FIXmom="${FIXglobal}/mom6" -export FIXreg2grb2="${FIXglobal}/reg2grb2" -export FIXgdas="${FIXglobal}/gdas" # This block might be needed for development archiving but not for production export DO_BUFRSND="YES" # BUFR sounding products diff --git a/ush/jjob_standard_vars.sh b/ush/jjob_standard_vars.sh index abb758676e5..0ea120de7c4 100755 --- a/ush/jjob_standard_vars.sh +++ b/ush/jjob_standard_vars.sh @@ -46,7 +46,19 @@ declare -x PS4='+ $(basename ${BASH_SOURCE[0]:-${FUNCNAME[0]:-"Unknown"}})[${LIN export USHglobal="${HOMEglobal}/ush" export FIXglobal="${HOMEglobal}/fix" export PARMglobal="${HOMEglobal}/parm" -export SCRIPTSglobal="${HOMEglobal}/scripts" +export SCRglobal="${HOMEglobal}/scripts" + +############################################# +# Component Fix directory paths +############################################# +export FIXam="${FIXglobal}/am" +export FIXaer="${FIXglobal}/aer" +export FIXcpl="${FIXglobal}/cpl" +export FIXlut="${FIXglobal}/lut" +export FIXcice="${FIXglobal}/cice" +export FIXmom="${FIXglobal}/mom6" +export FIXreg2grb2="${FIXglobal}/reg2grb2" +export FIXgdas="${FIXglobal}/gdas" ############################################## # Job output variables From eeab528a10b38639ca93f57db4d47a7aefaf162e Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Tue, 8 Sep 2026 15:45:46 +0000 Subject: [PATCH 06/10] global variables need to be in config.base --- parm/config/gfs/config.base | 16 ++++++++++++++++ ush/jjob_standard_vars.sh | 22 ---------------------- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/parm/config/gfs/config.base b/parm/config/gfs/config.base index ee2c7dc0980..c2ea519aebe 100644 --- a/parm/config/gfs/config.base +++ b/parm/config/gfs/config.base @@ -11,6 +11,22 @@ export machine="WCOSS2" # Do not run strict mode (set -e) for production export STRICT="NO" +# Global directory paths +export EXECglobal="${HOMEglobal}/exec" +export FIXglobal="${HOMEglobal}/fix" +export PARMglobal="${HOMEglobal}/parm" +export SCRglobal="${HOMEglobal}/scripts" +export USHglobal="${HOMEglobal}/ush" + +export FIXam="${FIXglobal}/am" +export FIXaer="${FIXglobal}/aer" +export FIXcpl="${FIXglobal}/cpl" +export FIXlut="${FIXglobal}/lut" +export FIXcice="${FIXglobal}/cice" +export FIXmom="${FIXglobal}/mom6" +export FIXreg2grb2="${FIXglobal}/reg2grb2" +export FIXgdas="${FIXglobal}/gdas" + # This block might be needed for development archiving but not for production export DO_BUFRSND="YES" # BUFR sounding products export DO_GEMPAK="YES" # GEMPAK products diff --git a/ush/jjob_standard_vars.sh b/ush/jjob_standard_vars.sh index 0ea120de7c4..987635698d4 100755 --- a/ush/jjob_standard_vars.sh +++ b/ush/jjob_standard_vars.sh @@ -12,8 +12,6 @@ # # Variables set here: # PS4 (debug trace format) -# USHglobal, FIXglobal, PARMglobal, -# SCRIPTSglobal (global directory paths) # pid, pgmout, pgmerr (job output variables) # envir, KEEPDATA, SENDECF, SENDDBN, # SENDDBN_NTC, DBNROOT (run environment and control) @@ -40,26 +38,6 @@ echo "Begin ${_calling_script} at ${_start_time_human}" ############################################## declare -x PS4='+ $(basename ${BASH_SOURCE[0]:-${FUNCNAME[0]:-"Unknown"}})[${LINENO}] ${SECONDS}s: ' -############################################## -# Standard global directory paths -############################################## -export USHglobal="${HOMEglobal}/ush" -export FIXglobal="${HOMEglobal}/fix" -export PARMglobal="${HOMEglobal}/parm" -export SCRglobal="${HOMEglobal}/scripts" - -############################################# -# Component Fix directory paths -############################################# -export FIXam="${FIXglobal}/am" -export FIXaer="${FIXglobal}/aer" -export FIXcpl="${FIXglobal}/cpl" -export FIXlut="${FIXglobal}/lut" -export FIXcice="${FIXglobal}/cice" -export FIXmom="${FIXglobal}/mom6" -export FIXreg2grb2="${FIXglobal}/reg2grb2" -export FIXgdas="${FIXglobal}/gdas" - ############################################## # Job output variables ############################################## From 39b8a5266335a9e6cf6759dd31564b61b4c9f816 Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Tue, 8 Sep 2026 21:00:14 +0000 Subject: [PATCH 07/10] remove local aero variables --- parm/config/gfs/config.base | 7 ------- 1 file changed, 7 deletions(-) diff --git a/parm/config/gfs/config.base b/parm/config/gfs/config.base index c2ea519aebe..ee8221ef63c 100644 --- a/parm/config/gfs/config.base +++ b/parm/config/gfs/config.base @@ -83,10 +83,7 @@ export DO_COUPLED="NO" export DO_WAVE="NO" export DO_OCN="NO" export DO_ICE="NO" -DO_AERO="NO" export DO_PREP_OBS_AERO="NO" -aero_fcst_runs="gdas" # When to run aerosol forecast: gdas, gfs, or both -aero_anl_runs="gdas gfs" # When to run aerosol analysis: gdas, gfs, or both export DO_AERO_FCST="NO" export DO_AERO_ANL="NO" if [[ "${RUN}" == "gfs" ]] ; then @@ -149,10 +146,6 @@ case "${APP}" in export DO_OCN="YES" export DO_ICE="YES" - if [[ "${APP}" =~ A$ ]]; then - DO_AERO="YES" - fi - if [[ "${APP}" =~ ^S2SW ]]; then export DO_WAVE="YES" fi From bb2958eb7197e338da2bcfea17a82837b8d0b504 Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Tue, 8 Sep 2026 21:23:57 +0000 Subject: [PATCH 08/10] final cleanup --- dev/ush/setup_gfs_for_nco.py | 2 +- parm/config/gfs/config.base | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/dev/ush/setup_gfs_for_nco.py b/dev/ush/setup_gfs_for_nco.py index 7c40adb4e15..9ef37cde6c0 100755 --- a/dev/ush/setup_gfs_for_nco.py +++ b/dev/ush/setup_gfs_for_nco.py @@ -135,7 +135,7 @@ "exglobal_atmos_ens_anal_sfc_gcycle.sh", "exglobal_atmos_ens_anal_sfc_regrid.sh", "exglobal_atmos_ens_update.sh", - #These scripts are needed for development aux workflow and not production +# These scripts are needed for development aux workflow and not production "exglobal_enkf_earc_tars.py", "exglobal_enkf_earc_vrfy.py", "exglobal_archive_tars.py", diff --git a/parm/config/gfs/config.base b/parm/config/gfs/config.base index ee8221ef63c..4ce15a8a4e3 100644 --- a/parm/config/gfs/config.base +++ b/parm/config/gfs/config.base @@ -129,9 +129,6 @@ esac case "${APP}" in ATM) ;; - ATMA) - DO_AERO="YES" - ;; ATMW) export DO_COUPLED="YES" export DO_WAVE="YES" From acd3c9bd0da58f44a53335cccd61fe160cb371cb Mon Sep 17 00:00:00 2001 From: Travis Elless Date: Tue, 8 Sep 2026 21:30:09 +0000 Subject: [PATCH 09/10] fix spacing --- dev/ush/setup_gfs_for_nco.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/ush/setup_gfs_for_nco.py b/dev/ush/setup_gfs_for_nco.py index 9ef37cde6c0..efec5ba3ab6 100755 --- a/dev/ush/setup_gfs_for_nco.py +++ b/dev/ush/setup_gfs_for_nco.py @@ -135,7 +135,7 @@ "exglobal_atmos_ens_anal_sfc_gcycle.sh", "exglobal_atmos_ens_anal_sfc_regrid.sh", "exglobal_atmos_ens_update.sh", -# These scripts are needed for development aux workflow and not production + # These scripts are needed for development aux workflow and not production "exglobal_enkf_earc_tars.py", "exglobal_enkf_earc_vrfy.py", "exglobal_archive_tars.py", From 06bca8c6c5ce592d6e195e7ef83bd0c1e0cf5687 Mon Sep 17 00:00:00 2001 From: DavidHuber-NOAA Date: Thu, 10 Sep 2026 13:55:34 +0000 Subject: [PATCH 10/10] Add archive control variables to aux.xml.j2 --- dev/workflow/aux/aux.xml.j2 | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dev/workflow/aux/aux.xml.j2 b/dev/workflow/aux/aux.xml.j2 index 9363fc19d02..1012051222b 100644 --- a/dev/workflow/aux/aux.xml.j2 +++ b/dev/workflow/aux/aux.xml.j2 @@ -253,6 +253,9 @@ ARCH_LOGSNO SDATE&SDATE; EDATE&EDATE; + DO_VMINMONYES + DO_VERFRADYES + DO_VERFOZNYES @@ -406,6 +409,9 @@ DO_ANLSTATNO SDATE&SDATE; EDATE&EDATE; + DO_VMINMONYES + DO_VERFRADYES + DO_VERFOZNYES @@ -447,7 +453,7 @@ - &ECF_OUT_gfs;/@Y@m@d@H + &ECF_OUT_gfs;/@Y@m@d@H @@ -480,6 +486,9 @@ ATARDIR&ATARDIR; ARCHCOM_TOhpss PSLOT&PSLOT; + DO_VMINMONYES + DO_VERFRADYES + DO_VERFOZNYES &ECF_OUT_gfs;/@Y@m@d@H @@ -524,7 +533,7 @@ EDATE&EDATE; - &ECF_OUT_gfs;/@Y@m@d@H + &ECF_OUT_gfs;/@Y@m@d@H