| 
 
	积分1213贡献 精华在线时间 小时注册时间2013-6-16最后登录1970-1-1 
 | 
 
| 
本帖最后由 TWiligHT 于 2013-12-3 20:56 编辑
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 资料是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
 
 | 
 
  |