cdeck homr5a
      subroutine homr5a(storxy,nfixes,iwork,work,nrep)
      integer nfixes,iwork(nfixes),nrep
      real storxy(3,nfixes),work(nrep)
c
c   randomization test of time series correlations
c
      include 'maincomo.for'
      include 'homerc.for'
      double precision xsum,xsum2,dist2,urand
      real dstvar,dstbar
      integer i1,i2,nless,irep,iseed
      integer*2 ihr, imin, isec, i100
c   call time to set random seed
      call gettim(ihr, imin, isec, i100)
      iseed = ((ihr*100+isec)*100+imin)*100+i100
c
c   calculate average distance between sequential locations
c
      xsum=0.
      xsum2=0.
      do 10 i=2,nfixes
         dist2=(dble(storxy(1,i))-dble(storxy(1,i-1)))**2
     1      +(dble(storxy(2,i))-dble(storxy(2,i-1)))**2
         xsum=xsum+sqrt(dist2)
 10      xsum2=xsum2+dist2
      dstbar=xsum/dble(nfixes)
      dstvar=(xsum2-xsum*xsum/dble(nfixes))/dble(nfixes-1)
c
c   generate nrep randomizations of sequential distance
c
      do 20 irep=1,nrep
         do 30 i=1,nfixes
 30         iwork(i)=i
         do 40 i=1,nfixes
 45         i1=int(urand(iseed)*real(nfixes-i+1))+i
            if (i1.gt.nfixes .or. i1.lt.i) go to 45
            i2=iwork(i)
            iwork(i)=iwork(i1)
 40         iwork(i1)=i2
         work(irep)=0.
         do 50 i=2,nfixes
            work(irep)=work(irep)+sqrt((storxy(1,iwork(i))-
     1         storxy(1,iwork(i-1)))**2+(storxy(2,iwork(i))-
     2         storxy(2,iwork(i-1)))**2)
 50         continue
 20      continue
      nless=0
      do 60 irep=1,nrep
         if (xsum.lt.iwork(irep)) then
            nless=nless+1
         endif
 60      continue
      write(unit=iolp,fmt='(//9x,a)')
     1'randomization test for time series correlation between locations'
      call linect(3)
      write(unit=iolp,fmt='(/9x,a,g14.8)')
     1   'mean distance between sequential locations is ',dstbar
      call linect(2)
      write(unit=iolp,fmt='(9x,a,g14.8)')
     1'variance of distance between sequential locations is ',dstvar
      call linect(1)
      write(unit=iolp,fmt='(9x,a,f6.4)')
     1   'pr(mean distance this small)=',
     2   real(nless)/real(nrep)
      call linect(1)
      return
      end
