This logical function checks if the argument X is NaN (not a number).
IFNAN - Logical function value. True is returned if the input argument is a NAN. Otherwise, False is returned. (Output)
X – Argument for which the test for NAN is desired. (Input)
Generic: IFNAN (X)
Specific: The specific interface names are S_IFNAN and D_IFNAN.
Single: IFNAN (X)
Double: The double precision name is DIFNAN.
The logical function IFNAN checks if the single or double precision argument X is NAN (not a number). The function IFNAN is provided to facilitate the transfer of programs across computer systems. This is because the check for NaN can be tricky and not portable across computer systems that do not adhere to the IEEE standard. For example, on computers that support the IEEE standard for binary arithmetic (see IEEE 1985), NaN is specified as a bit format not equal to itself. Thus, the check is performed as
IFNAN = X .NE. X
On other computers that do not use IEEE floating-point format, the check can be performed as:
IFNAN = X .EQ. AMACH(6)
The function IFNAN is equivalent to the specification of the function Isnan listed in the Appendix, (IEEE 1985). The above example illustrates the use of IFNAN. If X is NaN, a message is printed instead of X. (Routine UMACH, which is described in the following section, is used to retrieve the output unit number for printing the message.)
USE IFNAN_INT
USE AMACH_INT
USE UMACH_INT
IMPLICIT NONE
INTEGER NOUT
REAL X
!
CALL UMACH (2, NOUT)
!
X = AMACH(6)
IF (IFNAN(X)) THEN
WRITE (NOUT,*) ' X is NaN (not a number).'
ELSE
WRITE (NOUT,*) ' X = ', X
END IF
!
END
X is NaN (not a number).
PHONE: 713.784.3131 FAX:713.781.9260 |