开放和;读取多个.text文件

时间:2014-01-05 04:00:45

标签: fortran fortran90

我是做Fortran编程的新手。我想打开多个.txt文件(CrossSec01到CrossSec10)并将Allocatable数据读取到一个文件中。

我的代码在“读取”中给出了“文件结束错误”。那些新手可以帮助我吗?

这是我的代码:

implicit none
 real(8), allocatable :: dat(:,:,:)    ! a 3D array, no defined size yet
 integer :: i,j,k,m,n                     
 integer :: x,y,z   

 open(unit=123,file="crossSec01.txt") ! opens 1st file reads & closes file
  !read (100,20) ((dat(i,j,k)
  read(123,*) y,x
  z=30
  close(123)

  allocate (dat(i,j,k))


  do k=1,z
  write(str,'("crossSec",i2.2,".txt")')k
  open(unit=345,file=str,status="old")
  read(345,*) 
  read(345,*)
  read(345,*)

  do i = 1,y
  read(345,*)(dat(i,j,k),j=1,x) ! This is where I get my fortran runtime error "end of file" error.

  end do
    close(345)
  end do

1 个答案:

答案 0 :(得分:0)

allocate (dat(i,j,k))

我认为这是错误发生的地方。您正在使用维度dat分配数组i,j,k,但尚未初始化i,j,k。此时i,j和k的值为零。这将使数组dat的维度为零,并且您无法在其中写入任何内容。我认为你试图做allocate (dat(y,x,z))