隐含的真实错误

时间:2012-04-04 11:35:01

标签: fortran

我用implicit real*8编写了程序。该程序工作正常,但只要我插入另一个包含长和双精度数字的数据的数据文件比我发现的结果不合适。专家和程序开发人员建议我改变implicit real*16。但它在我的fortran电站4.0中没有工作并且给出了隐含的错误。如何转换或升级电站,以便它可以与implicit real*16或更长时间一起使用?

2 个答案:

答案 0 :(得分:2)

权力太大了。并非所有编译器都支持真正的* 16。考虑获取新的编译器。我建议从gfortran开始,确实支持四精度。

此外,我担心隐藏的事情可能会隐藏许多其他问题。还要考虑使用implicit none明确键入变量并使用{{1}}。

答案 1 :(得分:2)

您的文件中有哪些值?整数和双精度浮点值?那么问题似乎不太可能是因为你没有将它们读入四精度实变量。很少有计算需要四精度。您是否将整数值读入整数变量并将浮点数读入Fortran实数?正如其他人所写,隐式类型是最糟糕的方法......它仍然是Fortran的一部分,仅支持遗留代码。最佳做法是使用“隐式无”并显式键入所有变量。这将允许编译器捕获错误,例如变量名称中的拼写错误。有关变量输入的详情,请参阅Fortran: integer*4 vs integer(4) vs integer(kind=4)Extended double precision