product

Date:

10-12-2011

NAME

PRODUCT - Forms the product of array elements

SYNOPSIS

PRODUCT([ARRAY=]array [,[DIM=]dim] [,[MASK=]mask])

IMPLEMENTATION

Cray Linux Environment (CLE)

STANDARDS

Fortran

DESCRIPTION

The PRODUCT intrinsic function forms the product of all the elements of array along dimension dim corresponding to the true elements of mask. It accepts the following arguments:

array

Must be of type INTEGER, REAL, or COMPLEX. It must not be scalar.

dim

Must be scalar and of type INTEGER with a value in the range 1 <= dim <= n, where n is the rank of array. The corresponding actual argument must not be an optional dummy argument.

mask

Must be of type LOGICAL and must be conformable with array.

PRODUCT is a transformational intrinsic function. The name of this intrinsic cannot be passed as an argument.

RETURN VALUES

The result has the same type and type parameter as array. The result is scalar if dim is absent or array has rank one; otherwise, the result is an array of rank n-1 of shape

(d1, d2, ..., ddim-1, ddim+1, ..., dn)

where

(d1, d2, ..., dn)

is the shape of array.

The result of PRODUCT(array) has a value equal to the product of all the elements of array or has the value 1 if array has size 0.

The result of PRODUCT(array,MASK=mask) has a value equal to the product of the elements of array corresponding to the true elements of mask or has the value 1 if there are no true elements.

If array has rank one, PRODUCT(array,dim[,mask]) has a value equal to that of PRODUCT(array[,MASK=mask]). Otherwise, the value of element

(s1, s2, ..., sdim-1, sdim+1, ..., sn)

of PRODUCT(array,dim[,mask]) is equal to

PRODUCT(array (s1, s2, ..., sdim-1, : , sdim+1, ..., sn)

        [, MASK=mask (s1, s2, ..., sdim-1, : , sdim+1, ..., sn)])

EXAMPLES

Example 1: PRODUCT((/1,2,3/)) yields 6.

Example 2: PRODUCT(C,MASK=C.GT.0.0) yields the product of the positive elements of C.

Example 3: Assume that B is the following array:

| 1 3 5 |
| 2 4 6 |

PRODUCT(B,DIM=1) yields (/2,12,30/).

PRODUCT(B,DIM=2) yields (/15,48/).