C #SCLPRA V1A 31-MAY-73. C LAST UPDATE. C SUBROUTINE SCLPRA ( X, Y, N, SUM) DIMENSION X(N), Y(N) C C *PURPOSE. C CALCULATES THE SCALAR PRODUCT OF VECTORS "X" AND "Y" OF C LENGTH "N" IN DOUBLE PRECISION ADDING THE RESULT TO "SUM". C C *PARAMETERS: C C X - FIRST REAL ARRAY CONTAINING VECTOR OF LENGTH "N" C Y - SECOND REAL ARRAY CONTAINING VECTOR OF LENGTH "N" C N - LOGICAL LENGTH OF VECTORS TO BE MULTIPLIED. C SUM - REAL VALUE TO WHICH IS ADDED THE SCALAR PRODUCT. C C NOTE: ALL THE ARGUMENTS ARE SINGLE PRECISION. C C INPUT PARAMETERS: C X, Y, N, SUM C OUTPUT PARAMETERS: C SUM C *METHOD. C STRAIGHTFORWARD. C C *ACCURACY. C LIMITED BY MACHINE SIGNIFICANCE. C C *RESTRICTIONS. C C *ERROR CONDITIONS. C C *NON STANDARD ROUTINES CALLED. C C *TYPICAL TIMES. C C *ORIGIN. M.R.MANNING. C C *COMMENTS. C THIS ROUTINE WILL OFTEN BE REPLACED BY A MACHINE LANGUAGE C ONE IN WHICH CASE THE CALLING OVERHEAD WILL PROBABLY BE C WORTHWHILE. THE FORTRAN VERSION IS MAINLY FOR PORTABILITY C AND AS A LANGUAGE EXTENDING ROUTINE. C C #END. C DOUBLE PRECISION R, S, T C T= 0.0D0 DO 10 I= 1, N R= X(I) S= Y(I) 10 T= T + R*S C S= SUM SUM= S + T RETURN END