Fortran 字符声明及其数据语句能否位于隐式语句之前?
FORTRAN是20世纪70年代我的第一种编程语言,但我无法确定下面的FORTRAN代码是否有效。我没有办法编译或运行代码Fortran 字符声明及其数据语句能否位于隐式语句之前?,fortran,fortran77,Fortran,Fortran77,FORTRAN是20世纪70年代我的第一种编程语言,但我无法确定下面的FORTRAN代码是否有效。我没有办法编译或运行代码 SUBROUTINE ABC(PARM1, PARM2) CHARACTER*40 projName DATA projName /'...values...'/ C大量评论… C变量声明从这里开始(确切的措辞) 所有的引用都说隐式语句必须出现在任何声明之前;然而,这段代码显然是运行的。我的想法是:(1)隐式语句被忽略,或者(2)这段代码在某种形
SUBROUTINE ABC(PARM1, PARM2)
CHARACTER*40 projName
DATA projName /'...values...'/
C大量评论…
C变量声明从这里开始(确切的措辞)
所有的引用都说隐式语句必须出现在任何声明之前;然而,这段代码显然是运行的。我的想法是:(1)隐式语句被忽略,或者(2)这段代码在某种形式的FORTRAN中是有效的。如果忽略IMPLICIT,编译标志也可以用于相同的目的
我需要判断我的答案是否正确,并简要说明我的答案是否正确。任何想法都将不胜感激
谢谢,
lac字符类型是用Fortran 77引入的。Fortran 77第3.5节“语句和行的顺序”说“在程序单元的规范语句中,隐式语句必须位于除参数语句以外的所有其他规范语句之前。” 在以后的标准中也存在类似的限制 所述代码不符合要求
(Fortran 77甚至不需要Fortran处理器来诊断最基本的语言规则。编译器可能接受了不同的语句顺序作为扩展,或者是出于偶然。)即使是较新的标准也只要求处理器“包含检测和报告”指定非标准的能力。默认情况下不需要这样做,并且大多数都接受至少一些扩展,除非您指定的选项经常涉及“严格标准”之类的词语。谢谢你们的回答。
IMPLICIT REAL*8(A-H,O-Z)
(the rest of the declarations)
. . .