[FORTRAN是我在1970年代的第一种编程语言,但是我无法确定以下FORTRAN代码是否有效。我无法编译或运行代码。
SUBROUTINE ABC(PARM1, PARM2)
CHARACTER*40 projName
DATA projName /'...values...'/
C Lots of comments...
C VARIABLE DECLARATIONS BEGIN HERE (the exact wording)
IMPLICIT REAL*8(A-H,O-Z)
(the rest of the declarations)
. . .
[所有参考文献都说IMPLICIT语句必须在任何声明之前;但是,此代码显然可以运行。我的想法是(1)IMPLICIT语句被忽略,或者(2)此代码在某种形式的FORTRAN中有效。如果忽略IMPLICIT,则可能出于相同目的使用了编译标志。
我需要确定有效/无效并简要说明我的答案。任何想法将不胜感激。
谢谢,lac
[CHARACTER类型是在Fortran 77中引入的。Fortran77第3.5节“语句和行的顺序”说:“在程序单元的规范语句中,IMPLICIT语句必须在除PARAMETER语句之外的所有其他规范语句之前。”
以后的标准中存在类似的限制。
描述的代码不符合。
((Fortran 77甚至不需要Fortran处理器来诊断最基本的语言规则。编译器可能已经接受了不同的语句顺序作为扩展名,或者偶然地接受了。)