diff --git a/modulefiles/tasks/gaea/make_grid.local b/modulefiles/tasks/gaea/make_grid.local
new file mode 100644
index 000000000..fbd52ffa0
--- /dev/null
+++ b/modulefiles/tasks/gaea/make_grid.local
@@ -0,0 +1,6 @@
+#%Module
+module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles
+module load rocoto
+module load miniconda3
+
+setenv SRW_ENV regional_workflow
diff --git a/modulefiles/tasks/gaea/make_ics.local b/modulefiles/tasks/gaea/make_ics.local
new file mode 100644
index 000000000..fbd52ffa0
--- /dev/null
+++ b/modulefiles/tasks/gaea/make_ics.local
@@ -0,0 +1,6 @@
+#%Module
+module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles
+module load rocoto
+module load miniconda3
+
+setenv SRW_ENV regional_workflow
diff --git a/modulefiles/tasks/gaea/make_lbcs.local b/modulefiles/tasks/gaea/make_lbcs.local
new file mode 100644
index 000000000..fbd52ffa0
--- /dev/null
+++ b/modulefiles/tasks/gaea/make_lbcs.local
@@ -0,0 +1,6 @@
+#%Module
+module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles
+module load rocoto
+module load miniconda3
+
+setenv SRW_ENV regional_workflow
diff --git a/modulefiles/tasks/gaea/run_fcst.local b/modulefiles/tasks/gaea/run_fcst.local
new file mode 100644
index 000000000..fbd52ffa0
--- /dev/null
+++ b/modulefiles/tasks/gaea/run_fcst.local
@@ -0,0 +1,6 @@
+#%Module
+module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles
+module load rocoto
+module load miniconda3
+
+setenv SRW_ENV regional_workflow
diff --git a/modulefiles/tasks/gaea/run_vx.local b/modulefiles/tasks/gaea/run_vx.local
new file mode 100644
index 000000000..929c2011f
--- /dev/null
+++ b/modulefiles/tasks/gaea/run_vx.local
@@ -0,0 +1,7 @@
+#%Module
+
+module use -a /contrib/anaconda/modulefiles
+module load intel/18.0.5.274
+module load anaconda/latest
+module use -a /contrib/met/modulefiles/
+module load met/10.0.0
diff --git a/ush/config_defaults.sh b/ush/config_defaults.sh
index be96316d7..3e2450798 100644
--- a/ush/config_defaults.sh
+++ b/ush/config_defaults.sh
@@ -1690,6 +1690,14 @@ MAXTRIES_VX_ENSGRID_PROB_RETOP="1"
MAXTRIES_VX_ENSPOINT="1"
MAXTRIES_VX_ENSPOINT_MEAN="1"
MAXTRIES_VX_ENSPOINT_PROB="1"
+
+#
+#-----------------------------------------------------------------------
+#
+# Allows an extra parameter to be passed to slurm via XML Native
+# command
+#
+SLURM_NATIVE_CMD=""
#
#-----------------------------------------------------------------------
#
diff --git a/ush/generate_FV3LAM_wflow.sh b/ush/generate_FV3LAM_wflow.sh
index 83282b717..8af7497b0 100755
--- a/ush/generate_FV3LAM_wflow.sh
+++ b/ush/generate_FV3LAM_wflow.sh
@@ -193,6 +193,7 @@ file (template_xml_fp):
'partition_fcst': ${PARTITION_FCST}
'queue_fcst': ${QUEUE_FCST}
'machine': ${MACHINE}
+ 'slurm_native_cmd': ${SLURM_NATIVE_CMD}
#
# Workflow task names.
#
diff --git a/ush/machine/gaea.sh b/ush/machine/gaea.sh
new file mode 100755
index 000000000..9bad0af74
--- /dev/null
+++ b/ush/machine/gaea.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+function file_location() {
+
+ # Return the default location of external model files on disk
+
+ local external_file_fmt external_model location
+
+ external_model=${1}
+ external_file_fmt=${2}
+
+ case ${external_model} in
+
+ "FV3GFS")
+ location='/lustre/f2/dev/Mark.Potts/EPIC/SRW/model_data/FV3GFS/${yyyymmdd}${hh}'
+ ;;
+
+ esac
+ echo ${location:-}
+}
+
+
+EXTRN_MDL_SYSBASEDIR_ICS=${EXTRN_MDL_SYSBASEDIR_ICS:-$(file_location \
+ ${EXTRN_MDL_NAME_ICS} \
+ ${FV3GFS_FILE_FMT_ICS})}
+EXTRN_MDL_SYSBASEDIR_LBCS=${EXTRN_MDL_SYSBASEDIR_LBCS:-$(file_location \
+ ${EXTRN_MDL_NAME_LBCS} \
+ ${FV3GFS_FILE_FMT_ICS})}
+
+# System scripts to source to initialize various commands within workflow
+# scripts (e.g. "module").
+if [ -z ${ENV_INIT_SCRIPTS_FPS:-""} ]; then
+ ENV_INIT_SCRIPTS_FPS=( "/etc/profile" )
+fi
+
+
+# Commands to run at the start of each workflow task.
+PRE_TASK_CMDS='{ ulimit -s unlimited; ulimit -a; }'
+
+# Architecture information
+WORKFLOW_MANAGER="rocoto"
+SLURM_NATIVE_CMD="-M c3"
+NCORES_PER_NODE=${NCORES_PER_NODE:-32}
+SCHED=${SCHED:-"slurm"}
+QUEUE_DEFAULT=${QUEUE_DEFAULT:-"normal"}
+QUEUE_HPSS=${QUEUE_DEFAULT:-"normal"}
+QUEUE_FCST=${QUEUE_DEFAULT:-"normal"}
+WTIME_MAKE_LBCS="00:60:00"
+
+# UFS SRW App specific paths
+FIXgsm=${FIXgsm:-"//lustre/f2/dev/Mark.Potts/EPIC/fix/fix_am"}
+FIXaer=${FIXaer:-"/lustre/f2/dev/Mark.Potts/EPIC/fix/fix_aer"}
+FIXlut=${FIXlut:-"/lustre/f2/dev/Mark.Potts/EPIC/fix/fix_lut"}
+TOPO_DIR=${TOPO_DIR:-"/lustre/f2/dev/Mark.Potts/EPIC/fix/fix_orog"}
+SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/lustre/f2/dev/Mark.Potts/EPIC/fix/fix_sfc_climo"}
+
+RUN_CMD_SERIAL="time"
+#Run Commands currently differ for GNU/openmpi
+#RUN_CMD_UTILS='mpirun --mca btl tcp,vader,self -np $nprocs'
+#RUN_CMD_FCST='mpirun --mca btl tcp,vader,self -np ${PE_MEMBER01}'
+#RUN_CMD_POST='mpirun --mca btl tcp,vader,self -np $nprocs'
+RUN_CMD_UTILS='srun --mpi=pmi2 -n $nprocs'
+RUN_CMD_FCST='srun --mpi=pmi2 -n ${PE_MEMBER01}'
+RUN_CMD_POST='srun --mpi=pmi2 -n $nprocs'
+
+# MET Installation Locations
+# MET Plus is not yet supported on gaea
+# Test Data Locations
+TEST_EXTRN_MDL_SOURCE_BASEDIR="/lustre/f2/dev/Mark.Potts/EPIC/SRW/model_data"
+
diff --git a/ush/templates/FV3LAM_wflow.xml b/ush/templates/FV3LAM_wflow.xml
index 48e53d81a..aecf38158 100644
--- a/ush/templates/FV3LAM_wflow.xml
+++ b/ush/templates/FV3LAM_wflow.xml
@@ -22,6 +22,7 @@ Parameters needed by the job scheduler.
+
@@ -184,6 +185,9 @@ MODULES_RUN_TASK_FP script.
{%- endif %}
{{ wtime_make_grid }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&MAKE_GRID_TN;
&LOGDIR;/&MAKE_GRID_TN;.log
@@ -207,6 +211,9 @@ MODULES_RUN_TASK_FP script.
{%- endif %}
{{ wtime_make_orog }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&MAKE_OROG_TN;
&LOGDIR;/&MAKE_OROG_TN;.log
@@ -234,6 +241,9 @@ MODULES_RUN_TASK_FP script.
{{ nnodes_make_sfc_climo }}:ppn={{ ppn_make_sfc_climo }}
{{ wtime_make_sfc_climo }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&MAKE_SFC_CLIMO_TN;
&LOGDIR;/&MAKE_SFC_CLIMO_TN;.log
@@ -271,6 +281,9 @@ MODULES_RUN_TASK_FP script.
{{ nnodes_get_extrn_ics }}:ppn={{ ppn_get_extrn_ics }}
{{ wtime_get_extrn_ics }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&GET_EXTRN_ICS_TN;
&LOGDIR;/&GET_EXTRN_ICS_TN;_@Y@m@d@H.log
@@ -298,6 +311,9 @@ MODULES_RUN_TASK_FP script.
{{ nnodes_get_extrn_lbcs }}:ppn={{ ppn_get_extrn_lbcs }}
{{ wtime_get_extrn_lbcs }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&GET_EXTRN_LBCS_TN;
&LOGDIR;/&GET_EXTRN_LBCS_TN;_@Y@m@d@H.log
@@ -332,6 +348,9 @@ MODULES_RUN_TASK_FP script.
{{ nnodes_make_ics }}:ppn={{ ppn_make_ics }}
{{ wtime_make_ics }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&MAKE_ICS_TN;{{ uscore_ensmem_name }}
&LOGDIR;/&MAKE_ICS_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -376,6 +395,9 @@ MODULES_RUN_TASK_FP script.
{{ nnodes_make_lbcs }}:ppn={{ ppn_make_lbcs }}
{{ wtime_make_lbcs }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&MAKE_LBCS_TN;{{ uscore_ensmem_name }}
&LOGDIR;/&MAKE_LBCS_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -423,6 +445,9 @@ MODULES_RUN_TASK_FP script.
{%- else %}
{{ nnodes_run_fcst }}:ppn={{ ppn_run_fcst }}
&NCORES_PER_NODE;
+ {%- endif %}
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
{%- endif %}
{{ wtime_run_fcst }}
&RUN_FCST_TN;{{ uscore_ensmem_name }}
@@ -475,6 +500,9 @@ later below for other output times.
{{ nnodes_run_post }}:ppn={{ ppn_run_post }}
{{ wtime_run_post }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#
&LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H.log
@@ -529,6 +557,9 @@ for other output times.
{{ nnodes_run_post }}:ppn={{ ppn_run_post }}
{{ wtime_run_post }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#
&LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H.log
@@ -588,6 +619,9 @@ always zero).
{{ nnodes_run_post }}:ppn={{ ppn_run_post }}
{{ wtime_run_post }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
{%- if sub_hourly_post %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#
&LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H.log
@@ -656,6 +690,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_run_post }}:ppn={{ ppn_run_post }}
{{ wtime_run_post }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#
&LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H.log
@@ -699,6 +736,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_get_obs_ccpa }}:ppn={{ ppn_get_obs_ccpa }}
{{ wtime_get_obs_ccpa }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&GET_OBS_CCPA_TN;
&LOGDIR;/&GET_OBS_CCPA_TN;_@Y@m@d@H.log
@@ -729,6 +769,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_get_obs_mrms }}:ppn={{ ppn_get_obs_mrms }}
{{ wtime_get_obs_mrms }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&GET_OBS_MRMS_TN;
&LOGDIR;/&GET_OBS_MRMS_TN;_@Y@m@d@H.log
@@ -760,6 +803,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_get_obs_ndas }}:ppn={{ ppn_get_obs_ndas }}
{{ wtime_get_obs_ndas }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&GET_OBS_NDAS_TN;
&LOGDIR;/&GET_OBS_NDAS_TN;_@Y@m@d@H.log
@@ -786,6 +832,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_gridstat }}:ppn={{ ppn_vx_gridstat }}
{{ wtime_vx_gridstat }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_GRIDSTAT_TN;
&LOGDIR;/&VX_GRIDSTAT_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -836,6 +885,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_gridstat }}:ppn={{ ppn_vx_gridstat }}
{{ wtime_vx_gridstat }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_GRIDSTAT_REFC_TN;
&LOGDIR;/&VX_GRIDSTAT_REFC_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -885,6 +937,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_gridstat }}:ppn={{ ppn_vx_gridstat }}
{{ wtime_vx_gridstat }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_GRIDSTAT_RETOP_TN;
&LOGDIR;/&VX_GRIDSTAT_RETOP_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -934,6 +989,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_gridstat }}:ppn={{ ppn_vx_gridstat }}
{{ wtime_vx_gridstat }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_GRIDSTAT_03h_TN;
&LOGDIR;/&VX_GRIDSTAT_03h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -969,6 +1027,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_gridstat }}:ppn={{ ppn_vx_gridstat }}
{{ wtime_vx_gridstat }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_GRIDSTAT_06h_TN;
&LOGDIR;/&VX_GRIDSTAT_06h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -1004,6 +1065,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_gridstat }}:ppn={{ ppn_vx_gridstat }}
{{ wtime_vx_gridstat }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_GRIDSTAT_24h_TN;
&LOGDIR;/&VX_GRIDSTAT_24h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -1039,6 +1103,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_pointstat }}:ppn={{ ppn_vx_pointstat }}
{{ wtime_vx_pointstat }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_POINTSTAT_TN;
&LOGDIR;/&VX_POINTSTAT_TN;{{ uscore_ensmem_name }}_@Y@m@d@H.log
@@ -1091,6 +1158,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid }}:ppn={{ ppn_vx_ensgrid }}
{{ wtime_vx_ensgrid }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_TN;
&LOGDIR;/&VX_ENSGRID_TN;_@Y@m@d@H.log
@@ -1123,6 +1193,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid }}:ppn={{ ppn_vx_ensgrid }}
{{ wtime_vx_ensgrid }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_03h_TN;
&LOGDIR;/&VX_ENSGRID_03h_TN;_@Y@m@d@H.log
@@ -1155,6 +1228,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid }}:ppn={{ ppn_vx_ensgrid }}
{{ wtime_vx_ensgrid }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_06h_TN;
&LOGDIR;/&VX_ENSGRID_06h_TN;_@Y@m@d@H.log
@@ -1187,6 +1263,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid }}:ppn={{ ppn_vx_ensgrid }}
{{ wtime_vx_ensgrid }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_24h_TN;
&LOGDIR;/&VX_ENSGRID_24h_TN;_@Y@m@d@H.log
@@ -1218,6 +1297,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid }}:ppn={{ ppn_vx_ensgrid }}
{{ wtime_vx_ensgrid }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_REFC_TN;
&LOGDIR;/&VX_ENSGRID_REFC_TN;_@Y@m@d@H.log
@@ -1248,6 +1330,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid }}:ppn={{ ppn_vx_ensgrid }}
{{ wtime_vx_ensgrid }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_RETOP_TN;
&LOGDIR;/&VX_ENSGRID_RETOP_TN;_@Y@m@d@H.log
@@ -1277,6 +1362,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_mean }}:ppn={{ ppn_vx_ensgrid_mean }}
{{ wtime_vx_ensgrid_mean }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_MEAN_TN;
&LOGDIR;/&VX_ENSGRID_MEAN_TN;_@Y@m@d@H.log
@@ -1308,6 +1396,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_prob }}:ppn={{ ppn_vx_ensgrid_prob }}
{{ wtime_vx_ensgrid_prob }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_PROB_TN;
&LOGDIR;/&VX_ENSGRID_PROB_TN;_@Y@m@d@H.log
@@ -1339,6 +1430,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_mean }}:ppn={{ ppn_vx_ensgrid_mean }}
{{ wtime_vx_ensgrid_mean }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_MEAN_03h_TN;
&LOGDIR;/&VX_ENSGRID_MEAN_03h_TN;_@Y@m@d@H.log
@@ -1370,6 +1464,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_prob }}:ppn={{ ppn_vx_ensgrid_prob }}
{{ wtime_vx_ensgrid_prob }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_PROB_03h_TN;
&LOGDIR;/&VX_ENSGRID_PROB_03h_TN;_@Y@m@d@H.log
@@ -1402,6 +1499,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_mean }}:ppn={{ ppn_vx_ensgrid_mean }}
{{ wtime_vx_ensgrid_mean }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_MEAN_06h_TN;
&LOGDIR;/&VX_ENSGRID_MEAN_06h_TN;_@Y@m@d@H.log
@@ -1433,6 +1533,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_prob }}:ppn={{ ppn_vx_ensgrid_prob }}
{{ wtime_vx_ensgrid_prob }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_PROB_06h_TN;
&LOGDIR;/&VX_ENSGRID_PROB_06h_TN;_@Y@m@d@H.log
@@ -1465,6 +1568,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_mean }}:ppn={{ ppn_vx_ensgrid_mean }}
{{ wtime_vx_ensgrid_mean }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_MEAN_24h_TN;
&LOGDIR;/&VX_ENSGRID_MEAN_24h_TN;_@Y@m@d@H.log
@@ -1496,6 +1602,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_prob }}:ppn={{ ppn_vx_ensgrid_prob }}
{{ wtime_vx_ensgrid_prob }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_PROB_24h_TN;
&LOGDIR;/&VX_ENSGRID_PROB_24h_TN;_@Y@m@d@H.log
@@ -1527,6 +1636,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_prob }}:ppn={{ ppn_vx_ensgrid_prob }}
{{ wtime_vx_ensgrid_prob }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_PROB_REFC_TN;
&LOGDIR;/&VX_ENSGRID_PROB_REFC_TN;_@Y@m@d@H.log
@@ -1557,6 +1669,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_ensgrid_prob }}:ppn={{ ppn_vx_ensgrid_prob }}
{{ wtime_vx_ensgrid_prob }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSGRID_PROB_RETOP_TN;
&LOGDIR;/&VX_ENSGRID_PROB_RETOP_TN;_@Y@m@d@H.log
@@ -1588,6 +1703,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_enspoint }}:ppn={{ ppn_vx_enspoint }}
{{ wtime_vx_enspoint }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSPOINT_TN;
&LOGDIR;/&VX_ENSPOINT_TN;_@Y@m@d@H.log
@@ -1616,6 +1734,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_enspoint_mean }}:ppn={{ ppn_vx_enspoint_mean }}
{{ wtime_vx_enspoint_mean }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSPOINT_MEAN_TN;
&LOGDIR;/&VX_ENSPOINT_MEAN_TN;_@Y@m@d@H.log
@@ -1644,6 +1765,9 @@ the tag to be identical to the ones above for other output times.
{{ nnodes_vx_enspoint_prob }}:ppn={{ ppn_vx_enspoint_prob }}
{{ wtime_vx_enspoint_prob }}
&NCORES_PER_NODE;
+ {%- if machine in ["GAEA"] %}
+ &SLURM_NATIVE_CMD;
+ {%- endif %}
&VX_ENSPOINT_PROB_TN;
&LOGDIR;/&VX_ENSPOINT_PROB_TN;_@Y@m@d@H.log
diff --git a/ush/valid_param_vals.sh b/ush/valid_param_vals.sh
index 1ea3a86b8..814f0fb82 100644
--- a/ush/valid_param_vals.sh
+++ b/ush/valid_param_vals.sh
@@ -4,7 +4,7 @@
valid_vals_RUN_ENVIR=("nco" "community")
valid_vals_VERBOSE=("TRUE" "true" "YES" "yes" "FALSE" "false" "NO" "no")
valid_vals_DEBUG=("TRUE" "true" "YES" "yes" "FALSE" "false" "NO" "no")
-valid_vals_MACHINE=("WCOSS_DELL_P3" "HERA" "ORION" "JET" "ODIN" "CHEYENNE" "STAMPEDE" "LINUX" "MACOS" "NOAACLOUD" "SINGULARITY")
+valid_vals_MACHINE=("WCOSS_DELL_P3" "HERA" "ORION" "JET" "ODIN" "CHEYENNE" "STAMPEDE" "LINUX" "MACOS" "NOAACLOUD" "SINGULARITY" "GAEA")
valid_vals_SCHED=("slurm" "pbspro" "lsf" "lsfcray" "none")
valid_vals_FCST_MODEL=("ufs-weather-model" "fv3gfs_aqm")
valid_vals_WORKFLOW_MANAGER=("rocoto" "none")