PRODUCT

変形組込み関数 (総称):配列全体のまたは配列の指定された次元のすべての要素の積を返します。

形式

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

array
(入力) 整数型または実数型の配列。

dim
(省略可能,入力) narray の次元数として,1 ~ n の範囲の値を持つスカラ整数。

mask
(省略可能,入力) 論理型配列。array と形状適合でなくてはなりません。

結果

結果は,array と同じデータ型の配列またはスカラです。

結果は,dim が省略されるか,array の次元数が 1 である場合にはスカラとなります。

dim が省略された場合,以下の規則が適用されます。

dim が宣言された場合,以下の規則が適用されます。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

SUM

PRODUCT ((/2, 3, 4/)) は,値 24 (2 * 3 * 4 の積) を返します。PRODUCT ((/2, 3, 4/), DIM=1) は同じ結果を返します。

PRODUCT (C, MASK=C .LT. 0.0) は,C の負の要素の積を返します。

A が配列

	[ 1  4  7 ]
	[ 2  3  5 ]

であるとします。

PRODUCT (A, DIM=1) は,個々の列のすべての要素の積である値 (2, 12, 35) を返します。2 は列 1 の 1 * 2 の積であり,12 は列 2 の 4 * 3 の積です (以下同様)。

PRODUCT (A, DIM=2) は,個々の行のすべての要素の積である値 (28, 30) を返します。28 は行 1 の 1 * 4 * 7 の積であり,30 は列 2 の 2 * 3 * 5 の積です。

array が形状 (2, 2, 2) で,mask が省略され,dim1 の場合,結果は以下の値を持つ要素で構成される形状 (2, 2) の配列結果になります。

結果配列要素
result(1, 1) array(1, 1, 1) * array(2, 1, 1)
result(2, 1) array(1, 2, 1) * array(2, 2, 1)
result(1, 2) array(1, 1, 2) * array(2, 1, 2)
result(2, 2) array(1, 2, 2) * array(2, 2, 2)

以下に他の例を示します。

	INTEGER array (2, 3)
	INTEGER AR1(3), AR2(2)
	array = RESHAPE((/1, 4, 2, 5, 3, 6/),(/2,3/))
	! array は 1 2 3
	!          4 5 6 です。

	AR1 = PRODUCT(array, DIM = 1)	! [ 4 10 18 ] を返します。
	AR2 = PRODUCT(array, MASK = array .LT. 6, DIM = 2)
	! [ 6 20 ] を返します。
	END