主题:菜鸟求助!!急求!!
请问如何用fortran编写程序 把资料变为二进制形式 使之能够在grads上使用?
编写Fortran程序,将上述第一类资料1)-3)所列资料转成二进制格式;4)资料单独转成二进制形式;并配以相应的数据描述文件,即ctl文件。
注意:验证转换后的资料是否正确,可以再配以ctl文件以后,对资料进行作图,应该与提供的第二类资料图形一致。
用FORTRAN打开DATA.for进行编写 运行生成 DATA.grd文件
parameter(ii=37,jj=17)
real var(ii,jj)
open(1,file='d:\dat\u850.dat')
open(2,file='d:\dat\v850.dat')
open(3,file='d:\dat\u200.dat')
open(4,file='d:\dat\v200.dat')
open(5,file='d:\dat\h500.dat')
open(6,file='d:\dat\tsfc.dat')
open(12,file='d:\DATA.grd',form='binary')
do 200 iy=1,4
do 100 m=1,12
ccc read u850
read(1,1000)
read(1,2000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc read u200
read(3,1000)
read(3,2000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc read v850
read(2,1000)
read(2,2000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc read v200
read(4,1000)
read(4,2000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc write h500
read(5,1000)
read(5,3000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc write tsfc
read(6,1000)
read(6,4000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
100 continue
200 continue
1000 format(2i7)
2000 format(37F6.2)
3000 format(37f8.1)
4000 format(37f7.2)
end
(2)编写对应ctl文件
dset d:\DATA.grd
undef -9.99E+33
title NCEP/NCAR REANALYSIS PROJECT
xdef 37 linear 60.000 2.500
ydef 17 linear 0.000 2.500
zdef 2 levels 850 200
tdef 48 linear JAN1982 1mo
vars 4
U 2 99 u wind (m/s)
V 2 99 v wind (m/s)
H 1 99 H500
TSFC 1 99 TSFC DATA
endvars
这样写对吗?急求!!!
[size=3][/size]
编写Fortran程序,将上述第一类资料1)-3)所列资料转成二进制格式;4)资料单独转成二进制形式;并配以相应的数据描述文件,即ctl文件。
注意:验证转换后的资料是否正确,可以再配以ctl文件以后,对资料进行作图,应该与提供的第二类资料图形一致。
用FORTRAN打开DATA.for进行编写 运行生成 DATA.grd文件
parameter(ii=37,jj=17)
real var(ii,jj)
open(1,file='d:\dat\u850.dat')
open(2,file='d:\dat\v850.dat')
open(3,file='d:\dat\u200.dat')
open(4,file='d:\dat\v200.dat')
open(5,file='d:\dat\h500.dat')
open(6,file='d:\dat\tsfc.dat')
open(12,file='d:\DATA.grd',form='binary')
do 200 iy=1,4
do 100 m=1,12
ccc read u850
read(1,1000)
read(1,2000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc read u200
read(3,1000)
read(3,2000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc read v850
read(2,1000)
read(2,2000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc read v200
read(4,1000)
read(4,2000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc write h500
read(5,1000)
read(5,3000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
ccc write tsfc
read(6,1000)
read(6,4000) ((var(i,j),I=1,ii),j=1,jj)
write(12) ((var(i,j),I=1,ii),j=1,jj)
100 continue
200 continue
1000 format(2i7)
2000 format(37F6.2)
3000 format(37f8.1)
4000 format(37f7.2)
end
(2)编写对应ctl文件
dset d:\DATA.grd
undef -9.99E+33
title NCEP/NCAR REANALYSIS PROJECT
xdef 37 linear 60.000 2.500
ydef 17 linear 0.000 2.500
zdef 2 levels 850 200
tdef 48 linear JAN1982 1mo
vars 4
U 2 99 u wind (m/s)
V 2 99 v wind (m/s)
H 1 99 H500
TSFC 1 99 TSFC DATA
endvars
这样写对吗?急求!!!
[size=3][/size]