奇怪的 Fortran 指令

Strange Fortran instruction

学习充满 "goto-spagetti" 的旧 Fortran77 代码,我遇到了以下指令:

if(condition) label1, label2, label3

其中标签只是三个数字。有人知道这是什么意思吗?

算术如果。它去了

  • label1 如果表达式为负
  • label2 如果表达式为 0
  • label3 如果表达式为正。

警告:如果将它与浮点表达式一起使用,请注意,由于舍入错误,本应为 0 的结果可能为 "a small number close to 0"。这限制了算术 if.

的实用性