### 5.1.4.2 Assumed-Shape Specifications

An assumed-shape array is a dummy argument array that assumes the shape of its associated actual argument array. An assumed-shape specification takes the following form:

  ([dl]:[, [dl]:]...)
  dl
  Is a specification expression indicating the lower bound of the dimension. The expression can have a positive, negative, or zero value. If necessary, the value is converted to integer type.

  If the lower bound is not specified, it is assumed to be 1.

The rank of the array is the number of colons ( : ) specified.

The value of the upper bound is the extent of the corresponding dimension of the associated actual argument array + lower-bound - 1.

The following is an example of an assumed-shape specification:

    INTERFACE
      SUBROUTINE SUB(M)
        INTEGER M(:, 1:, 5:)
      END SUBROUTINE
    END INTERFACE
    INTEGER L(20, 5:25, 10)
    CALL SUB(L)

    SUBROUTINE SUB(M)
      INTEGER M(:, 1:, 5:)
    END SUBROUTINE

Array M has the same extents as array L, but array M has bounds (1:20, 1:21, 5:14).

Note that an explicit interface is required when calling a routine that expects an assumed-shape or pointer array.

Previous Page Next Page Table of Contents