NaN
Returns the value for NaN.
Function Return Value
Returns, as a scalar, a value corresponding to the IEEE 754 Standard format of floating point (ANSI/IEEE 1985) for NaN. For other floating point formats a special pattern is returned that tests .true. using the function isNaN. (Output)
Required Argument
X — Scalar value of the same type and precision as the desired result, NaN. This input value is used only to match the type of output. (Input)
FORTRAN 90 Interface
NaN (A)
Description
NaN returns, as a scalar, a value corresponding to the IEEE 754 Standard format of floating point (ANSI/IEEE 1985) for NaN.
The bit pattern used for single precision is transfer (not(0),1). For double precision, the bit pattern for single precision is replicated by assigning the temporary integer array i(1:2) = not(0), and then using the double-precision bit pattern transfer(i,x) for the output value.
Example
Arrays are assigned all NaN values, using single and double-precision formats. These are tested using the logical function routine isNaN.
 
use isnan_int
implicit none
! This is the equivalent of Example 1 for NaN.
integer, parameter :: n=3
real(kind(1e0)) A(n,n); real(kind(1d0)) B(n,n)
real(kind(1e0)), external :: s_NaN
real(kind(1d0)), external :: d_NaN
! Assign NaNs to both A and B:
A = s_Nan(1e0); B = d_Nan(1d0)
! Check that NaNs are noted in both A and B:
if (isNan(A) .and. isNan(B)) then
 
write (*,*) 'Example 1 for NaN is correct.'
end if
end