home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / libs / matlab.lzh / MATLAB / MATLAB.LZH / Source / MatLab / ROUND.FOR < prev    next >
Encoding:
Text File  |  1991-04-13  |  623 b   |  40 lines

  1.       DOUBLE PRECISION FUNCTION ROUND (X)
  2.       IMPLICIT NONE
  3. C
  4.       DOUBLE PRECISION X
  5. C
  6.       DOUBLE PRECISION Y, Z, E, H
  7. C
  8.       DATA H / 1.0D9 /
  9. C
  10. C
  11.       Z = DABS (X)
  12.       Y = Z+1.0D0
  13.       IF (Y.EQ.Z) GO TO 40
  14.       Y = 0.0D0
  15.       E = H
  16. 10    CONTINUE
  17.       IF (E.GE.Z) GO TO 20
  18.       E = 2.0D0*E
  19.       GO TO 10
  20. C
  21. 20    CONTINUE
  22.       IF (E.LE.H) GO TO 30
  23.       IF (E.LE.Z) Y = Y+E
  24.       IF (E.LE.Z) Z = Z-E
  25.       E = E/2.0D0
  26.       GO TO 20
  27. C
  28. 30    CONTINUE
  29.       Z = IDINT (Z+0.5D0)
  30.       Y = Y+Z
  31.       IF (X.LT.0.0D0) Y = -Y
  32.       ROUND = Y
  33.       RETURN
  34. C
  35. 40    CONTINUE
  36.       ROUND = X
  37. C
  38.       RETURN
  39.       END
  40.