- 积分
- 1213
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-6-16
- 最后登录
- 1970-1-1
![未绑定新浪微博用户 新浪微博达人勋](source/plugin/sina_login/img/gray.png)
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 TWiligHT 于 2013-12-3 20:56 编辑
资料是1948到2012年的月平均高度场计算eU遥相关指数的已经正确,可是计算eu遥相关指数与同期环流场相关系数出了问题,说我数组溢出,而且为什么我write高度场平均值时后二十几年的值竟然是一样的,求大神帮助!!!
program ex1118
real h(144,73,12,65),eu1(65),eu2(65),eu3(65),eu(65),euu(65),ave(144,73),a(144,73),&
b(65),c(144,73),d(144,73),r1(144,73),m(65)
real mean,s,total,s1,sum1
open(10,file='e:\dqsx\swx3\h500.grd',form='binary',status='old')
do it=1,65
do k=1,12
do j=1,73
do i=1,144
read(10)h(i,j,k,it)
enddo;enddo;enddo;enddo
write(*,*)'read data ok'
do it=1,65
eu1(it)=-0.25*h(9,59,1,it)
eu2(it)=0.5*h(31,59,1,it)
eu3(it)=-0.25*h(59,53,1,it)
eu(it)=eu1(it)+eu2(it)+eu3(it)
write(*,*) eu(it)
total=total+eu(it)
enddo
mean=total/65.0 !65年遥相关指数平均值
do it=1,65
m(it)=(eu(it)-mean)**2
s=s+m(it)
enddo
s1=sqrt(s/65.0)
do it=1,65
euu(it)=(eu(it)-mean)/s1 !标准化后的1月份遥相关指数时间序列
write(*,*) euu(it)
enddo
!!!!!!!!!!!!!!!!!!EU遥相关指数与同期环流场的相关系数
do j=1,73
do i=1,144
do it=1,65
ave(i,j)=ave(i,j)+h(i,j,1,it)!65年高度场的累加,正确
enddo
enddo
enddo
do j=1,73
do i=1,144
ave(i,j)=ave(i,j)/65.0 !65年高度场平均值,错误
!write(*,*) ave(i,j)
enddo;enddo
do j=1,73
do i=1,144
do it=1,65
a(i,j)=h(i,j,1,it)-ave(i,j) !高度场距平
!write(*,*) a(i,j)
enddo;enddo;enddo
do it=1,65
b(it)=eu(it)-mean !求指数距平
enddo
do it=1,65
do j=1,144
do i=1,73
c(i,j)=c(i,j)+a(i,j)*b(it)
d(i,j)=d(i,j)+a(i,j)**2
!write(*,*) c(i,j)
!write(*,*) d(i,j)
enddo;enddo
sum1=sum1+b(it)**2
enddo
sum1=sqrt(sum1)
do j=1,73
do i=1,144
d(i,j)=sqrt((d(i,j)))
enddo;enddo
do j=1,73
do i=1,144
r1(i,j)=c(i,j)/(sum1*d(i,j))
enddo;enddo
open(12,file='e:\dqsx\swx3\euu.grd',form='binary')
do it=1,65
write(12) euu(it)
end do
open(14,file='e:\dqsx\swx3\r1.grd',form='binary')
write(14) ((r1(i,j),i=1,144),j=1,73)
end
|
-
|