Sending “put” and receiving “get” actions

This section describes how to send (put) and receive (get) fields through the coupling interface. This interface supports several ranks and types of coupling fields. First, the fields passed into the interface can be 4 byte or 8 byte reals. The field decomposition must be consistent with the decomposition defined in the grid partition (see [*])5 Third, the fields can be bundled, i.e. have an extra (non-spatial) dimension like for a field covering different ice categories. The bundled dimension is always the last dimension in any field passed into the get and put routines. And the size of the bundle dimension must match the value defined for the variable in var_nodims(2) in the oasis_def_var interface (see section [*]).

So in general, the fields passed into the get and put interface can have rank 1, 2, or 3 and include the following possible options where fld can be a 4 byte or 8 byte real array.

Different bundled fields can have different numbers of fields, but for a given bundled field, the number of fields must match on the send and receive side. This is explicitly checked within the coupling layer and will lead to an abort if not done correctly. It is possible to define a 1D bundled or 2D bundled field with a bundle dimension of 1, i.e. for a bundle that contains only one single field.

Finally, the bundled field option can be used to bundle together multi-level variables, multiple related fields, and other types of fields. The fields must share a common partition and common namcouple settings (e.g. interpolation) to be bundled. While this is a useful feature for multi-level fields, this does not mean that 3D interpolation is supported. Each field in the bundle is treated internally as a separate field in the coupling layer without any information about the relationship between the fields in the bundle. In fact, the bundled field variables are internally renamed and a field number is appended to the variable name to keep track of the distinct fields in the bundle. That updated variable name will appear in restart and output files.


But the decomposition of each field can be either one dimensional or two dimensional and does not have to match the rank of the grid partition.