配列とは、スカラー・データの順序付けられた列のことです。 配列のエレメントはすべて、同一の型と型付きパラメーターを持ちます。
全体配列 は配列の名前によって示されます。
! In this declaration, the array is given a type and dimension REAL, DIMENSION(3) :: A ! In these expressions, each element is evaluated in each expression PRINT *, A, A+5, COS(A)
全体配列は、名前付きの定数または変数のいずれかです。
配列内の各次元には、上限および下限があります。 これらの境界によって、その次元の添え字として使用できる値の範囲が決められます。 次元の境界は、正、負、またはゼロのいずれかの値をとります。
+----------------------------------IBM 拡張----------------------------------+
XL Fortran では、32 ビット・モードの次元の境界は、-(2**31) から 2**31-1 の範囲内で、正、負、またはゼロのいずれかの値をとります。 64 ビット・モードの次元の境界範囲は、-(2**63) から 2**63-1 です。
+------------------------------End of IBM 拡張-------------------------------+
下限が対応する上限よりも大きい場合、その配列はゼロ・サイズ配列 です。 これは、エレメントを持ちませんが、配列の特性は持っています。 このような次元の下限は 1、上限は 0 となります。
配列宣言子で境界が指定される場合、
関連情報:
次元のエクステント とは、その次元内のエレメントの数のことで、 上限の値から下限の値を引いて 1 を加えることによって算出されます。
INTEGER, DIMENSION(5) :: X ! Extent = 5 REAL :: Y(2:4,3:6) ! Extent in 1st dimension = 3 ! Extent in 2nd dimension = 4
下限が上限より大きい次元では、最小のエクステントはゼロとなります。
+----------------------------------IBM 拡張----------------------------------+
配列内のエレメントの理論上の最大数は 2**31-1 エレメント (32 ビット・モード)、または 2**63-1 エレメント (XL Fortran 64 ビット・モード) です。 ハードウェアのアドレッシングを考慮すると、全体の大きさ (バイト数) がこの値を超えるデータ・オブジェクトの 組み合わせを宣言することは現実的ではありません。
+------------------------------End of IBM 拡張-------------------------------+
共通、等価、引き数のいずれかの関連付けに関連した異なる配列宣言子は、異なるランクとエクステントを持ちます。
配列のランク とは、配列が持つ次元の数のことです。
INTEGER, DIMENSION (10) :: A ! Rank = 1 REAL, DIMENSION (-5:5,100) :: B ! Rank = 2
Fortran 95 では、1 から 7 までの次元を持つことができます。
+----------------------------------IBM 拡張----------------------------------+
XL Fortran では、配列は 1 から 20 までの次元を持つことができます。
+------------------------------End of IBM 拡張-------------------------------+
スカラーは、ランク 0 と見なされます。
配列の形状 は、ランクおよびエクステントから派生します。 これは、エレメントが対応する次元のエクステントを表す、ランク 1 の配列で表すことができます。
INTEGER, DIMENSION (10,10) :: A ! Shape = (/ 10, 10 /) REAL, DIMENSION (-5:4,1:10,10:19) :: B ! Shape = (/ 10, 10, 10 /)
配列のサイズ とは、配列内のエレメントの数のことで、全次元のエクステントの積に 等しくなります。
INTEGER A(5) ! Size = 5 REAL B(-1:0,1:3,4) ! Size = 2 * 3 * 4 = 24
関連情報: