Lahey/Fujitsu Fortran


Arithmetic Precision

Compile only. Default: -nap

Specify -ap to guarantee the consistency of REAL and COMPLEX calculations, regardless of optimization level; user variables are not assigned to registers. Consider the following example:


X = S - T 2 Y = X - U ... 3 Y = X - U

By default (-nap), during compilation of statement 2, the compiler recognizes the value X is already in a register and does not cause the value to be reloaded from memory. At statement 3, the value X may or may not already be in a register, and so the value may or may not be reloaded accordingly. Because the precision of the datum is greater in a register than in mem-ory, a difference in precision at statements 2 and 3 may occur.

Specify -ap to choose the memory reference for non INTEGER operands; that is, registers are reloaded. -ap must be specified when testing for the equality of randomly-generated values.

The default, -nap, allows the compiler to take advantage of the current values in registers, with possibly greater accuracy in low-order bits.

Specifying -ap will usually generate slower executables.

Visual Studio Property

The -ap option corresponds to the Fortran|Precision|Preserve Arithmetic Precision property. This property can be set on the property page for the project or source file.

See Also

Setting Build Options