Different developments were realised to improve the parallel performance of OASIS3-MCT_4.0. These developments are detailed in (Valcke et al 2018) .
Thanks to some preliminary work, few bugs were fixed, in particular in the bounding box definition of the grid cells. This solves an important bug observed in the Pacific near the equator for the bilinear and bicubic interpolations for Cartesian grids.
However, given these modifications, one cannot expect to get exactly the same results for the interpolation weight-and-adress remapping files with this new parallel SCRIP version as compared to the previous SCRIP version in OASIS3-MCT_3.0. We checked in many different cases that the interpolation error is smaller or of the same order than before. We also observed that the parallelisation does not ensure bit reproducible results when varying the number of processes or threads.
The other new features offered by OASIS3-MCT_4.0 are the following:
Bundled fields is now supported in the oasis_put and oasis_get interfaces to allow easier coupling of multi-level or other related fields via a single namcouple coupling definition and a single call to oasis_put or oasis_get. Further details are provided in sec 2.2.7
An optional argument write_restart was added to the oasis_put routine. This argument is false by default but if it is explicitly set to true in the code, a coupling restart file will be written for that field only for that coupling timestep, saving the data that exists at the time of the call (see section 2.2.7).
Exact consistency is now required between number of weights fields in the coupling restart file and the arrays passed as arguments to the oasis_put routine. For example, for a 2nd order conservative remapping (CONSERV SECOND), 3 weights are needed and 3 fields must be provided as arguments: the value of the field, its gradient with respect to the longitude and its gradient with respect to the latitude. For a first order conservative remapping (CONSERV FIRST), only one weight and one field are needed. Using a weight file with 3 weights for a first order conservative remapping is no longer allowed.
The namcouple reading routine was cleaned up including a refactoring of the gotos and continue statements, addition of few reusable routines including an abort routine, removal of some dead code, addition of support for blank lines (which are now considered comments), removal of requirement that keywords start at character 2 on a line, removal of requirement for $END in the namcouple, and updates to some error messages.