DOT_PRODUCT — Dot product function ¶RESULT = DOT_PRODUCT(VECTOR_A, VECTOR_B)
DOT_PRODUCT(VECTOR_A, VECTOR_B) computes the dot product multiplication
of two vectors VECTOR_A and VECTOR_B. The two vectors may be
either numeric or logical and must be arrays of rank one and of equal size. If
the vectors are INTEGER, REAL or UNSIGNED, the result is
SUM(VECTOR_A*VECTOR_B). If the vectors are COMPLEX, the result
is SUM(CONJG(VECTOR_A)*VECTOR_B). If the vectors are LOGICAL,
the result is ANY(VECTOR_A .AND. VECTOR_B). If one of VECTOR_A
or VECTOR_B is UNSIGNED, the other one shall also be
UNSIGNED.
Transformational function
| VECTOR_A | The type shall be numeric or LOGICAL, rank 1.
If VECTOR_B is UNSIGNED, VECTOR_A shall also be
unsigned. |
| VECTOR_B | The type shall if VECTOR_A is of numeric type
or LOGICAL if VECTOR_A is of type LOGICAL. VECTOR_B
shall be a rank-one array. If VECTOR_A is UNSIGNED, VECTOR_B
shall also be unsigned. |
If the arguments are numeric, the return value is a scalar of numeric
type, INTEGER, REAL, COMPLEX or UNSIGNED.
If the arguments are LOGICAL, the return value is .TRUE.
or .FALSE..
program test_dot_prod
integer, dimension(3) :: a, b
a = (/ 1, 2, 3 /)
b = (/ 4, 5, 6 /)
print '(3i3)', a
print *
print '(3i3)', b
print *
print *, dot_product(a,b)
end program test_dot_prod
Fortran 90 and later, extension for UNSIGNED (see Unsigned integers)