我是做湿地生态方面研究的,但一些数据处理需要用到一个前辈编写的cvf程序来计算。最近在处理数据时,一直会出现一些我解决不了的错误,恳请诸位大神帮忙,小弟感激不尽。

程序代码如下:

program exam
implicit none
Integer I,J,N,p
parameter(p=1000)
real*8 XX(p),YY(p),d,II(p,p),ww(p,p),pi,dx1,dx2,dy1,dy2,s,sita,counter,aa,bb,sum,d1
open(1,file="output.txt")
open(2,file="shuju1144.txt")       !因为此处数据量为1144,导致程序无法运行;将第四行中的1000改为2000,出现run-time error M6201: MATH错误
pi=4.d0*atan(1.D0)
s=360.d0    !圆周等分数
bb=50.d0    !矩形的长
aa=50.d0    !矩形的宽
!读入点的数据
read(2,*) n
do i=1,n
   read(2,*) XX(i),YY(i)
end do


do i=1,n
   print*,xx(i),yy(i)
end do
do d1=0.0,25,1.25
   do I=1,N,1
      do J=1,N,1
         if(J/=I)then
             d=sqrt((XX(i)-XX(j))**2+(YY(i)-YY(j))**2)
        If(d<=d1) then
          II(I,J)=1.0
             end if

            counter=0.0
   do sita=0.0,2.0*pi*(1.0-1.0/s),2.0*pi/s
        if(XX(I)+d*cos(sita)>=0.0.and.XX(I)+d*cos(sita)<=bb.and.yy(I)+d*sin(sita)>=0.0.and.yy(I)+d*sin(sita)<=aa) then
       counter=counter+1.0
                 end if
            end do
   WW(I,J)=counter/s

         end if 
      end do
end do

sum=0.0
      sum=sum+II(I,J)/WW(I,J)
do I=1,N,1
   do J=1,N,1
    if(J/=I) then
end if
   end do
end do

write(1,98)   ((aa*bb*sum/(n**2))/pi)**0.5-d1  !d1,aa*bb*sum/(n**2)     
98 format(1f7.3)  

end do
close(1)
close(2)


end