XL Fortran for AIX 8.1

Language Reference


Returns the upper bounds of each dimension in an array, or the upper bound of a specified dimension.

is the array whose upper bounds you want to determine. Its bounds must be defined: that is, it must not be a disassociated pointer or an allocatable array that is not allocated, and if its size is assumed, you can only examine one dimension.

DIM (optional)
is an integer scalar in the range 1 <= DIM <=  rank(ARRAY). The corresponding actual argument must not be an optional dummy argument.


Inquiry function

Result Type and Attributes

Default integer.

If DIM is present, the result is a scalar. If it is not present, the result is a one-dimensional array with one element for each dimension in ARRAY.

Result Value

Each element in the result corresponds to a dimension of ARRAY. If ARRAY is a whole array or array structure component, these values are equal to the upper bounds. If ARRAY is an array section or expression that is not a whole array or array structure component, the values represent the number of elements in each dimension, which may be different than the declared upper bounds of the original array. If a dimension is zero-sized, the corresponding element in the result is zero, regardless of the value of the upper bound.


! This array illustrates the way UBOUND works with
! different ranges for dimensions.
        REAL A(1:10, -4:5, 4:-5)
        RES=UBOUND( A )
! The result is (/ 10, 5, 0 /).
        RES=UBOUND( A(:,:,:) )
! The result is (/ 10, 10, 0 /) because the argument
! is an array section.
        RES=UBOUND( A(4:10,-4:1,:) )
! The result is (/ 7, 6, 0 /), because for an array section,
! it is the number of elements that is significant.

[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]