Next:
Storage Association Discussion Up: Storage Association Previous: Sequence Directives


Storage Association Rules

  1. A sequence-directive with an empty association-name-list is treated as if it contained the name of all implicitly mapped variables and COMMON blocks in the scoping unit which cannot otherwise be determined to be sequential or nonsequential by their language context.
  2. A sequential variable may not be explicitely mapped unless it is a scalar or rank-one array that is an aggregate cover. If there is more than one aggregate cover for an aggregate variable group, only one may be explicitly mapped.
  3. No explicit mapping may be given for a component of a derived type having the Fortran 90 SEQUENCE attribute.
  4. If a COMMON block is nonsequential, then all of the following must hold:
    1. Every occurrence of the COMMON block has exactly the same number of components with each corresponding component having a storage sequence of exactly the same size;
    2. If a component is a nonsequential variable in any occurrence of the COMMON block, then it must be nonsequential with identical type, shape, and mapping attributes in every occurrence of the COMMON block;
    3. If a component is sequential and explicitly mapped (either a variable or an aggregate variable group with an explicitly mapped aggregate cover) in any occurrence of the COMMON block, then it must be sequential and explicitly mapped with identical mapping attributes in every occurrence of the COMMON block. In addition, the type and shape of the explicitly mapped variable must be identical in all occurrences; and
    4. Every occurrence of the COMMON block must be nonsequential.

paula@erc.msstate.edu
Thu Jul 21 17:05:43 CDT 1994