HP Fortran Programmer's Guide (March 2010)

Compiling and linking
Compiling with the f90 command
Chapter 270
Table 2-9 identifies the different actions taken by the optimizer, according to
whether you specify +Ofltacc, +Onofltacc, or neither option. In all cases,
the table assumes that you are compiling at optimization level 2 (+O2) or
higher.
+O[no]fltacc=[strict|default|limited|relaxed]
Control the level of floating point optimizations that the compiler may
perform. The defined values for optlevel are:
strict—disallow any floating point optimization that can result in
numerical differences. This is the same as +Ofltacc.
default—allow contractions, such as fused multiply-add (FMA), but
disallows any other floating point optimization that can result in numerical
differences.
limited—like default, but also allows floating point optimizations which
may affect the generation and propogation of infinities, NaNs, and the sign
of zero. Also implies +Ocxlimitedrange.
relaxed—in addition to the optimizations allowed by limited, permits
optimizations, such as reordering of expressions, even if parenthesized, that
may affect a rounding error. This is the same as +Onofltacc. Also implies
+Ocxlimitedrange.
+Ofrequently_called=function1[,function2...]
The named functions are assumed to be frequently called. This option
overrides any information in a profile database.
+Ofrequently_called:filename
The file indicated by filename contains a list of function names, separated
by spaces or newlines. These functions are assumed to be frequently called.
This option overrides any information in a profile database.
Table 2-9 Optimizations performed by +O[no]fltacc
+O[no]fltacc
Expression
reordering?
FMA?
No Yes
+Ofltacc No No
+Onofltacc Yes Yes