The following terms are used to describe partitioning data among processes. Figure 4-1 illustrates some of these concepts.
An elementary data type (or etype) is the unit of data access and positioning. It can be any MPI basic or derived data type. Data access is performed in elementary-data-type units, and offsets (see below) are expressed as a count of elementary data types.
The file type (or filetype) is used to partition a file among processes; that is, a file type defines a template for accessing the file. It is either a single elementary data type or a derived MPI data type constructed from elementary data types. A file type may contain "holes," or extents of bytes that will not be accessed by this process.
A file displacement (or disp) is an absolute byte position relative to the beginning of a file. The displacement defines the location where a view begins (see below).
A view defines the current set of data visible and accessible by a process from an open file in terms of a displacement, an elementary data type, and a file type. The pattern described by a file type is repeated, beginning at the displacement, to define the view.
An offset is a position relative to the current view, expressed as a count of elementary data types. Holes in the view's file type are ignored when calculating this position.
For a more detailed description of MPI I/O, see Chapter 9, "I/O," of the MPI-2 standard.
When writing a Fortran program, you must declare the variable ADDRESS as
INTEGER*MPI_ADDRESS_KIND ADDRESS
MPI_ADDRESS_KIND is a constant defined in mpi.h. This constant defines the length of the declared integer.