Next: prism_get
Up: Exchange of coupling and
Previous: Exchange of coupling and
prism_put
prism_put (var_id, date, date_bounds, var_array, info,
ierror)
Table 5.20:
prism_put arguments
![\begin{table}
% latex2html id marker 1687
\begin{tabularx}{16cm}[t]{\vert l\ver...
...\texttt{Integer}&
returned error code\\
\hline
\end{tabularx}\end{table}](img22.png) |
This routine is called to send var_array content
to a target component or file. The target is defined by the user in
the SMIOC XML files (see section 6.5). This routine will return even if
the corresponding prism_get has not been performed on the target
side, both for an exchange through the Transformer and for a direct
exchange (for direct exchange the content of the var_array
is buffered in the PSMILe and for an exchange through the Transformer
the data are buffered in the Transformer).
The shape of var_array is given
in table 5.21 for the different grid types.
Table 5.21:
Dimensions of
var_array for the various grid_type;
i, j, k, npt_hor are
the extent of the respective numerical dimensions (see table
5.8).
![\begin{table}\begin{tabularx}{8.2cm}[t]{\vert l\vert l\vert}
\hline
\texttt{gr...
...{PRISM\_irrlonlat\_regvrt} &
(i,j,k) \\
\hline
\end{tabularx}\end{table}](img23.png) |
This routine
can be called in the component code at each timestep but
the sending is actually performed only if the time
covered by the
date bounds (with
i.e. with
the lower and upper date bounds being respectively excluded and
included) covers a valid coupling or I/O date, given the
field coupling or I/O period indicated by the user in the SMIOC XML
files. The date and date_bounds arguments must be
given as PRISM_Time_Struct structures (see
/oasis4/lib /common_oa4/src/prism_constants.F90).
The sum of the time periods covered by the date_bounds of the
different prism_put calls of a run must cover exactly the whole run
duration without any gap and any overlap.
The meaning of the
different info returned are as follows:
- PRISM_NoAction = 0: no action is performed for this call
- PRISM_Cpl = 1000: the array is only sent to another component
- PRISM_CplIO = 1100: the array is sent to another component and
written to a file
- PRISM_CplRst = 1010: the array is sent to another component and
written to a coupling restart file (see 5.7).
- PRISM_CplTimeop = 1001: the array is sent to another
component and used in a time operation (accumulation, averaging)
- PRISM_CplIORst = 1110: the array is sent to another
component, written to a file, and written
to a coupling restart file (see 5.7)
- PRISM_CplIOTimeop = 1101: the array is sent to another
component, written to a file, and used in a time operation
- PRISM_CplRstTimeop = 1011: the array is sent to another
component, written
to a coupling restart file (see 5.7), and used in a time operation
- PRISM_CplIORstTimeop = 1111: the array is sent to another
component, written to a file, written
to a coupling restart file (see 5.7), and used in a time operation
- PRISM_IO = 100: the array is only written to a file
- PRISM_IORst = 110: the array is written to a file and to a coupling restart file (see 5.7)
- PRISM_IOTimeop = 101: the array is written to a file and used in a time operation
- PRISM_IORstTimeop = 111: the array is written to a file and to
a coupling
restart file (see 5.7) and is used in a time operation
- PRISM_Rst = 10: the array is only written to a coupling
restart file
- PRISM_RstTimeop = 11: the array is written to a coupling
restart file (see 5.7) and used in a time operation
- PRISM_Timeop = 1: the array is used in a time operation
The meaning of the
different ierror returned can be accessed using the routine
prism_error (see section 5.9.3).
Next: prism_get
Up: Exchange of coupling and
Previous: Exchange of coupling and
Laure Coquart
2011-12-01