PSMILe interface proposal

4 - Routines for transient variable declaration

>WP3a:commented (14/06/2002)

>IPSL : comments (02/07/02)

>WP3a:comments (16/07/02 or 26/07/02)


-in green: IPSL last comments
-in red: WP3A new comments or WP3a old comments that still need to be discussed,
-in orange: modifications that wp3a/wp4a agreed on.
-in black and small characters: WP3a old comments on issues that are solved
-in magenta and small character: text that wp3a/wp4a agreed that should be removed



Content:

It might be discussed if the long_name belongs into the declaration of the grids and the variables. If we include it we allow for a further test of coherence between the information in the SMIOC and the model. But it strongly limits the flexibility of the system as it will require the long_name to be exactly the same in the SMIOC and the code and thus the SMIOC/PMIOD can not be adapted to the local language and so on.
>WP3a: We are not in favour of including long_name as an argument (this is not knowledge of the code).

What should we do about undefined values ?

Name :

PSMILe_def_var( ) interface for :

Description :

The interface is designed in such a way that the variable can be identified with it's description in the SMIOC and with sufficient redundancy so that coherence checks can be performed.
A flow diagram for the PSMILe_defvar function

Arguments :

>WP3a: We now would have an extra argument comp_id:

Name:
PRISM_def_var (var_id, name, grid_id, mask_id, comp_id, var_nodims, var_actual_shape, var_type, ierror)
Responsible: NEC-CCRLE

 
var_id [OUT] return handle later use for calls to PRISM_Put/Get
name [IN] character identifier for the variable
grid_id  [IN] value received from PRISM_def_grid
mask_id [IN] mask ID as given by PRISM_def_mask
comp_id [IN] component Id as provided by PRISM_init_comp
var_nodims [IN] var_nodims(1): the overall number of dimensions of array that is going to be transferred with var_id, i.e. same than grid_nodims except for bundle variables for which it is one more.
var_nodims(2): number of bundles
var_actual_shape [IN] as for center_actual_shape but for the data arrays that are going to be transferred with PRISM_put or PRISM_get. 
>Sophie 01/08: var_type [IN] type of array

Further remark for bundles: If an array is defined as a bundle only one handleId will be returned. This implies that the complete bundle will be transferred (send) to the remote component. The remote component has to be able to treat these bundles. Both components have to agree on the the precise sequence of the physical variables contained in this bundle.

There is no need to define the number of vector component as each component will be transferred through a separate call (the information on the number of vector components will come from the PMIOD/SMIOC).

>Sophie 24/07: Do we cover the cases of arrays having a time dimension  e.g array(i,j,k,t,n) (cf Navarra's mail 21 Jun 2002) ?
 

Name :
PSMILe_def_restvar()
Responsible: IPSL
Description : What should be different from defining a transient variable ?
Arguments :
>WP3a: Restart variables should be treated like transient variables.

IPSL : Should be the same as defining transient variables so that the user can use it for coupling as well or archive it to the I/O. We might have a special subroutine so that developer can indicate clearly that there are some restrictions to this variable when it is intended for the restart.

>WP3a: We leave it up to you to decide!