is_close_sp Function

private elemental function is_close_sp(a, b, rtol, atol) result(flag)

Approximate equality for real(sp) values.

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: a
real(kind=sp), intent(in) :: b
real(kind=sp), intent(in), optional :: rtol
real(kind=sp), intent(in), optional :: atol

Return Value logical


Called by

proc~~is_close_sp~~CalledByGraph proc~is_close_sp is_close_sp interface~is_close is_close interface~is_close->proc~is_close_sp

Variables

Type Visibility Attributes Name Initial
real(kind=sp), private :: abst
real(kind=sp), private :: rel

Source Code

   elemental function is_close_sp(a, b, rtol, atol) result(flag)
      !! Approximate equality for real(sp) values.
      real(sp), intent(in) :: a, b
      real(sp), intent(in), optional :: rtol, atol
      logical :: flag
      real(sp) :: rel, abst

      rel = sqrt(epsilon(a))
      abst = 0.0_sp
      if (present(rtol)) rel = rtol
      if (present(atol)) abst = atol

      flag = abs(a - b) <= max(rel*max(abs(a), abs(b)), abst)
   end function is_close_sp