- 积分
- 875
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-7-14
- 最后登录
- 1970-1-1
|
发表于 2013-2-4 16:05:45
|
显示全部楼层
我自己也写过,我读出来后,直接按照**.000文件里面描述的起始经纬度和经纬向间隔来做ctl文件,结果画出来完全和直接用Meteoinfo画的不同啊,不知道是不是自己这样直接做不对...
以下是自己的code,求解:- !Micaps文件头:
- !diamond 4 12年09月15日08时850百帕温度平流场
- !12 09 15 08 0 850
- !5.313 -4.000 .0 170.0 80.0 12.0
- !33 18 2.0 -200.0 200.0 1 0
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- integer ri,IREC,cc
- character*2 yea
- character*2 mon,hou
- character*1 ri0
- character*2 ri1
- character*80 a0,b0,c0,d0
- real::tad(18,33),qad(18,33)
- character cc0(11)*4
- data cc0/'1000','925','850','700','500','400','300','250','200','150','100'/
- yea="12"
- mon="11"
- ri1="14"
- hou="08"
- IREC=1
- ! ****高空:温度平流和湿度平流读写************************
- OPEN (11,FILE="D:\1113_14_fog\20121114_08_phy.dat",form="UNFORMATTED",ACCESS='DIRECT',RECL=33*18)
- ! 温度平流tad
- cc=3
- OPEN (8,FILE="C:\data\MICAPS\physic\tadv"//trim(cc0(cc))//""//yea//mon//ri1//hou//".000",status="old")
- read(8,'(a80)') a0
- read(8,'(a80)') b0
- read(8,'(a80)') c0
- read(8,'(a80)') d0
- do lat=1,18
- read(8,'(10f8.1)') (tad(lat,lon),lon=1,10)
- read(8,'(10f8.1)') (tad(lat,lon),lon=11,20)
- read(8,'(10f8.1)') (tad(lat,lon),lon=21,30)
- read(8,'(3f8.1)') (tad(lat,lon),lon=31,33)
- enddo
- close(8)
- ! 水汽平流qad
- OPEN (8,FILE="C:\data\MICAPS\physic\qadv"//trim(cc0(cc))//""//yea//mon//ri1//hou//".000",status="old")
- read(8,'(a80)') a0
- read(8,'(a80)') b0
- read(8,'(a80)') c0
- read(8,'(a80)') d0
- do lat=1,18
- read(8,'(10f8.1)') (qad(lat,lon),lon=1,10)
- read(8,'(10f8.1)') (qad(lat,lon),lon=11,20)
- read(8,'(10f8.1)') (qad(lat,lon),lon=21,30)
- read(8,'(3f8.1)') (qad(lat,lon),lon=31,33)
- enddo
- close(8)
- write(11,REC=IREC) ((tad(LAT,LON),LON=1,33),LAT=18,1,-1)
- close(9)
- end
复制代码 还有对应的ctl:
dset D:\20120915_08_phy.dat
undef 9999
title physic
options yrev
xdef 33 linear 0 5.313
ydef 18 linear 12 4.000
zdef 1 levels 850
tdef 1 linear 08z15Sep2012 1dy
vars 1
tadv 1 99 temperature advection
endvars |
|