Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program test
- parameter(nt=63,in=144,jn=73,nm=12)
- real slp(in,jn,nt),yh(nm,nt),ri(nt),si(nt),rr(in,jn)
- open(1,file='D:\FastOpenInDesktop\Subjects\FortranProj\test\data\slp.jan.grd',access="stream",form='unformatted')
- do it=1,nt
- do iy=1,jn
- read(1)(slp(ix,iy,it),ix=1,in)
- end do
- end do
- close(1)
- open(2,file='D:\FastOpenInDesktop\Subjects\FortranProj\test\data\nino34.txt',access="stream",form='unformatted')
- do it=1,nt
- read(2,*)iyear,(yh(k,it),k=1,nm)
- write(*,*)yh(1,it)
- end do
- close(2)
- do iy=1,jn
- do ix=1,in
- do it=1,nt
- si(it)=yh(1,it)
- ri(it)=slp(ix,iy,it)
- end do
- call correlation(nt,ri,si,r)
- rr(ix,iy)=read
- end do
- end do
- open(3,file='D:\FastOpenInDesktop\Subjects\FortranProj\test\corr.slp.txt',access="stream",form='unformatted')
- do iy=1,jn
- do ix=1,in
- write(3,*)rr(ix,iy)
- end do
- end do
- close(3)
- open(4,file='D:\FastOpenInDesktop\Subjects\FortranProj\test\corr.slp.grd',access="stream",form='unformatted')
- do iy=1,jn
- do ix=1,in
- write(4)rr(ix,iy)
- end do
- end do
- close(4)
- end
- Subroutine correlation(n,x,y,r)
- real x(n),y(n)
- avel=0.0;ave2=0.0;varl=0.0;var2=0.0
- do i=1,n
- ave1=ave1+x(i)/real(n)
- ave2=ave2+y(i)/real(n)
- end do
- do i=1,n
- var1=var1+(x(i)-ave1)**2
- var2=var2+(y(i)-ave2)**2
- end do
- tmp=0.0
- do i=1,n
- tmp=tmp+(x(i)-ave1)*(y(i)-ave2)
- end do
- r=tmp/sqrt(var1*var2)
- end
Advertisement
Add Comment
Please, Sign In to add comment