- 积分
- 4510
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-8-19
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最近想对一块区域做时间的平均,用Fortran处理数据之后写成dat文件,放进GrADS里面画图,set gxout contour时没有问题,可以出图,但是set gxout shaded总是出现‘logic errors 8 in gxshad’的提示错误,并且只能填色部分,不能正常显示。
后来发现是fortran处理数据时出现了问题,一些缺测的点在处理时被记录成了NaN(Fortran中对无效数据的记录),所以把这些点挑出来,改成32766就解决了。
可以另外写一个txt文件,看看是否数据中混有NaN,据说GrADS有命令可以查看数据中有没有NaN,但是我不会用,也没有搜到可用的正确语句。
小问题卡了一下午,可见严谨在编程中的重要。
这是之前出现错误的部分
 - do x=1,xnum
- do y=1,ynum
- do i=1,12 !From Jan to Dec
- count=0
- do t=i,tnum-12,12
- if(yy(x,y,t)/=32766)then
- a(x,y,i)=a(x,y,i)+yy(x,y,t)
- count=count+1
- end if
- end do
- a(x,y,i)=a(x,y,i)/count !当全部缺测的站点,此处的count=0,所以a(x,y,i)会被记录成NaN,而不是32766
- end if
- end do
- end do
- end do
修改后的部分
 - do x=1,xnum
- do y=1,ynum
- do i=1,12 !From Jan to Dec
- count=0
- do t=i,tnum-12,12
- if(yy(x,y,t)/=32766)then
- a(x,y,i)=a(x,y,i)+yy(x,y,t)
- count=count+1
- end if
- end do
- if(count==0)then !加上一个判断,避免出现NaN的记录
- a(x,y,i)=32766
- else
- a(x,y,i)=a(x,y,i)/count
- end if
- end do
- end do
- end do
|
评分
-
查看全部评分
|