Skip to content

Files

Latest commit

ba5795b · Jan 14, 2025

History

History

AtmOcnLndProto

README for ATM-OCN-LND NUOPC prototype
--------------------------------------

Show a run sequence with multiple sub-cycles.

Description:

  A two-way coupled system with a single driver (ESM), three model components
  (ATM, OCN, LND).

  The ESM driver reads and ingests a custom run sequence from config file
  to implement coupling between ATM, OCN, and LND components.
  
  The connector components are explicitly added by the driver.
  
  ATM, OCN, and LND components use a simple two-phase initialization,
  consisting of advertise and realize.
  
  The run sequence in the esmApp.runconfig file is artificially complex,
  containing sub-cycles with the same time step as the main coupling cycle.
  This is to demonstrate sub-cycle syntax.
  

Build:
  - Set environment variable ESMFMKFILE to point to the esmf.mk of your ESMF
    installation.
  - make
  
Execution:
  - Optionally set environment variable ESMF_RUNTIME_COMPLIANCECHECK to ON.
  - mpirun -np X ./esmApp (where X is the total number of PETs, typically 4)
  
Output:
  - PET*.Log files containing compliance checker output if turned on.
  - The prototype outputs time stepping information to stdout.

Code structure:
  - Makefile    - Makefile that is based on the standard esmf.mk mechanism.
  - atm.F90     - The ATM component, specializing generic NUOPC_Model.
  - ocn.F90     - The OCN component, specializing generic NUOPC_Model.
  - lnd.F90     - The LND component, specializing generic NUOPC_Model.
  - esm.F90     - The Earth System Model (ESM) component, specializing generic
                  NUOPC_Driver.
  - esmApp.F90  - ESM application.