home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / linpack / isamax.for < prev    next >
Text File  |  1984-01-01  |  825b  |  38 lines

  1.       INTEGER FUNCTION ISAMAX(N,SX,INCX)
  2. C
  3. C     FINDS THE INDEX OF ELEMENT HAVING MAX. ABSOLUTE VALUE.
  4. C     JACK DONGARRA, LINPACK, 3/11/78.
  5. C
  6.       REAL SX(1),SMAX
  7.       INTEGER I,INCX,IX,N
  8. C
  9.       ISAMAX = 0
  10.       IF( N .LT. 1 ) RETURN
  11.       ISAMAX = 1
  12.       IF(N.EQ.1)RETURN
  13.       IF(INCX.EQ.1)GO TO 20
  14. C
  15. C        CODE FOR INCREMENT NOT EQUAL TO 1
  16. C
  17.       IX = 1
  18.       SMAX = ABS(SX(1))
  19.       IX = IX + INCX
  20.       DO 10 I = 2,N
  21.          IF(ABS(SX(IX)).LE.SMAX) GO TO 5
  22.          ISAMAX = I
  23.          SMAX = ABS(SX(IX))
  24.     5    IX = IX + INCX
  25.    10 CONTINUE
  26.       RETURN
  27. C
  28. C        CODE FOR INCREMENT EQUAL TO 1
  29. C
  30.    20 SMAX = ABS(SX(1))
  31.       DO 30 I = 2,N
  32.          IF(ABS(SX(I)).LE.SMAX) GO TO 30
  33.          ISAMAX = I
  34.          SMAX = ABS(SX(I))
  35.    30 CONTINUE
  36.       RETURN
  37.       END
  38.