2014-10-05 70 views
2

我无法弄清楚什么是错用下面的Fortran OPEN声明:在公开声明中Fortran语言中的语法错误

filename = 'state_save.txt'     
OPEN(FILE=TRIM(dir)//TRIM(filename),UNIT=ffunit,STATUS='old',FORM='formatted', 
IOSTAT=ios, readonly) 

[我加了CR为清晰起见]

下gfortran编译(从GCC-4.8 1.1),上面提供了以下错误:

(dir)//TRIM(filename),UNIT=ffunit,STATUS='old',FORM='formatted',IOSTAT=ios, rea 
                      1 
Error: Syntax error in OPEN statement at (1) 

的代码可能编译ifort OK(但我没有ifort)。

有人可以解释什么地方出了问题,以及如何以符合标准的方式编写声明?

回答

5

关键字OPEN()READONLY不是Fortran标准的一部分。尽管几乎所有的商业编译器都支持它,但似乎并没有得到gfortran的支持。但是现在,您可以使用action='read'来获得相同的结果,这受到语言标准的支持(并且似乎也适用于我)。

+0

+1谢谢。 'action ='read''按照建议工作。 – tinlyx 2014-10-05 11:09:53

+0

理论上,gFortran应该可以通过“-fdec”等开关来支持这种扩展,但也有“问题”,其中一些在这里讨论(http://stackoverflow.com/questions/33245989/standard -fortran共享选项,在打开的语句/ 43959175#43959175) – DrOli 2017-05-14 00:14:52