Much of the underlying implementation of OASIS3 was refactored to leverage the Model Coupling Toolkit (MCT). OASIS3-MCT is a coupling library to be linked to the component models and that carries out the coupling field transformations (e.g. remappings/interpolations) in parallel on either the source or target processes and that performs all communication in parallel directly between the component models; there is no central coupler executable anymore13.
This is supported through colon delimited field lists in the namcouple, for example
ATMTAUX:ATMTAUY:ATMHFLUX TAUX:TAUY:HEATFLUX 1 3600 3 rstrt.nc EXPORTED
in a single namcouple entry. All fields will use the namcouple settings for that entry. In the component model codes, these fields are still sent (``put'') or received (``get'') one at a time. Inside OASIS3-MCT, the fields are stored and a single mapping and send or receive instruction is executed for all fields. This is useful in cases where multiple fields have the same coupling transformations and to reduce communication costs by aggregating multiple fields into a single communication. If a LOCTRAN transformation is needed for these multiple fields, it is necessary to define a restart file for these multiple fields.
A coupling field sent by a source component model can be associated with more than one target field and model (get). In that case, the source model needs to send (``put'') the field only once and the corresponding data will arrive at multiple targets as specified in the namcouple configuration file. Different coupling frequencies and transformations are allowed for different coupling exchanges of the same field. If coupling restart files are required (either if a LAG or if a LOCTRANS transformation is specified), it is mandatory to specify different files for the different fields.
The inverse feature is not allowed, i.e. a single target (get) field CANNOT be associated with multiple source (put) fields.
With MAPPING, OASIS3-MCT has the ability to read a predefined set of weights and addresses (mapping file) specified in the namcouple to perform the interpolation/remapping. The user also has the flexibility to choose the location and the parallelization strategy of the remapping with specific MAPPING options (see section 4.3).
But as before, OASIS3-MCT can also generate the mapping file using the SCRIP library (Jones 1999). When this is the case, the mapping file generation is done on one process of the model components.
If needed, LOCTRANS transformations write partially transformed fields in the coupling restart file at the end of a run to ensure an exact restart of the next run (see section 4.1). For that reason, coupling restart filenames are now required for all namcouple entries that use LOCTRANS (with non INSTANT values), This is the reason an optional restart file is now provided on the OUTPUT namcouple input line (see section 3.3.2). If the coupling periods of two (or more) coupling fields are different, it is necessary to define two (or more) restart files, one for each field.
Only MPI1 start mode is allowed. As before with the MPI1 mode, all component models must be started by the user in the job script in a pseudo-MPMD mode; in this case, they will automatically share the same MPI_COMM_WORLD communicator and an internal communicator created by OASIS3-MCT needs to be used for internal parallelization (see section 2.2.2).