- 积分
- 1072
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-11-23
- 最后登录
- 1970-1-1

|
发表于 2013-8-19 12:34:38
|
显示全部楼层
!************************变量说明**********************************
! stn:站点数(固定值),year:年份,固定参数,每年修改一次即可
! lon/lat:经纬度数组
! x:读取出来的某月160数据
! stid:站号
! lab:标记要转换的是降水还是温度,kind:温度降水字符串
! imon,iyea:整型的月份和年份
! mon,yea:字符型的月份和年份(用于生成文件名)
! filename:打开的文件名称(由输入的年份和月份而定)
! bt:生成的文件名称
! next:记录是否继续转换
!资料从1951年开始
!************************************************************************************
program ex_03
integer,parameter::stn=160,year=62
integer::i,j,k
real ::lat(stn),lon(stn)
real ::x(stn,year),y(stn,year),z(stn,year)
real ::xyz(stn,year),xyzmean(stn,year)
integer ::stid(stn)
real ::tim
integer ::lev,flag
!!!!!!!!!!!!!read 160 station precipitation!!!!!!!!!!!!!!!!!!!
print*,'begin to read precipitation'
open(1,file="F:/China160station/precipitation/r1606.txt",
$ status='old')
do j=1,year
read(1,*)(x(i,j),i=1,stn)
enddo
close(1)
print*,'read June precipitation over'
print*,'begin to read precipitation'
open(1,file="F:/China160station/precipitation/r1606.txt",status='old')
do j=1,year
read(1,*)(y(i,j),i=1,stn)
enddo
close(1)
print*,'read July precipitation over'
print*,'begin to read precipitation'
open(1,file="F:/China160station/precipitation/r1606.txt",status='old')
do j=1,year
read(1,*)(z(i,j),i=1,stn)
enddo
close(1)
print*,'read August precipitation over'
do j=1,year
do i=1,stn
xyz(i,j)=x(i,j)+y(i,j)+z(i,j)
xyzmean(i,j)=xyz(i,j)/3
enddo
enddo
!!!!!!!!!!!!!!!!!zhuanhuanrejizhi!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111
print*,'begin to read 160 stations'
open(2,file='F:/China160station/precipitation/station160.txt',status='old')
do k=1,stn
read(2,*)stid(k),lat(k),lon(k)
! print*,stid(k),lon(k),lat(k)
! pause
enddo
close(2)
print*,'successfully write station data'
!!!!!!!!!!!!!!!!!!按顺序写!!!!!!!!!!!!!!!!!
open(4,file='F:/China160station/sta2grd/sta.grd',status='replace', form='binary')
do j=1,year
tim=0.0
nlev=1
flag=1
do i=1,stn
write(4)stid(i),lat(i),lon(i),tim,nlev,flag,xyzmean(i,j)
enddo
nlev=0
write(4)stid,lat,lon,tim,nlev,flag
enddo
close(4)
print*,'successfully write data'
end
|
|