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.