| 
 
	积分7966贡献 精华在线时间 小时注册时间2017-5-8最后登录1970-1-1 
 | 
 
| 
本帖最后由 haloyang 于 2019-4-5 11:19 编辑
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 求助:计算高度场指数与海温场之间的相关系数,grads画出的图错了,陆地上缺测的指数设定了缺测,为什么还有东西,麻烦哪位大神帮忙看一下,感谢啊fortran程序:
 
 program ex
 parameter(nx=360,ny=180,n=39)
 dimension ty(n),tw(nx,ny,n)
 real ya,wa(nx,ny),syw(nx,ny),sy,sw(nx,ny),r(nx,ny)
 
 
 open(1,file='reave.grd',form='binary')
 read(1) (ty(it),it=1,n)
 close(1)
 
 open(2,file='\sst7.grd',form='binary')
 read(2) (((tw(i,j,it),i=1,nx),j=1,ny),it=1,n)
 close(2)
 
 
 do i=1,nx
 do j=1,ny
 ya=0.0
 wa(i,j)=0.0
 do it=1,n
 ya=ya+ty(it)
 wa(i,j)=wa(i,j)+tw(i,j,it)
 end do
 ya=ya/real(n)
 wa(i,j)=wa(i,j)/real(n)
 
 syw(i,j)=0.0
 sy=0.0
 sw(i,j)=0.0
 do it=1,n
 syw(i,j)=syw(i,j)+(ty(it)-ya)*(tw(i,j,it)-wa(i,j))
 sy=sy+(ty(it)-ya)**2
 sw(i,j)=sw(i,j)+(tw(i,j,it)-wa(i,j))**2
 end do
 !syw(i,j)=syw(i,j)/real(n)
 !sy=sy/real(n)
 !sw(i,j)=sw(i,j)/real(n)
 r(i,j)=0.0
 r(i,j)=syw(i,j)/sqrt(sy*sw(i,j))
 enddo;enddo
 
 do i=1,nx
 do j=1,ny
 do it=1,n
 if(tw(i,j,it)==-9.99E+08)then
 r(i,j)=-9.99E+33
 endif
 end do
 enddo;enddo;
 
 
 
 ctl文件:
 dset C:\Users\afsl\Desktop\corr.sst.grd
 undef -9.99E+33
 xdef 360 linear 0.0 1.0
 ydef 180 linear -89.5 1.0
 zdef 1 levels 1000
 tdef 39 linear jan1979 1yr
 vars 1
 corr 0 99 ql
 endvars
 
 
 
 
 
 
 
 | 
 
  
指数   |