Inquiry Intrinsic Function (Generic): Returns the upper bounds for all dimensions of an array, or the upper bound for a specified dimension.
Syntax
Results:
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.
If array is a whole array or array structure component, UBOUND(array, dim) has a value equal to the upper bound for subscript dim of array (if dim is nonzero). If dim has size zero, the corresponding element of the result has the value zero.
The setting of compiler options that specify integer size can affect the result of this function.
Compatibility
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
See Also: LBOUND
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.
The following shows another example:
REAL ar1(2:3, 4:5, -1:14), vec1(35)
INTEGER res1(3), res2, res3(1)
res1 = UBOUND (ar1) ! returns [3, 5, 14]
res2 = UBOUND (ar1, DIM= 3) ! returns 14
res3 = UBOUND (vec1) ! returns 35
END