1 SUBROUTINE ZCOPY(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 * ZCOPY copies a vector, x, to a vector, y.
13 *
14 * Further Details
15 * ===============
16 *
17 * jack dongarra, linpack, 4/11/78.
18 * modified 12/3/93, array(1) declarations changed to array(*)
19 *
20 * =====================================================================
21 *
22 * .. Local Scalars ..
23 INTEGER I,IX,IY
24 * ..
25 IF (N.LE.0) RETURN
26 IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
27 *
28 * code for both increments equal to 1
29 *
30 DO I = 1,N
31 ZY(I) = ZX(I)
32 END DO
33 ELSE
34 *
35 * code for unequal increments or equal increments
36 * not equal to 1
37 *
38 IX = 1
39 IY = 1
40 IF (INCX.LT.0) IX = (-N+1)*INCX + 1
41 IF (INCY.LT.0) IY = (-N+1)*INCY + 1
42 DO I = 1,N
43 ZY(IY) = ZX(IX)
44 IX = IX + INCX
45 IY = IY + INCY
46 END DO
47 END IF
48 RETURN
49 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 * ZCOPY copies a vector, x, to a vector, y.
13 *
14 * Further Details
15 * ===============
16 *
17 * jack dongarra, linpack, 4/11/78.
18 * modified 12/3/93, array(1) declarations changed to array(*)
19 *
20 * =====================================================================
21 *
22 * .. Local Scalars ..
23 INTEGER I,IX,IY
24 * ..
25 IF (N.LE.0) RETURN
26 IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
27 *
28 * code for both increments equal to 1
29 *
30 DO I = 1,N
31 ZY(I) = ZX(I)
32 END DO
33 ELSE
34 *
35 * code for unequal increments or equal increments
36 * not equal to 1
37 *
38 IX = 1
39 IY = 1
40 IF (INCX.LT.0) IX = (-N+1)*INCX + 1
41 IF (INCY.LT.0) IY = (-N+1)*INCY + 1
42 DO I = 1,N
43 ZY(IY) = ZX(IX)
44 IX = IX + INCX
45 IY = IY + INCY
46 END DO
47 END IF
48 RETURN
49 END