Sun Studio 12:Fortran 编程指南

6.2.5 非标准运算

可以手动禁用标准 IEEE 运算中一个称为渐进下溢的特征。禁用后,程序将被视为在非标准运算下运行。

IEEE 运算标准规定了一种通过动态调整有效数的小数点来渐进处理下溢结果的方法。按 IEEE 浮点格式,小数点出现在有效数之前,并且有一个隐式前导位 1。当浮点计算结果会下溢时,渐进下溢允许将此隐式前导位清为 0,并将小数点移入有效数之中,否则,浮点计算结果便会产生下溢。对于 SPARC 处理器,该结果不是在硬件而是在软件中完成的。如果程序产生的下溢很多(也许这表示您的算法有问题),可能会导致性能损失。

可以通过以下方式禁用然后关闭渐进下溢: 使用 -fns 选项进行编译,或从程序内调用库例程 nonstandard_arithmetic()。调用 standard_arithmetic() 可重新开启渐进下溢。


注 –

为提高效率,必须用 -fns 编译应用程序的主程序。参见《Fortran 用户指南》。


对于传统应用程序,请注意: