Allows explicit specification of blocksizes. The idea is that an integer array is able to hold the size of block that each processor receives. This feature gives much more control over load balancing.
Allows an INTEGER vector to hold the number of the processor that a particular array element is mapped to. This sort of feature is useful in finite element codes, it allows non-adjacent array elements to be mapped to the same processor without having to re-order the array.
This directive can appear in procedures and specifies the range of possible mappings that a dummy argument may hold. It is used in conjunction with transcriptive mapping specifications (INHERIT ed mappings) of DYNAMIC objects.
Can now map object to a subset of the total number of processors. This may aid efficiency and is also used with the new tasking features of the language.
Allows the specification of a SHADOW or halo region to be applied to a mapped object. This is particularly useful for BLOCK distributions which access neighbouring cells. Elements that lie on the border between two processors will always generate communications when they are being updated. If there is a shadow region, an off-block element may be duplicated and a local copy stored in order to promote efficiency. The size of the shadow region specifies how many extra ``non-local'' elements are stored locally. The shadow regions are updated at a later date by the compiler.
Many compilers already implement this feature by default but sometimes they are not clever enough to decide what the size of the region should be.