1       SUBROUTINE CAXPY(N,CA,CX,INCX,CY,INCY)
 2 *     .. Scalar Arguments ..
 3       COMPLEX CA
 4       INTEGER INCX,INCY,N
 5 *     ..
 6 *     .. Array Arguments ..
 7       COMPLEX CX(*),CY(*)
 8 *     ..
 9 *
10 *  Purpose
11 *  =======
12 *
13 *     CAXPY constant times a vector plus a vector.
14 *
15 *  Further Details
16 *  ===============
17 *
18 *     jack dongarra, linpack, 3/11/78.
19 *     modified 12/3/93, array(1) declarations changed to array(*)
20 *
21 *  =====================================================================
22 *
23 *     .. Local Scalars ..
24       INTEGER I,IX,IY
25 *     ..
26 *     .. External Functions ..
27       REAL SCABS1
28       EXTERNAL SCABS1
29 *     ..
30       IF (N.LE.0RETURN
31       IF (SCABS1(CA).EQ.0.0E+0RETURN
32       IF (INCX.EQ.1 .AND. INCY.EQ.1THEN
33 *
34 *        code for both increments equal to 1
35 *
36          DO I = 1,N
37             CY(I) = CY(I) + CA*CX(I)
38          END DO
39       ELSE
40 *
41 *        code for unequal increments or equal increments
42 *          not equal to 1
43 *
44          IX = 1
45          IY = 1
46          IF (INCX.LT.0) IX = (-N+1)*INCX + 1
47          IF (INCY.LT.0) IY = (-N+1)*INCY + 1
48          DO I = 1,N
49             CY(IY) = CY(IY) + CA*CX(IX)
50             IX = IX + INCX
51             IY = IY + INCY
52          END DO
53       END IF
54 *
55       RETURN
56       END