我有一个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
答案 0 :(得分:0)
点击此处:
http://www.ibiblio.org/pub/languages/fortran/ch1-5.html
“算术IF被认为是有害的。”
您的陈述,
if (s12 - 1.0) 13, 13, 12
是一个算术IF,被认为是错误的编程。
答案 1 :(得分:0)
算术是否是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
答案 2 :(得分:0)