添加STOP语句会更改输出值

时间:2016-02-07 09:56:23

标签: linux fortran fedora

将(双精度)变量获得的值作为Fortran程序的一部分写入屏幕。在write语句之后,程序继续不间断。

但是,当我在写入后立即添加stop语句时,我得到该变量的不同(屏幕打印)值。值的变化从第6位开始。

代码包括:

enertot=energy0(x,y,z,size) !energy0 is a function
write (*,*) 'The initial energy is', enertot

这会在屏幕上为enertot输出一些(合理的)值,程序会继续。

现在添加stop

enertot=energy0(x,y,z,size) !energy0 is a function
write (*,*) 'The initial energy is', enertot
stop

这为enertot提供了不同的值。

无论我使用哪种编译器(f90 / 95编译器),都会出现同样的问题。它可能与机器很老,在过时的Linux Fedora OS上运行吗?

甚至更奇怪 - 当我使用Silverfrost编译器在我的Windows笔记本电脑上运行完全相同的程序时,我得到了enertot的第三个结果,与之前从第5个有效数字开始的结果不同。但是,在这种情况下,添加stop根本不会改变打印值。

有什么想法吗?

0 个答案:

没有答案