Fortran Coder

标题: 求助,关于goto循环引起的数组越界问题 [打印本页]

作者: qxqxaz    时间: 2020-6-17 12:46
标题: 求助,关于goto循环引起的数组越界问题
运行的时候提示IA数组越界,然后自己查看了下代码,怀疑是KI=I,KI=I-1这里的原因,但不是很确定。所以希望有大神可以指点一下。万分感谢!!!
[Fortran] 纯文本查看 复制代码
IF(HIN.LT.0.0) THEN        !为非饱和状态
        IF(INDEX.EQ.0) THEN        !排水
        DO I=1,N
        IF(B(I,1).GT.BC) THEN
        IA(I,1)=-1
        ENDIF
        IF(B(I,M).GT.BC) THEN
        IA(I,M)=-1
        ENDIF
        ENDDO
        DO J=2,M-1
        DO I=1,N
        IF(IA(I,J-1).EQ.-1.AND.B(I,J).GT.BC) THEN
        IA(I,J)=-1
        KI=I
   10 KI=KI-1
        IF(KI.GE.1) THEN
        IF(B(KI,J).GT.BC) THEN
        IA(KI,J)=-1
        GOTO 10
        ENDIF
        ENDIF
        KI=I

作者: vvt    时间: 2020-6-17 13:06
根据部分代码,无法推测运行时错误。
作者: liudy02    时间: 2020-6-18 03:30
同意楼上
同时,凡是与goto有关的问题,最好的方法是不要用goto




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2