Next: End of definition phase
Up: Interfacing a model with
Previous: Orange partition
I/O-coupling field declaration
Each process exchanging coupling data declares each field it will send
or receive during the simulation.
- CALL prism_def_var_proto(var_id, name, il_part_id,
var_nodims, kinout, var_actual_shape, var_type, ierror)
- var_id [INTEGER; OUT]: coupling field ID
- name [CHARACTER*8; IN]: field symbolic name (as in the
namcouple)
- il_part_id [INTEGER; IN]: partition ID (returned by
prism_def_partition_proto)
- var_nodims [INTEGER, DIMENSION(2); IN]: var_nodims(1) is
the rank of field array (1 or 2); var_nodims(2) is the number of
bundles (always 1 for OASIS3).
- kinout [INTEGER; IN]: PRISM_In for fields received by
the model, or PRISM_Out for fields sent by the model
- var_actual_shape [INTEGER, DIMENSION(2*var_nodims(1)); IN]:
vector of integers giving the minimum and maximum index for each
dimension of the coupling field array; for OASIS3, the minimum
index has to be 1 and the maximum index has to be the extent of the
dimension.
- var_type [INTEGER; IN]: type of coupling field array;
put PRISM_Real for single or double precision real
arrays5.
Note that no automatic conversion is implemented;
therefore, all coupling fields exchanged through OASIS3 main
process must be of same type
- ierror [INTEGER; OUT]: returned error code.
Footnotes
- ... arrays5
- 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 CPP key use_realtype_single, and the coupling fields
must be declared REAL(kind=SELECTED_REAL_KIND(6,37)) in the
component models (see also chapter 8).
Next: End of definition phase
Up: Interfacing a model with
Previous: Orange partition
Laure Coquart
2013-06-11