这个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是什么意思。
答案 0 :(得分:7)
这是来自FORTRAN 77的arithmetic if
statement。改编自FORTRAN 77规范(强调我的):
算术
IF
语句的形式是:
IF (e) s1 , s2 , s2
其中:
e
是整数,实数或双精度表达式
s1
,s2
和s3
都是可执行语句的语句标签,它出现在与算术IF
语句相同的程序单元中。相同的语句标签可能在同一算术IF
语句中出现多次。执行算术
IF
语句会导致对表达式e
进行评估,然后进行控制转移。s1
,s2
或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