1       INTEGER FUNCTION IZAMAX(N,ZX,INCX)
 2 *     .. Scalar Arguments ..
 3       INTEGER INCX,N
 4 *     ..
 5 *     .. Array Arguments ..
 6       DOUBLE COMPLEX ZX(*)
 7 *     ..
 8 *
 9 *  Purpose
10 *  =======
11 *
12 *     IZAMAX finds the index of element having max. absolute value.
13 *
14 *  Further Details
15 *  ===============
16 *
17 *     jack dongarra, 1/15/85.
18 *     modified 3/93 to return if incx .le. 0.
19 *     modified 12/3/93, array(1) declarations changed to array(*)
20 *
21 *  =====================================================================
22 *
23 *     .. Local Scalars ..
24       DOUBLE PRECISION DMAX
25       INTEGER I,IX
26 *     ..
27 *     .. External Functions ..
28       DOUBLE PRECISION DCABS1
29       EXTERNAL DCABS1
30 *     ..
31       IZAMAX = 0
32       IF (N.LT.1 .OR. INCX.LE.0RETURN
33       IZAMAX = 1
34       IF (N.EQ.1RETURN
35       IF (INCX.EQ.1THEN
36 *
37 *        code for increment equal to 1
38 *
39          DMAX = DCABS1(ZX(1))
40          DO I = 2,N
41             IF (DCABS1(ZX(I)).GT.DMAX) THEN
42                IZAMAX = I
43                DMAX = DCABS1(ZX(I))
44             END IF
45          END DO
46       ELSE
47 *
48 *        code for increment not equal to 1
49 *
50          IX = 1
51          DMAX = DCABS1(ZX(1))
52          IX = IX + INCX
53          DO I = 2,N
54             IF (DCABS1(ZX(IX)).GT.DMAX) THEN
55                IZAMAX = I
56                DMAX = DCABS1(ZX(IX))
57             END IF
58             IX = IX + INCX
59          END DO
60       END IF
61       RETURN
62       END