Copyright Digital Equipment Corp. All rights reserved.

Assumed_Shape

 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:

    [lower-bound]: [,[lower-bound]:] ...

 The lower bound is a specification expression.  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.