--- rpl/lapack/blas/zdotu.f 2010/12/21 13:51:26 1.6 +++ rpl/lapack/blas/zdotu.f 2011/07/22 07:38:02 1.7 @@ -26,28 +26,28 @@ ZTEMP = (0.0d0,0.0d0) ZDOTU = (0.0d0,0.0d0) IF (N.LE.0) RETURN - IF (INCX.EQ.1 .AND. INCY.EQ.1) GO TO 20 + IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * -* code for unequal increments or equal increments -* not equal to 1 +* code for both increments equal to 1 * - IX = 1 - IY = 1 - IF (INCX.LT.0) IX = (-N+1)*INCX + 1 - IF (INCY.LT.0) IY = (-N+1)*INCY + 1 - DO 10 I = 1,N - ZTEMP = ZTEMP + ZX(IX)*ZY(IY) - IX = IX + INCX - IY = IY + INCY - 10 CONTINUE - ZDOTU = ZTEMP - RETURN + DO I = 1,N + ZTEMP = ZTEMP + ZX(I)*ZY(I) + END DO + ELSE * -* code for both increments equal to 1 +* code for unequal increments or equal increments +* not equal to 1 * - 20 DO 30 I = 1,N - ZTEMP = ZTEMP + ZX(I)*ZY(I) - 30 CONTINUE + IX = 1 + IY = 1 + IF (INCX.LT.0) IX = (-N+1)*INCX + 1 + IF (INCY.LT.0) IY = (-N+1)*INCY + 1 + DO I = 1,N + ZTEMP = ZTEMP + ZX(IX)*ZY(IY) + IX = IX + INCX + IY = IY + INCY + END DO + END IF ZDOTU = ZTEMP RETURN END