错误:(1) 处的数据语句中出现语法错误



我是福特兰的新手

我尝试编译一个数学模型作为模块,但无法通过 gfortran 编译。

DATA HEADER/' YEAR MMDD UThr LThr XHI  SSN  COV  Kpm    L  ',
&            '  Glati Glong Mlati Mlong MoDip  hmF2  foF2',
&            '    NmF2   Nes       QF     MLT   ECbot  ECtop',
&            '   ECpl   TEC    TAU  h05b  h05t   Hsc '/

如何解决?

您遇到了自由源形式与固定源形式之间的语句延续(多行语句(的恐怖。为什么恐怖?这是固定源形式不能总是编译为自由源形式的极少数情况之一:

自由格式语句延续:字符&用于指示语句在下一行不是注释行的行上继续。当用于延续时,&不是语句的一部分。如果要继续使用非字符上下文,则&应为行中的最后一个非空白字符,或!之前的最后一个非空白字符。

总之:

a = some + statement &
that - needs * continuation
b = some / other * statement & ! that has a comment
and - needs ** continuation

固定形式语句延续:除注释外,字符位置6用于表示延续。如果字符位置 6 包含空白或零,则该行是新语句的初始行,从字符位置 7 开始。如果字符位置 6 包含任何字符 与空白或零相比,该行的字符位置 7-72 构成前面非注释行的延续。

总之:

123456789012345678901234567890123456789012345678901234567890123456789012 < column_nr
a = some + statement
&    that - needs * continuation
b = some / other * statement &
C that has a comment
*    and - needs ** continuation

所以OP似乎有的问题在于他在自由源代码形式中使用了固定形式语句延续。

有关更多详细信息,请参阅 Fortran 标准。

最新更新