Copyright Digital Equipment Corp. All rights reserved.

UBOUND

 UBOUND (array [,dim] [,kind])

 Class:  Inquiry function - Generic

 Returns the upper bounds for all dimensions of an array, or the
 upper bound for a specified dimension.

 The "array" cannot be an allocatable array that is not allocated,
 or a disassociated pointer.  The "dim" is a scalar integer with a
 value in the range 1 to n, where "n" is the rank of "array".  The
 "kind" must be a scalar integer initialization expression.

 The result is of type integer.  If "kind" is present, the kind
 parameter of the result is that specified by "kind"; otherwise, the
 kind parameter of the result is that of default integer.  If the
 processor cannot represent the result value in the kind of the
 result, the result is undefined.

 If "dim" is present, the result is a scalar.  Otherwise, the result
 is a rank-one array with one element for each dimension of "array".
 Each element in the result corresponds to a dimension of "array".

 If "array" is an array section or an array expression that is not a
 whole array or array structure component, UBOUND (array,dim) has a
 value equal to the number of elements in the given dimension.

 The setting of compiler options that specify integer size can
 affect the result of this function.

 Examples:

 Consider the following:

 REAL ARRAY_A (1:3, 5:8)
 REAL ARRAY_B (2:8, -3:20)

 UBOUND (ARRAY_A) is (3, 8).  UBOUND (ARRAY_A, DIM=2) is 8.

 UBOUND (ARRAY_B) is (8, 20).  UBOUND (ARRAY_B (5:8, :)) is (4,24)
 because the number of elements is significant for array section
 arguments.