diff --git a/.github/workflows/dockerextbuild.yml b/.github/workflows/dockerextbuild.yml
new file mode 100644
index 000000000..466fcfbe6
--- /dev/null
+++ b/.github/workflows/dockerextbuild.yml
@@ -0,0 +1,119 @@
+# This is a workflow to compile the cmeps source without cime
+name: extbuild
+# Controls when the action will run. Triggers the workflow on push or pull request
+# events but only for the master branch
+on:
+ push
+# :
+# branches: [ master ]
+# pull_request:
+# branches: [ master ]
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+ build-cmeps:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ openmpi: [4.1.2]
+ hdf5: [1.12]
+ netcdfc: [4.8.1]
+ netcdff: [4.5.4]
+ pnetcdf: [1.12.3]
+ env:
+ CC: mpicc
+ FC: mpifort
+ CXX: mpicxx
+ CPPFLAGS: "-I/usr/include -I/usr/local/include"
+ # Versions of all dependencies can be updated here
+ ESMF_VERSION: jedwards/pio_update2
+ # PIO version
+ PIO_VERSION: pio2_5_6
+
+ container:
+ image: jedwards4b/o${{ matrix.openmpi }}h${{ matrix.hdf5 }}nc${{ matrix.netcdfc }}nf${{ matrix.netcdff }}p${{ matrix.pnetcdf }}
+ options: --user 1001
+ steps:
+ - name: checkout cmeps
+ uses: actions/checkout@v3
+ with:
+ path: components/cmeps
+ - name: checkout cmake_fortran_utils
+ uses: actions/checkout@v3
+ with:
+ repository: CESM-Development/CMake_Fortran_utils
+ path: build/CMake_Fortran_utils
+ - name: Checkout PIO
+ uses: actions/checkout@v3
+ with:
+ repository: NCAR/ParallelIO
+ ref: ${{ env.PIO_VERSION }}
+ path: ParallelIO
+ - name: Checkout ESMF
+ uses: actions/checkout@v3
+ with:
+ repository: esmf-org/esmf
+ ref: ${{ env.ESMF_VERSION }}
+ path: ESMF
+ - name: Checkout genf90
+ uses: actions/checkout@v3
+ with:
+ repository: ParallelIO/genf90
+ path: build/genf90
+ - name: Cache PIO
+ id: cache-PIO
+ uses: actions/cache@v2
+ with:
+ path: ParalleIO
+ key: ${{ runner.os }}-${{ env.PIO_VERSION }}.pio
+
+ - name: build PIO
+ if: steps.cache-PIO.outputs.cache-hit != 'true'
+ run: |
+ cd build
+ export PATH=/usr/local/bin:$PATH
+ cmake -Wno-dev \
+ -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/pio \
+ -DGENF90_PATH=${GITHUB_WORKSPACE}/build/genf90 \
+ -DNetCDF_PATH=/usr/local/ \
+ -DPnetCDF_PATH=/usr/local \
+ -DPIO_ENABLE_FORTRAN=ON \
+ -DPIO_ENABLE_TIMING=Off \
+ ../ParallelIO
+ make VERBOSE=1
+ make install
+
+ - id: cache-esmf
+ uses: actions/cache@v2
+ with:
+ path: esmf
+ key: ${{ runner.os }}-${{ env.ESMF_VERSION }}-ESMF
+ - name: build ESMF
+ if: steps.cache-esmf.outputs.cache-hit != 'true'
+ env:
+ ESMF_COMPILER: gfortran
+ ESMF_BOPT: g
+ ESMF_PIO: external
+ ESMF_PIO_INCLUDE: ${GITHUB_WORKSPACE}/pio/include
+ ESMF_PIO_LIBPATH: ${GITHUB_WORKSPACE}/pio/lib
+ ESMF_NETCDF: nc-config
+ ESMF_PNETCDF: pnetcdf-config
+ ESMF_COMM: openmpi
+ ESMF_INSTALL_PREFIX: esmf
+ run: |
+ cd ESMF
+ export ESMF_DIR=`pwd`
+ echo $ESMF_DIR
+ make -j 2
+ make install
+
+ - name: Build CMEPS
+ env:
+ ESMFMKFILE: ${GITHUB_WORKSPACE}/esmf/lib/libg/Linux.gfortran.64.openmpi.default/esmf.mk
+ PIO: ${GITHUB_WORKSPACE}/pio
+ run: |
+ mkdir build-cmeps
+ cd build-cmeps
+ cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_Fortran_FLAGS="-g -Wall -ffree-form -ffree-line-length-none" ../components/cmeps
+ make VERBOSE=1
+
diff --git a/.github/workflows/dockersrt.yml b/.github/workflows/dockersrt.yml
new file mode 100644
index 000000000..5d916ffe4
--- /dev/null
+++ b/.github/workflows/dockersrt.yml
@@ -0,0 +1,129 @@
+# CIME scripts regression tests
+
+name: scripts regression tests
+
+# Controls when the action will run. Triggers the workflow on push or pull request
+# events but only for the master branch
+on:
+ push
+# :
+# branches: main
+# pull_request:
+# branches: main
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+ # This workflow contains a single job called "build"
+ build:
+ # The type of runner that the job will run on
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ mpich: [4.0.1]
+ hdf5: [1.12]
+ netcdfc: [4.8.1]
+ netcdff: [4.5.4]
+ pnetcdf: [1.12.3]
+ env:
+ CC: mpicc
+ FC: mpifort
+ CXX: mpicxx
+ CPPFLAGS: "-I/usr/include -I/usr/local/parallel/include"
+ # Versions of all dependencies can be updated here
+ PARALLELIO_VERSION: pio2_5_6
+ ESMF_VERSION: jedwards/pio_update2
+ CIME_MODEL: cesm
+ container:
+ image: jedwards4b/m${{ matrix.mpich }}h${{ matrix.hdf5 }}nc${{ matrix.netcdfc }}nf${{ matrix.netcdff }}p${{ matrix.pnetcdf }}
+
+ # Steps represent a sequence of tasks that will be executed as part of the job
+ steps:
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - name: cime checkout
+ uses: actions/checkout@v3
+ with:
+ repository: ESMCI/cime
+
+ - name: share checkout
+ uses: actions/checkout@v3
+ with:
+ repository: ESCOMP/CESM_share
+ path: share
+
+ - name: cpl7 checkout
+ uses: actions/checkout@v3
+ with:
+ repository: ESCOMP/CESM_CPL7andDataComps
+ path: components/cpl7
+
+ - name: mct checkout
+ uses: actions/checkout@v3
+ with:
+ repository MCSclimate/MCT
+ path: libraries/mct
+
+ - name: parallelio checkout
+ uses: actions/checkout@v3
+ with:
+ repository NCAR/ParallelIO
+ path: libraries/parallelio
+
+ - name: Cache inputdata
+ id: cache-inputdata
+ uses: actions/cache@v2
+ with:
+ path: $HOME/cesm/inputdata
+ key: inputdata
+
+ - name: Checkout ESMF
+ uses: actions/checkout@v3
+ with:
+ repository: esmf-org/esmf
+ ref: ${{ env.ESMF_VERSION }}
+ path: ESMF
+
+ - id: cache-esmf
+ uses: actions/cache@v2
+ with:
+ path: esmf
+ key: ${{ runner.os }}-${{ env.ESMF_VERSION }}-ESMF
+ - name: build ESMF
+ if: steps.cache-esmf.outputs.cache-hit != 'true'
+ env:
+ ESMF_COMPILER: gfortran
+ ESMF_BOPT: g
+ ESMF_PIO: external
+ ESMF_PIO_INCLUDE: ${GITHUB_WORKSPACE}/pio/include
+ ESMF_PIO_LIBPATH: ${GITHUB_WORKSPACE}/pio/lib
+ ESMF_NETCDF: nc-config
+ ESMF_PNETCDF: pnetcdf-config
+ ESMF_COMM: openmpi
+ ESMF_INSTALL_PREFIX: esmf
+ run: |
+ cd ESMF
+ export ESMF_DIR=`pwd`
+ echo $ESMF_DIR
+ make -j 2
+ make install
+#
+# The following can be used to ssh to the testnode for debugging
+# see https://github.com/mxschmitt/action-tmate for details
+# - name: Setup tmate session
+# uses: mxschmitt/action-tmate@v3
+
+ - name: scripts regression tests
+ run: |
+ mkdir -p ${HOME}/cesm/scratch
+ mkdir -p ${HOME}/cesm/inputdata
+ cd ${HOME}/work/CESM_share/CESM_share/scripts/tests
+ ls -l $HOME/work/CESM_share/CESM_share
+ export NETCDF=/usr/local/parallel
+ export PATH=$NETCDF/bin:$PATH
+ export LD_LIBRARY_PATH=$NETCDF/lib:$HOME/pnetcdf/lib:$LD_LIBRARY_PATH
+ ./scripts_regression_tests.py --no-fortran-run --compiler gnu --mpilib mpich --machine ubuntu-latest
+
+# the following can be used by developers to login to the github server in case of errors
+# see https://github.com/marketplace/actions/debugging-with-tmate for further details
+# - name: Setup tmate session
+# if: ${{ failure() }}
+# uses: mxschmitt/action-tmate@v3
diff --git a/cime_config/buildexe b/cime_config/buildexe
index f2a0c905c..e331f4c0e 100755
--- a/cime_config/buildexe
+++ b/cime_config/buildexe
@@ -105,7 +105,7 @@ def _main_func():
if os.path.isfile(exename):
os.remove(exename)
- cmd = "{} exec_se -j {} EXEC_SE={} MODEL=driver {} -f {} "\
+ cmd = "{} exec_se -j {} EXEC_SE={} CIME_COMP=driver {} -f {} "\
.format(gmake, gmake_j, exename, gmake_args, makefile)
diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml
index aeb7770fc..cc049dd86 100644
--- a/cime_config/config_component.xml
+++ b/cime_config/config_component.xml
@@ -17,6 +17,15 @@
List of component classes supported by this driver
+
+ char
+
+
+ case_comp
+ env_case.xml
+ Container environment to invoke, if any
+
+
char
cpl
@@ -648,7 +657,7 @@
build_def
env_build.xml
Output root directory for each machine.
- Base directory for build and run directories.
+ Base directory for build and run directories.
@@ -997,9 +1006,9 @@
env_run.xml
Determines what ESMF log files (if any) are generated when
- USE_ESMF_LIB is TRUE.
+ USE_ESMF_LIB is TRUE.
ESMF_LOGKIND_SINGLE: Use a single log file, combining messages from
- all of the PETs. Not supported on some platforms.
+ all of the PETs. Not supported on some platforms.
ESMF_LOGKIND_MULTI: Use multiple log files -- one per PET.
ESMF_LOGKIND_NONE: Do not issue messages to a log file.
By default, no ESMF log files are generated.
@@ -1040,8 +1049,8 @@
run_flags
env_run.xml
Turns on component barriers for component timing.
- This variable is for testing and debugging only and should never
- be set for a production run.
+ This variable is for testing and debugging only and should never
+ be set for a production run.
@@ -1249,7 +1258,7 @@
run_domain
env_run.xml
Latitude of grid location, in single column mode interpolate datasets to this location
- in single point mode assume all datasets are at this location
+ in single point mode assume all datasets are at this location
@@ -1258,7 +1267,7 @@
run_domain
env_run.xml
Longitude of grid location, in single column mode interpolate datasets to this location
- in single point mode assume all datasets are at this location
+ in single point mode assume all datasets are at this location
@@ -1267,10 +1276,10 @@
run_domain
env_run.xml
used only if if PTS_LAT and PTS_LON are greater than or
- equal to 0. If this is the case then if PTS_DOMAINFILE is not
- equal to UNSET a nearest neighbor search of PTS_DOMAINFILE using
- PTS_LAT and PTS_LON will be done and the component mesh will have
- this nearest neighbor value.
+ equal to 0. If this is the case then if PTS_DOMAINFILE is not
+ equal to UNSET a nearest neighbor search of PTS_DOMAINFILE using
+ PTS_LAT and PTS_LON will be done and the component mesh will have
+ this nearest neighbor value.
@@ -1955,7 +1964,7 @@
pio rearranger communication max pending requests (io2comp) :
-2 implies that CIME internally calculates the value ( = 64),
-1 implies no bound on max pending requests
- 0 implies that MPI_ALLTOALL will be used
+ 0 implies that MPI_ALLTOALL will be used