SUM
copyright

green dotSUM

書式 SUM(ARRAY[,DIM][,MASK])
機能 DIM番目の次元について、MASK中の真である要素に対応するARRAYのすべての 要素の合計を計算する。
 (1)ARRAYの大きさが0であるとき、結果の値は0とする。
 (2)SUM(ARRAY,MASK=mask)の結果の値は、MASK中の真である要素と 対応しているARRAYの要素の合計とする。
ただし、真である要素がないときは結果の値は0とする。
 (3)ARRAYの次元数が1であるとき、SUM(ARRAY,DIM[,MASK])の値は、 SUM(ARRAY[,MASK=mask])とする。
 (4)ARRAYの次元数が2以上であるとき、SUM(ARRAY,DIM[,MASK])の 要素(s1,s2,…, sDIM-1,sDIM+1,…,sn)の値は SUM(ARRAY(s1,s2,…,sDIM-1, …,sDIM+1,…,sn)[,MASK=mask(s1, s2,…,sDIM-1,:,sDIM+1,…, sn)])とする。
nはARRAYの次元数とする。
引数
ARRAY :整数型,実数型、複素数配列
DIM
(省略可能)
:整数型スカラ(1≦DIM≦n)
MASK
(省略可能)
:論理型で配列の大きさはARRAYと同じ
戻り値 型、種別型パラメタは引数ARRAYと同じである。
DIMが省略されているかまたはARRAYの次元数が1であるとき戻り値はスカラである。
それ以外は、n-1次元の配列で、その形状は (d1,d2,…,dDIM-1,dDIM+1, …,dn)である。
ここで(d1,d2,…,dn)は、MASKの形状とする。

green dotサンプルプログラム

SUMの和を計算する。
    INTEGER,DIMENSION(2,3):: x
    x(1,:)=(/0, 1, 2/)
    x(2,:)=(/3, 4, 5/)
    WRITE(*,*) SUM(x)       ! 配列要素中の和は 12
    WRITE(*,*) SUM(x,DIM=1) ! 配列要素中の列ごとの和は 3 5 7
    WRITE(*,*) SUM(x,DIM=2) ! 配列要素中の行ごとの和は 3 12

実行例
15 3 5 7 3 12
line-end