- 积分
- 2435
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-12-2
- 最后登录
- 1970-1-1

|
GrADS
系统平台: |
win7 |
问题截图: |
|
问题概况: |
各位大神,遇到一个问题,我利用清风大神之前贴出来的《Fortran+Grads站点作图详解》,想自己绘制一个站点资料的数据,数据格式已经按照站点资料的写好了,但grads没法生成map文件,MeteInfo也没法画图,不知道是哪里出问题了,请各位帮我查查。 |
我看过提问的智慧: |
看过 |
自己思考时长(天): |
3 |
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
各位大神,遇到一个问题,我利用清风大神之前贴出来的《Fortran+Grads站点作图详解》,想自己绘制一个站点资料的数据,数据格式已经按照站点资料的写好了,但grads没法生成map文件,MeteInfo也没法画图,不知道是哪里出问题了,请各位帮我查查。
以下是程序:
Fortran:
program main
implicit none
!=======================<<变量说明>>=====================================
! 该数据总共有498行
! i是循环变量
! 数据第一列为站号station,第二列为经度lon,第三列为纬度lat,第四列为年平均降水量rain_year
! 第五列为≥0.1mm降水日数,第六列为≥10.mm降水日数,第七列为≥25.0mm降水日数
! 第八列为≥10.0mm降水频率,第九列为≥25.0mm降水频率
!================================================================================
integer,parameter:: N=498 !N表示站点个数(数据行数)
integer i,nlev,flag !i表示循环变量;nlev表示总层次,地面变量为1层,如果为0表示该时次结束;flag表示地面数据,有为1,无为0
real station(N),lon(N),lat(N),rain_year(N),rain_1(N),rain_10(N),rain_25(N),pec_10(N),pec_25(N),climate(N)
real tim !tim是时间偏移量,也可以说是时间步长
tim=0.0
nlev=1
flag=1
open(10,file='D:\Climatetest\station.txt',form='formatted')
do i=1,N
read(10,*) station(i),lon(i),lat(i),rain_year(i),rain_1(i),rain_10(i),rain_25(i),pec_10(i),pec_25(i)
end do
close(10)
!资料质量控制
do i=1,N
if(lon(i)>360 .OR. lat(i)>90) then
lon(i)=48.0
lat(i)=107.0
climate=999.99
endif
enddo
!计算阈值数 年降水量≥600毫米,日降水10mm频率20%对应值0.6726,日降水25mm频率20%对应值0.0618
do i=1,N
if(rain_year(i)>6000 .AND. pec_10(i)>0.6726 .AND. pec_25(i)>0.0618) then
climate(i)=1
elseif(rain_year(i)>6000 .AND. pec_10(i)>0.6726 .AND. pec_25(i)<0.0618) then
climate(i)=2
elseif(rain_year(i)>6000 .AND. pec_10(i)<0.6726 .AND. pec_25(i)>0.0618) then
climate(i)=3
elseif(rain_year(i)>6000 .AND. pec_10(i)<0.6726 .AND. pec_25(i)<0.0618) then
climate(i)=4
else
climate(i)=0
endif
enddo
!将数据写入二进制文件
open(20,file='D:\Climatetest\climate.grd',form='binary')
open(30,file='D:\Climatetest\climate.txt',form='formatted')
do i=1,N
write(20) station(i),lat(i),lon(i),tim,nlev,flag,climate(i)
write(30,*) station(i),lat(i),lon(i),tim,nlev,flag,climate(i)
end do
nlev=0
write(20) station(i-1),lat(i-1),lon(i-1),tim,nlev,flag
! write(30,*) station(i-1),lat(i-1),lon(i-1),tim,nlev,flag
close(20)
close(30)
end
以下是CTL:
dset D:/Climatetest/climate.grd
dtype station
stnmap D:/Climatetest/dbzmap.map
undef 999
title Station Data
tdef 1 linear Jan2018 1mo
vars 1
C 0 99 climate data
endvars
然后错误提示:
invalid station hdr found in station binary file
possible causes: invalid level count in hdr
descriptor file mismatch
file not station data
invalid relative time
请各位大神救救我┭┮﹏┭┮
|
|