爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9106|回复: 13

[求助] 西太平洋暖池海温异常序列与500hpa位势高度场相关系数分布

[复制链接]

新浪微博达人勋

发表于 2012-4-10 16:45:54 | 显示全部楼层 |阅读模式

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

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

x
海温异常与位势高度求相关的时候,是要把海温异常的距平值求出一个平均值,还是每年的距平值与位势高度相乘。这个好晕 啊,怎么编写呢?下面的是我自己写的,大家帮忙看看思路对不对
program main
implicit none
integer,parameter:: iix=145,iiy=73,mt=696,m=12,y=58
integer i,j,t,yr,mo,kk,k
real::a=0.0,avf,s,g,h
integer::anum=0
real atemp(y),sst(iix,iiy,mt),num(y),temp(iix,iiy,m,y),sst1(y),d(y),f(y),hgt(iix,iiy,mt),hgt1(iix,iiy,m,y),bnum(y),zhgt1(iix,iiy,y),b(iix,iiy,y),fm(iix,iiy),r(iix,iiy),zhgt(iix,iiy),c(iix,iiy),fz(iix,iiy),atemp1(y)
open(13,file='f:\1\hgt.grd',form='binary')
open(11,file='f:\1\sst2.grd',form='binary')
open(14,file='f:\1\temp1.grd',form='binary')
open(41,file='f:\1\xiangguan.grd',form='binary')
open(51,file='f:\1\xiangguan.txt')
do t=1,mt
read(11) ((sst(i,j,t),i=1,iix),j=1,iiy)
enddo
do yr=1,y
read(14) (atemp(yr))
enddo
do yr=1,y
if(atemp(yr)>1.0)then
anum=anum+1
endif
enddo
do yr=1,y
do mo=1,m
kk=(yr-1)*12+mo
do j=1,iiy
do i=1,iix
temp(i,j,mo,yr)=sst(i,j,kk)
enddo
enddo
enddo
enddo
do yr=1,y
num(yr)=0
do mo=6,8
do j=1,iiy
do i=1,iix
if(temp(i,j,mo,yr)<=-9.99e+08)then
num(yr)=num(yr)+1
endif
enddo
enddo
enddo
enddo
do yr=1,y
f(yr)=0
do mo=6,8
do j=1,iiy
do i=1,iix
if(temp(i,j,mo,yr)>-9.99e+08)then
f(yr)=f(yr)+temp(i,j,mo,yr)
endif
enddo
enddo
enddo
enddo
do yr=1,y
d(yr)=f(yr)/(iix*iiy*3.0-num(yr))
enddo
s=0.0
do yr=1,y
s=s+d(yr)
enddo
avf=s/y
do yr=1,y
sst1(yr)=(d(yr)-avf)
enddo
k=1
do yr=1,y
if(atemp(yr)>1.0)then
f(k)=sst1(yr)
k=k+1
endif
enddo
do k=1,anum
g=f(k)+g
enddo
g=g/anum
do t=1,mt
read(13) ((hgt(i,j,t),i=1,iix),j=1,iiy)
enddo
do yr=1,y
do mo=1,m
kk=(yr-1)*12+mo
do j=1,iiy
do i=1,iix
hgt1(i,j,mo,yr)=hgt(i,j,kk)
enddo
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
do yr=1,y
bnum(yr)=0
do mo=6,8
if(hgt1(i,j,mo,yr)<=-9.9e+08)then
bnum(yr)=bnum(yr)+1
endif
enddo
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
do yr=1,y
zhgt1(i,j,yr)=0
do mo=6,8
if(hgt1(i,j,mo,yr)>-9.9e+08)then
zhgt1(i,j,yr)=zhgt1(i,j,yr)+hgt1(i,j,mo,yr)
endif
enddo
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
do yr=1,y
zhgt1(i,j,yr)=zhgt1(i,j,yr)/(3-bnum(yr))
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
zhgt(i,j)=0.0
do yr=1,y
zhgt(i,j)=zhgt(i,j)+zhgt1(i,j,yr)
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
zhgt(i,j)=zhgt(i,j)/y
enddo
enddo
do j=1,iiy
do i=1,iix
do yr=1,y
b(i,j,yr)=zhgt1(i,j,yr)-zhgt(i,j)
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
fm(i,j)=0.0
do yr=1,y
fm(i,j)=fm(i,j)+(g*b(i,j,yr))
enddo
enddo
enddo

do j=1,iiy
do i=1,iix
fm(i,j)=fm(i,j)/anum
enddo
enddo
a=g**2
do j=1,iiy
do i=1,iix
do yr=1,y
c(i,j)=c(i,j)+b(i,j,yr)**2
enddo
enddo
enddo
do j=1,iiy
do i=1,iix
fz(i,j)=a*c(i,j)
enddo
enddo
do j=1,iiy
do i=1,iix
r(i,j)=fm(i,j)/sqrt(fz(i,j))
enddo
enddo
do j=1,iiy
do i=1,iix
write(41) r(i,j)
write(51,*) r(i,j)
enddo
enddo
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-4-11 08:51:27 | 显示全部楼层
看你这个程序会崩溃的。。。不过能自己努力先写已经不错啦,给你几个程序参考一下,弄明白算法就好办了,都是资料站的程序:
Smscorrelation 逐月序列求解相关系数fortran源程序
http://www.06climate.com/view/1119.html

smllcorrelation-逐月、逐季或其他异常序列不同月份之间的滞后超前nt月的相关系数fortran源程序
http://www.06climate.com/view/1118.html

sllyear-求逐月异常序列x(n,12)和y(n,12)(n是年)相同月份之间的滞后超前nt年的相关系数fortra
http://www.06climate.com/view/1117.html

Sllcorrelation-异常序列x(n)和y(n)之间的滞后超前的相关系数fortran源代码、源程序
http://www.06climate.com/view/1116.html

correlationmiss-求有缺省资料的两个序列x(n)和y(n)的相关系数r的fortran源代码
http://www.06climate.com/view/1114.html

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

新浪微博达人勋

发表于 2012-4-10 19:50:27 | 显示全部楼层
你这程序太恐怖了!
你求他们两个异常场的相关就好啦!
海温异常场的每个格点跟相对应高度异常场的格点求相关
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-4-10 19:50:51 | 显示全部楼层
你这程序太恐怖了!
你求他们两个异常场的相关就好啦!
海温异常场的每个格点跟相对应高度异常场的格点求相关
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-10 20:15:10 | 显示全部楼层

嘿嘿~~初次编写,不太会。。。但是这两个资料的分辨率不同,每个格点不对应的。而且还是58年的,这些混一块儿我就弄不清了。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-4-10 22:59:06 | 显示全部楼层
那你要明白你主要目的啊。根据你的需要处理数据。如果是个点不对应,如果是我的话,就会考虑求区域平均,不过就是要根据你研究的对象来考虑了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-11 10:14:42 | 显示全部楼层
lotina 发表于 2012-4-10 22:59
那你要明白你主要目的啊。根据你的需要处理数据。如果是个点不对应,如果是我的话,就会考虑求区域平均,不 ...

谢谢,我再研究研究~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-11 10:15:44 | 显示全部楼层
mofangbao 发表于 2012-4-11 08:51
看你这个程序会崩溃的。。。不过能自己努力先写已经不错啦,给你几个程序参考一下,弄明白算法就好办了,都 ...

好的~谢谢~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-4 10:04:24 | 显示全部楼层
收集的好齐全
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-7 19:00:56 | 显示全部楼层
程序怎么不能用。。。老出错
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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