- 积分
- 1083
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-3-23
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我有1948-2013年共66年的相对湿度月平均资料,现在想做一个多年月平均。具体计算部分应该没什么问题,大家帮我看看文件的读写有什么问题。之前用的是form='binary',结果运行出来的数据个数比正确的个数多了一些,现在换form=‘unformatted’,结果更离谱了,大家帮忙看看问题出在哪。十分感谢!下面是程序。
program ex
integer i,j,k,t,t1,irec,error
integer,parameter :: nx=144,ny=73,nz=17,nt=792,ntt=12
real air(nx,ny,nz,nt),mair(nx,ny,nz,ntt)
open(10,file='E:/data/mon.mean.grd/air.mon.mean.grd',form='unformatted',status='old',access='direct',recl=nx*ny*4)
open(11,file='E:/data/mon.mean.out/air.out.txt',form='formatted')
!读数据
irec=0
do t=1,nt
do k=1,nz
irec=irec+1
read(10,rec=irec,iostat=error) ((air(i,j,k,t),i=1,nx),j=1,ny)
if(error<0) exit
end do
end do
!计算1948-2013年共66年各月平均(12*66=792)
do i=1,nx
do j=1,ny
do k=1,nz
do t1=1,ntt
t=t1
mair(i,j,k,t1)=0
do while(t<=792)
mair(i,j,k,t1)= mair(i,j,k,t1)+air(i,j,k,t)
t=t+12
end do
mair(i,j,k,t1)=mair(i,j,k,t1)/66
end do
end do
end do
end do
!写数据
do t=1,ntt
do k=1,nz
write(11,*) ((mair(i,j,k,t),i=1,nx),j=1,ny)
end do
end do
end
|
|