-2

我已经用implicit real*8. 该程序运行良好,但是一旦我插入另一个包含长精度和双精度数字数据的数据文件,我发现的结果就不合适了。专家和程序开发人员建议我改变implicit real*16。但它在我的 fortran 电站 4.0 中不起作用并给出隐含错误。如何转换或升级发电站,使其可以使用implicit real*16或更多?

4

2 回答 2

2

Powerstation 太旧了。即使是现在,也不是每个编译器都支持 real*16。考虑获取一个新的编译器。我建议从 gfortran 开始,它确实支持四精度。

我也担心那些隐含的东西可能会隐藏许多其他问题。还考虑为您的变量显式键入并使用implicit none.

于 2012-04-04T11:53:28.540 回答
2

您的文件中的值是什么?整数和双精度浮点值?那么问题似乎不太可能是由于您没有将它们读入四精度实变量引起的。只有很少的计算需要四精度。您是否将整数值读入整数变量并将浮点数读入 Fortran 实数?正如其他人所写的那样,隐式类型是最糟糕的方法......它仍然是 Fortran 的一部分,只是为了支持遗留代码。最佳实践是使用“隐式无”并显式键入所有变量。这将允许编译器捕捉错误,例如变量名中的拼写错误。有关变量类型的更多信息,请参见Fortran:integer*4 vs integer(4) vs integer(kind=4)扩展双精度

于 2012-04-04T13:02:20.410 回答