Fortran Wiki


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


Fortran 95 and later


Transformational function


result = product(array[, mask])
result = product(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.

Return value

The result is of the same type as array.

If dim is absent, a scalar with the product 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_product
  integer :: x(5) = (/ 1, 2, 3, 4 ,5 /)
  print *, product(x)                    ! all elements, product = 120
  print *, product(x, mask=mod(x, 2)==1) ! odd elements, product = 15
end program

See also

sum, note that an element by element multiplication is done directly using the star character.

category: intrinsics