Strange label usage for an IF condition in a DO loop
本问题已经有最佳答案,请猛点这里访问。
我不确定哪个版本的Fortran是这段代码,我也不是很擅长,但是这是我尝试理解的代码...
1 2 3 4 5 6 7 8 | 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
这是我试图理解的边界元素书中的代码...
哇...我已经有一段时间没有看到这种语法了。 那是一个Fortran算术IF语句。
1 2 3 4 | X=KODE(J) IF (X.LT.0) GO TO 55 IF (X.EQ.0) GO TO 55 GO TO 40 |
我的Fortran技能已经大大降低,但这就是我所记得的。
在这种情况下,程序员编写起来更简单
1 2 3 | X=KODE(J) IF (X.LE.0) GO TO 55 GO TO 40 |
"算术if"语句是很早的Fortran的IF语句。 常规IF语句(也称为"逻辑" if)是在1962年于Fortran IV中引入的(http://en.wikipedia.org/wiki/Fortran#FORTRAN_IV)。 算术IF语句是很旧的代码(FORTRAN II!)的标志,或者是遵循这种样式的程序员的标志。
在Fortran 90中,"算术" If语句被列为"过时",以警告将来该功能可能会从该语言中删除。