爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4896|回复: 4

[求助] 急求大神指点!海温距平的多年平均,两个时间段算出来数值几乎相同,符号相反?

[复制链接]

新浪微博达人勋

发表于 2018-4-14 23:55:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 bree115 于 2018-4-15 17:42 编辑

从NOAA上下载的38年月平均海温资料,先计算了每年6-11月的平均得到avesst_jjason(x,y,yr),现在想计算前19年和后19年距平场的多年平均。但是发现结果前19年和后19年每个格点上数值的绝对值相差很小(约0.000x),而且符号相反。画出的图也是相反的分布。


program mian
implicit none
integer,parameter::x=180,y=89,mo=12,n=19,yr=38
real,parameter::undef=-9.99e+08
integer i,j,iyr,cc


real h(x,y,yr),aveh(x,y),anoh(x,y,yr)
real anoh1(x,y),anoh2(x,y)   


open(1,file='D:\lunwen\sst\avesst_jjason.grd',form='binary')  !!!6-11月平均
do iyr=1,38
   read(1)  ((h(i,j,iyr),i=1,x),j=1,y)
enddo
!平均
aveh=0.0
do i=1,x
do j=1,y
cc=0
do iyr=1,38
   if(h(i,j,iyr).ne.undef) then
   aveh(i,j)=aveh(i,j)+h(i,j,iyr)
   else
   cc=cc+1
   endif
enddo
   if(cc.eq.0) then
   aveh(i,j)=aveh(i,j)/38
   else
   aveh(i,j)=undef
   endif
enddo;enddo
!距平
do i=1,x
do j=1,y
do iyr=1,yr
   if(h(i,j,iyr).ne.undef.or.aveh(i,j).ne.undef) then
   anoh(i,j,iyr)=h(i,j,iyr)-aveh(i,j)
   else
   anoh(i,j,iyr)=undef
   endif
enddo;enddo;enddo
!!!1979-1997 ; 1998-2016
anoh1=0.0   
do i=1,x
do j=1,y
cc=0
do iyr=1,n   
   if(anoh(i,j,iyr).ne.undef) then
   anoh1(i,j)=anoh1(i,j)+anoh(i,j,iyr)
   else
   cc=cc+1
   endif
enddo
   if(cc.eq.0) then
   anoh1(i,j)=anoh1(i,j)/n  
   else
   anoh1(i,j)=undef
   endif
enddo;enddo


anoh2=0.0     
do i=1,x
do j=1,y
cc=0
do iyr=20,yr   
   if(anoh(i,j,iyr).ne.undef) then
   anoh2(i,j)=anoh2(i,j)+anoh(i,j,iyr)
   else
   cc=cc+1
   endif
enddo
   if(cc.eq.0) then
   anoh2(i,j)=anoh2(i,j)/n  
   else
   anoh2(i,j)=undef
   endif
enddo;enddo
print*,anoh2


open(10,file='D:\lunwen\sst\hc_anosst_19a.grd',form='binary')
   write(10)  ((anoh1(i,j),i=1,x),j=1,y)
close(10)
open(11,file='D:\lunwen\sst\hc_anosst_19b.grd',form='binary')
   write(11)  ((anoh2(i,j),i=1,x),j=1,y)
close(11)
end


hc_anosst_19ab22.png
D2WMK250YIV)886OANQP[NR.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-15 17:13:13 | 显示全部楼层
完全不懂海洋和气候,但是作为fortran版主硬着头皮回复楼主。
1.图相反我没看出来,至少北太的大值中心位置就不同。
2.代码我看过了,虽然效率低下但是没有错误,能够实现楼主的目的。
3.数值一致符号相反是必然的,38年距平的均值必然等于0,不管你前后两段怎么分,两段的数值都会是一样的而且符号相反。所以我也很好奇你用这个分布一致的数据是如何画出上面分布并不一致的图。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-15 17:52:32 | 显示全部楼层
lqouc 发表于 2018-4-15 17:13
完全不懂海洋和气候,但是作为fortran版主硬着头皮回复楼主。
1.图相反我没看出来,至少北太的大值中心位 ...

谢谢回复~不好意思 因为文件名设置得太像了,所以图片发错了,已经重新上传,抱歉抱歉
但是您说的第三点数值一致符号必然相反  我不太明白,每年的距平不是都不一样吗,数值一致是指的哪里呢。想不太明白
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-15 17:56:16 | 显示全部楼层
bree115 发表于 2018-4-15 17:52
谢谢回复~不好意思 因为文件名设置得太像了,所以图片发错了,已经重新上传,抱歉抱歉
但是您 ...

按照你的描述,两段时间的数值相同符号相反,也就是加起来等于零。这个是绝对正确的,因为距平的平均值必然是0。
如果还不明白,请自己动手推导一下。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-15 18:05:16 | 显示全部楼层
lqouc 发表于 2018-4-15 17:56
按照你的描述,两段时间的数值相同符号相反,也就是加起来等于零。这个是绝对正确的,因为距平的平均值必 ...

好的,谢谢回复,我应该明白了。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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