部分配列

部分配列は配列の一部であり,それ自身が配列となっているものです。これは配列部分オブジェクトです。(配列または配列成分に追加された) 部分配列添字並びは,どの部分を引用するのかを決定します。部分配列の引用は次の形式を取ります。

array(sect-subscript-list)

array
配列の名前。

sect-subscript-list
特定の次元に沿った要素の組を示す,1 つまたは複数の部分配列添字 (添字,添字三つ組,またはベクトル添字) 並び。

部分配列添字並び中の項目の少なくとも 1 つは,添字三つ組またはベクトル添字でなくてはなりません。添字三つ組は,一定の刻み幅で昇順または降順に分布している配列要素を宣言します。ベクトル添字は任意の順序で要素を宣言します。

個々の添字および添字三つ組はスカラ整数 (またはその他の数値) 式でなくてはなりません。個々のベクトル添字は次元数 1 の整数式でなくてはなりません。

規則と振る舞い

部分配列添字並びが宣言されていない場合,部分配列の次元数と形状は親配列と同じになります。

それ以外の場合,部分配列の次元数は,並びに現れるベクトル添字および添字三つ組の数になります。その形状は,各要素が,対応する添字三つ組またはベクトル添字によって宣言される列に含まれる整数値の数である次元数 1 の配列です。

いずれかの列が空である場合,部分配列の大きさはゼロとなります。部分配列の要素の添字順序は,その部分配列が表現する配列オブジェクトの添字順序となります。

各部分配列は親配列の型,種別パラメタ,および特定の属性 (INTENTPARAMETER,および TARGET) を継承します。部分配列は POINTER 属性を継承することはできません。

配列 (または配列成分) が文字型である場合,その後に括弧で囲んで文字部分列範囲を続けることができます。次の宣言を考えます。

	CHARACTER(LEN=15) C(10,10)

この場合,C(:,:) (1:3) として引用される部分配列は,形状が (10,10) で,C の対応する要素の長さ 3 の文字部分列を要素として持つ配列となります。

以下に部分配列への有効な引用の例を示します。構文 (/.../) は配列構成子を示すことに注意してください (「配列構成子」を参照)。

	REAL, DIMENSION(20) :: B
	...
	PRINT *, B(2:20:5)	! 次の要素で構成される部分配列:
				! B(2), B(7), B(12), B(17)

	K = (/3, 1, 4/)
	B(K) = 0.0		! 部分配列 B(K) は,形状 (3),大きさ (3) をもつ 次元数 1 の
				! 配列です。(0.0 は B(1), B(3), B(4) に割り付けられます。)

関連情報