- 积分
- 801
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-3-31
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2013-4-3 10:07:40
|
显示全部楼层
例子:现有ASCII码(十进制存放格式)数据资料文件u.dat、v.dat和SST.dat,其空间范围:60-150°E,0-40°N;层次:u、v为850、 200hPa;时段:1982.1-1985.12;分辨率:2.5*2.5。要求编写出将这三个文件转换成二进制无格式直接存取(Grads格式.grd)文件的Fortran程序。
程序:c 打开原始数据文件
open(1,file='u.dat')
open(2,file='v.dat')
open(3,file='sst.dat')
c 打开目标文件,recl为记录的长度,对于直接存取文件必须指定记录长度 。
open(12,file=‘mhy.grd',form='unformatted',
# access='direct', recl=nx*ny*4)
c 将数据资料写入新文件中, irec重新进行记录累
irec=0
do 200 it=1,nt
do 30 iz=1,nz
irec=irec+1
write(12,rec=irec) ((u(i,j,iz,it),i=1,nx),j=1,ny)
30 Continue
do 31 iz=1,nz
irec=irec+1
write(12,rec=irec) ((v(i,j,iz,it),i=1,nx),j=1,ny)
31 continue
irec=irec+1
write(12,rec=irec) ((sst(i,j,it),i=1,nx),j=1,ny)
200 continue
end
有的需要,有的不需要,但是不知道为什么????
|
|