- 积分
- 5118
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-10-31
- 最后登录
- 1970-1-1

|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
下面是我求T值的程序,和公式对照过,感觉没有算错。但是出来的值都是16点多,这个肯定不对了吧,但是看了一下午都没有看出来错在哪里,麻烦各位高手给看一下。谢过了·~~
program main
implicit none
integer,parameter::nt=92,nx=144,ny=37,undef=-9.99e+08
integer i,j,t,num
real r1(nt),r2(nt),c(nt),s1,s2(nx,ny),fc1,fc2(nx,ny)
real r(nt),mpv(nx,ny,nt),tjianyan(nx,ny),nr(nx,ny)
open(1,file='f:\huatu\xgr1961-1991.grd',form='binary')
open(2,file='f:\huatu\850mpv-1961-1991.grd',form='binary')
do t=1,nt
read(1) r(t)
enddo
do t=1,nt
do j=1,ny
do i=1,nx
read(2) mpv(i,j,t)
enddo
enddo
enddo
!计算降水量平均值
s1=0
do i=1,nt
s1=s1+r(i)
enddo
s1=s1/nt
!计算降水方差
fc1=0
do i=1,nt
fc1=fc1+(r(i)-s1)**2
enddo
fc1=fc1/nt
!计算位涡平均值
do j=1,ny
do i=1,nx
s2(i,j)=0
do t=1,nt
if(mpv(i,j,t).ne.undef)then
s2(i,j)=s2(i,j)+mpv(i,j,t)
else
s2(i,j)=undef
endif
enddo
enddo
enddo
do j=1,ny
do i=1,nx
if(s2(i,j).ne.undef)then
s2(i,j)=s2(i,j)/nt
else
s2(i,j)=undef
endif
enddo
enddo
!计算位涡方差
do j=1,ny
do i=1,nx
fc2(i,j)=0
do t=1,nt
if(mpv(i,j,t).ne.undef.and.s2(i,j).ne.undef)then
fc2(i,j)=fc2(i,j)+(mpv(i,j,t)-s2(i,j))**2
else
fc2(i,j)=undef
endif
enddo
enddo
enddo
do j=1,ny
do i=1,nx
if(fc2(i,j).ne.undef)then
fc2(i,j)=fc2(i,j)/nt
else
fc2(i,j)=undef
endif
enddo
enddo
!计算t值
do j=1,ny
do i=1,nx
if(fc2(i,j).ne.undef.and.s2(i,j).ne.undef)then
tjianyan(i,j)=(s1-s2(i,j))/sqrt(((nt-1)*fc1+(nt-1)*fc2(i,j))/(nt+nt-2)*sqrt(1.0/nt+1.0/nt))
else
tjianyan(i,j)=undef
endif
enddo
enddo
open(3,file='f:\huatu\tjianyan.txt')
do j=1,ny
do i=1,nx
write(3,*) abs(tjianyan(i,j))
enddo
enddo
end
|
|