我有一个 gfortran 错误:
Warning: Obsolete: arithmetic IF statement at (1)
这是什么意思?在源(旧源)中:
66 s12 = max(epsilon, s1 + s2)
c Then execution will go to label 13. Will this stop any further problems?
if (s12 - 1.0) 13, 13, 12
13 z = s1 / s12
我有一个 gfortran 错误:
Warning: Obsolete: arithmetic IF statement at (1)
这是什么意思?在源(旧源)中:
66 s12 = max(epsilon, s1 + s2)
c Then execution will go to label 13. Will this stop any further problems?
if (s12 - 1.0) 13, 13, 12
13 z = s1 / s12
在这里检查:
http://www.ibiblio.org/pub/languages/fortran/ch1-5.html
“算术 IF 被认为是有害的。”
你的声明,
if (s12 - 1.0) 13, 13, 12
是算术 IF,被认为是糟糕的编程。
算术 if 是 FORTRAN 的一个独特功能
它的工作原理如下。
IF (expr) label1, label2, label3
如果表达式的值为
less than 0, jump to label1
equal to 0, jump to label2
greater than 0, jump to label3
在较新的 FORTRAN 标准中,此功能已过时
在您的代码中,您可以将其替换为
IF (s12 - 1.0 .gt. 0 ) GOTO 12
13 z = s1 / s12