--- rpl/lapack/blas/dzasum.f 2010/12/21 13:51:26 1.6 +++ rpl/lapack/blas/dzasum.f 2011/07/22 07:38:02 1.7 @@ -22,7 +22,7 @@ * * .. Local Scalars .. DOUBLE PRECISION STEMP - INTEGER I,IX + INTEGER I,NINCX * .. * .. External Functions .. DOUBLE PRECISION DCABS1 @@ -31,23 +31,22 @@ DZASUM = 0.0d0 STEMP = 0.0d0 IF (N.LE.0 .OR. INCX.LE.0) RETURN - IF (INCX.EQ.1) GO TO 20 + IF (INCX.EQ.1) THEN * -* code for increment not equal to 1 +* code for increment equal to 1 * - IX = 1 - DO 10 I = 1,N - STEMP = STEMP + DCABS1(ZX(IX)) - IX = IX + INCX - 10 CONTINUE - DZASUM = STEMP - RETURN + DO I = 1,N + STEMP = STEMP + DCABS1(ZX(I)) + END DO + ELSE * -* code for increment equal to 1 +* code for increment not equal to 1 * - 20 DO 30 I = 1,N - STEMP = STEMP + DCABS1(ZX(I)) - 30 CONTINUE + NINCX = N*INCX + DO I = 1,NINCX,INCX + STEMP = STEMP + DCABS1(ZX(I)) + END DO + END IF DZASUM = STEMP RETURN END