【发布时间】:2013-03-10 13:19:50
【问题描述】:
我正在尝试使用一些旧的 FORTRAN 代码和一些新的 Java 代码,这些代码在 Windows(作为 exe)中工作,但在 OS X 中不工作。我尝试在 eclipse 中构建它,我得到了
make: *** [all] Segmentation fault: 11
所以我去终端并这样做,即使是不同的编译器但仍然是相同的结果:
运行 OS X 10.7.5 和 gfortran-4.2 使用标准的 -c 和 -o 命令
Program foo
open(unit = 1, file = 'variables.txt',IOSTAT= iost)
write(*,*)iost
read(1,*) P
write(*,*)P
...
end program foo
程序手动构建,但输出为:
0
At line 13 of file Cubic42.f
Fortran runtime error: End of file
我也看到了这个错误:
list in: end of file
apparent state: unit 88 named variables
last format: list io
lately reading sequential formatted external IO
Abort
显示IOSTAT返回0,说明文件好? 但它不会读取文件,即使我将 unit# 更改为 88.. 并且即使我将 CR 更改为 mac、windows 或 unix。
这似乎只是输入/输出的问题,例如,如果我对变量进行硬编码,程序就可以工作。
关于如何解决这个问题的任何想法? 提前致谢。
编辑1 这是 variables.txt 文件
-9999
15.6
500
150.9
48.98
0.000
最后有个回车,我把-9999改成正数也没关系
编辑2
我从目录中删除了文本文件并将 .f 重新制作为如下所示:
program foo
implicit none
real a, b, c, d
open(unit = 1, file = 'variables.2txt', action='write')
write(1, *) -6666
write(1, *) 6.15
write(1, *) -321
write(1, *) 5.16
close(1)
open(unit = 2, file = 'variables.2txt', action='read',form='FORMATTED')
read(2, *) a
write(*,*) a
read(2, *) b
write(*,*) b
read(2, *) c
write(*,*) c
read(2, *) d
write(*,*) d
close(2)
end program foo
然后我编译它。
输出是:
-6666.000
6.150000
-321.0000
5.160000
正如预期的那样,但是 variables.2txt 无处可寻!我很困惑,请帮忙。
编辑3 我找到了幻影文件。它位于 /users/me/phantom.txt 那么问题来了,如何让文件和可执行文件保存在同一目录下呢?
【问题讨论】:
-
能否显示输入文件的内容(前几行)?
-
输入文件在edit1
标签: fortran fortran90 gfortran fortran77 fortran95