Copyright Digital Equipment Corp. All rights reserved.

/IEEE_MODE=option D=/IEEE_MODE=DENORM (I64)

                           D=/IEEE_MODE=FAST (Alpha)

 Specifies the arithmetic exception handling used for floating-point
 calculations, such as for exceptional values.  It also controls the
 precision of exception reporting (like /SYNCHRONOUS_EXCEPTIONS
 (Alpha only)).

 Exceptional values are associated with IEEE arithmetic and include
 Infinity (+ and -) values, Not-A-Number (NaN) values, invalid data
 values, and denormalized numbers. (See the HP Fortran for OpenVMS
 User Manual.)

 Use the /IEEE_MODE qualifier to control:

  o  Whether exceptional values cause program termination or
     continuation

  o  Whether exception reporting is precise

  o  Whether underflowed (denormalized) values are set to zero

 This qualifier only applies to arithmetic calculations when:

  o  You omit the /MATH_LIBRARY=FAST (Alpha only) qualifier (or
     /FAST) qualifier.  Using /MATH_LIBRARY=FAST provides limited
     handling of exceptional values of arguments to and results from
     VSI Fortran intrinsic functions.

  o  You specify the /FLOAT=IEEE_FLOAT qualifier to request IEEE
     S_floating (REAL(KIND=4)) and T_floating (REAL(KIND=8)) data.

 If you specify /FLOAT=G_FLOAT (the default on Alpha) or /FLOAT=D_FLOAT,
 only the default (/IEEE_MODE=FAST) can be used. Because X_floating data
 (REAL(KIND=16)) has no denormalized range, DENORM_RESULTS is
 equivalent to UNDERFLOW_TO_ZERO for X_floating data.

                               NOTE

           You should choose the value for the /IEEE_MODE
           qualifier based on the floating-point semantics
           your application requires, not on possible
           performance benefits.

 FAST
   Specifies that the program should stop if any exceptional values
   are detected.

   When the program encounters or calculates any exceptional values
   (Infinity (+ or -), NaN, or invalid data) in a calculation, the
   program stops and displays a message.  This allows the fastest
   run-time performance.

   Denormalized values calculated in an arithmetic expression are
   set to zero.  Denormalized values encountered as variables in an
   arithmetic expression (including constant values) are treated as
   invalid data (an exceptional value), which stops the program.

   Exceptions are not reported until one or more instructions after
   the instruction that caused the exception.  To have exceptions
   reported at the instruction that caused the exception when using
   /IEEE_MODE=FAST, also specify /SYNCHRONOUS_EXCEPTIONS (Alpha
   only). 

   /IEEE_MODE=FAST is the default on Alpha systems.

 UNDERFLOW_TO_ZERO
   Specifies that the program should continue if any exceptional
   values are detected and that calculated denormalized (underflow)
   values should be set to zero.

   When the program encounters an exceptional value (Infinity (+ or
   -), NaN, or invalid data) in an arithmetic expression, the
   program continues.  It also continues when the result of a
   calculation is an exceptional value.

   Calculated denormalized values are set to zero.  This prevents
   the denormalized number from being used in a subsequent
   calculation (propagated).

   Exceptions are reported at the instruction that caused the
   exception (same as /SYNCHRONOUS_EXCEPTIONS).  This allows precise
   run-time reporting of exceptions for those programs that generate
   exceptional values, but slows program run-time performance.

   Using UNDERFLOW_TO_ZERO allows programs to handle exceptional
   values, but does not propagate numbers in the denormalized range.

   To request run-time messages for arithmetic exceptions, specify
   the /CHECK=FP_EXCEPTIONS qualifier.

 DENORM_RESULTS
   Specifies that the program should continue if any exceptional
   values are detected and that calculated denormalized values
   should be left as is (allows underflow).

   When the program encounters an exceptional value (Infinity (+ or
   -), NaN, or invalid data) in an arithmetic expression, the
   program continues.  It also continues when the result of a
   calculation is an exceptional value.

   Calculated denormalized values are left as denormalized values.
   When a denormalized number is used in a subsequent arithmetic
   expression, it requires extra software-assisted handling and
   slows performance.  A program that generates denormalized numbers
   will be slower than the same program compiled using
   /IEEE_MODE=UNDERFLOW_TO_ZERO.

   Exceptions are reported at the instruction that caused the
   exception (same as /SYNCHRONOUS_EXCEPTIONS).  This allows precise
   run-time reporting of exceptions for those programs that generate
   exceptional values, but slows program run-time performance.

   Using DENORM_RESULTS allows programs to handle exceptional
   values, including allowing underflow of denormalized numbers.

   To request run-time messages for arithmetic exceptions, specify
   the /CHECK=FP_EXCEPTIONS qualifier.  To request run-time messages
   for only those arithmetic exceptions related to denormalized
   numbers, specify the /CHECK=UNDERFLOW qualifier.

   /IEEE_MODE=DENORM_RESULTS is the default on I64 systems.