MaskerQwQ

沟槽的Fortran

Jun 1st, 2024
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. program test
  2. parameter(nt=63,in=144,jn=73,nm=12)
  3. real slp(in,jn,nt),yh(nm,nt),ri(nt),si(nt),rr(in,jn)
  4.  
  5. open(1,file='D:\FastOpenInDesktop\Subjects\FortranProj\test\data\slp.jan.grd',access="stream",form='unformatted')
  6. do it=1,nt
  7. do iy=1,jn
  8. read(1)(slp(ix,iy,it),ix=1,in)
  9. end do
  10. end do
  11. close(1)
  12.  
  13. open(2,file='D:\FastOpenInDesktop\Subjects\FortranProj\test\data\nino34.txt',access="stream",form='unformatted')
  14. do it=1,nt
  15. read(2,*)iyear,(yh(k,it),k=1,nm)
  16. write(*,*)yh(1,it)
  17. end do
  18. close(2)
  19.  
  20. do iy=1,jn
  21. do ix=1,in
  22. do it=1,nt
  23. si(it)=yh(1,it)
  24. ri(it)=slp(ix,iy,it)
  25. end do
  26. call correlation(nt,ri,si,r)
  27. rr(ix,iy)=read
  28. end do
  29. end do
  30.  
  31. open(3,file='D:\FastOpenInDesktop\Subjects\FortranProj\test\corr.slp.txt',access="stream",form='unformatted')
  32. do iy=1,jn
  33. do ix=1,in
  34. write(3,*)rr(ix,iy)
  35. end do
  36. end do
  37. close(3)
  38.  
  39. open(4,file='D:\FastOpenInDesktop\Subjects\FortranProj\test\corr.slp.grd',access="stream",form='unformatted')
  40. do iy=1,jn
  41. do ix=1,in
  42. write(4)rr(ix,iy)
  43. end do
  44. end do
  45. close(4)
  46. end
  47.  
  48. Subroutine correlation(n,x,y,r)
  49. real x(n),y(n)
  50. avel=0.0;ave2=0.0;varl=0.0;var2=0.0
  51. do i=1,n
  52. ave1=ave1+x(i)/real(n)
  53. ave2=ave2+y(i)/real(n)
  54. end do
  55.  
  56. do i=1,n
  57. var1=var1+(x(i)-ave1)**2
  58. var2=var2+(y(i)-ave2)**2
  59. end do
  60.  
  61. tmp=0.0
  62. do i=1,n
  63. tmp=tmp+(x(i)-ave1)*(y(i)-ave2)
  64. end do
  65. r=tmp/sqrt(var1*var2)
  66.  
  67. end
Advertisement
Add Comment
Please, Sign In to add comment