ARCDI - PRISM coupler functionalities
WP3a - 02/05/2002
The different constituents of the PRISM coupler are: the Driver;
the Transformer; and the PRISM System Model Interface Library (PSMILe),
linked to the component models and which interfaces the component model
with the rest of the coupled model. The PSMILe includes the Data Exchange
Library, the I/O library, and some coherence check and local transformation
routines.
For each of these constituents, the list of possible requirements established
in the REDOC
II.2 paragraph was revised and choices of functionalities that should
be implemented in the different versions of the PRISM coupler were made,
considering the answers to the REDOC I.4 template. These choices are detailed
below.
For each functionality, a priority of implementation is given: "1"
means that the functionality should be provided for the PRISM coupler first
version (D3a1, month 12), "2" for PRISM coupler second version
to be used in the demonstration runs (D3a2, month 24), and "3" means
that the functionality may be provided for the PRISM coupler final version
(D3a3, month 36).
For each functionality included in the REDOC I.4 template, the rating
given by the different model workpackages and by the coupler developers
(A for WP3b -Atmosphere, C for WP3c -atmospheric Chemistry, L for WP3d
-Land surface, O for WP3e -Ocean, B for WP3g -ocean Biogeochemistry, R
for WP3h -Regional, M for MPI-M&D, CC for NEC-CCRL, CE for CERFACS,
S for SGI) is also given in italic. A functionality could be rated as E-Essential,
D-Desirable, M-Maybe, U-Useless or N-Not qualified to answer.
1. General requirements
-
The overhead associated to the global system modularity and flexibility
is acceptable. (2,
3)
-
The whole system is portable and efficient on the different hardware architectures
used for climate modelling, on dedicated or shared hardware resources.
Standard and portable solutions should be preferred. However, for critical
issues for which a portable solution would not exist or would lead
to very low efficiency, machine dependent options could be offered. (3)
-
The design and implementation lead to code easy to maintain and can be
easily modified to support future model or coupling functionalities. (2,
3)
-
Design reflects a clear separation of responsibilities for the different
parts of the coupler. (2, 3)
-
The PRISM System infrastructure can be used to technically assemble a coupled
system based on any component models, even if these models do not conform
to the PRISM physical interfaces given that they include the PRISM System
Model Interface Library. (1, 2, 3)
I.4-4) A: N, C: N,
L: -, O: E, B: E, R: N, M:E, CC: E, CE: E, S: D (E:5,
D:1, M:0, U:0, N:2)
-
The PRISM System infrastructure can be used to couple an arbitrary number
of component models; any component can be one-way or two-way coupled with
any other component. (1, 2, 3)
I.4-5) A: E, C: E,
L: , O: E, B: E, R: E, M:E, CC: M, , CE: E, S: E (E:8, D:0,
M:1, U:0, N:0)
2. Driver functionalities
The Driver manages the whole coupled application. It launches
the component models, monitor their execution and termination, centralise
and distribute global parameters which require a consistent definition
among all component models, and centralize and distribute information on
the component model status during the simulation.
The driver could keep a central role during the whole simulation and
manage also the exchanges of coupling data. The prefered design option
here is to decentralize the coupling functionalities as much as possible
in the Data Exchange Library and in the Transformer, and therefore to reduce
as much as possible the role of the Driver. This option is probably applicable
only for static coupled simulations and allows an easier evolution toward
heterogeneous coupling (different component models running on different
machines).
Model execution and control:
-
The Driver manages static simulations (with respect to the process management)
: all component models are launched initially and run for the entire length
of simulation. Full MPMD launching by the Driver (with MPI2) and MPMD initial
starting (with MPI1) are supported. (1, 2, 3)
The
Driver will not manage dynamic model execution (one or more models starting
and ending during the simulation), functionality for which the rating was:
I.4-7)
A: D, C: D, L: -, O: D, B: D, R: E, M:D, CC: U, , CE: M, S: D
(E:1, D:6, M:1, U:1, N:0)
The Driver will not manage conditional model execution (one model is started
during the simulation only if a particular scientific condition is met),
functionality for which the rating was:
I.4-8)
A: D, C: D, L: -, O: M, B: E, R: M, M:D, CC: M, , CE: M, S: M
(E:1, D:3, M:5, U:0, N:0)
WP3h
(R) considered the dynamic model execution functionality as essential
to run time-slice experiments. Other groups considering this functionality
as desirable mentionned that it could be useful to run alternatively different
coupling configurations (e.g. for asynchronous coupling). We consider here
that these requirements can be fulfilled by chaining different static simulations.
Therefore, the choice was made to design a static, less sophisticated,
but more efficient Driver.
-
The Driver can start a global coupled system flexible in terms of executables
(extreme are: each component is a separate executable -MPMD-, or all components
run in parallel or in sequence within only one executable -SPMD). If the
SPMD mode is chosen for two or more components, the developer will be responsible
assembling for the components into one executable. (2, 3)
I.4-9)
A: D, C: D, L: -, O: E, B: D, R: D, M: D, CC: U, , CE: D, S: D
(E:1, D:7, M:0, U:1, N:0)
-
The driver can give some statistic on the load balancing of the run. (3)
I.4-10)
A: M, C: M, L: -, O: D, B: E, R: D, M: M, CC: M, , CE: M, S: M
(E:1, D:2, M:6, U:0, N:0)
-
The driver includes a timing functionality which can sample with identical
absolute time the duration of events for all component models.
(3)
Information management:
-
The global model input parameters are parameters that needs to be consistently
defined in the coupled system (initial date, length of integration, calendar,
earth radius, restart saving frequency, etc.). This information is defined
by the user in the a coupled model configuration file. The driver gets
these parameters in the configuration file and, on a PSMILe request, transfers
this information to each component model. (For stand-alone model,
the model PSMILe should read directly the information in the coupled model
configuration file.) (1, 2, 3)
-
The driver does not centralize all model information (grid definition,
distribution, etc.). Each model PSMILe is be responsible for transferring
the appropriate information to the appropriate processes. (2, 3)
-
Depending on a log level chosen by the user in the coupled model configuration
file, internal PSMILe log functions or log functions implemented by the
developer in the code are activated. The log function transfers information
on the state of the model to the driver which centralizes this information
and may then transfers this information to a higher level controlling layer
or to the user. (3)
Coupling exchange management:
-
In a decentralized and static approach, the matching between output coupling
data produced from one model and input coupling data requested by another
model could be performed initially and the exchange should be managed at
run-time by the Data Exchange Library included in each model PSMILe. The
other option is that the driver performs the matching and, at run-time,
manages the exchanges of coupling data based on this matching. The decentralized
option is the preferred one but the two options are still open now. The
matching is based on user's choices indicated in the coupled model configuration
file; the way the matching and the exchanges are managed are, in any case,
transparent for the developer and for the user.
Termination and restart:
-
If one component aborts, the whole simulation must shut down cleanly. (1,
2, 3)
I.4-12)
A: D, C: D, L: -, O: E, B: E, R: D, M: E, CC: E, , CE: E, S: E
(E:6, D:3, M:0, U:0, N:0)
The coupled model will most probably be a MPI1 or MPI2 application.
In that case, if one component model aborts, the whole MPI job terminates
automatically and the Driver can have no control on the termination. However,
in the case of PSMILe exceptions (the error code returned by one PSMILe
routine indicates an error), the model developer may decide to make the
model to abort; the routine called in that case first interacts with the
Driver which then performs appropriate actions (such as saving the most
recent cached information), sends a message to the model which then aborts,
and terminates the coupled application. (3)
-
The driver constantly updates, by writing in a restart log file or by any
other equivalent mean, the last date for which all model restarts were
saved. This information is sent to the driver by each model PSMILe.
(2, 3)
-
Neither the driver nor any external controlling instance automatically
restarts a coupled system after an unforeseen termination (machine breakdown,
...). This is not desirable because the diversity of faults is large and
in many cases, human intervention is mandatory before the simulation should
be restarted (ex: the disk on which the diagnostics are saved is full).
-
The driver will not be able to shutdown the simulation cleanly if a specific
scientific condition is met (e.g. average SST exceeds some predefined value).
This functionality will be fulfilled by a conditional PRISM_Abort implemented
in the code by the model developer or by a conditional PRISM_Abort managed
automatically by the PSMILe (see below).
3. Transformer functionalities
This paragraph gives, in the first section, some definitions and, in
the second section, the preferred design option for the PRISM coupler Transformer.
In the third section, an exhaustive list of transformations and grids on
which these transformations should be performed is presented, together
with other specific requirements, and associated priority and calendar.
3.1 - Definitions
-
Point-wise transformation: an operation that can be completed
on each grid point without any external information, neither from the model
neighbouring grid points, neither from another model, such as time averaging
or addition of coupling fields given on the same grid.
-
Local transformation: an operation that can be completed
in a model without any information from another model, such as finding
the maximum value of a field.
-
Non-local transformation: an operation that requires information
from another model, such as interpolation.
3.2 - Preferred design option
The preferred design option is that the non-local transformations
are performed in a separate transformation entity, as it requires information
coming from different models. For point-wise and local transformations,
it should be possible to perform them in the PRISM Model Interface Library
(PSMILe) linked to the model; in some cases, this is recommended to avoid
extra communication.
However, point-wise and local transformations should also be available
in the separate transformation entity (for example, combination of coupling
fields coming from different source models after their interpolation on
the target grid).
3.3 - List of transformations, grids, and associated
priority and calendar
3.3.1 Transformations
A list of relevant transformations that could be provided by the PRISM
coupler is given hereafter. For each transformation, it is specified whether
the transformation is "point-wise", "local" or "non-local".
-
1D, 2D, and 3D spatial interpolations
All these transformations are non-local.
-
S1 - Nearest-neighbour interpolation function:
For each target grid point, the n nearest neighbours on the source
grid, weighted or not by their distance, are averaged.
-
S2 - Nearest-neighbour gaussian weighted interpolation function:
For each target grid point, the n nearest neighbours on the source
grid, weighted by the value of a gaussian function at their distance from
the target point are averaged.
-
S3 - 1st order interpolation function:
Standard 1st order bilinear interpolation.
-
S4 - 2nd order interpolation function:
Standard 2nd order bicubic interpolation.
-
S5 - First order conservative remapping:
This scheme will guarantee that the line (1D)-/area (2D)-/ volume (3D)-integrated
field (e.g. water or heat flux) is conserved between the source and the
target grid.
-
S6 - Second order conservative remapping:
This scheme will also guarantee that the line (1D)-/area (2D)-/ volume
(3D)-integrated field (e.g. water or heat flux) is conserved between the
source and the target grid.
-
S7 - Remapping using user-defined remapping info (ex: MOZAIC)
-
Other 1D, 2D, and 3D spatial transformations
This non-local operation ensures global energy conservation between
source and target grids (ex: CONSERV).
-
S9- Combination or merge:
This local and point-wise operation combines different parts of different
coupling fields or of other predefined external data given on the same
grid (ex: FILLING). This operation may involve the smoothing of the fields
near the different domain borders; in that case, the operation is still
local but not point-wise.
-
S10- Masking:
With this local and point-wise operation, only the points listed in
index have meaningful data and the others are changed to missing (ex: MASK).
-
S11- Scattering:
This local operation scatters the model data onto the points listed
in an index.
-
S12- Gathering:
This local operation gathers from the input data all the points listed
in an index.
-
S13- Collapse:
This local operation results in the collapse of any dimension or combination
of dimensions by various, possibly weighted, statistical operations, such
as mean, max, min, etc. (possibly relative to a threshold, e.g. maximum
of positive values). (ex: CHECKIN, CHECKOUT)
-
S14- Subspace:
This local operation results in the extraction of subspaces or hyperslabs
in any combination of spatial dimension.
-
S15- Algebraic operations:
Local and point-wise operations, such as addition, substraction, multiplication,
etc., with possibly different coupling fields or predefined external data
(given on the same grid) and numbers as operands (+, -, X, SQRT, ^2, SIN,
LOG, ...) (Ex: BLASOLD, BLASNEW, SUBGRID, CORRECT)
-
S16a - 1st order extrapolation function
-
S16b - 2nd order extrapolation function:
This transformation is required to address the specific problem of
the wind curl along the coast.
-
Time operations
-
T1- Time integration, average, variance, extrema, linear interpolation
Local and point-wise operations.
3.3.2 List of grids
The following grids should be supported for the above scheme. These
grids have the following common characteristics:
-
The grids may have masked grid points.
-
The grids may have "holes" (i.e. they do not cover the whole sphere, e.g.
regional grids).
-
The grids may be global or regional (except H3 reduced grid which is always
global).
-
The grids may have overlapping grid points (except H3).
-
2D grids
-
H1 - Lat-lon grids:
The grid is given by the intersection of meridians and parallels. Each
(i,j) grid point can be described by the value for the indices i and j
of two 1-D arrays, latitude(j) and longitude(i).
-
The latitudinal mesh sizes can be regular or irregular, i.e. latitude(j)
is or not constant.
-
The longitudinal mesh size can be regular or irregular, i.e. longitude(i)
is or not constant.
-
The grid may overlap in longitude with N overlapping grid points.
-
The grid may have grid points at the pole and/or at the equator.
-
The border of the meshes can be approximately placed half-way between two
grid points, but the exact location of the border meshes should be given
with the grid.
-
H2 - Cartesian and streched and/or rotated grids (logically rectangular):
Each (i,j) grid point can be described by the value for the indices
i and j of two 2-D arrays, latitude(i,j) and longitude(i,j).
-
The grid may overlap itself in the i and/or j direction.
-
The exact location of the border meshes should be given with the grid.
-
H3 - Reduced grids
The grid is composed of a certain number of latitude circles, each
one being divided into a varying number of longitudinal segments. The grid
can be described by the number of latitude circles, N_lat, the latitudinal
position of each circle npos(N_lat) and by an 1-D array giving the number
of longitudinal segments for each latitude, n_seg(N_lat). The total number
of grid points, N_tot, is the sum of all elements of n_seg. The grid can
also be described by two 1-D arrays, latitude(N_tot) and longitude(N_tot).
This grid may be considered as one particular case of unstructured grids
-
There is no overlap of the grid.
-
There is no grid point at the equator nor at the poles.
-
There are grid points on the Greenwich meridian.
-
The exact location of the border meshes should be given with the grid.
-
H4 - Unstructured grids
The grid, with N_tot number of grid points, has no logical structure.
The grid must be described by two 1-D arrays, latitude(N_tot) and longitude(N_tot)
-
The grid may overlap itself for some grid points.
-
There may be a grid point at the equator or at the poles.
-
There may be grid points on the Greenwich meridian.
-
The mesh can have an arbitrary number of sides. The exact location of the
border meshes should be given with the grid.
-
V1 - Reproduction of the same horizontal grid at different levels
The same horizontal grid is reproduced at different vertical levels.
Each level has its particular mask.
The vertical levels can be:
-
V1-1 : given at regular or irregular depth or height levels (z co-ordinate)
-
V1-2: hybrid: first level follows the topography (atmosphere models or
the bathymetry (ocean models), last level follows an isobar(atmosphere)
or the surface (ocean), progressive transition in between.
-
V1-3 : given at regular or irregular isopycnal (density) levels (r co-ordinate)
-
V2 - Different horizontal grids at different levels
The horizontal grid is not reproduced at different vertical levels.
The horizontal grid can be rotated, translated, or totally unstructured.
3.3.3 Other specific requirements
-
To support scalar coupling data. (For priority see below).
-
To support vector coupling data in the standard spherical geographical
coordinate system. (For priority see below).
-
To support vector coupling data in any set of local coordinate system.
(For priority see below).
-
To support fields with undefined variables. (2, 3)
-
To support coupling fields which characteristics may change over time as
simulation develops , e.g. grid, resolution, distribution (CF dynamic simulation).
(3)
-
To be able to save, at a user-defined frequency, its restart data (e.g.
time accumulated data). (2,3)
-
To support source and target coupling domains that totally or partially
overlap (e.g. global atmosphere with a regional ocean, regional model nested
into global model, etc.). (1, 2, 3)
3.3.4 Priority and calendar
The following paragraph gives the priority of development for
the different transformations on the different grids listed above. "1"
means that the transformation is essential and should be provided for the
first version of the PRISM coupler (D3a1, 12/2002). "2" means highly
desirable and should be provided for the second version of the PRISM coupler
that will be used for the demonstration runs (D3a2, 12/2003). "3" means
that the operation may be provided for the final version of the PRISM
coupler (D3a3, 12/2004). "-" means that this operation is not relevant.
When two numbers are given, it means that parts of the functionality will
be provided for the respectives coupler versions.
Transformations on 2D scalar coupling fields
|
H1 - lat-lon |
H2 - log. rect. |
H3 - reduced |
H4 - unstruc. |
| S1 - near.neigh |
1
|
1
|
1
|
1
|
| S2 - gaussian |
1
|
1
|
1
|
1
|
| S3 - 1st O interp. |
1
|
1
|
3
|
-
|
| S4 - 2nd O interp. |
1
|
1
|
3
|
-
|
|
S5 - 1st O cons rem
|
1
|
1
|
1
|
1
|
|
S6 - 2nd O cons rem
|
3
|
3
|
3
|
3
|
|
S7 - user remapping
|
1
|
1
|
1
|
1
|
| S8 - conservation |
1
|
1
|
1
|
1
|
| S9 - combination |
1
|
2
|
2-3
|
2-3
|
| S10 - masking |
1
|
1
|
1
|
1
|
| S11 - scattering |
2
|
2
|
2
|
2
|
| S12 - gathering |
2
|
2
|
2
|
2
|
| S13 - collapse |
2
|
2
|
2-3
|
2-3
|
| S14 - subspace |
2
|
2
|
3
|
3
|
| S15 - algebra |
1-2
|
1-2
|
1-2
|
1-2
|
| S16a - 1st O extrap. |
1
|
1
|
1
|
-
|
| S16b - 2nd O extrap. |
2
|
2
|
3
|
-
|
| T1 - time operation |
2-3
|
2-3
|
2-3
|
2-3
|
Transformations on 2D vector coupling fields
-
Transformations on 2D vector coupling fields given in the standard spherical
coordinate system
-
Transformations S1, S2, S3, S4, S6, S7, S9, S10, S11, S12, S13, S14, S15,
S16a, S16b, T1 are given the same priority than for 2D scalar fields.
-
Transformations S5, S8 are of priority 3.
-
Transformations on 2D vector coupling fields given in any set of local
coordinate system
-
Transformations S1, S2, S3, S4 for H1 and H2, S7, S10, S11, S12, S15, S16a,
S16b for H1 and H2 are of priority 2.
-
Transformations S4 for H3, S5, S6, S8, S9, S13, S14, S16b for H3 are of
priority 3.
Transformations on 3D coupling fields
-
Interpolations for V1-1 and V1-2 grids
For V1-1 and V1-2 grids, the treatment of 3D coupling fields will be
addressed for the second PRISM coupler version. The idea is to proceed
with a multiple 2D interpolation (i.e. 2D interpolation on many horizontal
or hybrid levels) plus a simple linear interpolation vertically (priority
2).
The priority given to the multiple 2D interpolations or extrapolations
(S1, S2, S3, S4, S5, S6, S7, S16a and S16b) for scalar or vector fields
for the different horizontal grids is 2, or more if a lowest priority
is given above for the equivalent (single) 2D interpolation scheme.
-
Other transformations for V1-1 and V1-2
For V1-1 and V1-2 grids, the local and point-wise transformations S10,
S15, and T1 are given priority 2.
For V1-1 and V1-2 grids, transformations S8, S9, S11, S12, S13, S14
are given priority 3.
-
Interpolations and other transformations for V1-3 and V2 grids
These transformations will not be addressed within PRISM 3-year project.
Transformations on 1D coupling fields
All transformations are given priority 3.
4. PSMILe functionalities
The PRISM System Model Interface Library (PSMILe) is the set of
routines implemented in a component model code to interface it with the
rest of the coupled model. As detailed in the section 4.3 of REDOC II.2
paragraph, I/O and coupling data present many common characteristics. It
was therefore decided to develop one common model interface library, the
PSMILe, both for coupling and I/O purposes. The PSMILe therefore includes
the Data Exchange Library which performs the exchanges with the other component
models, the I/O library, and some coherence check and local transformation
routines.
4.0 PSMILe general characteristics
-
The modifications to implement in the model code are as reduced as possible.
(1,
2, 3)
-
The PSMILe is layered, and complexity is hidden from the component code.
(1,
2, 3)
-
Interface routines once defined and implemented are not (or as little as
possible) subject to modifications between the different versions
of the PRISM coupler. However new routines may be added. (1, 2, 3)
-
A good trade-off is chosen between (I) a concise list of parameters for
each subroutine call (more subroutines provided with a shorter list of
parameters) and (II) a small number of subroutines, each one having a longer
and more complex parameter list. The complexity arises from the need to
transfer not only the coupling data but also the meta-data. (1, 2, 3)
-
The component models are able to run in a stand-alone model without modifications,
with or without an external driver. (2, 3)
I.4-1) A: E, C: E, L: , O: E, B: E, R: E, M: E, CC: M, , CE: D,
S: E (E:7, D:1, M:1, U:0, N:0)
-
The description of the data, i.e. the meta-data (e.g. units, grid coordinates,
mask, distribution, ...), and the model information (e.g. length of a timestep)
is given by the model through the PSMILe and not duplicated externally
by the user (2, 3). This information may change during the simulation.
(3)
I.4-2) A: M, C: M, L: , O: U, B: M, R: U, M:E, CC: -, , CE: D, S:
D (E:1, D:2, M:3, U:2, N:0)
-
The PSMILe is extendable to new types of coupling data (e.g. data given
on arbitrary grids). (1, 2, 3)
-
The PSMILe includes the Data Exchange Library and the I/O library as the
most external layers. The PSMILe therefore automatically manages the cases
for which input coupling data are not provided by another model but have
to be read into a file; this is transparent for the component model. The
format of these data files could be a standard PRISM fixed format (2).
At a later stage, different formats could be supported for these data files,
implying that the I/O instance can interpret their content.(3)
-
The PSMILe includes some local transformation routines and performs the
transformation required locally before the exchange with the rest of the
PRISM System. (2, 3)
-
The PSMILe performs some checks of coherence on coupling and I/O data,
according to a coherence check level defined by the user in the coupled
model configuration file. (3)
4.1 Data Exchange Library (DEL) functionalities
The Data Exchange library (DEL) performs the exchanges of coupling data
between the component models, or between the component models and the separate
transformation entity. The DEL must therefore be included as the most external
layer in the PSMILe, and in the separate transformation entity
The DEL functionalities are:
-
The exchange can occur directly between two component models without going
through additional transformation processes. When the component models
are parallel and have different data partitioning, repartitioning associated
to direct communication is required; all type of distributions usually
used in model component codes are be supported. (2 for static simulations,
3 for CF dynamic simulations)
-
"End-point" data exchange: when producing coupling data, the source model
does not know what other model will consume it; when asking for coupling
data a target model does not know what other model produces it. (1,
2, 3)
I.4-11) A: N, C: N, L: -, O: E, B: M, R: E, M:E, CC: D, , CE: E,
S: D (E:4, D:2, M:1, U:0, N:2)
-
Coupling data produced by a source model can be consumed by more than one
target model. (2, 3)
-
Occurrence of the exchange can be different for the different coupling
fields. (1, 2, 3)
-
For each coupling field, the exchange occurs at a fixed frequency for the
whole simulation . (1, 2, 3)
-
For each coupling field, the exchange may occur at different fixed frequencies
for different periods. (2, 3)
-
Coupling data produced from one model at a particular time may be required
as input coupling data for another model at another time. The DEL can take
into account a timelag defined by the user in the coupled model configuration
file. (2, 3)
-
Conditional occurence of an exchange, depending on parameters dynamically
calculated during the simulation, will not be supported within PRISM 3
years.
-
The coupling data can be of different types: integer and real, complex
(32, 64, 128 bits) appearing as multidimensional arrays, but without time
dimension (2,3). For structures, operators and functions, other
PSMILe primitives will be defined when required, but not within PRISM 3
years.
-
The coupling data characteristics, and therefore the associated metadata,
may change over time as the simulation develops e.g. the grid or the resolution
(CF dynamic simulations). (3)
-
Coupling data produced by one model may be only partially consumed by the
target model; extraction of subspaces, hyperslabs or indexed grid points
may be required before the exchange. (2,3)
I.4-21) A: M, C: M, L: -, O: M, B: D, R: E, M:D, CC: M, , CE: M,
S: D (E:1, D:3, M:5, U:0, N:0)
-
Sending and receiving instructions can be placed anywhere in the source
and target code and possibly at different location for the different coupling
fields. (1, 2, 3)
-
The DEL insures that component models can be executed concurrently, in
a regular sequence (one after the other), or in some pre-defined combination
of these two modes. (1, 2, 3)
I.4-6)
A: E, C: E, L: -, O: E, B: D, R: E, M:E, CC: M, , CE: D, S: D
(E:5, D:3, M:1, U:0, N:0)
-
The DEL offers efficient data exchange implementations for loose and strong
coupling. Loose coupling is the configuration in which the two component
models are run sequentially or concurrently as two separate executables.
Strong coupling is the configuration in which the two component models
are run within the same executable. (2, 3)
-
The DEL could perform the matching between output coupling data produced
by one model and input coupling data requested by another model (see related
discussin above in the Driver section) (1, 2, 3)
4.2
I/O library
in progress, to be included by wp4a
4.3 Coherence check routines
The PSMILe should perform some checks of coherence on coupling
and I/O data, according to a coherence check level defined by the user
in the coupled model configuration file. The coherence check instance will:
-
Understand some standard conventions of metadata. (3)
-
Based on the metadata, perform compatibility checks between data produced
by a source component and its description established by the model developer
in a the model description file. (3)
-
Based on metadata description, to perform compatibility checks between
data produced by a source component and data required by a target component.
(3)
-
Based on metadata description, to recognize type of coupling data (flux,
vector, scalar) and verify that the user's transformation choice is appropriate.
(3)
-
Warn the user if the coupling and I/O frequencies are not synchronized.
(3)
I.4-14) A: M, C: M, L: -, O: D, B: E, R: E, M: D, CC: D, , CE: M,
S: E (E:3, D:3, M:3, U:0, N:0)
-
Automatically check an abort condition defined by the user in the
coupled model configuration file on the value of the input and output data,
and perform the abort if the condition is met. (3)
4.4
Local transformation routines
The PSMILe should perform the following transformations locally
before the exchange with the rest of the PRISM System (for associated priorities,
refer to section 3.3):
-
Combination of different data produced by one model (S9).
I.4-19b) A: D, C: D, L: -, O: E, B: D, R: E, M:E, CC: M, , CE: E,
S: D (E:4, D:4, M:1, U:0, N:0)
-
Algebraic operations (S15).
I.4-19c) A: D, C: D, L: , O: E, B: N, R: E, M:E, CC: D, , CE: E,
S: E (E:5, D:3, M:0, U:0, N:1)
-
1st and 2nd order extrapolation (S16a, S16b).
-
Time integration, average, variance, extrema, linear interpolation (T1).