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.