Fortran 77(1)中无法分类的陈述

时间:2017-01-15 23:43:07

标签: fortran fortran77

我有这个代码(在Fortran 77中)

        CHARACTER*20 DICT(12) C column 9

        DATA DICT/'aa','bb','for','cry','lug','bye','fly','ugly',
     M'test1','test2', C Column 6
     M'parasympathomimetic','thigmotropism'/ C column 6

我在这行"M'test1','test2',"上收到错误,说它是语法错误/无法分类的语句。该行和下一行" M'parasympathomimetic','thigmotropism'/"都在我的编辑器的第6列,但前一行给了我一些问题。

我试过移动第1行,删除'M',似乎没有任何东西可以让程序编译。

我正在编译它:

f77 test.for

我知道Fortran是固定形式的,所以我不确定我在这里做错了什么,任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:0)

如果C Column 9C Column 6只是代码中的注释,那么要在行尾添加注释,请使用!符号,而不是C

C234567
      CHARACTER*20 DICT(12) ! column 9

      DATA DICT/'aa','bb','for','cry','lug','bye','fly','ugly',
     M'test1','test2', ! Column 6
     M'parasympathomimetic','thigmotropism'/ ! column 6

答案 1 :(得分:0)

Fortran 90推出了免费的源代码表格。具有*.f90扩展名的源文件表示免费的源表单代码,即Fortran 90/95/03/08/15。 Fortran 2015是最新的标准,许多流行的编译器,包括gfortran,都支持Fortran 2008的大部分内容。

在自由源格式中,最大行长度为132个字符,而较旧的限制为72个字符。这减少了文本超出限制的可能性,这可能导致编译器误解名称。

自由来源表单中的续行是使用尾随&符号&执行的,而不是在下一行的第6列中输入字符。

例如,以下将是FORTRAN 77中的合法继续行(假设数字1实际上在第6列中):

   x = 1 + 2 + 3 + 4
 1  + 5 + 6

在自由源形式中,一行可以通过将&符号作为其最后一个字符来扩展到下一行。

x = 1 + 2 + 3 + 4 &
+ 5 + 6

在固定源格式中,前六列是为语句标签保留的,第1列也用于表示注释行。在现代代码中,使用结构化控制语句,语句标签很少见。

在自由源表单中,任何语句都可以从第1列开始。自由源表单始终使用内嵌注释样式,使用感叹号表示。内嵌注释可以从任何列开始。

以下是固定格式和免费源格式的相同代码:

C FIXED SOURCE FORM COMMENT
    DO 10, I=1, 42
    ....
 10 CONTINUE

! Free source form comment
do i=1, 42 ! Comments begin in any column
....
end do

最重要的是,通过自由来源形式,引入了重要空白的概念。以下是FORTRAN 77固定表单声明的示例,显示了现在被认为是重要空白的内容

DO I T ER = 1 , MAX ITE R

后面是没有空格的等效语句:

DO ITER=1, MAXITER

免费源表单提供了许多优于旧版固定源表单代码的优势。我们建议始终在新代码中使用它。