FORTRAN中从``real``到``double precision``的转换是否会受到编译器的影响?

Yot*_*tam 0 compiler-construction fortran casting intel-fortran

我有一个FORTRAN代码,我需要在服务器上运行.我注意到两台机器的结果有点不同.调查一下,我了解到差异从一个返回real值的函数变为一个double precision变量.在locale机器上我使用旧编译器(gnu f95 4.1.2),在远程机器上我使用ifort.

M. *_* B. 5

您应该期望不同编译器编译的同一程序之间存在细微差别.有限精度算术不遵守我们对实数的预期规则.因此,如果编译器改变操作顺序,结果可能略有不同.

也就是说,gfortran 4.1已经过时了.我不会使用早于4.3的gfortran版本.我强烈建议升级.