- ... passing
- In OASIS3, the SIPC technique has
also been maintained; for a practical toy model example, see the
sources in /prism/src/mod/sipcatmos, /sipcocean and the running
script and README in /prism/util/running/toysvipc (available
from CERFACS CVS Server only). The PIPE and GMEM communication
techniques should still work but are not maintained anymore and were
not tested.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... used
- The SIPC technique,
based on UNIX shared-memory segments, was also maintained; for a
practical toy model example using SIPC, see the sources in /prism/src/mod/sipcatmos, /sipcocean and some explanations in /prism/util/running/toysvipc (from CERFACS CVS only).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
coupling.
- The model may call MPI_Init explicitly, but if so, has to
call it before calling prism_init_comp_proto; in this case, the
model also has to call MPI_Finalize explicitly, but only after calling
prism_terminate_proto.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Y
- The maximum
value of the local extent in Y is presently 338; it can be increased
by modifying the value of Clim_MaxSegments in prism/src/lib/clim/src/mod_clim.F90 and in prism/src/lib/psmile/src/mod_prism_proto.F90 and by recompiling
Oasis3 and the PSMILe library.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
segments
- As for the Box partition, the maximum number of
segments is presently 338; it can be increased by modifying the value
of Clim_MaxSegments
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... arrays
- PRISM standard is to exchange coupling fields
declared REAL(kind=SELECTED_REAL_KIND(12,307)). By default,
all real variables are declared as such in OASIS3. To exchange
single precision coupling fields, OASIS3 has to be compiled with
the pre-compiling key use_realtype_single, the coupling fields
must be declared REAL(kind=SELECTED_REAL_KIND(6,37)) in the
component models
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... type
- Coupling fields exchanged
directly between two component models can have a type different
from the ones exchanged through OASIS3 main process, as long as
they are single or double precision real arrays in both models.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... prism_terminate_proto
- If the process called MPI_Init (before calling prism_init_comp_proto), it must
also call MPI_Finalize explicitly, but only after calling
prism_terminate_proto.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... PSMILe
- With the PIPE, SIPC, GMEM and previously with
the CLIM communication techniques, no such analysis was performed. For
PIPE, SIPC, and GMEM, the sending actions on the source side would
automatically match the receiving actions on the target side on a FIFO
(First In First Out) basis.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... fields.
- Use the standard blocking send MPI_Send if the coupling fields are necessarily sent and received in
the same order, or on platforms for which MPI_Send is
implemented with a mailbox (e.g. VPPs; in this case, make sure
that the size of the mailbox is sufficient). Use the less efficient
buffered send MPI_BSend on platforms for which MPI_Send is not implemented with a mailbox if the
coupling fields are not sent and received in the same order.
Note that below the call to prism_enddef_proto, the PSMILe
tests whether or not the model has already attached to an MPI
buffer. If it is the case, the PSMILe detaches from the buffer, adds
the size of the pre-attached buffer to the size needed for the
coupling exchanges, and reattaches to an MPI buffer. The model own
call to MPI_Buffer_Attach must therefore be done before the
call to prism_enddef_proto. Furthermore, the model is not
allowed to call MPI_BSend after the call to prism_terminate_proto, as the PSMILe definitively detaches from the
MPI buffer in this routine. See the example in the toyatm model in
prism/src/mod/toyatm/src
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... file
- For binary input file, only one time
occurence may be interpolated
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... 4)
- For some grids, the extrapolation may not converge if
$NV is too large.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... coupling.
- An
EXTRAP/NINENN analysis is automatically performed within GLORED
analysis but the corresponding datasets have to be distinct; this is
automatically checked by OASIS3 at the beginning of the run.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... library
- See the copyright statement in annexe
C.2.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...SECOND
- CONSERV/SECOND has not been tested in detail.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... NetCDF
- Note that even if the grid
auxiliary data files are in NetCDF format, the restart coupling files
may be in binary format, or vice-versa.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...(nbr_pts,1)
- If REDGLO is the first
transformation applied on a Reduced grid field, the Reduced field
must be given is an array restartdata(nx*ny) where nx
and ny are the global Gaussian grid dimensions and the Reduced
field is completed by trailing zeros.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... only
- Additional namcouple entries are also configurable by editing directly the
namcouple base file. Refer to chapter 5 for more
details.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.