- 积分
- 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
上面是我写的程序,麻烦您给看看 ,运行了下 功能不对 |
|