我正在转换Fortran中的旧代码,我认为它是77.在以下方式中有几种IF的使用,我无法意识到它的作用:
IF(x1-x2) 12, 13, 14
12 WRITE(*,*) x1
.
.
.
13 y=...
.
.
14 DO x=x1,x2
IF(x-x2) 33, 34, 40
.
.
.
代码符合并运行正常,并产生结果。有没有人遇到IF的这种用法?
答案 0 :(得分:5)
那是arithmetic IF
。它分支到第一个,第二个或第三个标签,具体取决于表达式是负数,零还是正数。
在非常旧版本的Fortran(或FORTRAN)中,它是唯一可用的IF
语句形式。
在Fortran 77的版本中使用它时可能有点奇怪,因为Fortran 77具有更现代的逻辑IF
。该功能在Fortran 90中被宣布为过时,但如果更现代的Fortran编译器仍然支持它,我不会感到惊讶。