-qstrictieeemod

Category

Floating-point and integer control

Purpose

Specifies whether the compiler will adhere to the Fortran 2003 IEEE arithmetic rules for the ieee_arithmetic and ieee_exceptions intrinsic modules.

Syntax

Read syntax diagramSkip visual syntax diagram
        .-strictieeemod---.   
>>- -q--+-nostrictieeemod-+------------------------------------><

@PROCESS:

@PROCESS STRICTIEEEMOD | NOSTRICTIEEEMOD

Defaults

-qstrictieeemod

Usage

When you specify -qstrictieeemod, the compiler adheres to the following rules:
  • If there is an exception flag set on entry into a procedure that uses the IEEE intrinsic modules, the flag is set on exit. If a flag is clear on entry into a procedure that uses the IEEE intrinsic modules, the flag can be set on exit.
  • If there is an exception flag set on entry into a procedure that uses the IEEE intrinsic modules, the flag clears on entry into the procedure and resets when returning from the procedure.
  • When returning from a procedure that uses the IEEE intrinsic modules, the settings for halting mode and rounding mode return to the values they had at procedure entry.
  • Calls to procedures that do not use the ieee_arithmetic or ieee_exceptions intrinsic modules from procedures that do use these modules, will not change the floating-point status except by setting exception flags.

Since the above rules can impact performance, specifying –qnostrictieeemod will relax the rules on saving and restoring floating-point status. This prevents any associated impact on performance.