配列

配列は,同じ型と種別パラメタを持つスカラ要素の組です。配列宣言によって宣言されたすべてのオブジェクトは配列となります。配列は,型宣言文を使って,または DIMENSIONCOMMONALLOCATABLEPOINTER,または TARGET 文を使って宣言することができます。

配列の引用は,要素ごと (添字を使用),部分ごと (部分配列添字並びを使用),または全体として行うことができます。添字並び (配列名の後に追加) は,どの配列要素または部分配列を引用するのかを宣言します。

部分配列添字並びは,添字,添字三つ組,またはベクトル添字から構成されます。並び中の少なくとも 1 つの添字が添字三つ組またはベクトル添字でなくてはなりません。

組込み演算 (加算など) に,配列名が添字なしで現れた場合,その演算は全体配列 (配列中のすべての要素) に適用されます。

配列は以下のプロパティを持ちます。

配列の名前と次元数は,配列の宣言時に宣言されなくてはなりません。各次元の寸法は定数であってもかまいませんが,定数でなくてはならないというわけではありません。配列が仮引数配列,自動割付け配列,配列ポインタ,または割付け配列である場合,寸法はプログラムの実行中に変更することができます。

全体配列は配列名によって引用されます。名前付き配列中の個々の要素は,スカラ添字かスカラ添字並び (複数の次元がある場合) によって引用されます。名前付き部分配列は部分配列添字によって引用されます。

この節では,以下について説明しています。

以下に有効な配列宣言の例を示します。

	DIMENSION A(10, 2, 3)		! DIMENSION 文
	ALLOCATABLE B(:, :)		! ALLOCATABLE 文
	POINTER C(:, :, :)		! POINTER 文
	REAL, DIMENSION (2, 5) :: D	! DIMENSION 属性をもつ型宣言

次の配列宣言を考えます。

	INTEGER L(2:11,3)

配列 L のプロパティは以下のようになります。

データ型 INTEGER
次元数 2 (2 次元)
境界 第 1 の次元: 2 ~ 11
第 2 の次元: 1 ~ 3
大きさ 30。寸法の積: 10 x 3
形状 (/10,3/)(または 10 x 3)。寸法 10 と 3 のベクトル

次の例は,この配列の他の有効な宣言方法を示しています。

	DIMENSION L(2:11,3)
	INTEGER, DIMENSION(2:11,3) :: L
	COMMON L(2:11,3)

次の例は,配列要素,部分配列,および全体配列の引用を示しています。

	REAL B(10)		! 10 個の要素を持つ次元数 1 の配列を宣言

	INTEGER C(5,8)		! 次元 1 に 5 個の要素,次元 2 に 8 個
				! の要素を持つ次元数 2 の配列を宣言
	...
	B(3) = 5.0		! 配列要素の引用
	B(2:5) = 1.0		! 次の要素で構成する部分配列の引用:
				! B(2), B(3), B(4), B(5)
	...
	C(4,8) = I		! 配列要素の引用
	C(1:3,3:4) = J		! 次の要素で構成する部分配列の引用:
				! C(1,3) C(1,4)
				! C(2,3) C(2,4)
				! C(3,3) C(3,4)

	B = 99			! 次の要素で構成する全体配列の引用:
				! B(1), B(2), B(3), B(4), B(5),
				! B(6), B(7), B(8), B(9), B(10)

関連情報