- 积分
- 140
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-12-12
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 反战Z 于 2017-3-10 12:55 编辑
想算降水在时间域上的回归,需要建立一个时间场,目标是建立128*72格点在55年内的场。
但是我建立的场感觉做完以后是55层高度?
程序如下:
program xx
implicit none
integer:: i,j,y
integer::a(128,72,1),b(128,72,55)
a(:,:,:)=1 !对a整层格点赋值为1
b(:,:,1)=1 !对b第一层格点赋值为1
do y=1,54
b(:,:,y+1)=b(:,:,y)+a(:,:,1)
end do
open(12,file='G:\55year\1961-2015\1961-2015time.dat',form='unformatted',access='direct',recl=128*72*55)
do y=1,55
write(12,rec=y) ((b(i,j,y),i=1,128),j=1,72)
end do
close(12)
print*,b(:,:,40) !此处检查数组的真确性
pause
stop
end
得出的DAT是没有问题的,每一层都是对的,
CTL如下:
dset G:\55year\1961-2015\1961-2015time.dat
undef -9999.0
xdef 128 linear 72 0.5
ydef 72 linear 18 0.5
zdef 1 linear 0 1
tdef 55 linear jun1961 1yr
vars 1
year 1 99***
endvars
感觉我这里是不是zdef 不该这么写,读的数全为0,我感觉是把zdef给读了出来,
我在想怎么该才能让系统认为55层是T而不是Z。
希望大家帮助下,谢谢了。
|
|