回 帖 发 新 帖 刷新版面

主题:很诡异的错误

我现在都怀疑是不是ifort的bug了。  是这样的,  prog1 运行正确,现在我在里面加入一个subroutineA , 并且我不调用这个subroutine, 结果却输出错误, 出现了 NAH. 
我把subroutine 中的 common, module 部分去掉 还是不可以,
最后发现  去掉subroutineA 里面的一个 call subroutineB , prog1就运行正确了。
明明没调用,怎么会对程序有影响啊, 求解释啊!

回复列表 (共18个回复)

11 楼

common 和 module全去掉还能编译通过?

12 楼

[quote]
我把 common 和module 全部去掉了,还是不可以。  对了 linux 下 ivf 怎样设置数组边界检查啊?[/quote]

把所有的运行时检查打开:-check all

13 楼

多谢指点啊。-check all  解决这个问题了。

原因是这样的 我在一个子程序中使用数组的时候, 定义是 integer  num(7), 但是 我使用了num(0)(和C是有区别的啊),检测子程序时候,包括后来运行计算别的数值都没有问题。现在改为
integer num(0:6) 就可以了啊。不过,产生这种错误的原因,我还是不清楚。

另外如果  使用integer i, 但是使用之前没有赋值,check all 也是过不去的。
http://origin-software.intel.com/en-us/forums/showthread.php?t=70730

以后一定在数组面前  谨慎再谨慎了。

14 楼

就是在linux下编译调试不方便, ivf提供的linux下IDE也没有windows下方便. 所以我都是在windows下调试然后到linux下运算. 要用熟linux环境下的工具还要花不少时间.

15 楼

[quote]就是在linux下编译调试不方便, ivf提供的linux下IDE也没有windows下方便. 所以我都是在windows下调试然后到linux下运算. 要用熟linux环境下的工具还要花不少时间.[/quote]

你已经不错了,我对linux下的工具基本没一个熟悉的。

16 楼

用CodeBlocks呗~~~~

17 楼


恩,我刚装了这个 codeblocks_fortran 感觉不错的的IDE,不过碰到了一些小问题,我先自己研究一下

18 楼

董兄是Code::Blocks的牛A+1人物:)

我来回复

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