- 积分
- 7124
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2016-7-4
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
;脚本仅供参考,数据处理时间有点长。本人编程不太好,还请编程牛人优化下程序。
;下面有测试数据
begin
sta = asciiread("/mnt/d/WRFModel/NCL/data0.txt",(/17166,12/),"float")
baoyu = sta(:,5)
year = sta(:,0)
mon = sta(:,1)
tem = sta(:,4)
dataa = new((/564,4/),float)
m=0
n=0
do nt = 1961,2007,1
sumtemp0=sta(0,11)
sumrain0=sta(0,11)
sumtemp1=sta(1,11)
sumrain1=sta(1,11)
sumtemp2=sta(2,11)
sumrain2=sta(2,11)
sumtemp3=sta(3,11)
sumrain3=sta(3,11)
sumtemp4=sta(4,11)
sumrain4=sta(4,11)
sumtemp5=sta(5,11)
sumrain5=sta(5,11)
sumtemp6=sta(6,11)
sumrain6=sta(6,11)
sumtemp7=sta(7,11)
sumrain7=sta(7,11)
sumtemp8=sta(8,11)
sumrain8=sta(8,11)
sumtemp9=sta(9,11)
sumrain9=sta(9,11)
sumtemp10=sta(10,11)
sumrain10=sta(10,11)
sumtemp11=sta(11,11)
sumrain11=sta(11,11) ;设置初始值为0
do n=0,17165,1
if ( sta(n,0) .eq. nt ) then
if (sta(n,1) .eq. 1) then
dataa(m,0)=nt
dataa(m,1)=1
sumtemp0=sumtemp0+sta(n,4)
sumrain0=sta(n,5)+sumrain0
dataa(m,2)=sumtemp0*0.1/31
dataa(m,3)=sumrain0/31
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 2) then
dataa(m+1,0)=nt
dataa(m+1,1)=2
sumtemp1=sumtemp1+sta(n,4)
sumrain1=sta(n,5)+sumrain1
dataa(m+1,2)=sumtemp1*0.1/28
dataa(m+1,3)=sumrain1/28
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 3) then
dataa(m+2,0)=nt
dataa(m+2,1)=3
sumtemp2=sumtemp2+sta(n,4)
sumrain2=sta(n,5)+sumrain2
dataa(m+2,2)=sumtemp2*0.1/31
dataa(m+2,3)=sumrain2/31
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 4) then
dataa(m+3,0)=nt
dataa(m+3,1)=4
sumtemp3=sumtemp3+sta(n,4)
sumrain3=sta(n,5)+sumrain3
dataa(m+3,2)=sumtemp3*0.1/30
dataa(m+3,3)=sumrain3/30
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 5) then
dataa(m+4,0)=nt
dataa(m+4,1)=5
sumtemp4=sumtemp4+sta(n,4)
sumrain4=sta(n,5)+sumrain4
dataa(m+4,2)=sumtemp4*0.1/31
dataa(m+4,3)=sumrain4/31
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 6) then
dataa(m+5,0)=nt
dataa(m+5,1)=6
sumtemp5=sumtemp5+sta(n,4)
sumrain5=sta(n,5)+sumrain5
dataa(m+5,2)=sumtemp5*0.1/30
dataa(m+5,3)=sumrain5/30
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 7) then
dataa(m+6,0)=nt
dataa(m+6,1)=7
sumtemp6=sumtemp6+sta(n,4)
sumrain6=sta(n,5)+sumrain6
dataa(m+6,2)=sumtemp6*0.1/31
dataa(m+6,3)=sumrain6/31
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 8) then
dataa(m+7,0)=nt
dataa(m+7,1)=8
sumtemp7=sumtemp7+sta(n,4)
sumrain7=sta(n,5)+sumrain7
dataa(m+7,2)=sumtemp7*0.1/31
dataa(m+7,3)=sumrain7/31
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 9) then
dataa(m+8,0)=nt
dataa(m+8,1)=9
sumtemp8=sumtemp8+sta(n,4)
sumrain8=sta(n,5)+sumrain8
dataa(m+8,2)=sumtemp8*0.1/30
dataa(m+8,3)=sumrain8/30
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 10) then
dataa(m+9,0)=nt
dataa(m+9,1)=10
sumtemp9=sumtemp9+sta(n,4)
sumrain9=sta(n,5)+sumrain9
dataa(m+9,2)=sumtemp9*0.1/31
dataa(m+9,3)=sumrain9/31
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 11) then
dataa(m+10,0)=nt
dataa(m+10,1)=11
sumtemp10=sumtemp10+sta(n,4)
sumrain10=sta(n,5)+sumrain10
dataa(m+10,2)=sumtemp10*0.1/30
dataa(m+10,3)=sumrain10/30
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
if (sta(n,1) .eq. 12) then
dataa(m+11,0)=nt
dataa(m+11,1)=12
sumtemp11=sumtemp11+sta(n,4)
sumrain11=sta(n,5)+sumrain11
dataa(m+11,2)=sumtemp11*0.1/31
dataa(m+11,3)=sumrain11/31
opt=True
opt@fout="/mnt/d/WRFModel/NCL/zuoye.txt"
write_matrix (dataa, "f6.0,1x,f8.2,1x,f10.2,1x,2f7.2", opt)
end if
end if
end do
m=m+12
if (m .gt. 564) then
exit
end if
end do
end
|
|