next up previous contents
Next: 6. Performances Up: mainexpand Previous: 4. I/O   Contents

Subsections

5. Data Structure

The data structure is organised in an object-oriented style, with Fortran 90 user defined types. All these types are defined in the file modd_parallele.f90, which should be read at the same time as this document. The two top-level types represent:

These types are recursive, (which means that they contain pointers to variables of the same type), in order to treat the model nesting.

5.1 Configuration of the processors (type PROCONF_ll)

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.

Figure 12: type PROCONF_ll
\begin{figure}
\centerline {
\epsfig{file=Figures/proconf.eps,width=13cm}
} \end{figure}

5.2 Communications to be performed (type PROC_COM_DATA_ll)

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.

Figure 13: type CRSPD_ll
\begin{figure}
\centerline {
\epsfig{file=Figures/crspd.eps,width=13cm}
} \end{figure}

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.

Figure 14: type PARENT2CHILD_DATA_ll
\begin{figure}
\centerline {
\epsfig{file=Figures/proccomdata.eps,width=13cm}
} \end{figure}

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.

Figure 15: type PROC_COM_DATA_ll
\begin{figure}
\centerline {
\epsfig{file=Figures/parent2child.eps,width=13cm}
} \end{figure}


next up previous contents
Next: 6. Performances Up: mainexpand Previous: 4. I/O   Contents
serveur WWW de Meso-NH
2001-11-15