- 积分
- 1725
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-9-19
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 云大小子 于 2011-12-2 10:23 编辑
我用来读取数据批处理的fortran程序如下
!written by asu to read pom outdata
parameter(ix=148,iy=80,iz=1,it=1456)
real t(ix,iy,iz),u(ix,iy,iz),v(ix,iy,iz),s(ix,iy,iz)
character a1*1,a2*2,a3*3,a4*4,filename*100
open(200,file='uvts20y.grd',form='unformatted',
& access='direct',recl=ix*iy)
irec=0
do iday=1,it
if(iday.lt.10)then
write(a1,'(i1)')iday
a4='000'//a1
elseif(iday.lt.100)then
write(a2,'(i2)')iday
a4='00'//a2
elseif(iday.lt.1000)then
write(a3,'(i3)')iday
a4='0'//a3
else
write(a4,'(i4)')iday
endif
filename='pomout0'//a4 ( !前面这些都是在读取
(文件名 ,前面这些都没错 因为我在这加上 print*,filename 能输出一系列名称 )
open(100,file="filename"//".txt", form='formatted',
$ status='old')
do iii=1,2
read(100,*)
enddo
read(100,101)t
101 format(8e12.5)
、 read(100,101)u
、 read(100,101)v
read(100,101)s
close(100) 主要就是这前面一段关于打开文件,读取里面的数据感觉有问题
write(6,*)iday
do k=1,iz
irec=irec+1
write(200,rec=irec)((t(i,j,k),i=1,ix),j=1,iy)
enddo
do k=1,iz
irec=irec+1
write(200,rec=irec)((u(i,j,k),i=1,ix),j=1,iy)
enddo
do k=1,iz
irec=irec+1
write(200,rec=irec)((v(i,j,k),i=1,ix),j=1,iy)
enddo
do k=1,iz
irec=irec+1
write(200,rec=irec)((s(i,j,k),i=1,ix),j=1,iy)
enddo
enddo
end
c 以上的程序 编译没错误,执行出项了如下的错误
需要读取的txt数据里面的数据分布是下面的一个截图:
总体说一下吧 ,每一列代表一个变量,我要把一列的数据读成一个水平的148x80水平范围的grib数据。
各位有谁知道的 或者处理过的 请给小弟我指点指点 本人不胜感激!!
|
|