问候.有谁知道这个Fortran IF声明在做什么?
IF(IJJ-2) ,409,411
Run Code Online (Sandbox Code Playgroud)
我不认为这是一个错字,因为在同一个程序中还有一些其他的.我认为这是一个标准的算术IF,只是将"小于0"的分支默认为下一个exectutbale语句,但我不确定.我认为这段代码是在1970 - 1972年左右在CDC 6600上托管的.我查看了FORTRAN 77子集标准,但它指定必须提供所有三个语句标签.任何建议都非常感谢.
它被称为算术IF语句,在Fortran 90和95中已经过时.但是,我知道英特尔Fortran编译器仍然支持它.如果括号内的表达式小于零,则执行转移到第一个标签.如果等于零,那么第二个标签,最后如果大于零则转移到第三个标签.我不确定在缺少标签的情况下会发生什么 - 我假设它刚刚落下.
因此,您的IF语句将转换为现代Fortran:
IF (IJJ == 2) THEN
GOTO 409
ELSEIF (IJJ > 2) THEN
GOTO 411
ENDIF
Run Code Online (Sandbox Code Playgroud)