summaryrefslogtreecommitdiff
path: root/BLAS/SRC/cswap.f
diff options
context:
space:
mode:
Diffstat (limited to 'BLAS/SRC/cswap.f')
-rw-r--r--BLAS/SRC/cswap.f41
1 files changed, 21 insertions, 20 deletions
diff --git a/BLAS/SRC/cswap.f b/BLAS/SRC/cswap.f
index 40dd71f1..1e267179 100644
--- a/BLAS/SRC/cswap.f
+++ b/BLAS/SRC/cswap.f
@@ -24,29 +24,30 @@
INTEGER I,IX,IY
* ..
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 both increments equal to 1
+ DO I = 1,N
+ CTEMP = CX(I)
+ CX(I) = CY(I)
+ CY(I) = CTEMP
+ END DO
+ ELSE
*
* code for unequal increments or equal increments not 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
- CTEMP = CX(IX)
- CX(IX) = CY(IY)
- CY(IY) = CTEMP
- IX = IX + INCX
- IY = IY + INCY
- 10 CONTINUE
- RETURN
-*
-* code for both increments equal to 1
- 20 DO 30 I = 1,N
- CTEMP = CX(I)
- CX(I) = CY(I)
- CY(I) = CTEMP
- 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
+ CTEMP = CX(IX)
+ CX(IX) = CY(IY)
+ CY(IY) = CTEMP
+ IX = IX + INCX
+ IY = IY + INCY
+ END DO
+ END IF
RETURN
END