一个简单的 Fortran 77 程序的编译错误

Compile error for a simple Fortran 77 program

我从 Fortran 77 tutorial 中复制并粘贴了以下程序到 Sublime Text 中:

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 并从终端 (macOS Sierra) 编译:

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 另一个类似的问题没有解决问题。)

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" 语句,编译器也会报错。它期望 cC!(将整行声明为注释)或数字作为数字标签的开头。