140 likes | 298 Views
Incorporation of ESMF in CCSM. Erik Kluzek CCSM SEWG Meeting February 4, 2003. Outline. Design of current CCSM Design of CCSM main program using ESMF Main tasks -- subroutinization, coupling, utilities Subroutinization Coupling Utilities Implementation plan. Current CCSM.
E N D
Incorporation of ESMF in CCSM Erik Kluzek CCSM SEWG Meeting February 4, 2003
Outline • Design of current CCSM • Design of CCSM main program using ESMF • Main tasks -- subroutinization, coupling, utilities • Subroutinization • Coupling • Utilities • Implementation plan
Current CCSM CAM2Atmosphere Model CLM Land Model CSIM Sea-Ice Model CCSM Coupler POP Ocean Model
CCSM Design with ESMF • Single Executable • The CCSM application (main program) creates models (atmosphere, land, sea-ice, and ocean) as ESMF sub-components • Models run concurrently and pass data to a flux component (flx). • Transforming data between components is done in the ESMF coupler layer.
ESMF Terms • Component A computational entity associated with a physical process or function (such as land-model). There are three types: Application, Gridded, and ESMF Coupler components. • Layout A list of Processors and decomposition strategy (threads and tasks). • Import State The data a component requires from other components to run. • Export State The data that a component will supply to other components
Outline of CCSM Application • Create application component and retrieve initial layouts for each component. • Read in the global resource file (“namelist”). • Create each component and associate the initial, run, and finalize methods. • Initialize ESMF coupler component and get transforms for each component. • Initialize the clock information (start, stop, reference times) • Set the clock alarms to go off on the coupling intervals. • Run the initial methods for each component (components set own time-step). • Do the initial send and receive. (Either, use transforms or call coupler methods at application layer) • Run the run method for each component (Run until either: clock stop-time, time-interval input, or number of model time-steps input. • Run the final method for each component. • Do the final send and receive. • Run the destroy method for each component.
Main Tasks • Subroutinization -- Divide each model component (atm, ocn, ice, lnd, and flx) into initial, run, and finalize subroutines. The interfaces to these subroutines will be set by ESMF. • Coupling -- Replace MPI/MCT coupling subroutines with ESMF equivalents. • Utilities -- Implement utilities such as: Log, Error, Performance-Profiling, IO, Time manager, Communication and Config attributes into CCSM models.
Subroutinization • Each model decomposed into initial, run, and final subroutines. • The interface to these subroutines is standardized by ESMF (some standard and some optional arguments). • Interfaces accessible from a module.
Coupling • Models become components. • Models fill export states and query import states. • ESMF coupler created to send/receive data between components. • Communication done using ESMF Transforms which act on ESMF States (import or export states)
Some utilities will be implemented in CCSM using csm_share code as a wrapper layer. Fields, Bundles, Grids, States, Communication and Transforms for coupling Time manager for most models (POP?) Log, Error, PerfProf Config Attributes Utilities
Implemention Plan • Pseudo-code development of CCSM -- 1st qtr 2003 • Move to CPL6 -- 1st qtr 2003 • Subroutinize models -- April 2003 • ESMF calendar in ESMF branch for CAM,CLM,CPL --- 2nd qtr 2003 • Prototype ESMF superstructure in CAM -- 2nd qtr 2003 • Prototype ESMF superstructure in CPL6/dead model -- 3rd qtr 2003 • Implement shared code using ESMF infrastructure -- April 2004 • First pass at ESMF coupling in CCSM on ESMF branch -- 1st qtr 2004 • Move ESMF branch to production model versions -- 2nd qtr 2004