+! call int_bounds(nres_molec(4)-2,ilipang_start,ilipang_end)
+ ilipang_start=2+itmp
+ ilipang_end=itmp+nres_molec(4)-1
+! create LJ LIST MAXIMUM
+! Eliminate branching from list
+ if(.not.allocated(remmat))&
+ allocate(remmat(itmp+1:nres_molec(4)+itmp,itmp+1:nres_molec(4)+itmp))
+ remmat=0
+ do i=1+itmp,nres_molec(4)-1+itmp
+ if (itype(i,4).eq.12) ibra=i
+ if (itype(i,4).eq.ntyp1_molec(4)-1) then
+! remmat(ibra-1,i+1)=1
+ remmat(ibra,i+1)=1
+! remmat(ibra+1,i+1)=1
+ endif
+ enddo
+ maxljliplist=0
+ if (.not.allocated(mlipljlisti)) then
+ allocate (mlipljlisti(nres_molec(4)*nres_molec(4)/2))
+ allocate (mlipljlistj(nres_molec(4)*nres_molec(4)/2))
+ endif
+ do i=1+itmp,nres_molec(4)-1+itmp
+ do j=i+2,nres_molec(4)+itmp
+ if ((itype(i,4).le.ntyp_molec(4)).and.(itype(j,4).le.ntyp_molec(4))&
+ .and.(remmat(i,j).eq.0)) then
+ maxljliplist=maxljliplist+1
+ mlipljlisti(maxljliplist)=i
+ mlipljlistj(maxljliplist)=j
+ if (energy_dec) print *,i,j,remmat(i,j),"lj lip list"
+ endif
+ enddo
+ enddo
+! split the bound of the list
+ call int_bounds(maxljliplist,iliplj_start,iliplj_end)
+ iliplj_start=iliplj_start
+ iliplj_end=iliplj_end
+! now the electrostatic list
+ maxelecliplist=0
+ if (.not.allocated(mlipeleclisti)) then
+ allocate (mlipeleclisti(nres_molec(4)*nres_molec(4)/2))
+ allocate (mlipeleclistj(nres_molec(4)*nres_molec(4)/2))
+ endif
+ do i=1+itmp,nres_molec(4)-1+itmp
+ do j=i+2,nres_molec(4)+itmp
+ if ((itype(i,4).le.4).and.(itype(j,4).le.4)) then
+ maxelecliplist=maxelecliplist+1
+ mlipeleclisti(maxelecliplist)=i
+ mlipeleclistj(maxelecliplist)=j
+ endif
+ enddo
+ enddo
+ call int_bounds(maxelecliplist,ilip_elec_start,ilipelec_end)
+ ilip_elec_start=ilip_elec_start
+ ilipelec_end=ilipelec_end