- 积分
- 36
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-4-11
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 godenflame135 于 2012-4-29 23:46 编辑
!一个副高指数时间与全球冬季海温场进行相关的程序求调试(资料是60年的,求前28年相关)
- program xiangguan
- parameter(nt=60,nt1=28,in=180,jn=89,nk=1)
- real an(in,jn,nk,nt),dt(nt),ir(nt),rr(in,jn,nk)
- open(2,file='e:\av05.grd',form='binary')
- do k=1,nt
- read(2)dt(k)
- enddo
- open(1,file='e:\sst\sst.win.grd',form='binary')
- do k=1,nt
- do ik=1,nk
- read(1)((an(i,j,ik,k),i=1,in),j=1,jn)
- enddo
- enddo
- do ik=1,nk
- do i=1,in
- do j=1,jn
- do k=1,nt1
- ir(k)=an(i,j,ik,k)
- enddo
- call correlation(nt1,ir,dt,r)
- rr(i,j,ik)=r
- enddo
- enddo
- enddo
- open(3,file='e:\corr.grd',form='binary')
- do ik=1,nk
- do j=1,jn
- do i=1,in
- do k=1,nt1
- if(an(i,j,ik,k).eq.32767.)then
- rr(i,j,ik)=32767.
- endif
- enddo
- enddo
- enddo
- enddo
- do ik=1,nk
- do j=1,jn
- do i=1,in
- write(*,*)rr(i,j,ik)
- write(3)rr(i,j,ik)
- enddo
- enddo
- enddo
- close(3)
- end
- subroutine correlation(n,x,y,r) !
- real x(n),y(n)
- ave1=0.0; ave2=0.0; Var1=0.0; Var2=0.0
- do i=1,n
- ave1=ave1+x(i)/real(n)
- ave2=ave2+y(i)/real(n)
- enddo
- do i=1,n
- Var1=Var1+(x(i)-ave1)**2
- Var2=Var2+(y(i)-ave2)**2
- enddo
- tmp=0.0
- do i=1,n
- tmp=tmp+(x(i)-ave1)*(y(i)-ave2)
- enddo
- r=tmp/sqrt(Var1*Var2)
- end
|
|