# Construct Association

Construct association establishes an association between each selector and the corresponding associate name of an ASSOCIATE, CHANGE TEAM, SELECT RANK, or SELECT TYPE construct.

If the selector is allocatable, it must be allocated. The associate name is associated with the data object and does not have the ALLOCATABLE attribute.

If the selector has the POINTER attribute, it must be associated. The associate name is associated with the target of the pointer and does not have the POINTER attribute; it has the TARGET attribute if the selector is a variable that has the POINTER or TARGET attribute.

If the selector has the ASYNCHRONOUS or VOLATILE attribute, the entity associated with the corresponding associate name also has that attribute. If the selector is polymorphic, the associated entity has the same dynamic type and type parameters as the selector. If the selector has the OPTIONAL attribute, it must be present. If the selector is contiguous, the associated entity is also contiguous.

If the selector is a variable other than an array section having a vector subscript, the association is with the data object specified by the selector; otherwise, the association is with the value of the selector expression, which is evaluated before the execution of the block.

Each associate name remains associated with the corresponding selector throughout the execution of the executed block. Within the block, each selector is known by, and can be accessed by, the corresponding associate name. When the construct is terminated, the association is terminated.

## See Also

USE statement
Host Association
Additional Attributes Of Associate Names
Scope for details on entities with local scope