1      COMPLEX FUNCTION CDOTC(N,CX,INCX,CY,INCY)
2c Copyright (c) 1996 California Institute of Technology, Pasadena, CA.
3c ALL RIGHTS RESERVED.
4c Based on Government Sponsored Research NAS7-03001.
5C>> 1994-11-11 CDOTC  Krogh   Declared all vars.
6C>> 1985-08-02 CDOTC  Lawson  Initial code.
7C
8C     RETURNS THE DOT PRODUCT FOR COMPLEX CX AND CY, USES CONJUGATE(CX)
9C     CDOTC = SUM FOR I = 0 TO N-1 OF CONJ(CX(LX+I*INCX))*CY(LY+I*INCY),
10C     WHERE LX = 1 IF INCX .GE. 0, ELSE LX = (-INCX)*N, AND LY IS
11C     DEFINED IN A SIMILAR WAY USING INCY.
12C
13      INTEGER N, INCX, INCY, KX, KY, I, NS
14      COMPLEX CX(*),CY(*)
15C
16      CDOTC = (0.,0.)
17      IF(N .LE. 0)RETURN
18      IF(INCX.EQ.INCY.AND.INCX.GT.0) GO TO 20
19      KX = 1
20      KY = 1
21      IF(INCX.LT.0) KX = 1+(1-N)*INCX
22      IF(INCY.LT.0) KY = 1+(1-N)*INCY
23          DO 10 I = 1,N
24          CDOTC = CDOTC + CONJG(CX(KX))*CY(KY)
25          KX = KX + INCX
26          KY = KY + INCY
27   10     CONTINUE
28      RETURN
29   20 CONTINUE
30      NS = N*INCX
31          DO 30 I=1,NS,INCX
32          CDOTC = CONJG(CX(I))*CY(I) + CDOTC
33   30     CONTINUE
34      RETURN
35      END
36