next up previous contents
Next: 2 Requirements Up: phys-interface Previous: Contents   Contents

1 Overview

This document describes the CAM interface for a column physics package. The term ``physics package'' is used generically to refer to either a physics or a chemistry package. The purpose of this document is to present the details necessary for a user to be able to test a new package in CAM as efficiently as possible. In the simplest case a user may be able to run CAM with a physics package that replaces a standard CAM package by writing a module that implements the interface specified here. No modification to the CAM code would be required, just a rebuild of CAM with the new interface module replacing the CAM interface module.

The interface comprises methods to initialize the package, and to run the package for a model timestep. It is designed to be uniform regardless of the nature of the package's internal timestep, and to be as flexible as possible, without imposing significant computational or memory overhead.

Writing the CAM interface for a physics package will be simplified if the package follows the coding standards of Kalnay et al. [1] which have been updated for Fortran 90 by the Common Modeling Infrastructure Working Group [2]. The basic philosophy behind the package coding standards is that a physics package should only be responsible for doing a calculation on the caller's computational state. The responsibilities of I/O and parallelization are left to the model infrastructure. In CAM the physics package interface is called below the level where parallelization details are implemented. The I/O services are provided to the physics package via use association of model utilities in the CAM interface methods.

The CAM physics driver is responsible for determining the sequence and the time or process splitting of the individual physics packages. An overview of the physics driver is presented since its design motivates many of the design decisions of the physics package interface.


next up previous contents
Next: 2 Requirements Up: phys-interface Previous: Contents   Contents
Brian Eaton 2002-09-18