Array declarators

An array declarator declares the shape of an array.

You must declare every named array, and no scoping unit can have more than one array declarator for the same name. An array declarator can appear in any of the Compatible Statements and Attributes for Array Declarators table.

Table 8. Compatible statements and attributes for array declarators
ALLOCATABLE AUTOMATIC COMMON
DIMENSION PARAMETER POINTER (integer)
POINTER PROTECTED STATIC
TARGET Type Declaration VOLATILE

For example:

DIMENSION :: A(1:5)         ! Declarator is "(1:5)"
REAL, DIMENSION(1,1:5) :: B ! Declarator is "(1,1:5)"
INTEGER C(10)               ! Declarator is "(10)"

The form of an array declarator is:

Read syntax diagramSkip visual syntax diagram>>-(--array_spec--)--------------------------------------------><
 

array_spec
is an array specification. It is a list of dimension declarators, each of which establishes the lower and upper bounds of an array, or specifies that one or both will be set at run time. Each dimension requires one dimension declarator.

An array_spec is one of:

Each array_spec declares a different kind of array, as explained in the following sections.