UBOUND

問合せ組込み関数 (総称):配列のすべての次元の上限または指定された次元の上限を返します。

形式

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

array
(入力) 任意のデータ型の配列。割り付けられていない割付け配列,または空状態のポインタであってはなりません。dim が存在し,array の次元数よりも小さい値であれば,大きさ引継ぎ配列を使用することができます。

dim
(省略可能,入力) n を array の次元数として,1 ~ n の範囲の値を持つスカラ整数。

kind
(省略可能,入力) スカラ整数初期値式。

結果

結果の型は基本整数型です。kind が存在する場合,結果の種別パラメタは kind によって指定されたものになります。kind が存在しなければ,結果のの種別パラメタは基本整数型の種別パラメタになります。プロセッサーが結果の種別で結果の値を表現できない場合,結果は不定になります。

dim が存在する場合,結果はスカラです。存在しない場合,結果は array の各次元ごとに 1 つの要素を持つ次元数 1 の配列です。結果中の個々の要素は,array の 1 つの次元に対応しています。

array が全体配列または配列構造体成分でない部分配列または配列式である場合,UBOUND (array, dim) は指定された次元中の要素数に等しい値を持ちます。

array が全体配列または配列構造体成分である場合,UBOUND (array, dim) の値は,array の添字 dim の上限に等しくなります (dim がゼロでない場合)。dim の大きさがゼロならば,結果の対応する要素の値はゼロになります。

整数の大きさを指定するコンパイラ・オプションの設定は,この関数の結果に影響します。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

LBOUND

例

次に例を示します。

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

UBOUND (ARRAY_A) は (3, 8) です。UBOUND (ARRAY_A, DIM=2) は 8 です。

UBOUND (ARRAY_B) は (8, 20) です。UBOUND (ARRAY_B (5:8, :)) は,部分配列引数では要素の数が意味を持つため,(4, 24) となります。

以下に他の例を示します。

	REAL ar1(2:3, 4:5, -1:14), vec1(35)
	INTEGER res1(3), res2, res3(1)
	res1 = UBOUND (ar1)		! [3, 5, 14] を返します。
	res2 = UBOUND (ar1, DIM= 3)	! 14 を返します。
	res3 = UBOUND (vec1)		! 35 を返します。
	END