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.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
sum, note that an element by element multiplication is done directly using the star character.