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