This section describes a set of data mapping features that extend the capabilities provided by the base set as described in Section 3. These extensions can be divided into two categories.
The first set of extensions provides the user greater control over the mapping of the data. These include directives for dynamic remapping of data, which allow the user to redistribute and realign at run time data that has been declared DYNAMIC. The ONTO clause used in the DISTRIBUTE directive is extended to allow direct distribution to subsets of processors. Explicit mapping of pointers and components of derived types are also introduced. Two new distributions are included: the GEN_BLOCK distribution, which generalizes the block distribution, and the INDIRECT distribution, which allows the mapping of individual array elements to be specified through a mapping array.
The programmer can use the second set of extensions to provide the compiler with information useful for generating efficient code. This category includes the RANGE directive, which allows the user to specify the range of distributions that a dynamically distributed array, a pointer, or a dummy argument may have. The SHADOW directive allows the user to specify the amount of additional space required on a processor to accommodate non-local elements in a nearest-neighbor computation.
Since this section deals with extensions, we repeat some of the sections of Sections 3 and 4, providing new rules and extending old ones where necessary. In particular, subsections 8.13,
8.14 and 8.15 extend the corresponding subsections in Section 3 based on the approved extensions described here.