-2

でプログラムを書きましたimplicit real*8。プログラムは正常に動作していますが、長い倍精度の数字のデータを含む別のデータ ファイルを挿入するとすぐに、見つかった結果が適切ではありませんでした。専門家とプログラム開発者は私に変更するようアドバイスしましたimplicit real*16。しかし、私の fortran power station 4.0 では動作せず、暗黙のエラーが発生します。発電所を変換またはアップグレードして、implicit real*16またはそれ以上で動作できるようにする方法は?

4

2 に答える 2

2

発電所が古すぎます。現在でも、すべてのコンパイラがreal*16をサポートしているわけではありません。新しいコンパイラを入手することを検討してください。確かに四倍精度をサポートするgfortranから始めることをお勧めします。

また、その暗黙のことで、他の多くの問題が隠されているのではないかと心配しています。変数の明示的な入力と。の使用も検討してくださいimplicit none

于 2012-04-04T11:53:28.540 に答える
2

ファイルの値は何ですか? 整数と倍精度浮動小数点値? その場合、それらを 4 倍精度の実数変数に読み込まないことが原因で問題が発生する可能性は非常に低いと思われます。計算で 4 倍精度が必要になることはめったにありません。整数値を整数変数に、浮動小数点数を Fortran 実数に読み込んでいますか? 他の人が書いているように、暗黙の型付けは最悪のアプローチです...レガシーコードをサポートするためだけにFortranの一部です。ベスト プラクティスは、"implicit none" を使用し、すべての変数を明示的に入力することです。これにより、コンパイラは変数名のタイプミスなどの間違いを検出できます。変数の型付けの詳細については、Fortran: integer*4 vs integer(4) vs integer(kind=4)および拡張倍精度を参照してください。

于 2012-04-04T13:02:20.410 に答える