此Fortran代码是什么意思:

   IF (J1-3) 20, 20, 21
21 J1 = J1 - 3
20 IF (J2-3) 22, 22, 23
23 J2 = J2 - 3
22 CONTINUE

我在旧项目中见过,但我不知道带有数字(标签)的IF意味着什么。

最佳答案

这是FORTRAN 77的arithmetic if statement。改编自FORTRAN 77规范(重点是我的):

对于您问题中的示例,从上面的最后一句话开始,

  • 如果将执行J1-3 < 0语句20
  • 如果也执行J1-3 = 0语句20
  • 如果将执行J1-3 > 0语句21

  • 编辑:编写此代码的一种现代且可读性更高的方法是:
    if (J1-3 > 0) J1 = J1 - 3
    if (J2-3 > 0) J2 = J2 - 3
    

    关于带数字/标签的Fortran IF语句,而不是其他语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11124855/

    10-10 18:54