インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
倍精度変数に代入された単精度定数を倍精度で評価するようにコンパイラーに指示します。
Linux* および macOS*: | -fpconstant -nofpconstant |
Windows*: | /fpconstant /nofpconstant |
なし
nofpconstant |
倍精度変数に代入された単精度定数は、Fortran 2003 標準規則に従って単精度で評価されます。 |
このオプションは、倍精度変数に代入された単精度定数を倍精度で評価するようにコンパイラーに指示します。
これは拡張精度です。倍精度変数に代入された単精度定数は単精度で評価するよう定めている Fortran 2003 標準には従っていません。
このオプションを使用すると、拡張精度が許容されている FORTRAN 77 と互換性を維持することができます。このオプションが使用されない場合、FORTRAN 77 コンパイラー用に作成された一部のプログラムでは、倍精度変数に代入された単精度定数が倍精度で評価されることを前提としているために、浮動小数点演算の結果が変わることがあります。
Visual Studio*: [Floating Point (浮動小数点)] > [Extend Precision of Single-Precision Constants (単精度定数の精度を拡張する)]
Eclipse*: なし
Xcode*: [Floating Point (浮動小数点)] > [Extend Precision of Single-Precision Constants (単精度定数の精度を拡張する)]
なし
次の例では、fpconstant を指定すると、D1 と D2 に同じ値が代入されます。fpconstant オプションを省略すると、コンパイラーは Fortran 2003 標準に基づく動作を行い、D1 に精度の低い値を代入します。
REAL (KIND=8) D1, D2 DATA D1 /2.71828182846182/ ! REAL (KIND=4) の値を倍精度に拡張 DATA D2 /2.71828182846182D0/ ! 倍精度値を倍精度に代入