SUM(ARRAY, DIM, MASK) または SUM(ARRAY, MASK)

目的

配列内の選択されたエレメントの合計を計算します。

クラス

変換関数

引き数の型と属性

ARRAY
エレメントを合計したい数値型の配列です。

DIM (オプション)
1 <= DIM <= rank(ARRAY) の範囲内の整数スカラーです。

MASK (オプション)
論理式です。 それが配列である場合には、形状が ARRAY に従っていなければなりません。MASK がスカラーである場合は、その値は ARRAY 内のすべてのエレメントに適用されます。

結果の値

DIM が存在する場合は、結果は ARRAY と同じデータ型を持つ、ランク rank(ARRAY)-1 の配列になります。 DIM が脱落している場合、または MASK のランクが 1 の場合は、 結果はスカラーになります。

結果は、以下のいずれかの方式で計算されます。

方式 1:
ARRAY だけが指定されている場合は、 結果はその配列エレメント全部の和になります。 ARRAY がゼロ・サイズ配列である場合は、結果はゼロになります。

方式 2:
ARRAY と MASK が両方とも指定されている場合は、 結果は値 .TRUE. を持つ MASK 内の対応する配列エレメントを持っている、 ARRAY の配列エレメントの合計となります。 値が .TRUE. であるエレメントを MASK が持っていない場合は、結果はゼロになります。

方式 3:
DIM も指定されている場合は、結果の値は MASK 内の対応する TRUE の配列エレメントを持つ、 次元 DIM に沿った ARRAY の配列エレメントの合計になります。

+---------------------------------Fortran 95---------------------------------+

DIMMASK はどちらもオプションであるため、 引き数のさまざまな組み合わせが可能になります。 -qintlog オプションが 2 つの引き数を指定すると、2 番目の 引き数は次のうちの 1 つを参照します。

+-----------------------------End of Fortran 95------------------------------+

方式 1:

! Sum all the elements in an array.
       RES = SUM( (/2, 3, 4 /) )
! The result is 9 because (2+3+4) = 9

方式 2:

! A is the array (/ -3, -7, -5, 2, 3 /)
! Sum all elements that are greater than -5.
       RES = SUM( A, MASK = A .GT. -5 )
! The result is 2 because (-3 + 2 + 3) = 2

方式 3:

! B is the array | 4 2 3 |
!                | 7 8 5 |
 
! Sum the elements in each column.
       RES = SUM(B, DIM = 1)
! The result is | 11 10 8 | because (4 + 7) = 11
!                                   (2 + 8) = 10
!                                   (3 + 5) =  8
 
! Sum the elements in each row.
       RES = SUM(B, DIM = 2)
! The result is | 9 20 | because (4 + 2 + 3) =  9
!                                (7 + 8 + 5) = 20
 
! Sum the elements in each row, considering only
! those elements greater than two.
       RES = SUM(B, DIM = 2, MASK = B .GT. 2)
! The result is | 7 20 | because (4 + 3) =  7
!                                (7 + 8 + 5) = 20
IBM Copyright 2003