C ARRANGE THE SYSTEM OF EQUATIONS READY TO BE SOLVED****
NN=2*N
IF(KMET.EQ.1) GO TO 511
DO 511 I=1,NN
DFI(I)=0.0
DO 511 J=1,NN
DFI(I)=DFI(I)+G(I,J)*TP(J)-H(I,J)*UP(J)
511 CONTINUE
DO 50 J=1,NN
IF(KODE(J)) 43,43,40
错误C:\vf -1\1-2.for(178) : Error: A branch to a do-term-shared-stmt has occurred from outside the range of the corresponding inner-shared-do-construct. [511]
DO 511 I=1,NN
-------------^
C:\vf -1\1-2.for(180) : Error: A branch to a do-term-shared-stmt has occurred from outside the range of the corresponding inner-shared-do-construct. [511]
DO 511 J=1,NN
关于fortran程序问题
答案:2 悬赏:10
解决时间 2021-02-27 04:58
- 提问者网友:余味
- 2021-02-26 12:39
最佳答案
- 二级知识专家网友:陪衬角色
- 2021-02-26 13:09
IF(KMET.EQ.1) GO TO 511
这说明 If 的结束在 511
此时,你就不能再把 Do 的结尾也设定在 511 了。
你可以修改为:
NN=2*N
IF(KMET.EQ.1) GO TO 512
DO 511 I=1,NN
DFI(I)=0.0
DO 511 J=1,NN
DFI(I)=DFI(I)+G(I,J)*TP(J)-H(I,J)*UP(J)
511 CONTINUE
512 DO 50 J=1,NN
IF(KODE(J)) 43,43,40
实际上,现在的 Fortran 语法建议你这样写:
NN=2*N
If ( KMET == 1 ) goto 512
Do I = 1 , NN
DFI( I ) = 0.0
Do J = 1 , NN
DFI( I ) = DFI( I ) + G( I , J ) * TP( J ) - H( I , J ) * UP( J )
End Do
End Do
512 DO 50 J = 1 , NN
这说明 If 的结束在 511
此时,你就不能再把 Do 的结尾也设定在 511 了。
你可以修改为:
NN=2*N
IF(KMET.EQ.1) GO TO 512
DO 511 I=1,NN
DFI(I)=0.0
DO 511 J=1,NN
DFI(I)=DFI(I)+G(I,J)*TP(J)-H(I,J)*UP(J)
511 CONTINUE
512 DO 50 J=1,NN
IF(KODE(J)) 43,43,40
实际上,现在的 Fortran 语法建议你这样写:
NN=2*N
If ( KMET == 1 ) goto 512
Do I = 1 , NN
DFI( I ) = 0.0
Do J = 1 , NN
DFI( I ) = DFI( I ) + G( I , J ) * TP( J ) - H( I , J ) * UP( J )
End Do
End Do
512 DO 50 J = 1 , NN
全部回答
- 1楼网友:堕落奶泡
- 2021-02-26 13:42
没有错,是你自己打错字母了,"n=0"是等于零,不是“o” 下面enddo不是engdo 对的,我已经帮你运行过了,加上主程序名,变量声明一下就ok了,如: programhh integeri,n,sn=0doi=666,777 dos=2,i-1 if(mod(i,s)/=0)then n=n 1 endif enddo enddo print*,n end programhhintegeri,n,sn=0doi=666,777 dos=2,i-1if(mod(i,s)==0)exit enddo if(s==i) n=n 1enddoprint*,n end
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯