Fortran的IF语句与数字/标签,而不是另一种说法Fortran的IF语句与数字/标签,而不是另

2019-05-12 07:50发布

这是什么Fortran代码意味着:

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

我已经看到了老项目,我没有任何想法,这是什么如果与数字(标签)表示。

Answer 1:

这是一个算术if语句从FORTRAN 77规范(重点煤矿)改编自FORTRAN 77:

算术的形式IF语句是:

IF (e) s1 , s2 , s2

  • 其中: e是整数,实数或双精度表达

  • s1s2 ,和s3分别在相同的节目单元显示为算术可执行语句的语句标签IF语句。 同样的语句标签可能会出现不止一次在相同的算术IF语句。

算术执行IF语句导致表达的评价e然后控制转移。 的语句中标识由s1s2 ,或s3被执行作为下一的值e小于零,等于零,或大于零,分别。

对于你的问题的例子,从上面的最后一句,

  • 如果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 statement with numbers/labels rather than another statement