linux 下 Fortran的运行时错误

在windows 上运行很正常,在Linux服务器上编译通过,就是产生运行时错误,而且是发生在读入文件的部分,很头疼啊。。。

Linux端错误如下:
iend= 720
At line 316 of file **.f
Fortran runtime error: End of file

第316行附近代码如下:
Open(11,file='./data/dept10.txt')
Do J=JM,1,-1
Read(11,*) (H(I,J),I=1,IM) !此处为第316行
Enddo
Close(11)
解释下:JM IM H(I,J) 都是在.h文件中声明的如下:
PARAMETER (IM=57,JM=37……
COMMON/BLK2D/H(IM,JM)……

希望大虾踊跃指导,万分感谢。。。

unix与windows的文本文件格式不一致,主要是回车符不一致。
请在dept10.txt文件最后加一个空行,然后用ascii模式ftp上传到linux。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-14
Fortran runtime error: End of file
是说读文件时读到尾部了。

可能1:文件dept10.txt少于JM行
可能2:有人说gFortran有BUG,要在文件末尾加一个空行(即总共JM+1行)。我没试过,希望有用吧。
第2个回答  2010-09-14
读入文件出错
建议你格式化读入
...
read(11,'(57f12.4)',error=10) (...)
...
10 pause 2
f12.4是你的数据格式。
windows下的文本文件末尾是两个字符代表回车,Linux下是一个。Fortran有时会出现这样的错误。你也可以读一行写屏幕输出一行,看哪一行错了。希望对你有帮助
相似回答