VMS Help  —  FORTRAN  /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.
Close Help