回 帖 发 新 帖 刷新版面

主题:数据格式转化问题

请教高手:有个txt转grd文件的程序,编译没错误,运行时显示数据读不进去,是怎么回事呢?
运行结果:forrt1:severe <64>: input conversion error,unit 100,file e:\ncep\uwndaa.txt
源程序:program ex
implicit none
integer i,j,k
integer,parameter :: x=144
integer,parameter :: y=73
integer,parameter :: t=365
real :: dat(x,y,t)

open(100,file='e:\ncep\uwndaa.txt',form='formatted')
 do k=1,t
  do j=1,y
   do i=1,x
     read(100,fmt='(f30.8)') dat(i,j,k)
   end do
 end do
end do
close(100)

open(200,file='e:\ncep\uwndaaa.grd',form='binary')
do k=1,t
  do j=1,y
    do i=1,x
   write(200) dat(i,j,k)
    end do
  end do
 end do
close(200)

stop
end



元数据格式:
-0.3873872     -0.3964562     -0.4055951     -0.4161802     -0.4243862    
 -0.4266428     -0.4338557     -0.4344189     -0.4374759     -0.4480302    
 -0.4421558     -0.4449532     -0.4458366     -0.4488226     -0.4454437    
 -0.4480694     -0.4415421     -0.4411916     -0.4341181     -0.4280878    
 -0.4195198     -0.4159690     -0.4072542     -0.4031726     -0.3907706    
 -0.3771906     -0.3642908     -0.3546856     -0.3424076     -0.3312001    
 -0.3158914     -0.3022703     -0.2857367     -0.2749680     -0.2585018    
 -0.2369720     -0.2258776     -0.2038825     -0.1942328     -0.1750804    
 -0.1533571     -0.1400235     -0.1128732     -9.8015174E-02 -7.6415859E-02
 -5.7263914E-02 -4.1116145E-02 -2.3434343E-02 -4.0752455E-03  1.7098336E-02
  3.6558624E-02  5.8372483E-02  8.0557689E-02  9.6776463E-02  0.1068760    
  0.1321629      0.1508242      0.1692274      0.1882396      0.2049487    
  0.2239816      0.2338789      0.2549545      0.2686166      0.2836905    
  0.3058641      0.3146838      0.3270875      0.3452983      0.3576812  
。。。。。。。。。

回复列表 (共2个回复)

沙发

楼主完全连基本的 IO 操作都不会。

为什么要三层循环读源文件呢?你的数据文件是 X*Y 的啊。
为什么读文件要用 f30.8 格式呢?
既然是二进制的输出,为什么不指定 rec 和 recl ?

板凳

谢谢回复!
   Fortran刚学不久,见笑了!
   元数据是前一个程序生成的,我想把它生成三维的那种,x方向144个格点,y方向73个格点,t为365个时次,因为后面我要求下方差,用的是三维的grd文件.
   请问下楼上应该怎么改呢?谢谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册