缺省值为标准浮点模式 (–fns=no)。(请参见《Fortran 编程指南》的“浮点运算”一章。)
可以选择使用 =yes 或 =no,提供了一种在包括 -fns 的其他宏标志(如 -fast)之后切换该标志的方式。-fns 不带值等同于 -fns=yes。
此选项标志在程序开始执行时启用非标准浮点模式。在 SPARC 平台上,指定非标准浮点模式会禁用“渐进下溢”,从而导致将微小的结果刷新为零,而不是生成次正规数。此外,还会导致次正规操作数在无提示的情况下替换为零。在那些不支持硬件中的渐进下溢和次正规数的 SPARC 系统上,使用此选项将显著提高某些程序的性能。
下表中的 x 不会导致总下溢,当且仅当 |x| 处于所示范围之一时,x 才是一个次正规数:
表 3–8 低于正常的 REAL 和 DOUBLE
数据类型 |
范围 |
---|---|
REAL |
0.0 < |x| < 1.17549435e–38 |
DOUBLE PRECISION |
0.0 < |x| < 2.22507385072014e–308 |
有关次正规数的详细信息,请参见《数值计算指南》;有关此选项和类似选项的更多信息,请参见《Fortran 编程指南》的“浮点运算”一章。(一些算术家使用术语非正规数来代替次正规数。)
缺省情况下,对浮点首选项进行标准初始化:
在 x86 平台上,此选项仅对 Pentium III 和 Pentium 4 处理器(SSE 或 SSE2 指令集)启用。
在 x86 上,-fns 选择 SSE 刷新为零模式以及非正规数为零模式(如果可用的话)。此标志导致将次正规结果刷新为零。如果可用的话,此标志还导致将次正规操作数视为零。此标志对使用 SSE 或 SSE2 指令集的传统 x87 浮点运算没有影响。
主程序必须使用此选项进行编译才能有效。