Back to OASIS3-MCT home

In a model you have to call with OASIS3 :
USE mod_kinds_model
USE mod_prism_proto
USE mod_prism_def_partition_proto
USE mod_prism_put_proto
USE mod_prism_get_proto
USE mod_prism_grids_writing
call MPI_Init(ierror)
call mpi_finalize(ierror)


In the namcouple it is possible to define less processors in the coupling than the total number of processors (I/O server (NEMO) or I/O procs (WRF))
In this case, by default, the ncpl first procs are the processors implied in the coupling, it is not possible to choose.
processes not used in the coupling must only call prism_init and prism_terminate.

library of IO : MPPIO

An appropriate use of the SEQ index can optimise a coupled run when one of the component model is much slower than the other.
LOCTRANS transformations : no restart file.

The dimensions of the grids are optional in the namcouple.

With oasis3, the file areas.nc must be present to calculate to statistics (checkin and/or checkout with int=1), else the program aborts.

In a model you have to call with OASIS3-MCT :
USE mod_oasis
INCLUDE 'mpif.h'

All coupling is now direct. Gets are blocking, puts are non-blocking.

MPI2 job launching is NOT supported.

Ability to send and receive more than 1 field with a coupling operation.

The dimensions of the grids must be given in the namcouple.

Possibility to define less processors in the coupling than the total number of processors (I/O server (NEMO) or I/O procs (WRF)) but chosing this time which
procs will be implied in the coupling. A communicator gathering only these processes must be defined :
If such communicator does not exist yet in the code, the component processes should use, to create it and give it to OASIS3-MCT :
oasis create couplcomm(icpl, local_comm, coupl_comm, kinfo) : icp = 1 for processes participating in the coupling and with icpl=MPI_UNDEFINED for the others.
If this communicator already exist in the code, the component should use, to provide it to OASIS3-MCT :

oasis set couplcomm(coupl_comm, kinfo) : coupl_com
for processes participating in the coupling and coupl_com=MPI_COMM_NULL for the others.
processes not used in the coupling must call all collective routines
CALL oasis_init_comp
CALL oasis_get_localcomm
CALL
oasis_create_couplcomm
CALL oasis_def_partition ( with ig_paral=0 )
CALL oasis_def_var ( ... )
CALL oasis_enddef ( ... )
CALL oasis_terminate ( ... )



SEQ is not used anymore except if
the implementation of get/put ordering in models is important. But the SEQ setting in the namcouple have to be consistent.
If restarts are used, both models call oasis_get before oasis_put and SEQ must be equal to 1 for all coupling fields.
LOCTRANS transformation : restart file. If it is the only transformation (ie no restart (LAG=0)) there is a particular fiel for the variable. If there is a LAG (ie a restart) the variable is written to the restart file.

With oasis3-mct, there is no abort even if the file areas.nc is not present.