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.