爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4912|回复: 2

[混合编程] 有关求相关的程序求调试

[复制链接]

新浪微博达人勋

发表于 2012-4-27 22:44:58 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 godenflame135 于 2012-4-29 23:46 编辑

!一个副高指数时间与全球冬季海温场进行相关的程序求调试(资料是60年的,求前28年相关)


  1. program xiangguan                                                            
  2. parameter(nt=60,nt1=28,in=180,jn=89,nk=1)
  3. real an(in,jn,nk,nt),dt(nt),ir(nt),rr(in,jn,nk)
  4. open(2,file='e:\av05.grd',form='binary')
  5. do k=1,nt
  6. read(2)dt(k)
  7. enddo

  8. open(1,file='e:\sst\sst.win.grd',form='binary')
  9. do k=1,nt
  10. do ik=1,nk
  11. read(1)((an(i,j,ik,k),i=1,in),j=1,jn)
  12. enddo
  13. enddo

  14. do ik=1,nk
  15. do i=1,in
  16. do j=1,jn
  17.     do k=1,nt1
  18.     ir(k)=an(i,j,ik,k)
  19.     enddo
  20.     call correlation(nt1,ir,dt,r)
  21.     rr(i,j,ik)=r
  22. enddo
  23. enddo
  24. enddo
  25. open(3,file='e:\corr.grd',form='binary')
  26. do ik=1,nk
  27. do j=1,jn
  28. do i=1,in
  29. do k=1,nt1
  30. if(an(i,j,ik,k).eq.32767.)then
  31. rr(i,j,ik)=32767.
  32. endif
  33. enddo
  34. enddo
  35. enddo
  36. enddo
  37. do ik=1,nk
  38. do j=1,jn
  39. do i=1,in
  40. write(*,*)rr(i,j,ik)
  41. write(3)rr(i,j,ik)
  42. enddo
  43. enddo
  44. enddo
  45. close(3)
  46. end


  47. subroutine correlation(n,x,y,r)                                                                                                                                                !
  48. real x(n),y(n)                                 
  49. ave1=0.0; ave2=0.0; Var1=0.0; Var2=0.0                                   
  50. do i=1,n                                                                 
  51.    ave1=ave1+x(i)/real(n)                                               
  52.    ave2=ave2+y(i)/real(n)                                               
  53. enddo                                                                    
  54. do i=1,n                                                                 
  55.    Var1=Var1+(x(i)-ave1)**2                                             
  56.    Var2=Var2+(y(i)-ave2)**2                                             
  57. enddo                                                                    
  58. tmp=0.0                                                                  
  59. do i=1,n                                                                 
  60.    tmp=tmp+(x(i)-ave1)*(y(i)-ave2)                                       
  61. enddo                                                                    
  62. r=tmp/sqrt(Var1*Var2)                                                   
  63. end  




密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-4-28 00:46:56 | 显示全部楼层
数组长度貌似不匹配,你在call进去数组的时候,数组长度nt=60
但是子程序里面的数组长度变成了nt1=28
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-28 17:30:06 | 显示全部楼层
谢谢,仔细一看昨晚一点半发的哎,很感动
现已经调试好了,长度写乱了,循环也写乱了
居然是高手,群里面没认出,深表抱歉
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表