next up previous contents
Next: Other Restrictions on Active Up: Active Processor Sets Previous: The SUBSET Directive

Mapping Local Objects and Dummy Arguments

For explicitly mapped local objects without the SAVE attribute, the declarations must map all elements of the object onto active processors. This requirement gives rise to several cases:

In any of these cases, the active processor set is determined at the time that the DISTRIBUTE or ALIGN becomes instantiated. That is, the mapping directives for ALLOCATABLE variables are instantiated when the variable is allocated; other objects have their mapping instantiated when they are declared.

The declaration of subset processors arrangements does not cause processors to become active or inactive; only the execution of ON directives does that. In particular, if a program contains no ON directives or constructs that modify a program's active processor set, then all processors are always active and all DISTRIBUTE directives can use universal arrangements.

Explicitly mapped global objects must have consistent mappings wherever they appear. This will usually (for COMMON and USE associated objects) be accomplished by distribution onto universal processors arrangements. Notice that the interpretation of an implicit (i.e., missing) ONTO clause differs for local and global objects; globals may be distributed onto all processors, while locals must use only active processors. Also note that, since universal processors arrangements are the default for the PROCESSORS directive, no modification to the mapping of global objects is needed when active processors are introduced.

Dummy arguments must be explicitly mapped in the same way as local objects, using the rules above. As Section 9.2.4 explains, the effect of this is that dummy arguments are always stored on the active processor set. Other data objects, particularly objects local to the subprogram, can therefore be aligned to the dummy arguments and allocated on the active processor set.

Objects with the SAVE attribute must be mapped consistently whenever they come into scope. They are not subject to the restriction of mapping to active processors; where mapping is concerned, they conform to the same rules as global objects.


next up previous contents
Next: Other Restrictions on Active Up: Active Processor Sets Previous: The SUBSET Directive