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)'};