SUBROUTINE Bisect(r, v, rleft, vleft, rright, vright, delta) USE Numeric_Kinds_Module IMPLICIT NONE !============================================================================== ! This subroutine determines if the bounds need to be shifted higher or ! lower in order to find the exact point at which the potential is equal ! to vasy !============================================================================== REAL(dp) :: r, v, rleft, vleft, rright, vright, delta IF(vleft*v.lt.0.d0)THEN rright=r vright=v ELSEIF(vleft*v.gt.0.d0)THEN rleft=r vleft=v ELSE rleft=r vleft=v rright=r vright=v ENDIF r=(rleft+rright)/2.d0 delta=ABS(rright-rleft)/r RETURN END SUBROUTINE Bisect