Oracle® Solaris Studio 12.4:Fortran 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

3.4.28 –fns[={yes|no}]

选择非标准浮点模式。

缺省值为标准浮点模式 (–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 编程指南》的“浮点运算”一章。(一些算术家使用术语非正规来代替次正规数。)

缺省情况下,对浮点首选项进行标准初始化:

  • IEEE 754 浮点运算是不停止的(即出现异常时不终止)。

  • 下溢是渐进式的。

在 x86 平台上,此选项仅对 Pentium III 和 Pentium 4 处理器(SSE 或 SSE2 指令集)启用。

在 x86 上,-fns 选择 SSE 刷新为零模式以及非正规数为零模式(如果可用的话)。此标志导致将次正规结果刷新为零。如果可用的话,此标志还导致将次正规操作数视为零。此标志对使用 SSE 或 SSE2 指令集的传统 x87 浮点运算没有影响。

主程序必须使用此选项进行编译才能有效。