ESMX is used to implement a coupled system with two components (ATM and OCN). Both components are provided as NUOPC-compliant models.
Files and sub-directories that implement the fundamental concept demonstrated by the prototype. These are the primary artifacts to look at and to pattern actual user code after.
esmxBuild.yaml
- Standard ESMX YAML file describing the build dependencies of theesmx_app
(the executable) on components Lumo and Tawas.esmxRun.yaml
- Standard ESMX YAML file describing the run configuration: Lumo is OCN, Tawas is ATM, and defining the run sequence.Lumo
- Example OCN component. It uses a simple CMake based build system.TaWaS
- Example ATM component. It uses a GNU Make based build system.
- Build the ESMX executable by using the command line tool:
This assumes that the
ESMX_Builder
bin
directory of the desired ESMF installation is present in the user'sPATH
environemnt variable. TheESMX_Builder
tool first compiles all the required sub-components, and then links it into the final executable. - Run the
./install/bin/esmx_app
executable on 4 PETs using the appropriate MPI launch procedure. E.g.:Or using the alternativempirun -np 4 ./install/bin/esmx_app
esmxRun-Alt.yaml
configuration that usesESMX_Data
forATM
.mpirun -np 4 ./install/bin/esmx_app esmxRunAlt.yaml
Files that are needed for the integration into ESMF's automated testing infrastructure for regression testing. These artifacts might be interesting to look at, but generally should not be used as patterns to follow in actual projects.
Makefile
- GNU Makefile that defines targets that are used by the automated ESMF regression testing script.
- The default target of the
Makefile
calls theESMX_Builder
command line tool to build the ESMX executable:make
- The
run
target of theMakefile
uses the MPI launch procedure - identified by ESMF - to run./install/bin/esmx_app
on 4 PETs.Or to run with the alternativemake run
esmxRun-Alt.yaml
configuration that usesESMX_Data
forATM
.make runalt
- The
distclean
target of theMakefile
removes all of the generated files.make distclean