没有逻辑表达式的Fortran IF语句

时间:2014-09-15 22:32:26

标签: if-statement fortran fortran77

我正在转换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的这种用法?

1 个答案:

答案 0 :(得分:5)

那是arithmetic IF。它分支到第一个,第二个或第三个标签,具体取决于表达式是负数,零还是正数。

在非常旧版本的Fortran(或FORTRAN)中,它是唯一可用的IF语句形式。

在Fortran 77的版本中使用它时可能有点奇怪,因为Fortran 77具有更现代的逻辑IF。该功能在Fortran 90中被宣布为过时,但如果更现代的Fortran编译器仍然支持它,我不会感到惊讶。