主题:循环操作多个文件问题
不能进入第二个文件,但可以写出两个文件(内容相同),用小数据文件测试时没有问题的。所操作数据量1.8G/文件,请教解决之道。CODE如下
program xy
integer ::status=0,n=0
real dd(360,180,2928)
character(256)str
integer i,j,k,t
character(256) filename1,form,filename2
integer m
do m=1,2
t=1948+m
write(form,"(i4)") t
! filename1='/cern/home/huangm/global/3-hourly/dlwrf/dlwrf3h'//trim(adjustl(form))//'.dat'
filename1='f:/dlwrf3h'//trim(adjustl(form))//'.dat'
!filename2='/cern/home/huangm/global/3-hourly/dlwrf/lwrf3h'//trim(adjustl(form))//'.asc'
filename2='f:/lwrf3h'//trim(adjustl(form))//'.asc'
open(10,file=filename1)
do while(.true.)
if(status/=0)exit
read(10,"(a)",iostat=status) str
if(index(str,'dlwrf =').ne.0) then
!allocate(dd(i,j,k),stat=n)
!if(n/=0)exit
read(10,*,iostat=status)(((dd(i,j,k),i=1,360),j=1,180),k=1,2928)
end if
end do
print*,t
print *,dd(1,1,1)
open(11,file=filename2)
write(11,*) "ncols 79"
write(11,*) "nrows 50"
write (11,*) "xllcorner 68.00"
write (11,*) "yllcorner 4.99"
write(11,*) "cellsize 1"
write (11,*) "NODATA_value -9999.00"
write(11,"(79f15.4)") (((dd(i,j,k),k=1,2928),j=144,95,-1),i=146,68,-1)
close(10)
close(11)
end do
print *,"Ok!"
end