CESM1.2: Data Models, version 8
The CESM data models perform the basic function of reading external data, modifying that data, and then sending it to the driver via standard CESM coupling interfaces. The driver and other models have no fundamental knowledge of whether another component is fully active or just a data model. In some cases, data models are prognostic and also receive and use some data sent by the driver to the data model. But in most cases, the data models are not running prognostically and have no need to receive any data from the driver.
The CESM data models have been parallelized and share significant amounts of source code. Methods for reading and interpolating data have been established and can easily be reused. There is a natural hierarchy in the system. The data model calls strdata methods which then call stream methods. There are inputs associated with the data model, strdata, and streams to configure the setup. The stream methods are responsible for managing the input data. The information is then passed up to the strdata methods where the data is read and interpolated in space and time. The interpolated data is passed up to the data model where final fields are derived, packed, and returned to the driver.