📄 micaps_grads.txt
字号:
PROGRAM gkmicaps_grads
integer ri,IREC,cc
character*2 yea
character*2 mon,hou
character*1 ri0
character*2 ri1
character*80 a0,b0,c0,d0
real::hh(11,41,51),tt(11,41,51),td(11,41,51),uu(11,41,51),vv(11,41,51)
real::se(11,41,51),ww(11,41,51),qq(11,41,51),qf(11,41,51),qd(11,41,51)
real::vo(11,41,51),di(11,41,51),rh(11,41,51),tad(11,41,51),qad(11,41,51)
real::tt0(11,41,51),ki(41,51),ky(41,51),si(41,51),ps(41,51),ts(41,51)
character cc0(11)*4
data cc0/'1000','925','850','700','500','400','300','250','200','150','100'/
yea="07"
mon="07"
IREC=1
! ****高空:气压 温度、温度露点差、U、V分量 Se 涡度 散度 垂直速度 比湿 水汽通量 相对湿度
! 总温度 K指数 KY指数 Si指数 ************************
! OPEN (9,FILE="z:\20050422\gk20050422.dat",form="UNFORMATTED",ACCESS='DIRECT',RECL=31*41*4)
OPEN (9,FILE="E:\20070717\gk2007071708.dat",form="UNFORMATTED",ACCESS='DIRECT',RECL=41*51*4)
do ri=16,17
if (ri.lt.10) then
write(ri0,'(i1)') ri
ri1="0"//ri0
else
write(ri1,'(i2)') ri
end if
do shi=1,2
if (shi.eq.1) hou="08"
if (shi.eq.2) hou="20"
do cc=1,11
! 高空气压
OPEN (8,FILE="D:\MICAPS\high\height\"//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,41
read(8,'(10f8.1)') (hh(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (hh(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (hh(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (hh(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (hh(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') hh(cc,lat,51)
enddo
close(8)
enddo
! 高空气温
do cc=1,11
OPEN (8,FILE="D:\MICAPS\high\temper\"//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,41
read(8,'(10f8.1)') (tt(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (tt(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (tt(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (tt(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (tt(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') tt(cc,lat,51)
enddo
close(8)
enddo
! 高空温度露点差
do cc=1,11
OPEN (8,FILE="D:\MICAPS\high\t-td\"//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,41
read(8,'(10f8.1)') (td(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (td(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (td(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (td(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (td(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') td(cc,lat,51)
enddo
close(8)
enddo
! 高空U V分量
do cc=1,11
OPEN (8,FILE="D:\MICAPS\high\uv\"//trim(cc0(cc))//"\"//yea//mon//ri1//hou//".000",status="old")
read(8,'(a80)') a0
read(8,'(a80)') b0
read(8,'(a80)') c0
do lat=1,41
read(8,'(10f8.1)') (uu(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (uu(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (uu(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (uu(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (uu(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') uu(cc,lat,51)
enddo
do lat=1,41
read(8,'(10f8.1)') (vv(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (vv(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (vv(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (vv(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (vv(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') vv(cc,lat,51)
enddo
close(8)
enddo
! 高空Se
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\thetse\"//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,41
read(8,'(10f8.1)') (se(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (se(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (se(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (se(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (se(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') se(cc,lat,51)
enddo
close(8)
enddo
! 涡度
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\vor\"//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,41
read(8,'(10f8.1)') (vo(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (vo(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (vo(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (vo(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (vo(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') vo(cc,lat,51)
enddo
close(8)
enddo
! 涡度
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\div\"//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,41
read(8,'(10f8.1)') (di(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (di(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (di(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (di(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (di(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') di(cc,lat,51)
enddo
close(8)
enddo
! 高空垂直速度
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\omega\"//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,41
read(8,'(10f8.1)') (ww(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (ww(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (ww(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (ww(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (ww(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') ww(cc,lat,51)
enddo
close(8)
enddo
! 高空相对湿度
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\rh\"//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,41
read(8,'(10f8.1)') (rh(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (rh(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (rh(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (rh(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (rh(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') rh(cc,lat,51)
enddo
close(8)
enddo
! 高空水汽通量
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\qflux\"//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,41
read(8,'(10f8.1)') (qf(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (qf(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (qf(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (qf(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (qf(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') qf(cc,lat,51)
enddo
close(8)
enddo
! 高空水汽通量散度
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\qfdiv\"//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,41
read(8,'(10f8.1)') (qd(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (qd(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (qd(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (qd(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (qd(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') qd(cc,lat,51)
enddo
close(8)
enddo
! 高空比湿
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\qq\"//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,41
read(8,'(10f8.1)') (qq(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (qq(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (qq(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (qq(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (qq(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') qq(cc,lat,51)
enddo
close(8)
enddo
! 总温度tt0
do cc=1,11
OPEN (8,FILE="D:\MICAPS\physic\tt\"//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,41
read(8,'(10f8.1)') (tt0(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (tt0(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (tt0(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (tt0(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (tt0(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') tt0(cc,lat,51)
enddo
close(8)
enddo
! 温度平流tad
do cc=1,11
OPEN (8,FILE="D:\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,41
read(8,'(10f8.1)') (tad(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (tad(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (tad(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (tad(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (tad(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') tad(cc,lat,51)
enddo
close(8)
enddo
! 水汽平流qad
do cc=1,11
OPEN (8,FILE="D:\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,41
read(8,'(10f8.1)') (qad(cc,lat,lon),lon=1,10)
read(8,'(10f8.1)') (qad(cc,lat,lon),lon=11,20)
read(8,'(10f8.1)') (qad(cc,lat,lon),lon=21,30)
read(8,'(10f8.1)') (qad(cc,lat,lon),lon=31,40)
read(8,'(10f8.1)') (qad(cc,lat,lon),lon=41,50)
read(8,'(f8.1)') qad(cc,lat,51)
enddo
close(8)
enddo
! K指数
OPEN (8,FILE="D:\MICAPS\physic\ki\"//"\"//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,41
read(8,'(10f8.1)') (ki(lat,lon),lon=1,10)
read(8,'(10f8.1)') (ki(lat,lon),lon=11,20)
read(8,'(10f8.1)') (ki(lat,lon),lon=21,30)
read(8,'(10f8.1)') (ki(lat,lon),lon=31,40)
read(8,'(10f8.1)') (ki(lat,lon),lon=41,50)
read(8,'(f8.1)') ki(lat,51)
enddo
close(8)
! Ky指数
OPEN (8,FILE="D:\MICAPS\physic\ky\"//"\"//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,41
read(8,'(10f8.1)') (ky(lat,lon),lon=1,10)
read(8,'(10f8.1)') (ky(lat,lon),lon=11,20)
read(8,'(10f8.1)') (ky(lat,lon),lon=21,30)
read(8,'(10f8.1)') (ky(lat,lon),lon=31,40)
read(8,'(10f8.1)') (ky(lat,lon),lon=41,50)
read(8,'(f8.1)') ky(lat,51)
enddo
close(8)
! Si指数
OPEN (8,FILE="D:\MICAPS\physic\si\"//"\"//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,41
read(8,'(10f8.1)') (si(lat,lon),lon=1,10)
read(8,'(10f8.1)') (si(lat,lon),lon=11,20)
read(8,'(10f8.1)') (si(lat,lon),lon=21,30)
read(8,'(10f8.1)') (si(lat,lon),lon=31,40)
read(8,'(10f8.1)') (si(lat,lon),lon=41,50)
read(8,'(f8.1)') si(lat,51)
enddo
close(8)
do cc=1,11
write(9,REC=IREC) ((hh(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((tt(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((td(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((uu(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((vv(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((se(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((vo(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((di(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((ww(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((qq(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((qf(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((qd(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((rh(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((tt0(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((tad(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
do cc=1,11
write(9,REC=IREC) ((qad(cc,LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
write(9,REC=IREC) ((ki(LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
write(9,REC=IREC) ((ky(LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
write(9,REC=IREC) ((si(LAT,LON),LON=1,51),LAT=1,41)
IREC=IREC+1
enddo
enddo
close(9)
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -