Go to the documentation of this file.00001 INTEGER FUNCTION IDAMAX(N,DX,INCX)
00002
00003 INTEGER INCX,N
00004
00005
00006 DOUBLE PRECISION DX(*)
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 DOUBLE PRECISION DMAX
00025 INTEGER I,IX
00026
00027
00028 INTRINSIC DABS
00029
00030 IDAMAX = 0
00031 IF (N.LT.1 .OR. INCX.LE.0) RETURN
00032 IDAMAX = 1
00033 IF (N.EQ.1) RETURN
00034 IF (INCX.EQ.1) THEN
00035
00036
00037
00038 DMAX = DABS(DX(1))
00039 DO I = 2,N
00040 IF (DABS(DX(I)).GT.DMAX) THEN
00041 IDAMAX = I
00042 DMAX = DABS(DX(I))
00043 END IF
00044 END DO
00045 ELSE
00046
00047
00048
00049 IX = 1
00050 DMAX = DABS(DX(1))
00051 IX = IX + INCX
00052 DO I = 2,N
00053 IF (DABS(DX(IX)).GT.DMAX) THEN
00054 IDAMAX = I
00055 DMAX = DABS(DX(IX))
00056 END IF
00057 IX = IX + INCX
00058 END DO
00059 END IF
00060 RETURN
00061 END