Next: Debugging
Up: Compiling OASIS3 and debugging
Previous: Compilation with TopMakefileOasis3
CPP keys
The following CPP keys are coded in OASIS3 and associated PSMILe library and
can be specified in CPPDEF in make.your_platform file.
- Mandatory to indicate which communication technique will be used
(see sections 4.1 and 5.2):
- use_comm_MPI2 (by default): CLIM/MPI2
- use_comm_MPI1 : CLIM/MPI1
- use_comm_NONE : no communication technique for OASIS
(interpolator-only mode NONE)
The previous SIPC, PIPE and GMEM communication techniques are not
available anymore.
- Mandatory when linking OASIS3 and PSMILe with a netCDF library (which is
highly recommended21)
- Mandatory for compiling the mpp_io and psmile
libraries:
- Mandatory for compiling the mpp_io library if LAM
implementation of MPI is used:
- To compile OASIS3 in IPSL or CMCC pseudo-parallel mode (see section
8.2 for details and restrictions).
- use_oasis_para or use_oasis_cmcc_para
- To ensure, in SCRIPR/CONSERV remapping (see section
6.4), that if two cells of the source grid overlay,
at least the one with the greater numerical index is masked (they
also can be both masked); this is mandatory for this remapping. For
example, if the grid line with i=1 overlaps the grid line with
i=imax, it is the latter that must be masked; when this is not the
case with the mask defined in masks.nc, this CPP key forces
these rules are to be respected.
- To reproduce default behaviour of SCRIPR/DISTWGT before
version oasis3_3, i.e. the zero value is associated to the
target points having all of the N source nearest neighbours masked
(see section 6.4 for details).
- To indicate the precision for REAL variables:
- use_realtype_double (by default): to exchange double
precision coupling fields declared as REAL(kind=SELECTED_REAL_KIND(12,307))
- use_realtype_single: to exchange single precision coupling
fields declared as
REAL(kind=SELECTED_REAL_KIND(6,37))
Note that if use_realtype_single is activated the compiling
option promoting reals should be removed from F90FLAGS_1.
- For more information in cplout and in log files *.prt* during the psmile library exchanges (in particular,
a message is printed when entering and leaving each main routine):
- For more debugging information to the log files *.prt* from the
mpp_io library:
- The CPP key __DEBUG to activate :
- deadlock detection in clim and psmile librairies
at reception of a coupling field: a (non-standard) sleep function
is called for one second in a loop testing if the field has been
received; the code aborts after icountmax seconds if not (the length of
the loop can be ajusted with the value of icountmax in
CLIM_Import.F and mod_prism_get_proto.F90).
- more debugging information in log files *.prt* during
the psmile library I/Os;
- in SCRIPR vector transformation, for writing the resulting
vertical component in the spherical coordinate system after
interpolation to a file projection.nc (see section
6.4).
- To get some statistics on the wall clock time spent in the coupling
- To compile the PSMILe communication library without the I/O
functionality (see section 5.3), i.e to
compile only empty routines in oasis3/lib/mpp_io:
- For compiling without linking the SCRIP interpolation library:
- To compile on NEC SX platforms (optimisation in oasis3/src/extrap.F and proper value for ip_i8_p in oasis3/lib/psmile/src/mod_kinds_model.F90 and
oasis3/lib/mpp_io/src/mod_kinds_mpp.F90:
- Other platform dependent CPP keys are used in oasis3/lib/mpp_io/include/os.h,
oasis3/lib/psmile/include/psmile_os.h and oasis3/src/mod_kinds_oasis.F90; they should be automatically
activated on the corresponding platforms.
Footnotes
- ... recommended21
- Linking with netCDF is mandatory when
using SCRIPR transformations (see section 6.4).
Next: Debugging
Up: Compiling OASIS3 and debugging
Previous: Compilation with TopMakefileOasis3
Laure Coquart
2013-06-11