- 积分
- 1454
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-4-18
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2012-6-16 20:46:47
|
显示全部楼层
这是我的程序,实在找不出哪里出了毛病
parameter(nx=180,ny=89,nz=1,n=35,undef=-9.96921e+36)
dimension ty(n),tw(nx,ny,nz,n)
real ya,wa(nx,ny,nz),syw(nx,ny,nz),sy,sw(nx,ny,nz),r(nx,ny,nz),t(nx,ny,nz)
open(1,file='e:\1.txt')
read(1,*) (ty(it),it=1,n)
close(1)
open(2,file='e:\sst12.grd',form='binary')
read(2) ((((tw(i,j,iz,it),i=1,nx),j=1,ny),iz=1,nz),it=1,n)
close(2)
do iz=1,nz
do i=1,nx
do j=1,ny
ya=0.0
wa(i,j,iz)=0.0
do it=1,n
ya=ya+ty(it)
wa(i,j,iz)=wa(i,j,iz)+tw(i,j,iz,it)
end do
ya=ya/real(n)
wa(i,j,iz)=wa(i,j,iz)/real(n)
syw(i,j,iz)=0.0
sy=0.0
sw(i,j,iz)=0.0
do it=1,n
syw(i,j,iz)=syw(i,j,iz)+(ty(it)-ya)*(tw(i,j,iz,it)-wa(i,j,iz))
sy=sy+(ty(it)-ya)*(ty(it)-ya)
sw(i,j,iz)=sw(i,j,iz)+(tw(i,j,iz,it)-wa(i,j,iz))*(tw(i,j,iz,it)-wa(i,j,iz))
end do
syw(i,j,iz)=syw(i,j,iz)/real(n)
sy=sy/real(n)
sw(i,j,iz)=sw(i,j,iz)/real(n)
r(i,j,iz)=0.0
r(i,j,iz)=syw(i,j,iz)/sqrt(sy*sw(i,j,iz))
enddo;enddo;enddo
do it=1,n
do iz=1,nz
do i=1,nx
do j=1,ny
if(tw(i,j,iz,it)==undef)then
r(i,j,iz)=0.0
endif
enddo;enddo;enddo;enddo
open (3,file='e:\sst12xg.grd')
do iz=1,nz
do i=1,nx
do j=1,ny
write (3,*) r(i,j,iz)
enddo;enddo;enddo;
end
之后我就编了上面的ctl。结果就是这样。nx到底是181还是180呢,缺测值如果换成32767的话,得出的相关系数全部为零。 |
|