notes for ticket 181
Documentation relating to ticket 181 goes here.
Use Case 1
N48 atmosphere model, with parameterisations hard-coded into a single piece of code, written in F90. This model is coupled to a land surface model, written in C, and a chemistry model, written in F95, coupled using the OASIS coupler. The coupled model uses SST and ice climatologies provided in a file.
(taken from email and forum discussions)
- what is a model?
The CIM v0.1 is describing scientific models rather than software models. It has been decided, therefore, that a ModelComponent can represent an individual parameterisation scheme and is not restricted to high-level models like "the atmosphere" or "the ocean". The CIM v0.1 will contain a (set of) controlled vocabulary(ies) describing known types of scientific models. CIM best-practice will be to represent each instance of one of those types as a separate ModelComponent regardless of how it is instantiated within the code. Doing so will ensure that those CIM instances can provide useful input to the CIM toolkit.
In the future it may be appropriate to add extra information into the CIM to indicate whether a ModelComponent is really a separate piece of software (this may be via a "stand-alone" tag on the component, or an "embedded" tag on a connection).
- what is a coupler?
A coupler is a ModelComponent. Just like a traditional scientific component, it takes input, does "stuff", and provides output. It is unlikely that a coupling ModelComponent will have ScientificProperties and it is unlikely that a scientific ModelComponent will have CouplingProperties, but neither of these situations is explicitly prevented in the CIM. (And, in fact, they may be required in order to handle composite/hierarchical models.)
CIM best-practice is to require CouplingProperties of a parent ModelComponent and not allow CouplingProperties of a leaf ModelComponent. Thus if an atmosphere component is composed of a radiation component and a land-surface component and if the radiation component receives input from a file "input.nc" (where that file is represented as a FileModelComponent), then the CIM should either represent it as in Fig. 1 or Fig. 2, but not Fig. 3: