Adds the elements of array
along dimension dim
if the corresponding element in mask
is true
.
Fortran 95 and later
Transformational function
result = sum(array[, mask])
result = sum(array, dim[, mask])
array
- Shall be an array of type integer
, real
or complex
.dim
- (Optional) shall be a scalar of type integer
with a value in the range from 1 to n, where n equals the rank of array
.mask
- (Optional) shall be of type logical
and either be a scalar or an array of the same shape as array
.The result is of the same type as array
.
If dim
is absent, a scalar with the sum of all elements in array
is returned. Otherwise, an array of rank n-1, where n equals the rank of array
,and a shape similar to that of array
with dimension dim
dropped is returned.
program test_sum
integer :: x(5) = (/ 1, 2, 3, 4 ,5 /)
print *, sum(x) ! all elements, sum = 15
print *, sum(x, mask=mod(x, 2)==1) ! odd elements, sum = 9
end program