| 
 
	积分121贡献 精华在线时间 小时注册时间2012-9-20最后登录1970-1-1 
 | 
 
 
 楼主|
发表于 2013-4-5 13:39:51
|
显示全部楼层 
| mofangbao 发表于 2013-4-4 23:05 都没看到你的程序和想法,只是提了个需求
program selectleibao
 integer,parameter::tt=651474
 
 integer i,j,error,year(tt),month(tt),day(tt),hour(tt),mini(tt),sec(tt),msec(tt)
 real lat(tt),lon(tt),str(tt)
 real,parameter:: lat1=34.0, lat2=38.5, lon1=114.5, lon2=123.0                !设置区域的经纬度边界
 integer c,l,p,n,nx,ny,m,b(30),k,d(31),e,g(31)
 real blat,blon,bstr
 
 
 
 
 open(10, file="E:\fortran\2010\2010xiajiwell.txt",status="old", iostat=error)        !设置读数据文件路径及文件名
 open(20, file="E:\fortran\2010\2010leibaoshu.txt",status="replace")                !设置写数据文件名称
 
 if ( error/=0 ) then
 write(20,*) "Open 2011well.txt fail."
 stop
 end if
 
 
 
 do i=1,tt
 read(10,*) year(i),month(i), day(i), hour(i),mini(i),sec(i),msec(i),lat(i), lon(i), str(i)
 end do
 c=0
 l=0
 p=0
 
 do i=10*lat1,10*lat2
 do j=10*lon1,10*lon2
 do m=1,30
 b(m)=m
 end do
 
 do k=1,31
 d(k)=k
 end do
 do e=1,31
 g(e)=m
 end do
 nx=0
 ny=0
 do n=1,tt
 nx=nint(lat(n)*10)
 ny=nint(lon(n)*10)
 if(nx.EQ.i.and.ny.EQ.j)then
 if(month(n).EQ.06)then
 do m=1,30
 if(day(n).EQ.b(m))then
 c=c+1
 b(m)=0
 end if
 end do
 else if(month(n).EQ.07)then
 do k=1,31
 if(day(n).EQ.d(k))then
 l=l+1
 d(k)=0
 end if
 end do
 else if(month(n).EQ.08)then
 do e=1,31
 if(day(n).EQ.g(e))then
 p=p+1
 g(e)=0
 end if
 end do
 end if
 end if
 end do
 write(20,*) i*0.1,j*0.1,c,l,p
 end do
 end do
 
 
 stop
 end        program selectleibao
 上面是我写的程序,麻烦您给看看  ,运行了下 功能不对
 | 
 |