double precision function dnxtaft(x,y) ************************************************************************ * Return the next floating-point number after x in the * direction of y. If y = x, then dnxtaft(x,x) returns * x + epsilon. * (13-Nov-1990) ************************************************************************ double precision x,y,temp,eps if (x .gt. y) then eps = x 10 temp = x - eps/2.0d+00 if (temp .eq. x) goto 20 eps = eps/2.0d+00 goto 10 20 dnxtaft = x - eps else eps = x 30 temp = x + eps/2.0d+00 if (temp .eq. x) goto 40 eps = eps/2.0d+00 goto 30 40 dnxtaft = x + eps endif end