Fortran-arrays
Fortran-配列
配列は、同じタイプの要素の固定サイズの順次コレクションを格納できます。 配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。
すべての配列は、連続したメモリ位置で構成されています。 最下位アドレスは最初の要素に対応し、最上位アドレスは最後の要素に対応します。
Numbers(1) | Numbers(2) | Numbers(3) | Numbers(4) | … |
配列は1次元(ベクトルなど)、2次元(行列など)で、Fortranでは最大7次元の配列を作成できます。
配列の宣言
配列は dimension 属性で宣言されます。
たとえば、5つの要素を含む実数のnumberという名前の1次元配列を宣言するには、次のように記述します。
配列の個々の要素は、添え字を指定することにより参照されます。 配列の最初の要素の添字は1です。 配列番号には、numbers(1)、numbers(2)、numbers(3)、numbers(4)、numbers(5)の5つの実変数が含まれています。
matrixという名前の整数の5 x 5の2次元配列を作成するには、次のように記述します-
また、例えば、いくつかの明示的な下限を持つ配列を宣言することができます-
値の割り当て
次のように、個々のメンバーに値を割り当てることができます。
または、ループを使用できます。
1次元配列要素には、配列コンストラクターと呼ばれる短い記号を使用して、値を直接割り当てることができます。
- 括弧「(」とバックスラッシュ「/」の間にスペースを入れないでください *
例
次の例は、上記の概念を示しています。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
いくつかのアレイ関連用語
次の表は、いくつかの配列関連の用語を示しています-
Term | Meaning |
---|---|
Rank | It is the number of dimensions an array has. For example, for the array named matrix, rank is 2, and for the array named numbers, rank is 1. |
Extent | It is the number of elements along a dimension. For example, the array numbers has extent 5 and the array named matrix has extent 3 in both dimensions. |
Shape | The shape of an array is a one-dimensional integer array, containing the number of elements (the extent) in each dimension. For example, for the array matrix, shape is (3, 3) and the array numbers it is (5). |
Size | It is the number of elements an array contains. For the array matrix, it is 9, and for the array numbers, it is 5. |
配列をプロシージャに渡す
配列を引数としてプロシージャに渡すことができます。 次の例は、概念を示しています-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
上記の例では、サブルーチンfillArrayおよびprintArrayは、次元5の配列でのみ呼び出すことができます。 ただし、任意のサイズの配列に使用できるサブルーチンを作成するには、次の手法を使用して書き換えることができます-
プログラムは size 関数を使用して配列のサイズを取得していることに注意してください。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
配列セクション
これまで配列全体を参照してきましたが、Fortranは単一のステートメントを使用して、複数の要素または配列のセクションを参照する簡単な方法を提供します。
配列セクションにアクセスするには、セクションの下限と上限、およびすべての次元のストライド(増分)を指定する必要があります。 この表記法は*添字トリプレット:*と呼ばれます
下限と上限が指定されていない場合、デフォルトは宣言した範囲になり、ストライド値はデフォルトで1になります。
次の例は、概念を示しています-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
配列組み込み関数
Fortran 90/95は、いくつかの組み込み手続きを提供します。 これらは7つのカテゴリに分類できます。
- リンク:/fortran/vector_and_matrix_multiplication [ベクトルと行列の乗算]
- リンク:/fortran/reduction [Reduction]
- リンク:/fortran/inquiry [お問い合わせ]
- リンク:/fortran/construction [構築]
- リンク:/fortran/reshape [Reshape]
- リンク:/fortran/manipulation [操作]
- リンク:/fortran/location [場所]