Skip to content

Commit

Permalink
Merge branch 'NOAA-EMC:develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
jderrico-noaa authored Feb 24, 2025
2 parents fdd7a8f + ba09498 commit 12e4f0e
Show file tree
Hide file tree
Showing 109 changed files with 2,462 additions and 573 deletions.
5 changes: 3 additions & 2 deletions ci/cases/gfsv17/C384mx025_3DVarAOWCDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@ arguments:
resdetatmos: 384
resdetocean: 0.25
nens: 0
interval: 6
interval: 0
start: warm
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
idate: 2021063018
edate: 2021070306
#icsdir: /scratch1/NCEPDEV/climate/Jessica.Meixner/cycling/IC_2021063000_V2
icsdir: /work/noaa/da/gvernier/ensda/ictest/1440x1080x75/
#icsdir: /work/noaa/da/gvernier/ensda/ictest/1440x1080x75/
icsdir: /scratch2/NCEPDEV/ocean/Guillaume.Vernieres/data/prepics/hybrid-test/
yaml: {{ HOMEgfs }}/ci/cases/gfsv17/marine3dvar.yaml
3 changes: 2 additions & 1 deletion ci/cases/gfsv17/C384mx025_hybAOWCDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ arguments:
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
idate: 2021063018
edate: 2021070306
icsdir: /work/noaa/da/gvernier/ensda/ictest/1440x1080x75/
#icsdir: /work/noaa/da/gvernier/ensda/ictest/1440x1080x75/
icsdir: /scratch2/NCEPDEV/ocean/Guillaume.Vernieres/data/prepics/hybrid-test/
yaml: {{ HOMEgfs }}/ci/cases/gfsv17/marinehyb.yaml
5 changes: 5 additions & 0 deletions ci/cases/gfsv17/marine3dvar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,12 @@ base:
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
DO_TEST_MODE: "YES"

prepoceanobs:
use_exp_obs: "YES"
dmpdir_exp: /scratch1/NCEPDEV/da/common/

marineanl:
SOCA_INPUT_FIX_DIR: {{ HOMEgfs }}/fix/gdas/soca/1440x1080x75/soca
SOCA_ANL_GEOM: {{ HOMEgfs }}/fix/gdas/soca/720x540x75/soca
SOCA_OBS_LIST: {{ HOMEgfs }}/sorc/gdas.cd/parm/soca/obs/obs_list.yaml
SOCA_NINNER: 100
7 changes: 6 additions & 1 deletion ci/cases/gfsv17/marinehyb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ base:
FHMAX_GFS: 240
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}

prepoceanobs:
use_exp_obs: "YES"
dmpdir_exp: /scratch1/NCEPDEV/da/common/

marineanl:
SOCA_INPUT_FIX_DIR: {{ HOMEgfs }}/fix/gdas/soca/1440x1080x75/soca
SOCA_NINNER: 20 # revert to ~100 after the memory leak is fixed
SOCA_ANL_GEOM: {{ HOMEgfs }}/fix/gdas/soca/720x540x75/soca
SOCA_NINNER: 100
2 changes: 1 addition & 1 deletion ci/cases/pr/C48mx500_3DVarAOWCDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ arguments:
resdetocean: 5.0
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C48mx500/20241120
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C48mx500/20250218
idate: 2021032418
edate: 2021032500
nens: 0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
experiment:
system: gefs
system: sfs
mode: forecast-only

arguments:
idate: 1994050100
edate: 1994050100
pslot: {{ 'pslot' | getenv }}
app: S2SWA
app: S2S
resdetatmos: 96
resdetocean: 1.0
resensatmos: 96
resdetocean: 1
start: 'cold'
nens: 2
interval: 6
start: warm
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
idate: 2020110100
edate: 2020110100
yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_replay_ci.yaml
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96mx100/20240610
yaml: {{ HOMEgfs }}/ci/cases/yamls/sfs_defaults.yaml

skip_ci_on_hosts:
- None
8 changes: 4 additions & 4 deletions ci/cases/sfs/C96mx100_S2S.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
experiment:
system: gefs
system: sfs
mode: forecast-only

arguments:
idate: 1994050100
idate: 1994050100
edate: 1994050100
pslot: {{ 'pslot' | getenv }}
app: S2S
Expand All @@ -14,6 +14,6 @@ arguments:
nens: 10
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
icsdir: {{ 'TOPICDIR' | getenv }}/HR4/C96mx100
yaml: {{ HOMEgfs }}/ci/cases/yamls/sfs_defaults.yaml
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96mx100/20240610
yaml: {{ HOMEgfs }}/ci/cases/yamls/sfs_full.yaml

5 changes: 2 additions & 3 deletions ci/cases/yamls/sfs_defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,18 @@ base:
DO_AWIPS: "NO"
KEEPDATA: "NO"
DO_EXTRACTVARS: "NO"
FHMAX_GFS: 2976
FHMAX_GFS: 144
FHMAX_HF_GFS: 0
FHOUT_HF_GFS: 1
FHOUT_GFS: 24
FHOUT_OCN_GFS: 24
FHOUT_ICE_GFS: 24
FCST_BREAKPOINTS: ""
FCST_BREAKPOINTS: "48,96"
REPLAY_ICS: "NO"
USE_OCN_ENS_PERTURB_FILES: "YES"
USE_ATM_ENS_PERTURB_FILES: "YES"
HPSSARCH: "NO"
LOCALARCH: "NO"
SFS_POST: "YES"
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
fcst:
TYPE: "hydro"
Expand Down
31 changes: 31 additions & 0 deletions ci/cases/yamls/sfs_full.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
base:
DO_JEDIATMVAR: "NO"
DO_JEDIATMENS: "NO"
DO_JEDIOCNVAR: "NO"
DO_JEDISNOWDA: "NO"
DO_MERGENSST: "NO"
DO_BUFRSND: "NO"
DO_GEMPAK: "NO"
DO_AWIPS: "NO"
KEEPDATA: "NO"
DO_EXTRACTVARS: "NO"
FHMAX_GFS: 2976
FHMAX_HF_GFS: 0
FHOUT_HF_GFS: 1
FHOUT_GFS: 24
FHOUT_OCN_GFS: 24
FHOUT_ICE_GFS: 24
FCST_BREAKPOINTS: ""
REPLAY_ICS: "NO"
USE_OCN_ENS_PERTURB_FILES: "YES"
USE_ATM_ENS_PERTURB_FILES: "YES"
HPSSARCH: "NO"
LOCALARCH: "NO"
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
fcst:
TYPE: "hydro"
MONO: "mono"
reforecast: "YES"
FHZER: 24
ocn:
MOM6_INTERP_ICS: "YES"
16 changes: 12 additions & 4 deletions docs/source/clone.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ Clone the `global-workflow` and `cd` into the `sorc` directory:

.. _build_examples:

The build_all.sh script can be used to build all required components of the global workflow. The accepted arguments is a list of systems to be built. This includes builds for GFS and GEFS forecast-only experiments, GSI and GDASApp-based DA for cycled GFS experiments. See `feature availability <hpc.html#feature-availability-by-hpc>`__ to see which system(s) are available on each supported system.
The build_all.sh script can be used to build all required components of the global workflow. The accepted arguments is a list of systems to be built. This includes builds for GFS, GEFS, and SFS forecast-only experiments, GSI and GDASApp-based DA for cycled GFS experiments. See `feature availability <hpc.html#feature-availability-by-hpc>`__ to see which system(s) are available on each supported system.

::

./build_all.sh [gfs] [gefs] [gs] [gdas] [all]
./build_all.sh [gfs] [gefs] [sfs] [gsi] [gdas] [all]

For example, to run GFS experiments with GSI DA, execute:

Expand All @@ -34,7 +34,7 @@ For example, to run GFS experiments with GSI DA, execute:

This builds the GFS, UFS-utils, GFS-utils, WW3 with PDLIB (structured wave grids), UPP, GSI, GSI-monitor, and GSI-utils executables.

For coupled cycling (include new UFSDA) execute:
For coupled cycling (using only new UFSDA) execute:

::

Expand All @@ -50,6 +50,14 @@ To run GEFS (forecast-only) execute:

This builds the GEFS, UFS-utils, GFS-utils, WW3 *without* PDLIB (unstructure wave grids), and UPP executables.

To run SFS (forecast-only) execute:

::

./build_all.sh sfs

This builds the same components as GEFS, except the UFS model is built in hydrostatic mode.

Once the building is complete, link workflow artifacts such as executables, configuration files, and scripts via

::
Expand Down Expand Up @@ -121,7 +129,7 @@ Under the ``/sorc`` folder is a script to build all components called ``build_al
-v:
Execute all build scripts with -v option to turn on verbose where supported

Lastly, pass to build_all.sh a list of systems to build. This includes `gfs`, `gefs`, `sfs` (not fully supported), `gsi`, `gdas`, and `all`.
Lastly, pass to build_all.sh a list of systems to build. This includes `gfs`, `gefs`, `sfs`, `gsi`, `gdas`, and `all`.

For examples of how to use this script, see :ref:`build examples <build_examples>`.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/development.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ Continuous Integration (CI)

The global workflow comes fitted with a suite of system tests that run various types of workflow. These tests are commonly run for pull requests before they may be merged into the develop branch. At a minimum, developers are expected to run the CI test(s) that will be impacted by their changes on at least one platform.

The commonly run tests are written in YAML format and can be found in the ``ci/cases/pr`` directory. The ``workflow/generate_workflows.sh`` tool is available to aid running these cases. See the help documentation by running ``./generate_workflows.sh -h``. The script has the capability to prepare the EXPDIR and COMROOT directories for a specified or implied suite of CI tests (see :doc:`setup` for details on these directories). The script also has options to automatically build and run all tests for a given system (i.e. GFS or GEFS and a placeholder for SFS). For instance, to build the workflow and run all of the GFS tests, one would execute
The commonly run tests are written in YAML format and can be found in the ``ci/cases/pr`` directory. The ``workflow/generate_workflows.sh`` tool is available to aid running these cases. See the help documentation by running ``./generate_workflows.sh -h``. The script has the capability to prepare the EXPDIR and COMROOT directories for a specified or implied suite of CI tests (see :doc:`setup` for details on these directories). The script also has options to automatically build and run all tests for a given system (i.e. GFS, GEFS or SFS). For instance, to build the workflow and run all of the GFS tests, one would execute

::

Expand Down
13 changes: 13 additions & 0 deletions docs/source/hpc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
GFS
- Coupled
GEFS
- Coupled
SFS
- GSI
DA
- GDASApp
Expand All @@ -78,6 +80,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 1
- X
- X
- X
- X
- X
-
Expand All @@ -91,6 +94,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 1
- X
- X
- X
- X
- X
- X
Expand All @@ -104,6 +108,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 1
- X
- X
- X
- X
- X
- X
Expand All @@ -117,6 +122,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 2
- X
- X
- X
- X
- X
-
Expand All @@ -130,6 +136,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 3
- X
- X
- X
- X
- X
-
Expand All @@ -143,6 +150,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 3
- X
- X
- X
- X
- X
-
Expand All @@ -156,6 +164,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 3
- X
- X
- X
- X
-
-
Expand All @@ -169,6 +178,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 3
- X
- X
- X
-
-
-
Expand All @@ -182,6 +192,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 3
- X
- X
- X
-
-
-
Expand All @@ -195,6 +206,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 3
- X
-
-
- X
-
-
Expand All @@ -208,6 +220,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas
- 3
-
-
-
- X
-
-
Expand Down
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Global Workflow
###############

**Global-workflow** is the end-to-end workflow designed to run global configurations of medium range weather forecasting for the UFS weather model. It supports both development and operational implementations. In its current format it supports the Global Forecast System (GFS) and the Global Ensemble Forecast System (GEFS) configurations
**Global-workflow** is the end-to-end workflow designed to run global configurations of medium range weather forecasting for the UFS weather model. It supports both development and operational implementations. In its current format it supports the Global Forecast System (GFS), Global Ensemble Forecast System (GEFS), and Subseasonal Forecast System (SFS) configurations.

======
Status
Expand Down
4 changes: 3 additions & 1 deletion env/HERA.env
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,9 @@ elif [[ "${step}" = "gempak" ]]; then
export CFP_MP="YES"

export NTHREADS_GEMPAK=${NTHREADS1}
[[ ${NTHREADS_GEMPAK} -gt ${max_threads_per_task} ]] && export NTHREADS_GEMPAK=${max_threads_per_task}
if [[ ${NTHREADS_GEMPAK} -gt ${max_threads_per_task} ]]; then
export NTHREADS_GEMPAK=${max_threads_per_task}
fi

elif [[ "${step}" = "fit2obs" ]]; then

Expand Down
1 change: 1 addition & 0 deletions env/HERCULES.env
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ case ${step} in
"fcst" | "efcs")

export OMP_STACKSIZE=512M
export FI_MLX_INJECT_LIMIT=0

(( nnodes = (ntasks+tasks_per_node-1)/tasks_per_node ))
(( ufs_ntasks = nnodes*tasks_per_node ))
Expand Down
2 changes: 2 additions & 0 deletions env/ORION.env
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,8 @@ elif [[ "${step}" = "eupd" ]]; then

elif [[ "${step}" = "fcst" ]] || [[ "${step}" = "efcs" ]]; then

export FI_MLX_INJECT_LIMIT=0

(( nnodes = (ntasks+tasks_per_node-1)/tasks_per_node ))
(( ufs_ntasks = nnodes*tasks_per_node ))
# With ESMF threading, the model wants to use the full node
Expand Down
9 changes: 6 additions & 3 deletions jobs/JGDAS_ENKF_UPDATE
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ export APREFIX="${RUN}.t${cyc}z."
export GPREFIX="${GDUMP_ENS}.t${gcyc}z."

MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COM_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL
COMIN_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL

MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COMOUT_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL

MEMDIR="ensstat" RUN="enkfgdas" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
COM_ATMOS_HISTORY_STAT_PREV:COM_ATMOS_HISTORY_TMPL
COMIN_ATMOS_HISTORY_STAT_PREV:COM_ATMOS_HISTORY_TMPL


###############################################################
Expand All @@ -43,7 +46,7 @@ status=$?
# Send Alerts
##############################################
if [ ${SENDDBN} = YES ] ; then
"${DBNROOT}/bin/dbn_alert" "MODEL" "ENKF1_MSC_enkfstat" "${job}" "${COM_ATMOS_ANALYSIS_STAT}/${APREFIX}enkfstat"
"${DBNROOT}/bin/dbn_alert" "MODEL" "ENKF1_MSC_enkfstat" "${job}" "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX}enkfstat"
fi


Expand Down
5 changes: 5 additions & 0 deletions jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_ECEN
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COMIN_ICE_RESTART:COM_ICE_RESTART_TMPL \
COMOUT_ICE_ANALYSIS:COM_ICE_ANALYSIS_TMPL

export DATAjob="${DATAROOT}/${RUN}marineanalysis.${PDY:-}${cyc}"
export DATAens="${DATAjob}/ensdata"
export GDUMP="gdas"
export GDUMP_ENS="enkf${GDUMP}"

##############################################
# Begin JOB SPECIFIC work
##############################################
Expand Down
Loading

0 comments on commit 12e4f0e

Please sign in to comment.