C This subroutine computes the dot product of two REAL arrays C (X and Y) of length SIZE. The answer is communicated back C via Z. SUBROUTINE DOTPROD (X, Y, Z, SIZE) IMPLICIT NONE INTEGER I, SIZE REAL X(SIZE), Y(SIZE), Z(SIZE) DO I = 1, SIZE Z(I) = X(I) * Y(I) ENDDO RETURN END C The main program exercises DOTPROC PROGRAM TESTER IMPLICIT NONE INTEGER I, N, SIZE PARAMETER (SIZE=100) REAL A(SIZE), B(SIZE), C(SIZE) PRINT *, 'Please enter the number of elements in the arrays' READ *, N IF ((N .LT. 1) .OR. (N .GT. SIZE)) THEN PRINT *, 'That is a bad number' STOP ENDIF DO I = 1, N PRINT *, 'Enter element ', I, ' of A' READ *, A(I) PRINT *, 'Enter element ', I, ' of B' READ *, B(I) ENDDO PRINT *, 'A = ', (A(I), I=1,N) PRINT *, 'B = ', (B(I), I=1,N) CALL DOTPROD(A, B, C, N) PRINT *, 'A*B = ', (C(I), I=1,N) STOP END