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.0) RETURN
33 IZAMAX = 1
34 IF (N.EQ.1) RETURN
35 IF (INCX.EQ.1) THEN
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
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.0) RETURN
33 IZAMAX = 1
34 IF (N.EQ.1) RETURN
35 IF (INCX.EQ.1) THEN
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