代码之家  ›  专栏  ›  技术社区  ›  user758077

简单Fortran 77程序的编译错误

  •  0
  • user758077  · 技术社区  · 9 年前

    tutorial :

    program circle
          real r, area
    
    c This program reads a real number r and prints
    c the area of a circle with radius r.
    
          write (*,*) 'Give radius r:'
          read  (*,*) r
          area = 3.14159*r*r
          write (*,*) 'Area = ', area
    
          stop
          end
    

    我将其保存为 circle.f

    gfortran circle.f
    

    它返回了错误消息:

    circle.f:1:1:
    
     program circle
     1
    Error: Non-numeric character in statement label at (1)
    circle.f:1:1:
    
     program circle
     1
    Error: Unclassifiable statement at (1)
    

    我该怎么修?( The answer

    1 回复  |  直到 9 年前
        1
  •  2
  •   chw21    9 年前

    Fortran 77具有固定格式的源代码。语句只能使用第7列和第73列之间的字符。(前6个字符用于将整行声明为注释,作为数字标签,或表示此行是前一行的延续。)第74个及以后的字符被忽略。

    在此范围内,将忽略空格。因此,以下几行是相同的:

    column   1    1    2    2    3    3    4    4
    1   5    0    5    0    5    0    5    0    5
    -----------------------------------------------
          if (i .le. 10) call my_sub(i)
          if(i.le.10)callmy_sub(i)
              i   f ( i. le .10) cal lmy_ sub(i)
    

    我让你决定哪一本最容易读。

    但是,如果从第一个字符开始,即使是从“program”语句开始,编译器也会抱怨。它期望 c C , !

    推荐文章