2013-03-21 58 views
0

嘿,我很新的Fortran和堆栈溢出..我想用Fortran的分配,但我坚持运行时错误.. 任何帮助将不胜感激读变到一个打开的文件

我想读取两个变量到我打开的文件。这是我的教授给我的示例代码,但它显示运行时错误。请帮助

subroutine input_data 
    implicit none 
    real*8 a, b 
    open(unit = 5, file = 'inputdata.dat', status = 'unknown') 
    read(5,*) a,b 
    close(5) 
    return 
    end 

它显示读取行的运行时错误。

+0

它会产生什么错误?您尝试阅读的文件的内容是什么?你应该指定更多的细节。 (也许你还应该考虑问你的主管,为什么他的代码不工作...) – 2013-03-21 11:22:53

+0

只是为了确保,你的意思是你想读取*文件中的变量*?假设这就是你的意思,代码是标准的FORTRAN,所以问题必须在文件中。但没有人可以告诉你没有这个错误信息的问题是什么。另外,由于您正在阅读文本,因此您可以向我们显示文件的内容,因为它必须是文本文件。另一件事:5号单位有点危险,因为默认情况下FORTRAN认为5是STDIN。就个人而言,我从不使用小于10的单位数。 – 2013-03-21 20:19:03

+0

还有一件事,当您返回时,a和b将会丢失。但也许你不想担心这一点。 – 2013-03-21 20:26:04

回答

0

我假设您正在从读取该文件。如果是这样,你在公开声明中的地位不是未知数,而是“旧”。如:

open(unit = 5, file = 'inputdata.dat', status = 'old') 

状态“未知”将创建文件,如果它不存在,然后尝试读取它。但是,由于它刚刚创建,因此该文件中没有任何内容,因此出现错误。

状态“旧”会给你一个aruntime错误,说明该文件不存在,如果该文件......不存在:)