错误:语句标签中有非数字字符,位于(1)处?

5
我在Fortran中编写了以下两行代码。
C23456789
    REAL H3 = 0                                                       
    H3=H*H*H  

我从gdb中收到了以下错误信息:

ljmd.f:186.5:

    REAL H3 = 0                                                         
     1
Error: Non-numeric character in statement label at (1)
ljmd.f:187.5:

    H3=H*H*H                                                            
     1
Error: Non-numeric character in statement label at (1)
ljmd.f:187.6:

    H3=H*H*H                                                            
      1

在别人的Fortran程序中创建和使用新变量的正确方法是什么?C23456789是程序中当前列的标签。

1个回答

8
这是任何一本随机的Fortran教程中都会提到的。我预期你已经了解了固定的源代码格式,因此任何语句必须从第7列或更远的地方开始。
另外,
REAL H3 = 0

在自由格式源Fortran中,这不是合法的,在固定格式中会有完全不同的作用(参见@francesalus的评论)。而在您的情况下,根本没有理由初始化变量。您只需执行以下操作即可:

  REAL H3
  H3 = H**3

如果您需要在其他地方进行初始化,则必须使用
  real :: a = 0

(需要使用Fortran 90),或
  REAL A
  DATA A/0/

(在Fortran77中)。请注意,这两个版本都会创建变量SAVE,你可能从其他语言中知道它是静态的。
最后一个要点是,您不能在程序的任何“中间”位置引入变量,变量的声明应该放在每个编译单元(程序、函数、子程序等)的开头。

“real h3 = 0” 是有效的Fortran代码(在此处为固定格式):它将名为“realh3”的变量设置为0。但这只是纠结,我同意你的其他观点。 - francescalus
对,忘记考虑到这个问题了。结合隐式类型,这尤其危险。 - Vladimir F Героям слава

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接