0.6.2-dev0
FORCES
FORtran lib for Comp. Env. Sys.
Loading...
Searching...
No Matches
mo_utils::is_close Interface Reference

Comparison of real values. More...

Public Member Functions

logical elemental pure function is_close_sp (a, b, rtol, atol, equal_nan)
 
logical elemental pure function is_close_dp (a, b, rtol, atol, equal_nan)
 

Detailed Description

Comparison of real values.

Compares two reals if they are numerically equal or not, with option for precision, i.e. equal:

\[ |a-b| < \mathrm{max} \{ \epsilon_\mathrm{rel} \mathrm{max} \{ |a|,|b| \}, \epsilon_\mathrm{abs} \} \]

Example

Returns ´.false.´ in 5th element of isequal

vec1 = (/ 1., 2., 3., -999., 5., 6. /)
vec2 = (/ 1., 1., 3., -999., 10., 6. /)
isequal = is_close(vec1, vec2)

Returns ´.true.´ in all elements of isequal

vec1 = (/ 1., 2., 3., -999., 5., 6. /)
vec2 = (/ 1., 1., 3., -999., 10., 6. /)
isequal = is_close(vec1, vec2, atol = 5.0_dp)

Returns ´.false.´ in 6th element of isequal

vec1 = (/ 1., 2., 3., -999., 5., nan /)
vec2 = (/ 1., 1., 3., -999., 10., nan /)
isequal = is_close(vec1, vec2, atol = 5.0_dp)

Returns ´.true.´ in all elements of isequal

vec1 = (/ 1., 2., 3., -999., 5., nan /)
vec2 = (/ 1., 1., 3., -999., 10., nan /)
isequal = is_close(vec1, vec2, equal_nan = .true.)
Parameters
[in]real(sp/dp) :: aFirst number to compare
[in]real(sp/dp) :: bSecond number to compare
[in]real(sp/dp), optional :: rtolRelative tolerance, will scale with a (DEFAULT : 1.0E-5).
[in]real(sp/dp), optional :: atolAbsolute tolerance (DEFAULT : 1.0E-8).
[in]logical, optional :: equal_nanIf \(.true.\), NaN values will between a and b are considered equal.
Return values
real(sp/dp) :: is_close\( a == b \) logically true or false
Authors
Arya Prasetya
Date
Jan 2022

Definition at line 225 of file mo_utils.F90.

Member Function/Subroutine Documentation

◆ is_close_dp()

logical elemental pure function mo_utils::is_close::is_close_dp ( real(dp), intent(in)  a,
real(dp), intent(in)  b,
real(dp), intent(in), optional  rtol,
real(dp), intent(in), optional  atol,
logical, intent(in), optional  equal_nan 
)

Definition at line 936 of file mo_utils.F90.

◆ is_close_sp()

logical elemental pure function mo_utils::is_close::is_close_sp ( real(sp), intent(in)  a,
real(sp), intent(in)  b,
real(sp), intent(in), optional  rtol,
real(sp), intent(in), optional  atol,
logical, intent(in), optional  equal_nan 
)

Definition at line 966 of file mo_utils.F90.


The documentation for this interface was generated from the following file: