1

我一直在搜索这段代码很长时间,似乎无法找到它不起作用的原因......也许局外人的观点可以提供帮助。

!I open File 1

!Opening File 1
open(2, File='File1.txt',status='old')
read(2,*)!File 1 header

PRINT*,'File1.txt read' 

!Read it

DO b=1,nb
  DO i=1,ni(b)          
       READ(2,*)dum(b,i),Qr(1,xbu(b),i),hr(1,xbu(b),i),Ar(1,xbu(b),i),Pr(1,xbu(b),i),dx(xbu(b),i),sx(xbu(b),i)
  END DO
END DO

没关系。我已经打印出来了,都在那里。但是当我转到文件 2 时,做同样的事情:

PRINT*,'Reading File 2 '
open(3, File='File2.txt',status='old')    !<- It stays here forever.
PRINT*,'File2.txt read'

这些文件是纯 txt,具有像这样的真实值

文件 1:

11  0   0   0   0   6500    1.2

文件 2

11  0.00    0.00    0.00    0.0

关于什么可能导致相同的代码第二次失败的任何想法?

4

1 回答 1

1

你可能应该在那里抛出一些错误检查,尝试把

open(3, File='File2.txt',status='old',iostat=io_status, err=100)

放在某个地方

100 write(*,*) 'io status = ', io_status
stop

我还建议编写一个函数来检查第一个可用的 fortran 单元号,而不是对其进行硬编码,例如在 fortran 中获取空闲单元号

于 2013-04-09T20:56:23.620 回答