主题:编程新手,求高手指点程序
我是fortran的编程新手,最近急需处理一些数据,但是能力还有待提高,望高手给指点
数据是经纬度和电量,需要所有的经纬度之间做循环求出距离d,符合d所需要的条件的计做该点的个数,并求符合条件下这几个点的电量的最大值和平均值,唉,说起来还蛮容易的,但是我现在就陷入了迷雾,怎么也调试不好了,求高手!
program main
parameter (m=375395)
real:: wei(m),jing(m),dian(m)
real ::d,dave,td,id,dmax
integer::count,i,j,k,l,a
open(10,file='D:\shandian\2007-1.txt')
open(20,file='D:\shandian\shandian2007-1.txt')
do i=1,m
read(10,*) wei(i),jing(i),dian(i)
enddo
d=0
do j=1,m
do k=1,m
td=0
count=0
d=6371*(3.1415926/180)*acos(sin(wei(j))*sin(wei(k))+cos(wei(j))*cos(wei(k))*cos(jing(k)-jing(j)))
do while(d<=(1/sqrt(3.1415926)))
count=count+1
enddo
do while(count>1)
td=abs(dian(k))+td
dave=td/count
dmax=max(dian(k))
enddo
enddo
write(20,*) wei(j),jing(j),count,dave,dmax
enddo
end
数据是经纬度和电量,需要所有的经纬度之间做循环求出距离d,符合d所需要的条件的计做该点的个数,并求符合条件下这几个点的电量的最大值和平均值,唉,说起来还蛮容易的,但是我现在就陷入了迷雾,怎么也调试不好了,求高手!
program main
parameter (m=375395)
real:: wei(m),jing(m),dian(m)
real ::d,dave,td,id,dmax
integer::count,i,j,k,l,a
open(10,file='D:\shandian\2007-1.txt')
open(20,file='D:\shandian\shandian2007-1.txt')
do i=1,m
read(10,*) wei(i),jing(i),dian(i)
enddo
d=0
do j=1,m
do k=1,m
td=0
count=0
d=6371*(3.1415926/180)*acos(sin(wei(j))*sin(wei(k))+cos(wei(j))*cos(wei(k))*cos(jing(k)-jing(j)))
do while(d<=(1/sqrt(3.1415926)))
count=count+1
enddo
do while(count>1)
td=abs(dian(k))+td
dave=td/count
dmax=max(dian(k))
enddo
enddo
write(20,*) wei(j),jing(j),count,dave,dmax
enddo
end