配列は,同じ型と種別パラメタを持つスカラ要素の組です。配列宣言によって宣言されたすべてのオブジェクトは配列となります。配列は,型宣言文を使って,または DIMENSION,COMMON,ALLOCATABLE,POINTER,または TARGET 文を使って宣言することができます。
配列の引用は,要素ごと (添字を使用),部分ごと (部分配列添字並びを使用),または全体として行うことができます。添字並び (配列名の後に追加) は,どの配列要素または部分配列を引用するのかを宣言します。
部分配列添字並びは,添字,添字三つ組,またはベクトル添字から構成されます。並び中の少なくとも 1 つの添字が添字三つ組またはベクトル添字でなくてはなりません。
組込み演算 (加算など) に,配列名が添字なしで現れた場合,その演算は全体配列 (配列中のすべての要素) に適用されます。
配列は以下のプロパティを持ちます。
配列は任意の組込み型または構造型を持つことができます。配列のデータ型は (他の変数と同様に) 型宣言文によって宣言されるか,その名前の最初の文字によって暗黙的に決定されます。配列のすべての要素は,同じ型と種別パラメタを持ちます。個々の配列要素に代入された値が配列の型と同じでない場合,配列の型に変換されます。
配列の次元数は,配列の次元数です。配列は 7 つまでの次元を持つことができます。次元数 1 の配列はデータの列を表し (ベクトル),次元数 2 の配列は列と行の構造を持ったデータ表を表し (行列),次元数 3 の配列は複数のページ (または平面) を持つデータ表を表します (以下同様)。
配列は個々の次元に沿って下限と上限を持っています。これらの境界は,その次元の添字として使用できる値の範囲を決定します。どちらの境界の値も,正,負,またはゼロになることができます。
次元の境界は配列宣言で定義されます。
配列の大きさは,配列中の要素の総数です (配列の寸法の積)。
寸法とは,特定の次元が持つ要素の総数です。これは,「上限 - 下限 + 1」の式で決定されます。配列のいずれかの寸法の値が 0 ならば,配列の大きさはゼロになります。
配列の形状はその次元数と寸法によって決定され,個々の要素が対応する次元の寸法となっている次元数 1 の配列 (ベクトル) として表現することができます。
同じ形状を持つ 2 つの配列は,形状適合と呼ばれます。スカラは任意の形状の配列に対して形状適合です。
配列の名前と次元数は,配列の宣言時に宣言されなくてはなりません。各次元の寸法は定数であってもかまいませんが,定数でなくてはならないというわけではありません。配列が仮引数配列,自動割付け配列,配列ポインタ,または割付け配列である場合,寸法はプログラムの実行中に変更することができます。
全体配列は配列名によって引用されます。名前付き配列中の個々の要素は,スカラ添字かスカラ添字並び (複数の次元がある場合) によって引用されます。名前付き部分配列は部分配列添字によって引用されます。
この節では,以下について説明しています。
例
以下に有効な配列宣言の例を示します。
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)
関連情報