Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | variable1 | |||
real(kind=dp), | intent(in) | :: | variable2 | |||
real(kind=dp), | intent(in), | optional | :: | tol |
pure function nearly_equal(variable1, variable2,tol)
real(dp), intent(in) ::variable1, variable2
real(dp), intent(in), optional :: tol
real(dp) :: tolerance
logical::nearly_equal
if(present(tol))then
tolerance = tol
else
tolerance = 1.d-5
end if
if(abs( (variable1 - variable2)/(variable1+variable2)) < tolerance) then
nearly_equal = .TRUE.
else
nearly_equal = .FALSE.
end if
end function nearly_equal