These types are recursive, (which means that they contain pointers to variables of the same type), in order to treat the model nesting.
This type contains the way the domain is splitted into subdomains and is schemtized on Fig. 12.
The type MODELSPLITTING_ll contains the coordinates of the physical and extended subdomain of a processor. Each kind of splitting (2-way, x-slices or y-slices) corresponds to an array of type MODELSPLITTING_ll in the type PROCONF_ll. The indices of the array correspond to a processor number.
An array of type LOCALISATION_ll allows to know whether a processor is situated at the west, the east, the south or the north of the model.
The main use of this type is to hold list of zones to be sent or received by the current processor and is schematized on Fig. 14. A list of zones is hold by the type CRSPD_ll (Fig. 13). There are two CRSPD_lls for each kind of communication (halo updates, transpositions, grid-nesting...) : one for the send and one for the receive operations.
To treat the communications to update the LB fields there is a list of CRSPD_lls (called LCRSPD_ll), each element of the list corresponding to a width of the "T" field.
Note that the data concerning the zones to be sent when swapping from a model to one of its child are not accessed directly in type PROC_COM_DATA_ll. A type called PARENT2CHILD_DATA holds these informations (see figure 15). This allows to differentiate the data to be communicated with the different children by way of a list of PARENT2CHILD_DATA, called LPARENT2CHILD_DATA.