next up previous contents
Next: 6 Review Status Up: atm_desdoc Previous: 4 Dynamics-Physics Coupling Module   Contents

Subsections

5 Utility Modules

The ESMF Infrastructure and the PILGRIM library provide many of the types and methods used for parallel decomposition of the grids and fields. In addition, ESMF provides the time managment routines with the calendar function. A timing library to gather performance characteristics of the code is the final utility module.

5.1 Description

5.1.1 History File Interface

The physics and dynamics packages will interface directly with the I/O package for history output. The code will retain current approach (OUTFLD) until new version is completed. The distributed data structures for saving history output coincide with the decomposition of the calling routine. ThusOUTFLD must distinguish sizes and lable values correctly. For example, the dynamics can call OUTFLD with a latitude slice and lat index. When a physical parameterization routine calls OUTFLD the chunk index is supplied. Buffers indexed by lat and chunk are kept in place in their appropriate distributed location until a gather is peformed from the call to WSHIST.

History accumulation buffers distributed as in physics and as in dynamics use a time variable for labels, etc which is independent of time variable in parameterizations.

5.1.2 DataTranspose and Transformation Libraries

The data transpose routines are used by the driver and interface routines by calls to shared module procedures. Thus the driver or interface routines may require a data transpose of a dynamics field to a physics field. The shared module procedures are available to effect the transposition calling these libraries.

5.1.3 Timing and performance monitoring

Time of day stamps, a wall clock time, second timer will be included. For performance monitoring in a MPI/OpenMP (hybrid) mode, these timers must be thread safe and provide some syncronization method. More specific hardware performance monitoring routines and routines that diagnose parallel performance will be included in the utility layer so that instrumentation is properly encapsulated.

5.1.4 Simulation Calendar Routines

The PHYSICS DRIVER receives basic calendar and simulation time information (not sure how to do this if parameterizations sub-step). History tape requires time and date information for header variables. This should be independent of time information for parameterization.

5.1.5 Use of CCSM Utilities

The utility layer defined in the atmospheric model is currently seperate from the intercomponent utility layer of the CCSM. In particular, the model coupling toolkit has not been utilized or extended to support the three dimensional field transformations and regriddings required by the atmospheric models utility layer. As performance may suffer from the unification of the utility layers, this step will be approached cautiously.

5.2 Layered Software Design

5.2.1 Package Definition

5.2.2 Restrictions

5.3 Derived Types

5.4 Modules

5.4.1 Interface Modules

5.4.2 Initialization Modules

5.4.3 Unit Testing Modules

5.4.4 Internal Modules


next up previous contents
Next: 6 Review Status Up: atm_desdoc Previous: 4 Dynamics-Physics Coupling Module   Contents
Brian Eaton 2003-10-09