楚香饭 发表于 2015-5-20 11:08
如果 nx 的值确实从来没改变过。那么 integer::njb_new(nx) 和 integer::njb_new(146) 是一样的。 ...
pasuka 发表于 2015-5-20 12:55
用了ivf吗?是的话,多半和save属性有关
既然nx事前确定,为啥不加parameter属性? ...
Villain 发表于 2015-5-20 14:33
用的是microsoft visual studio 2008。
因为nx是从外部读入的,不同的case对应的nx不一样。 ...
pasuka 发表于 2015-5-20 15:19
vs2008和ivf不是一码事情。。。不能排除在循环的时候变量i其实大于nx,所以报错
不妨把i的值打印出来看看 ...
Image 3.png (87.29 KB, 下载次数: 488)
Image 6.png (13.05 KB, 下载次数: 470)
Villain 发表于 2015-5-20 17:35
这是用winmerge把成功运算和不成功运算两者代码比较了一下,左边是成功运算的,右边是不成功运算的。
黄 ...
pasuka 发表于 2015-5-21 08:48
循环的时候,数组下标呢?有一个或几个超过146了?
Villain 发表于 2015-5-21 09:08
没有,在这个子程序中,循环的范围是从1到nx,而nx的值是143,也就是说根本不影响。
如果因为下标超过nx之 ...
fcode 发表于 2015-5-21 11:54
把错误提示给出来,完整的,不翻译,不截取。
尝试在越界的函数里下断点,debug 调试。 ...
pasuka 发表于 2015-5-21 11:08
那就爱莫能助了。。。
fcode 发表于 2015-5-22 09:23
如果你早点把“错误信息”给出来,我们知道是哪个数组越界,早就解决了。我一直以为是 njb_new 本身越界。
...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |