CHARACTER 声明及其 DATA 语句能否位于 IMPLICIT 语句之前?
Can a CHARACTER declaration and its DATA statement come before an IMPLICIT statement?
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 语句必须出现在任何声明之前;然而,这段代码显然是运行s。我的想法是 (1) IMPLICIT 语句被忽略,或者 (2) 此代码在某些 FORTRAN 风格中有效。如果忽略 IMPLICIT,编译标志可以用于相同的目的。
我需要做出决定 valid/invalid 并简要说明我的回答。任何想法将不胜感激。
谢谢,
紫胶
CHARACTER 类型是在 Fortran 77 中引入的。Fortran 77 第 3.5 节 "Order of Statements and Lines" 说 "Within the specification statements of a program unit, IMPLICIT statements must precede all other specification statements except PARAMETER statements."
以后的标准中存在类似的限制。
所描述的代码不符合要求。
(Fortran 77 甚至不需要 Fortran 处理器来诊断最基本的语言规则。编译器可能已经接受了不同的语句顺序作为扩展,或者是偶然的。)
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 语句必须出现在任何声明之前;然而,这段代码显然是运行s。我的想法是 (1) IMPLICIT 语句被忽略,或者 (2) 此代码在某些 FORTRAN 风格中有效。如果忽略 IMPLICIT,编译标志可以用于相同的目的。
我需要做出决定 valid/invalid 并简要说明我的回答。任何想法将不胜感激。
谢谢, 紫胶
CHARACTER 类型是在 Fortran 77 中引入的。Fortran 77 第 3.5 节 "Order of Statements and Lines" 说 "Within the specification statements of a program unit, IMPLICIT statements must precede all other specification statements except PARAMETER statements."
以后的标准中存在类似的限制。
所描述的代码不符合要求。
(Fortran 77 甚至不需要 Fortran 处理器来诊断最基本的语言规则。编译器可能已经接受了不同的语句顺序作为扩展,或者是偶然的。)