回 帖 发 新 帖 刷新版面

主题:急急急,fortran程序在linux下运行的输出结果每步都和win下不同?

最近把windows下的一个程序移植到linux,windows下的程序是通的,结果移植到linux后就出现NaN的输出。为何我在windows下运行好好的,结果到linux下就出现这样的结果呢?求教!
同时,linux下编译程序是通过的,但是每一步输出的结果跟windows都不一样(linux下输出的结果是错的),linux下运行几步后就会出现NaN,我现在正在仔细校对代码,不知道各位大侠有没有遇到过这样的情况,真诚求教!!!

回复列表 (共10个回复)

沙发

编译器 编译器 编译器
32? 64?

板凳

应该写清楚编译器改变前后的具体版本.
转换中NAN的出现很可能是初始化问题.

3 楼


是这样的,在win下是f90写的,在linux下用的是f77编译,但是程序中没有调用任何函数库,所以应该不是lib库不同的问题。

4 楼


NAN出现是每个迭代步的误差太大最后发散了,我问题的关键是它每一步的迭代都和win下不同,这个怎么解释?是不是程序写的还不规范?linux下得容错要比win差?

5 楼

让你说编译器,非要扯格式

6 楼

Windows下使用的编译器是什么?
Linux下使用的编译器是什么?
编译选项分别是什么?

7 楼


windows下用的compaq Visual fortran linux下用的gfortran 和intel fortran
,linux下两种都算过,情况一样,有微小差别!

8 楼


呵呵,大侠别生气。小弟最近被程序搞晕了!

9 楼

cvf默认初始化为0
gfortran/ivf默认不初始化

gfortran好像有个开关-finit-local-zero来进行强制初始化。

最好自行初始化。

10 楼

最好养成好习惯,把程序改改吧。初始化一定要写上。
另外把warning检查全打开,并把所有warning都解决掉:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册