The changes between versions tagged oasis3_prism_1_2 delivered in September 2003 and oasis3_prism_2_1 delivered to PRISM in April 2004 are the following:
The routines preproc.f, extrap.f, iniiof.f in prism/src/mod/oasis3/src were renamed to preproc.F, extrap.F, iniiof.F, as a CPP key `key_openmp' was added. Please note that this key, allowing openMP parallelisation, is not fully tested yet.
For each field, the CF standard name used in the OASIS3 log file, cplout, is now defined in an additional auxiliary file cf_name_table.txt not in inipar.F anymore. This auxiliary file must be copied to the working directory at the beginning of the run. The user may edit and modify this file at her own risk. In cf_name_table.txt, an index is given for each field standard name and associated units. The appropriate index has to be indicated for each field in the namcouple (third entry on the field first line, see section 5.3).
This standard name and the associated units are also used to define the field attributes ``long_name'' and ``units'' in the NetCDF output files written by the PSMILe for fields with status EXPOUT, IGNOUT and OUTPUT.
For more details on this auxiliary file, see section 7.1.
In mode NONE, OASIS3 can now interpolate at once all time occurrences of a field contained in an input NetCDF file. The time variable in the input file is recognized by its attribute ``units''. The acceptable units for time are listed in the udunits.dat file (3). This follows the CF convention.
The keyword $RUNTIME in the namcouple has to be the number of time occurrences of the field to interpolate from the input file. The ``coupling'' period of the field (4th entry on the field first line) must be always ``1''. Note that if $RUNTIME is smaller than the total number of time ocurrences in the input file, the first $RUNTIME occurrences will be interpolated.
For more details, see section 6.1.
The grid data files grids.nc, masks.nc and areas.nc can now be written directly at run time by the component models, if they call the new routines prism_start_grids_writing, prism_write_grid, prism_write_corner prism_write_mask, prism_write_area, prism_terminate_grids_writing.
The writing of those grid files by the models is driven by the coupler. It first checks whether the binary file grids or the netCDF file grids.nc exists (in that case, it is assumed that areas or areas.nc and masks or masks.nc files exist too) or if writing is needed. If grids or grids.nc exists, it must contain all grid information from all models; if it does not exist, each model must write its grid informations in the grid data files.
See section 4.2 for more details.
The NetCDF output files written by the PSMILe for fields with status EXPOUT, IGNOUT and OUTPUT are now fully CF compliant.
In the NetCDF file, the field attributes ``long_name'' and ``units'' are the ones corresponding to the field index in cf_name_table.txt (see above and section 7.1). The field index must be given by the user as the third entry on the field first line in the namcouple.
Also, the latitudes and the longitudes of the fields are now automatically read from the grid auxiliary data file grids.nc and written to the output files. If the latitudes and the longitudes of the mesh corners are present in grids.nc, they are also written to the ouput files as associated ``bounds'' variable. This works whether the grids.nc is given initially by the user or written at run time by the component models (see above). However, this does not work if the user gives the grid definition in a binary file grids.
The pre_compiling key ``key_BSend'' has been removed. The default has changed: by default, the buffered MPI_BSend is used, unless NOBSEND is specified in the namcouple after MPI1 or MPI2, in which case the standard blocking send MPI_Send is used to send the coupling fields.