我有这个代码(在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是固定形式的,所以我不确定我在这里做错了什么,任何帮助都会非常感激。
答案 0 :(得分:0)
如果C Column 9
和C 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
免费源表单提供了许多优于旧版固定源表单代码的优势。我们建议始终在新代码中使用它。