XL Fortran for AIX V8.1.1

ランゲージ・リファレンス


配列

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

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

! 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 では、次元の境界は、-(2**31) から 2**31-1 の範囲内で、正、負、またはゼロのいずれかの値をとります。64 ビット・モードの次元の境界範囲は、 -(2**63) から 2**63-1 です。

+--------------------------------IBM 拡張の終り-------------------------------+

下限が対応する上限よりも大きい場合、その配列はゼロ・サイズ配列 です。これは、エレメントを持ちませんが、配列の特性は持っています。このような次元の下限は 1、上限は 0 となります。

配列宣言子で境界が指定される場合、

関連情報:

宣言式
LBOUND (ARRAY, DIM)
UBOUND (ARRAY, DIM)

次元のエクステント

次元のエクステント とは、その次元内のエレメントの数のことで、上限の値から下限の値を引いて 1 を加えることによって求められます。

INTEGER, DIMENSION :: X(5)     ! Extent = 5
REAL :: Y(2:4,3:6)             ! Extent in 1st dimension = 3
                               ! Extent in 2nd dimension = 4

下限が上限より大きい次元では、最小のエクステントはゼロとなります。

+----------------------------------IBM 拡張----------------------------------+

配列内のエレメントの理論上の最大数は、 32 ビット・モードでは 2**31-1 エレメント、または XL Fortran 64 ビット・モードでは 2**63-1 エレメントとなります。ハードウェアのアドレッシングを考慮すると、全体の大きさ (バイト数) がこの値を超えるデータ・オブジェクトの組み合わせを宣言することは現実的ではありません。

+--------------------------------IBM 拡張の終り-------------------------------+

共通、等価、引き数のいずれかの関連付けに関連した異なる配列宣言子は、異なるランクとエクステントを持ちます。

配列のランク、形状、およびサイズ

配列のランク とは、配列が持つ次元の数のことです。

INTEGER, DIMENSION (10) :: A     ! Rank = 1
REAL, DIMENSION (-5:5,100) :: B  ! Rank = 2

Fortran 95 では、1 から 7 までの次元を持つことができます。

+----------------------------------IBM 拡張----------------------------------+

XL Fortran では、配列は 1 から 20 までの次元を持つことができます。

+--------------------------------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

関連情報:


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]