The is equal interface is used to circumvent the fact that Fortran, rightfully, complains about
comparing two reals without involving a tolerance, i.e. if(a == b) since there is no guarantee that
the two reals are exactly equal due to floating point precision issues. The functions are defined as elemental
Usage: if (is_equal(a, b)) then
where a and b are real numbers, and the function will return true if they are
equal within the tolerance defined in pic_global_definitions.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Module Procedures
private elemental function is_equal_sp(a, b) result(res)
Arguments
Type
Intent
Optional
Attributes
Name
real(kind=sp),
intent(in)
::
a
real(kind=sp),
intent(in)
::
b
Return Value
logical
private elemental function is_equal_dp(a, b) result(res)