- 积分
- 6974
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-2-23
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2014-3-27 21:26:22
|
显示全部楼层
本帖最后由 漫天飞雪 于 2014-3-27 21:27 编辑
program main
!--------------------------------------------
!hadisst序列lon:179.5~179.5 1degree lat:-89.5~89.5 1degree time:jan1870~apr2012 1mon
!sst1原序列 sst取时间段后的序列 sy年平均后的海温序列
!-------------------------------------------
parameter(NX=360,NY=180,NT0=1708,NT=1200,N=100)
real count
real,allocatable:: sst1(:,:,:),sst(:,:,:),sy(:,:,:)
allocate(sst1(NX,NY,NT0),sst(NX,NY,NT),sy(nx,ny,n))
open(11,file='d:\data\hadisst.grd',form='binary')
do it=1,nt0
read(11)((sst1(ix,iy,it),ix=1,nx),iy=1,ny)
enddo
close(11)
sy=0.0
do ix=1,nx
do iy=1,ny
do it=1,nt
sst(ix,iy,it)=sst1(ix,iy,it+492) !提取1911年到2010年数据
enddo
do t=1,n
count=12.0
do mon=1,12
it=(t-1)*12+mon
if(sst(ix,iy,it)==-9.9900000E+08)then
count=count-1
else
sy(ix,iy,t)=sy(ix,iy,t)+sst(ix,iy,it)
endif
enddo
if (count==0.0)then
sy(ix,iy,t)=-9.9900000E+08
else
sy(ix,iy,t)=sy(ix,iy,t)/count
endif
enddo
enddo
enddo
open(13,file='d:\data\mean.grd')
write(13,*)(((sy(ix,iy,it),ix=1,nx),iy=1,ny),it=1,n)
close(13)
open(16,file='d:\data\mean.dat')
write(16,*)(((sy(ix,iy,it),ix=1,nx),iy=1,ny),it=1,n)
close(16)
deallocate(sst1,sst,sy)
end
|
|