2013-03-10 79 views
0

我试图用一些旧的Fortran代码一些新的Java代码在Windows中工作(作为一个exe),但不是在OS X中我尝试建立它在Eclipse中,我得到Fortran I/O,首先读取的是EOF?

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,这意味着文件是好的? 但它不会读取文件,即使我更改单位#来说,88 ..并且即使我将CR更改为mac,windows或unix。

它似乎只是输入/输出的问题,如果我硬编码变量,例如,该程序的作品。

有关如何解决此问题的任何想法? 在此先感谢。

EDIT1 这里是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 所以问题是,如何将文件保存在与可执行文件相同的目录中?

+0

您可以显示输入文件的内容(前几行)吗? – 2013-03-10 14:18:35

+0

输入文件在编辑1 – tricknology 2013-03-10 19:29:15

回答

1

我得到一个非常类似的错误信息到你的

  0 
At line 4 of file proba.f (unit = 1, file = 'variables.txt') 
与文件 variables.txt,我根据旧的MAC公约 ^M明确设置的行结束字符(而不是在Linux上运行代码时

Unix的^J)。所以,我猜,这是一个EOL惯例问题。你最终可能会尝试写两行到一个文件,并调查文件,以决定哪些EOL-约定gfortran期待您的系统上:

program foo 
    implicit none 
    open(unit = 1, file = 'variables.txt', action='write') 
    write(1, *) -9999 
    write(1, *) 15.6 
    close(1) 
end program foo 

而且,我肯定会去更近的gfortran编译器(目前的稳定版是4.7.2版)。

+0

好的,这似乎工作得更好,但是,文本文件既不创建(如果缺少)或重写(如果存在)非常感谢! – tricknology 2013-03-10 16:39:51

+0

好吧,现在我有一些修补程序,我发现运行该程序后,只有两个值创建了一个名为variables.txt的文件,现在我的后续尝试(具有相同名称的不同文本文件)在两次读取后失败(EOF)当我知道有更多的条目比。 – tricknology 2013-03-10 18:31:29

+0

我现在遇到了一个轻微和非常奇怪的问题:文本文件似乎被写入和读取但不可见。更新位于edit2 – tricknology 2013-03-10 19:10:32