不能进入第二个文件,但可以写出两个文件(内容相同),用小数据文件测试时没有问题的。所操作数据量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