nearly_equal Function

public pure function nearly_equal(variable1, variable2, tol)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: variable1
real(kind=dp), intent(in) :: variable2
real(kind=dp), intent(in), optional :: tol

Return Value logical


Contents

Source Code


Source Code

  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