diff --git a/config/cesm/machines/config_batch.xml b/config/cesm/machines/config_batch.xml
index eb099adc07b..49e89e98788 100644
--- a/config/cesm/machines/config_batch.xml
+++ b/config/cesm/machines/config_batch.xml
@@ -321,6 +321,20 @@
+
+ qsub
+
+ -l job_priority=$JOB_PRIORITY
+
+
+ -S {{ shell }}
+ -l select={{ num_nodes }}:ncpus={{ max_tasks_per_node }}:mpiprocs={{ tasks_per_node }}:ompthreads={{ thread_count }}
+
+
+ main
+
+
+
sbatch
diff --git a/config/cesm/machines/config_compilers.xml b/config/cesm/machines/config_compilers.xml
index 8af5d247e3f..6ae06a955a0 100644
--- a/config/cesm/machines/config_compilers.xml
+++ b/config/cesm/machines/config_compilers.xml
@@ -773,6 +773,18 @@ using a fortran linker.
+
+
+ -qno-opt-dynamic-align -fp-model precise -std=gnu99
+ -std=gnu89
+
+ $ENV{NETCDF}
+ $ENV{PNETCDF}
+
+ -lnetcdff -lnetcdf
+
+
+
-O2
diff --git a/config/cesm/machines/config_machines.xml b/config/cesm/machines/config_machines.xml
index d9904166cab..6a5b7fabf0b 100644
--- a/config/cesm/machines/config_machines.xml
+++ b/config/cesm/machines/config_machines.xml
@@ -906,6 +906,113 @@ This allows using a different mpirun command to launch unit tests
+
+ NCAR AMD EPYC
+ de.*.hpc.ucar.edu
+ CNL
+ intel
+ mpich
+ $ENV{SCRATCH}
+ $ENV{CESMDATAROOT}/inputdata
+ $ENV{CESMDATAROOT}/inputdata/atm/datm7
+ $CIME_OUTPUT_ROOT/archive/$CASE
+ $ENV{CESMDATAROOT}/ccsm_baselines
+ $ENV{CESMDATAROOT}/cprnc/cprnc
+ 16
+ pbs
+ cseg
+ 128
+ 128
+ TRUE
+
+ mpiexec
+
+ --label
+ --line-buffer
+ -n {{ total_tasks }}
+
+
+
+ $LMOD_ROOT/lmod/init/perl
+ $LMOD_ROOT/lmod/init/env_modules_python.py
+ $LMOD_ROOT/lmod/init/sh
+ $LMOD_ROOT/lmod/init/csh
+ $LMOD_ROOT/lmod/libexec/lmod perl
+ $LMOD_ROOT/lmod/libexec/lmod python
+ module
+ module
+
+ cesmdev/1.0
+ ncarenv/23.09
+
+ craype
+ cmake
+
+
+ intel/2023.2.1
+ mkl
+
+
+ intel-oneapi/2023.2.1
+ mkl
+
+
+ intel-classic/2023.2.1
+ mkl
+
+
+ cce/15.0.1
+ cray-libsci/23.02.1.1
+
+
+ gcc/12.2.0
+ cray-libsci/23.02.1.1
+
+
+ nvhpc/23.7
+
+
+ ncarcompilers/1.0.0
+ cmake
+
+
+ cray-mpich/8.1.27
+
+
+ mpi-serial/2.3.0
+
+
+
+ netcdf/4.9.2
+
+
+
+ netcdf-mpi/4.9.2
+ parallel-netcdf/1.12.3
+
+
+ parallelio/2.6.2
+ esmf/8.5.0
+
+
+ parallelio/2.6.2-debug
+ esmf/8.5.0
+
+
+
+
+
+ /glade/u/apps/derecho/23.09/spack/opt/spack/netcdf/4.9.2/packages/netcdf-fortran/4.6.1/oneapi/2023.2.1/vfpj
+ /glade/u/apps/derecho/23.09/spack/opt/spack/netcdf/4.9.2/packages/netcdf-c/4.9.2/oneapi/2023.2.1/cnx4
+ 64M
+ hybrid
+ memhooks
+
+
+ *:romio_cb_read=enable:romio_cb_write=enable:striping_factor=24
+
+
+
PNL IBM Xeon cluster, os is Linux (pgi), batch system is SLURM
LINUX
diff --git a/config/xml_schemas/config_batch.xsd b/config/xml_schemas/config_batch.xsd
index 141bcf8e57f..b7ed725a5e3 100644
--- a/config/xml_schemas/config_batch.xsd
+++ b/config/xml_schemas/config_batch.xsd
@@ -127,9 +127,19 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -147,9 +157,6 @@
-
-
-
@@ -157,6 +164,10 @@
+
+
+
+
diff --git a/src/build_scripts/buildlib.pio b/src/build_scripts/buildlib.pio
index ca068329ec0..e19ae50976c 100755
--- a/src/build_scripts/buildlib.pio
+++ b/src/build_scripts/buildlib.pio
@@ -82,7 +82,7 @@ def buildlib(bldroot, installpath, case):
if not os.path.isdir(pio_dir):
os.makedirs(pio_dir)
casetools = case.get_value("CASETOOLS")
- cmake_opts = "\"-D GENF90_PATH=$CIMEROOT/src/externals/genf90 \""
+ cmake_opts = '"-D GENF90_PATH=$CIMEROOT/src/externals/genf90 "'
stdargs = get_standard_makefile_args(case, shared_lib=True)
gmake_vars = "CASEROOT={caseroot} MODEL={pio_model} "\
diff --git a/src/drivers/mct/cime_config/config_component.xml b/src/drivers/mct/cime_config/config_component.xml
index 24f33af6b52..681f6374cb8 100644
--- a/src/drivers/mct/cime_config/config_component.xml
+++ b/src/drivers/mct/cime_config/config_component.xml
@@ -503,6 +503,15 @@
List of job ids for most recent case.submit
+
+ char
+ regular
+ regular,premium,economy
+ run_begin_stop_restart
+ env_run.xml
+ job priority for systems supporting this option
+
+
diff --git a/src/externals/genf90/genf90.pl b/src/externals/genf90/genf90.pl
index 5d35112e953..6dba47d7687 100755
--- a/src/externals/genf90/genf90.pl
+++ b/src/externals/genf90/genf90.pl
@@ -34,11 +34,12 @@
# foo(1, bar), foo(2, bar), foo(3, bar), ...
# defaults
-my @types = qw(text real double int);
+my @types = qw(text real double int short);
my $vtype = {'text' => 'character(len=*)',
'real' => 'real(r4)',
'double' => 'real(r8)',
'int' => 'integer(i4)',
+ 'short' => 'integer(i2)',
'long' => 'integer(i8)',
'logical' => 'logical' };
my $itype = {'text' => 100,
@@ -46,27 +47,32 @@
'double' => 102,
'int' => 103,
'long' => 104,
- 'logical' => 105};
+ 'logical' => 105,
+ 'short' => 106};
my $itypename = {'text' => 'TYPETEXT',
'real' => 'TYPEREAL',
'double' => 'TYPEDOUBLE',
'int' => 'TYPEINT',
+ 'short' => 'TYPESHORT',
'long' => 'TYPELONG',
'logical' => 'TYPELOGICAL'};
my $mpitype = {'text' => 'MPI_CHARACTER',
'real' => 'MPI_REAL4',
+ 'short' => 'MPI_SHORT',
'double' => 'MPI_REAL8',
'int' => 'MPI_INTEGER'};
# Netcdf C datatypes
my $nctype = {'text' => 'text',
'real' => 'float',
+ 'short' => 'short',
'double' => 'double',
'int' => 'int'};
# C interoperability types
my $ctype = {'text' => 'character(C_CHAR)',
'real' => 'real(C_FLOAT)',
'double' => 'real(C_DOUBLE)',
- 'int' => 'integer(C_INT)'};
+ 'int' => 'integer(C_INT)',
+ 'short' => 'integer(C_SHORT)'};