2
3
4
5
6
7
8
9 INTEGER INCX, INCY, N
10 COMPLEX DOTC
11
12
13 COMPLEX X( * ), Y( * )
14
15
16
17
18
19
20
21
22
23
24
25 COMPLEX CTEMP
26 INTEGER I,IX,IY
27
28
29 INTRINSIC conjg
30
31
32
33 ctemp = (0.0d0,0.0d0)
34 dotc = (0.0d0,0.0d0)
35 IF (n.LE.0) RETURN
36 IF (incx.EQ.1 .AND. incy.EQ.1) THEN
37
38
39
40 DO i = 1,n
41 ctemp = ctemp + conjg(x(i))*y(i)
42 END DO
43 ELSE
44
45
46
47
48 ix = 1
49 iy = 1
50 IF (incx.LT.0) ix = (-n+1)*incx + 1
51 IF (incy.LT.0) iy = (-n+1)*incy + 1
52 DO i = 1,n
53 ctemp = ctemp + conjg(x(ix))*y(iy)
54 ix = ix + incx
55 iy = iy + incy
56 END DO
57 END IF
58 dotc = ctemp
59
60 RETURN
61
62
63