1      SUBROUTINE list_verlt()
2
3      implicit none
4
5      include 'p_input.inc'
6      include 'p_array.inc'
7      include 'cm_atom.inc'
8      include 'cm_cuto.inc'
9      include 'cm_latt.inc'
10      include 'cm_vlst.inc'
11      include 'cm_elst.inc'
12
13      integer i,j,k
14      integer eatm,nlist
15
16      real*8 rij,rijsq
17
18      dimension rij(mxatms,3)
19
20      nlist=0
21
22      do i=1,natms-1
23
24       k=0
25       point(i)=nlist+1
26       if(epoint(i).ne.epoint(i+1))eatm=epoint(i)
27
28       do j=i+1,natms
29
30        k=k+1
31        rij(k,1)=ccc(i,1)-ccc(j,1)
32        rij(k,2)=ccc(i,2)-ccc(j,2)
33        rij(k,3)=ccc(i,3)-ccc(j,3)
34
35       enddo
36c
37       call tool_rebox(k,mxatms,latt,rlatt,rij)
38
39c
40
41       k=0
42
43       do j=i+1,natms
44
45        k=k+1
46
47        if((epoint(i).ne.epoint(i+1)).and.(elist(eatm).eq.j))then
48
49         eatm=min(eatm+1,(epoint(i+1)-1))
50
51        else
52
53         rijsq=rij(k,1)*rij(k,1)+rij(k,2)*rij(k,2)+rij(k,3)*rij(k,3)
54
55
56         if(rijsq.lt.vcutsq)then
57
58          nlist=nlist+1
59
60          if(nlist.gt.(mxatms*mxvlist))then
61           write(output,"(/,1x,'mxatms*mxvlist exceeded')")
62           stop
63          endif
64          if((nlist-point(i)+1).gt.mxnlist)then
65           write(output,"(/,1x,'mxnlist exceeded')")
66           stop
67          endif
68
69          list(nlist)=j
70
71         endif
72
73        endif
74
75       enddo
76
77      enddo
78
79      point(natms)=nlist+1
80
81
82
83      return
84
85      END
86c $Id$
87