帮忙讲一下这一小段fortran的运行逻辑关系我不明白程序里 goto后面跟的数字都是怎么运行的!if (lud.eq.0) goto 99do 6 i=1,Ndo 6 j=1,NAMD(i,j)=A(i,j) 6 continuec This part for decomposing A is taken from DGEFA.info=0if (nm
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/29 07:05:50
帮忙讲一下这一小段fortran的运行逻辑关系我不明白程序里 goto后面跟的数字都是怎么运行的!if (lud.eq.0) goto 99do 6 i=1,Ndo 6 j=1,NAMD(i,j)=A(i,j) 6 continuec This part for decomposing A is taken from DGEFA.info=0if (nm
帮忙讲一下这一小段fortran的运行逻辑关系我不明白程序里 goto后面跟的数字都是怎么运行的!
if (lud.eq.0) goto 99
do 6 i=1,N
do 6 j=1,N
AMD(i,j)=A(i,j)
6 continue
c This part for decomposing A is taken from DGEFA.
info=0
if (nm1.lt.1) go to 70
do 60 k=1,nm1
kp1=k+1
l=IDAMAX(N-k+1,AMD(k,k),1)+k-1
ipvt(k)=l
if (AMD(l,k).eq.0.0d0) goto 40
if (l.eq.k) goto 10
t=AMD(l,k)
AMD(l,k)=AMD(k,k)
AMD(k,k)=t
10 continue
t=-1.0d0/AMD(k,k)
call DSCAL(N-k,t,AMD(k+1,k),1)
do 30 j=kp1,N
t=AMD(l,j)
if (l.eq.k) go to 20
AMD(l,j)=AMD(k,j)
AMD(k,j)=t
20 continue
call DAXPY(N-k,t,AMD(k+1,k),1,AMD(k+1,j),1)
30 continue
go to 50
40 continue
info=k
50 continue
60 continue
70 continue
ipvt(N)=N
if (AMD(N,N).eq.0.0d0) info=N
if (info.ne.0) pause 'Division by zero in SOLVER!'
99 continue
if (nm1.it.1) go to 70 我想问,如果条件成立,是直接跳到70,运行,还是从这句话之后开始运行到70结束呢?
还有这要是在MATLAB里面怎么表示呢?
帮忙讲一下这一小段fortran的运行逻辑关系我不明白程序里 goto后面跟的数字都是怎么运行的!if (lud.eq.0) goto 99do 6 i=1,Ndo 6 j=1,NAMD(i,j)=A(i,j) 6 continuec This part for decomposing A is taken from DGEFA.info=0if (nm
直接跳转到70行,几乎所有的程序语言,goto都是这个含义.