Fortran Coder

查看: 13839|回复: 3
打印 上一主题 下一主题

[求助] 求助找出如何数组越界的啊!!感激不尽啊!!!

[复制链接]

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
楼主
发表于 2014-6-28 16:40:42 | 显示全部楼层
n2 函数里
n2=(1+dcos(x4_)+dcos(x3_-x4_))*(dsin(x3_*r3+x4_*r4))+(dsin(x3_-x4_)-dsin(x4_))*(dcos(x3_*r3+x4*r4))

是否应该为
n2=(1+dcos(x4_)+dcos(x3_-x4_))*(dsin(x3_*r3+x4_*r4))+(dsin(x3_-x4_)-dsin(x4_))*(dcos(x3_*r3+x4_*r4))

另外,如果楼主有一个好的调试器,对于数组越界可以事半功倍。

比如我的编译器(IVF+VS)就会直接提示
forrtl: severe (408): fort: (3): Subscript #2 of the array AD has value 0 which
is less than the lower bound of 1


中断以后就会发现在 825 行
if(ad(l1,l3)+ad(l2,l4)+ad(l1,l4)==3)then
此处的 L3 = 0,而 ad 从 1 开始。所以越界。

至于 L3 为何为 0 ,你需要继续向前追索原因。(由于算法不熟悉,别人较难帮忙)
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-6 08:49

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表