2014-10-05 65 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