24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 444  |  回复: 12
当前主题已经存档。

panpan429

金虫 (正式写手)

[交流] 【求助】运行出错,寻帮助

这个程序是我从书上找到的
试着运行了下
改了些错误
编译连接没有问题了
但运行时又提示
Program Exception——array bounds exceeded
我试着添加一些write语句,发现这一段执行后就出现上述这个问题了
do 90 lz=lun,lup
        do 80 lx=lrf,lrg
          ib=lz*idx+lx+1
          j=ncl(ib)
          if(j.le.0)goto 80
          if(j.eq.i)goto 80
          do 11 jj=1,10
            if(je(i,jj).eq.j)then
              jk=jj
              goto 70
            endif
11     continue
70     xj=x0(j)
          zj=z0(j)
          rj=rr(j)
          gap=dsqrt((xi-xj)*(xi-xj)+(zi-zj)*(zi-zj))
          if(gap.lt.dsqrt((ri+rj)*(ri+rj)))then
             if(i.gt.j)then
                ac=(xj-xi)/(gap)
                as=(zj-zi)/(gap)
                j0=0
                do 555 jj=1,10
                if(je(j,jj).eq.i)then
                   j0=jj
                   goto 554
                endif
555          continue
554        call actf(i,j,jk,as,ac,gap)
             en(j,j0)=en(i,jk)
             es(j,j0)=es(i,jk)
             j0=0
            endif
         else
85        en(i,jk)=0.d0
            es(i,jk)=0.d0
            je(i,jk)=0
         endif   
80    continue
90    continue

请问上述问题应该如何排除,谢谢
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

程序不完整。没法弄。
2楼2009-04-14 10:34:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panpan429

金虫 (正式写手)

这个程序很长,不知道大家有没有耐心看,所以没有上传
3楼2009-04-14 11:05:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panpan429

金虫 (正式写手)

下面附件是这个程序
4楼2009-04-14 11:06:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

呵呵,期待老虎大王的高招了!
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
5楼2009-04-14 14:54:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★ ★ ★
sunxiao(金币+4,VIP+0):谢谢参与,欢迎常来仿真编程版,老虎大王 4-15 05:43
85        en(i,jk)=0.d0
            es(i,jk)=0.d0
            je(i,jk)=0
         endif   
但是,这个时候,jk的值是零,导致下标越界。请检查jk的初值情况。
6楼2009-04-14 16:47:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panpan429

金虫 (正式写手)

if(je(i,jj).eq.j)then
              jk=jj
这个地方不是给出jk的值吗?
是不是要来个else以防万一?
7楼2009-06-18 16:22:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
sunxiao(金币+2,VIP+0):谢谢参与,欢迎常来交流 6-19 03:03
楼上的代码程序执行过程中肯定会运行一次吗?
可以在85之前加一句输出jk的值,看看出错时是什么值
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
8楼2009-06-18 17:33:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panpan429

金虫 (正式写手)


wangen994(金币+1,VIP+0):谢谢交流 6-19 09:32
85之前加了
结果显示jk值为零
没见除if语句外那个地方jk赋值啊?
这应该如何修改?
9楼2009-06-18 18:31:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wangen994(金币+2,VIP+0):谢谢交流啊,哈哈 6-19 09:32
那可能就是以下代码没有执行过,或者换句话说,if判断句中没有符合条件的可能。
          if(je(i,jj).eq.j)then
              jk=jj
              goto 70
            endif
也许你该查查je数组的情况是否和你预想的一致。
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
10楼2009-06-19 07:11:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 panpan429 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见