添字三つ組とは,部分配列の下限,部分配列の上限,および両者の間での増分 (刻み幅) を表す 3 つの値の組です。これは次の形式を取ります。
[first-bound] : [last-bound] [:stride]
first-bound
添字列の最初の値を表すスカラ整数 (またはその他の数値) 式。省略された場合,その次元の宣言された下限が使用されます。
last-bound
添字列の最後の値を表すスカラ整数 (またはその他の数値) 式。省略された場合,その次元の宣言された上限が使用されます。
大きさ引継ぎ配列の部分配列を宣言する場合,この添字は必ず宣言する必要があります。
stride
列内の隣り合う添字の増分を表すスカラ整数 (またはその他の数値) 式。これはゼロ以外の値でなくてはなりません。省略された場合,値 1 が使用されます。
刻み幅には以下の効果があります。
たとえば,配列が B(6,3,2) として宣言されている場合,B(2:4,1:2,2) として宣言された部分配列は,形状が (3,2) で大きさが 6 の次元数 2 の配列です。これは以下に示す 6 つの要素から構成されます。
B(2,1,2) B(2,2,2) B(3,1,2) B(3,2,2) B(4,1,2) B(4,2,2)
第 1 の添字が第 2 の添字よりも大きい場合,範囲は空になります。
たとえば,配列が A(15) として宣言されている場合,A(10:3:-2) として宣言された部分配列は,形状が (4) で大きさが 4 の次元数 1 の配列です。これは以下に示す 4 つの要素から構成されます。
A(10) A(8) A(6) A(4)
第 2 の添字が第 1 の添字よりも大きい場合,範囲は空になります。
刻み幅によって宣言された範囲が空である場合,部分配列の大きさはゼロになります。
添字三つ組中の添字は,配列要素の選択に使用されるすべての値が宣言された境界内に収まっているのであれば,その次元の宣言された境界に収まっている必要はありません。たとえば,配列が A(15) として宣言されている場合,A(4:16:10) として宣言された部分配列は有効です。この部分配列は形状が (2) で大きさが 2 の次元数 1 の配列で,要素 A(4) と A(14) から構成されます。
添字三つ組が境界または刻み幅を宣言しておらず,コロン (:) だけがある場合,その次元に対して宣言された範囲全体が使用されます。
すべての添字を省略した場合,その次元の全寸法に基本値が割り当てられます。以下に例を示します。
REAL A(10) A(1:5:2) = 3.0 ! 要素 A(1), A(3), A(5) に 3.0 を代入します。 A(:5:2) = 3.0 ! 上記の文と同じです。 ! これは,下限の基本値が 1 であるためです。 A(2::3) = 3.0 ! 要素 A(2), A(5), A(8) に 3.0 を代入します。 ! 上限の基本値は 10 です。 A(7:9) = 3.0 ! 要素 A(7), A(8), A(9) に 3.0 を代入します。 ! 刻み幅の基本値は 1 です。 A(:) = 3.0 ! A = 3.0 と同じ。; sets all elements of ! A のすべての要素に 3.0 を代入します。