precision Module

Precision and NaN handling module

Defines precision parameters and NaN (Not-a-Number) constants for the library



Variables

Type Visibility Attributes Name Initial
integer(kind=ik), public, parameter :: NaN_ik = -huge(0_ik)-1_ik
real(kind=rk), public :: NaN_rk
integer, public, parameter :: ik = i32
logical, public, save :: nan_initialized = .false.
integer, public, parameter :: rk = r64

Functions

public elemental function is_nan_integer(x) result(is_nan)

Check if an integer value is NaN (sentinel)

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=ik), intent(in) :: x

Return Value logical

public elemental function is_nan_real(x) result(is_nan)

Check if a real value is NaN

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in) :: x

Return Value logical


Subroutines

public subroutine init_nan()

Initialize the NaN_rk constant

Read more…

Arguments

None