配列

配列とは、スカラー・データの順序付けられた列のことです。 配列のエレメントはすべて、同一の型と型付きパラメーターを持ちます。

全体配列 は配列の名前によって示されます。

! 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

関連情報:

IBM Copyright 2003