主题:很诡异的错误
freqent
[专家分:0] 发布于 2011-07-05 12:06:00
我现在都怀疑是不是ifort的bug了。 是这样的, prog1 运行正确,现在我在里面加入一个subroutineA , 并且我不调用这个subroutine, 结果却输出错误, 出现了 NAH.
我把subroutine 中的 common, module 部分去掉 还是不可以,
最后发现 去掉subroutineA 里面的一个 call subroutineB , prog1就运行正确了。
明明没调用,怎么会对程序有影响啊, 求解释啊!
回复列表 (共18个回复)
沙发
adda [专家分:1520] 发布于 2011-07-05 12:28:00
程序里有数组越界了,就会出现这种诡异的问题
板凳
yeg001 [专家分:14390] 发布于 2011-07-05 15:04:00
如果程序不大, 请楼主放上来大家讨论一下.
btw: 楼主既然用module了为什么还用过时的common?
3 楼
asymptotic [专家分:16630] 发布于 2011-07-05 18:36:00
杂交啦
4 楼
freqent [专家分:0] 发布于 2011-07-06 09:59:00
谢谢啊,数组越界往往会出现很难发现的错误。我再检验一下,是不是这个问题。
5 楼
freqent [专家分:0] 发布于 2011-07-06 10:01:00
程序有点大,不是很方便,因为压根不知道什么原因,我也很难用一个简单的例子说明。
6 楼
freqent [专家分:0] 发布于 2011-07-06 10:04:00
恩,我觉得这个可能很大啊。原因是之前prog1 中有个子程序与subroutineA 功能类似 为subroutineAA,这两个分别运行都没问题,放在一起就有问题,即使都不调用也对其他的量有影响,产生错误影响。 能详细说一下 杂交的概念吗
7 楼
freqent [专家分:0] 发布于 2011-07-06 22:33:00
唉,又发现多加一个write(*,*) 输出语句居然会出现错误,崩溃了....
8 楼
yeg001 [专家分:14390] 发布于 2011-07-06 22:54:00
没代码, 帮不上忙~
9 楼
cgl_lgs [专家分:21040] 发布于 2011-07-06 23:05:00
把数组边界检查打开呢?
程序编译时有没有什么WARNING?
杂交在这里指的是你既用COMMON又用Module
10 楼
freqent [专家分:0] 发布于 2011-07-07 08:51:00
我把 common 和module 全部去掉了,还是不可以。 对了 linux 下 ivf 怎样设置数组边界检查啊?
我来回复