Fortran 变量名中不再允许使用空格吗
当我在大学的时候,在Fortran IV中,我们曾经能够编写这样的程序Fortran 变量名中不再允许使用空格吗,fortran,fortran90,fortran77,Fortran,Fortran90,Fortran77,当我在大学的时候,在Fortran IV中,我们曾经能够编写这样的程序 program main integer his days, her days, total of days his days = 15 her days = 25 total of days = his days + herdays write(5,100) total of days 100 format(1X, I10)
program main
integer his days, her days, total of days
his days = 15
her days = 25
total of days = his days + herdays
write(5,100) total of days
100 format(1X, I10)
stop
end program
我尝试将其构建为一个F77程序,它编译并运行。我不知道在F77中是否明确允许使用空格,但我记得在Fortran IV(66)中用变量中的空格编写程序。它在gfortran、Powerstation 4、Silverfrost和一个旧的g77编译器中构建和运行。大概它也会在IVF编译器上工作(因为IVF在前世是Powerstation4)。我现在没有一个。如果我告诉编译器它是F90/95。。。程序,它甚至不编译
f90test.f90:2:17:
integer his days, her days, total of days
1
Error: Syntax error in data declaration at (1)
f90test.f90:4:6:
his days = 15
1
Error: Unclassifiable statement at (1)
f90test.f90:5:6:
her days = 25
1
Error: Unclassifiable statement at (1)
f90test.f90:6:6:
total of days = his days + herdays
1
Error: Unclassifiable statement at (1)
f90test.f90:8:21:
print *, total of days
1
Error: Syntax error in PRINT statement at (1)
这两个问题是
使用
.f90
文件扩展名时,它被视为自由格式的源文件。在自由格式中,空格确实很重要。此源代码形式是在Fortran 90中引入的。为了向后兼容,关键字可以以拆分方式和非拆分方式使用(GOTO
和GOTO
,END IF
和ENDIF
)。但是,标识符(名称)不允许在此源表单中包含空格
如果要使用固定格式源文件,请使用.f
或.for
。最好查阅编译器手册,了解它允许哪些扩展。固定源格式在今天仍然是有效的源格式,尽管在Fortran 2018中标记为过时。空间在固定源代码形式中没有任何意义,即使它是Fortran 90甚至Fortran 2018代码
请注意,今天的编译器将大多数代码编译为某种新标准(2003、2008或2018),无论扩展是什么。值得注意的是,扩展名.f90并不被视为Fortran 90,它只是在大多数(或所有?)编译器中标记源文件格式。另请参见此命名约定不是由标准定义的,而是非常通用的。当您使用
.f90
文件扩展名时,它被视为自由格式的源文件。在自由格式中,空格确实很重要。此源代码形式是在Fortran 90中引入的。为了向后兼容,关键字可以以拆分方式和非拆分方式使用(GOTO
和GOTO
,END IF
和ENDIF
)。但是,标识符(名称)不允许在此源表单中包含空格
如果要使用固定格式源文件,请使用.f
或.for
。最好查阅编译器手册,了解它允许哪些扩展。固定源格式在今天仍然是有效的源格式,尽管在Fortran 2018中标记为过时。空间在固定源代码形式中没有任何意义,即使它是Fortran 90甚至Fortran 2018代码
请注意,今天的编译器将大多数代码编译为某种新标准(2003、2008或2018),无论扩展是什么。值得注意的是,扩展名.f90并不被视为Fortran 90,它只是在大多数(或所有?)编译器中标记源文件格式。另请参见本标准未定义此命名约定,但它非常通用。Fortran IV和Fortran 77都允许在名称和关键字中使用空格,但它们的名称限制为6个字母。因此,在这两种方言的编译器的严格实现中,不允许所有变量名示例 Fortran IV和Fortran 77都允许在名称和关键字中使用空格,但它们的名称限制为6个字母。因此,在这两种方言的编译器的严格实现中,不允许所有变量名示例 它们可能是供应商的扩展。没有一个编译器对此表示不满。有可能像一些旧的实现一样,它们允许可变长度的名称,但只识别前6个字符,因此氧气与氧化剂相同。当我再次使用机器时,我会测试一下。它们可能是供应商的扩展。没有一个编译器对此表示不满。有可能像一些旧的实现一样,它们允许可变长度的名称,但只识别前6个字符,因此氧气与氧化剂相同。等我再上机器时,我会测试一下。