配列全体内のすべてのエレメントを乗算するか、次元に沿ったすべてのベクトルから選択したエレメントを乗算します。
引き数タイプおよび属性
クラス
変換関数
結果値
DIM が存在する場合は、結果はランク rank(ARRAY)-1 の配列で、 ARRAY と同じデータ型になります。 DIM が脱落している場合、または MASK のランクが 1 の場合は、結果はスカラーになります。
結果は、以下のいずれかの方式で計算されます。
DIM も指定されて、ARRAY のランクが 1 より大きい場合、結果は次元 DIM が除去されている新しい配列です。それぞれの新しい配列エレメントは、ARRAY 中の対応するベクトルからのエレメントの積です。そのベクトルのインデックス値は、DIM を除くすべての次元で、出力エレメントの指標値と一致します。出力エレメントは MASK 内の対応する.TRUE. 配列エレメントを持つこれらのベクトル・エレメントの積です。
+---------------------------------Fortran 95---------------------------------+
DIM と MASK はどちらもオプションであるため、引き数のさまざまな組み合わせが可能になります。 -qintlog オプションが 2 つの引き数を指定すると、2 番目の引き数は次のうちの 1 つを参照します。
+------------------------------Fortran 95 の終り------------------------------+
例
! Multiply all elements in an array.
RES = PRODUCT( (/2, 3, 4/) )
! The result is 24 because (2 * 3 * 4) = 24.
! Do the same for a two-dimensional array.
RES = PRODUCT( (/2, 3, 4/), (/4, 5, 6/) )
! The result is 2880. All elements are multiplied.
! A is the array (/ -3, -7, -5, 2, 3 /)
! Multiply all elements of the array that are > -5.
RES = PRODUCT(A, MASK = A .GT. -5)
! The result is -18 because (-3 * 2 * 3) = -18.
! A is the array | -2 5 7 |
! | 3 -4 3 |
! Find the product of each column in A.
RES = PRODUCT(A, DIM = 1)
! The result is | -6 -20 21 | because (-2 * 3) = -6
! ( 5 * -4 ) = -20
! ( 7 * 3 ) = 21
! Find the product of each row in A.
RES = PRODUCT(A, DIM = 2)
! The result is | -70 -36 |
! because (-2 * 5 * 7) = -70
! (3 * -4 * 3) = -36
! Find the product of each row in A, considering
! only those elements greater than zero.
RES = PRODUCT(A, DIM = 2, MASK = A .GT. 0)
! The result is | 35 9 | because ( 5 * 7) = 35
! (3 * 3) = 9