SUM (ARRAY , DIM , MASK) 或 SUM (ARRAY , MASK)

用途

計算陣列中所選元素的總和。

類別

轉換函數

引數類型和屬性

ARRAY
您要加總其元素的 NUMERIC 陣列。
DIM (選用)
INTEGER 純量。 其值必須在範圍 1 ≤ DIM ≤ rank (ARRAY) 內。
MASK (選用)
邏輯表示式。 如果它是陣列,則它必須符合形狀中的 ARRAY。 如果 MASK 是純量,則純量值會套用至 ARRAY 中的所有元素。

結果值

如果 DIM 存在,則 結果 是等級等級 (ARRAY) -1 的陣列,具有與 ARRAY 相同的資料類型和類型類型參數。 如果遺漏 DIM ,或若 MASK 的等級為 1 ,則 result 是純量。

結果 是透過下列其中一種方法來計算:
方法 1:
如果只指定 ARRAY , result 會等於 ARRAY 所有陣列元素的總和。 如果 ARRAY 是大小為零的陣列,則 結果 等於零。
方法 2:
如果同時指定 ARRAY 和 MASK ,則 result 等於 ARRAY 的陣列元素總和,這些陣列元素在 MASK 中具有對應的陣列元素,且值為 。TRUE.。 如果 MASK 沒有值為 的元素。TRUE.result 等於零。
方法 3:
如果也指定 DIM ,則結果值等於 ARRAY 沿著維度 DIM 且在 MASK 中具有對應 true 陣列元素的陣列元素的總和。
因為 DIMMASK 都是選用的,所以可以使用各種引數組合。 當 -qintlog 選項指定有兩個引數時,第二個引數會參照下列其中一項:
  • MASK (如果是整數、邏輯、位元組或無類型的陣列)
  • DIM (如果它是整數、位元組或無類型的純量)
  • MASK (如果它是邏輯類型的純量)

範例

方法 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