- 积分
- 359
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-9-10
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
program one
implicit none
integer,parameter::nx=35,ny=21,nt=776,iyear=64
real,dimension(nx,ny,nt)::hgt
real,dimension(nx,ny,iyear)::hgtwinter
integer::i,j,k,t,irec
open(1,file='hgt500hpa.mon.dat',status='old',form='unformatted',access='direct',recl=4) !读取月平均数据,其中hgt500hpa.mon.dat是用grads转化来的
irec=0
do t=1,nt
irec=irec+1
do i=1,nx
do j=1,ny
read(1,rec=irec)hgt(i,j,t)
end do
end do
end do
close(1)
do i=1,nx
do j=1,ny
do t=12,770,12
if (hgt(i,j,t)/=-9.96921e+36.and.hgt(i,j,t+1)/=-9.96921e+36.and.hgt(i,j,t+2)/=-9.96921e+36) then
hgtwinter(i,j,(t-12)/12+1)=-9.96921e+36
else
hgtwinter(i,j,(t-12)/12+1)=(hgt(i,j,t)+hgt(i,j,t+1)+hgt(i,j,t+2))/3
end if
end do
end do
end do
!抽出冬季数据,求季平均,-9.96921e+36是缺省值
print*,hgtwinter(30,2,:)
open(2,file='hgtwinter.mean.dat',status='replace',form='unformatted',access='direct',recl=4) !写新季平均数据
irec=0
do t=1,64
irec=irec+1
do i=1,nx
do j=1,ny
write(2,rec=irec)hgtwinter(i,j,t)
end do
end do
end do
close(2)
print*,'zz'
end program one
我不知道real应该取多长,500hpa高度常大小基本都是五千多,recl取4可以读出来,recl取更小就数组越界了,再取的比4大就出很多很大的值,e的多少次幂。。。。请问recl怎么确定?4是我试出来的值。
新数据出来后也画不出来,我真不知道是怎么回事,recl应该怎么取,这个程序还有哪错了么?
|
|