我不确定哪个版本的Fortran是这段代码,我也不是很擅长但是这是我试图理解的代码片段......
DO 55 J=1,N
IF(KODE(J)) 55,55,40 ! Can not figure out what this line does
40 DO 50 I=1,N
CH=G(I,J)
G(I,J)=-H(I,J)
H(I,J)=-CH
50 CONTINUE
55 CONTINUE
在上面给出的循环中,你能帮我理解第二行的作用,特别是标签55,55,40
这是我试图理解的边界元素书的代码......
答案 0 :(得分:2)
KODE(J)
的结果是一个数字。如果它小于零,则使用第一个跳转,如果它等于零,则使用第二个跳转,否则,使用第三个跳转。这大致相当于:
X=KODE(J)
IF (X.LT.0) GO TO 55
IF (X.EQ.0) GO TO 55
GO TO 40
我的Fortran技能已经明显消退,但这是我记得的。
在这种特殊情况下,程序员编写更简单
X=KODE(J)
IF (X.LE.0) GO TO 55
GO TO 40
答案 1 :(得分:1)
“算术if”语句是早期Fortran的IF语句。传统的IF语句(又名“逻辑”if)于1962年在Fortran IV中引入(http://en.wikipedia.org/wiki/Fortran#FORTRAN_IV)。算术IF语句是真正旧代码(FORTRAN II!)的标志,或者是遵循这种风格的程序员。
算术If语句在Fortran 90中被列为“过时”,作为警告,该功能可能会在将来从该语言中删除。