Annotation of rpl/lapack/blas/izamax.f, revision 1.1
1.1 ! bertrand 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 SMAX
! 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) GO TO 20
! 36: *
! 37: * code for increment not equal to 1
! 38: *
! 39: IX = 1
! 40: SMAX = DCABS1(ZX(1))
! 41: IX = IX + INCX
! 42: DO 10 I = 2,N
! 43: IF (DCABS1(ZX(IX)).LE.SMAX) GO TO 5
! 44: IZAMAX = I
! 45: SMAX = DCABS1(ZX(IX))
! 46: 5 IX = IX + INCX
! 47: 10 CONTINUE
! 48: RETURN
! 49: *
! 50: * code for increment equal to 1
! 51: *
! 52: 20 SMAX = DCABS1(ZX(1))
! 53: DO 30 I = 2,N
! 54: IF (DCABS1(ZX(I)).LE.SMAX) GO TO 30
! 55: IZAMAX = I
! 56: SMAX = DCABS1(ZX(I))
! 57: 30 CONTINUE
! 58: RETURN
! 59: END
CVSweb interface <joel.bertrand@systella.fr>