1 SUBROUTINE ZSWAP(N,ZX,INCX,ZY,INCY)
2 * .. Scalar Arguments ..
3 INTEGER INCX,INCY,N
4 * ..
5 * .. Array Arguments ..
6 DOUBLE COMPLEX ZX(*),ZY(*)
7 * ..
8 *
9 * Purpose
10 * =======
11 *
12 * ZSWAP interchanges two vectors.
13 *
14 * Further Details
15 * ===============
16 *
17 * jack dongarra, 3/11/78.
18 * modified 12/3/93, array(1) declarations changed to array(*)
19 *
20 * =====================================================================
21 *
22 * .. Local Scalars ..
23 DOUBLE COMPLEX ZTEMP
24 INTEGER I,IX,IY
25 * ..
26 IF (N.LE.0) RETURN
27 IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
28 *
29 * code for both increments equal to 1
30 DO I = 1,N
31 ZTEMP = ZX(I)
32 ZX(I) = ZY(I)
33 ZY(I) = ZTEMP
34 END DO
35 ELSE
36 *
37 * code for unequal increments or equal increments not equal
38 * to 1
39 *
40 IX = 1
41 IY = 1
42 IF (INCX.LT.0) IX = (-N+1)*INCX + 1
43 IF (INCY.LT.0) IY = (-N+1)*INCY + 1
44 DO I = 1,N
45 ZTEMP = ZX(IX)
46 ZX(IX) = ZY(IY)
47 ZY(IY) = ZTEMP
48 IX = IX + INCX
49 IY = IY + INCY
50 END DO
51 END IF
52 RETURN
53 END
2 * .. Scalar Arguments ..
3 INTEGER INCX,INCY,N
4 * ..
5 * .. Array Arguments ..
6 DOUBLE COMPLEX ZX(*),ZY(*)
7 * ..
8 *
9 * Purpose
10 * =======
11 *
12 * ZSWAP interchanges two vectors.
13 *
14 * Further Details
15 * ===============
16 *
17 * jack dongarra, 3/11/78.
18 * modified 12/3/93, array(1) declarations changed to array(*)
19 *
20 * =====================================================================
21 *
22 * .. Local Scalars ..
23 DOUBLE COMPLEX ZTEMP
24 INTEGER I,IX,IY
25 * ..
26 IF (N.LE.0) RETURN
27 IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
28 *
29 * code for both increments equal to 1
30 DO I = 1,N
31 ZTEMP = ZX(I)
32 ZX(I) = ZY(I)
33 ZY(I) = ZTEMP
34 END DO
35 ELSE
36 *
37 * code for unequal increments or equal increments not equal
38 * to 1
39 *
40 IX = 1
41 IY = 1
42 IF (INCX.LT.0) IX = (-N+1)*INCX + 1
43 IF (INCY.LT.0) IY = (-N+1)*INCY + 1
44 DO I = 1,N
45 ZTEMP = ZX(IX)
46 ZX(IX) = ZY(IY)
47 ZY(IY) = ZTEMP
48 IX = IX + INCX
49 IY = IY + INCY
50 END DO
51 END IF
52 RETURN
53 END