1       COMPLEX FUNCTION CDOTC(N,CX,INCX,CY,INCY)
 2 *     .. Scalar Arguments ..
 3       INTEGER INCX,INCY,N
 4 *     ..
 5 *     .. Array Arguments ..
 6       COMPLEX CX(*),CY(*)
 7 *     ..
 8 *
 9 *  Purpose
10 *  =======
11 *
12 *     forms the dot product of two vectors, conjugating the first
13 *     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       COMPLEX CTEMP
25       INTEGER I,IX,IY
26 *     ..
27 *     .. Intrinsic Functions ..
28       INTRINSIC CONJG
29 *     ..
30       CTEMP = (0.0,0.0)
31       CDOTC = (0.0,0.0)
32       IF (N.LE.0RETURN
33       IF (INCX.EQ.1 .AND. INCY.EQ.1THEN
34 *
35 *        code for both increments equal to 1
36 *
37          DO I = 1,N
38             CTEMP = CTEMP + CONJG(CX(I))*CY(I)
39          END DO
40       ELSE
41 *
42 *        code for unequal increments or equal increments
43 *          not equal to 1
44 *
45          IX = 1
46          IY = 1
47          IF (INCX.LT.0) IX = (-N+1)*INCX + 1
48          IF (INCY.LT.0) IY = (-N+1)*INCY + 1
49          DO I = 1,N
50             CTEMP = CTEMP + CONJG(CX(IX))*CY(IY)
51             IX = IX + INCX
52             IY = IY + INCY
53          END DO
54       END IF
55       CDOTC = CTEMP
56       RETURN
57       END