2012-04-04 84 views
-2

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

+1

将其重新标记为Fortran,因为我认为这与Java没有任何关系。如果我错了,请告诉我。 – 2012-04-04 11:39:59

+7

没有'专家'建议你使用'隐式真实*'。 – 2012-04-04 12:25:39

回答

2

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

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

2

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

相关问题