# Fortran Wiki sum

## Description

Adds the elements of array along dimension dim if the corresponding element in mask is true.

## Standard

Fortran 95 and later

## Class

Transformational function

## Syntax

result = sum(array[, mask])
result = sum(array, dim[, mask])

## Arguments

• 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.

## Return value

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.

## Example

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