繁体   English   中英

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)
    . . .

所有的参考资料都说隐式声明必须在任何声明之前; 但是,这段代码显然可以运行。 我的想法是 (1) IMPLICIT 语句被忽略,或者 (2) 此代码在 FORTRAN 的某些风格中有效。 如果 IMPLICIT 被忽略,编译标志可以用于相同目的。

我需要确定有效/无效并简要证明我的回答。 任何想法将不胜感激。

谢谢,拉克

CHARACTER 类型是随 Fortran 77 引入的。Fortran 77 第 3.5 节“语句和行的顺序”说“在程序单元的规范语句中,隐式语句必须在除 PARAMETER 语句之外的所有其他规范语句之前。”

类似的限制存在于后来的标准中。

所描述的代码不符合要求。

(Fortran 77 甚至不需要 Fortran 处理器来诊断最基本的语言规则。编译器可能已经接受了不同的语句顺序作为扩展,或者是偶然的。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM