Skip to content

Files

Latest commit

ba5795b · Jan 14, 2025

History

History

DriverInDriverProto

README for Driver-in-Driver NUOPC prototype
-------------------------------------------

Show how a driver component can be driven as a child component of another 
driver component.

Description:

  A two-way coupled system with two driver levels (driverParentComp and 
  driverChildComp) and two model components (ATM, OCN).

  The driverParentComp driver uses explicitly constructed petLists when adding
  the child components: driverChildComp, and OCN.

  The ESM driver component uses the default run sequence to implement coupling
  between driverChildComp(i.e. ATM) and OCN components. 
  
  The connector components are explicitly added by the driverParentComp.
  
  The driverChildComp adds ATM as its only child component and uses the
  default run sequence to only drive the ATM component.

  Both ATM and OCN components use a simple two-phase initialization,
  consisting of advertise and realize.
  

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 ./mainApp (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.
  - driverChildComp.F90   - Driver child component run from within parent 
                            driver, and looking like an ATM to the outside.
  - atm.F90               - the ATM component driven by driverChildComp.F90
  - driverParentComp.F90  - Driver parent component, driving the driver child
                            component and the OCN model component.
  - ocn.F90               - the OCN component driven by driverParentComp.F90
  - mainApp.F90           - Main application.