introdaction of homology into UNICORN
[unres4.git] / source / unres / compare.F90
index 50972e1..058b201 100644 (file)
 !      include 'COMMON.NAMES'
       real(kind=8) :: facont=1.569D0  ! facont = (2/(1-sqrt(1-1/4)))**(1/6)
       integer :: ncont
-      integer,dimension(2,12*nres) :: icont!(2,12*nres)        !(2,maxcont)    (maxcont=12*maxres)
+      integer,dimension(2,100*nres) :: icont!(2,100*nres)      !(2,maxcont)    (maxcont=12*maxres)
       logical :: lprint
 !el local variables
       real(kind=8) :: co,rcomp
-      integer :: kkk,i,j,i1,i2,it1,it2,iti,itj
+      integer :: kkk,i,j,i1,i2,it1,it2,iti,itj,inum,jnum
 
       ncont=0
       kkk=3
       do i=nnt+kkk,nct
-        iti=iabs(itype(i,1))
+        iti=iabs(itype(i,molnum(i)))
+        if (molnum(i).lt.3) then
+                inum=i+nres
+        else
+                inum=i
+        endif
+
         do j=nnt,i-kkk
-          itj=iabs(itype(j,1))
+          itj=iabs(itype(j,molnum(i)))
+        if (molnum(j).lt.3) then
+                jnum=j+nres
+        else
+                jnum=j
+        endif
           if (ipot.ne.4) then
 !           rcomp=sigmaii(iti,itj)+1.0D0
             rcomp=facont*sigmaii(iti,itj)
@@ -58,7 +69,7 @@
           endif
 !         rcomp=6.5D0
 !         print *,'rcomp=',rcomp,' dist=',dist(nres+i,nres+j)
-         if (dist(nres+i,nres+j).lt.rcomp) then
+         if (dist(inum,jnum).lt.rcomp) then
             ncont=ncont+1
             icont(1,ncont)=i
             icont(2,ncont)=j
 !      include 'DIMENSIONS'
 !      include 'COMMON.IOUNITS'
       integer :: ncont,ncont_ref
-      integer,dimension(2,12*nres) :: icont,icont_ref  !(2,12*nres) (2,maxcont)        (maxcont=12*maxres)
+      integer,dimension(2,100*nres) :: icont,icont_ref !(2,100*nres) (2,maxcont)       (maxcont=12*maxres)
 !el local variables
       integer :: i,j,nmatch
       nmatch=0
 !      include 'DIMENSIONS'
 !      include 'COMMON.IOUNITS'
       integer :: ncont,ncont_ref
-      integer,dimension(2,12*nres) :: icont,icont_ref  !(2,12*nres) (2,maxcont)        (maxcont=12*maxres)
+      integer,dimension(2,100*nres) :: icont,icont_ref !(2,100*nres) (2,maxcont)       (maxcont=12*maxres)
 !el local variables
       integer :: i,j,nmatch
       nmatch=0
 !      include 'COMMON.FFIELD'
 !      include 'COMMON.NAMES'
       integer :: ncont
-      integer,dimension(2,12*nres) :: icont    !(2,maxcont)    (maxcont=12*maxres)
+      integer,dimension(2,100*nres) :: icont   !(2,maxcont)    (maxcont=12*maxres)
       integer :: nharp
-      integer,dimension(4,nres/3) :: iharp     !(4,nres/3)(4,maxres/3)
+      integer,dimension(4,nres) :: iharp       !(4,nres/3)(4,maxres/3)
       logical :: lprint,not_done
       real(kind=8) :: rcomp=6.0d0
 !el local variables
       integer :: i,j,kkk,k,i1,i2,it1,it2,j1,ii1,jj1
-!      allocate(icont(2,12*nres))
+!      allocate(icont(2,100*nres))
 
       ncont=0
       kkk=0
       real(kind=8) :: ael6_i,ael3_i
       real(kind=8),dimension(2,2) :: app_,bpp_,rpp_
       integer :: ncont
-      integer,dimension(2,12*nres) :: icont    !(2,12*nres)(2,maxcont) (maxcont=12*maxres)
-      real(kind=8),dimension(12*nres) :: econt !(maxcont)
+      integer,dimension(2,100*nres) :: icont   !(2,100*nres)(2,maxcont)        (maxcont=12*maxres)
+      real(kind=8),dimension(100*nres) :: econt        !(maxcont)
 !el local variables
       integer :: i,j,k,iteli,itelj,i1,i2,it1,it2,ic1,ic2
       real(kind=8) :: elcutoff,elecutoff_14,rri,ees,evdw
       data elpp_6  /-0.2379d0,-0.2056d0,-0.2056d0,-0.0610d0/
       data elpp_3  / 0.0503d0, 0.0000d0, 0.0000d0, 0.0692d0/
 
-!el      allocate(econt(12*nres))      !(maxcont)
+!el      allocate(econt(100*nres))     !(maxcont)
 
       elcutoff = -0.3d0
       elecutoff_14 = -0.5d0
 !      include 'COMMON.CONTROL'
       integer :: ncont,i,j,i1,j1,nbeta,nstrand,ii1,jj1,ij,nhelix,&
              iii1,jjj1
-      integer,dimension(2,12*nres) :: icont    !(2,maxcont)    (maxcont=12*maxres)
+      integer,dimension(2,100*nres) :: icont   !(2,maxcont)    (maxcont=12*maxres)
       integer,dimension(nres,0:4) :: isec      !(maxres,4)
       integer,dimension(nres) :: nsec  !(maxres)
       logical :: lprint,not_done       !,freeres
       real(kind=8) :: p1,p2
 !el      external freeres
 
-!el      allocate(icont(2,12*nres),isec(nres,4),nsec(nres))
+!el      allocate(icont(2,100*nres),isec(nres,4),nsec(nres))
 
       if(.not.dccart) call chainbuild_cart
       if(.not.allocated(hfrag)) allocate(hfrag(2,nres/3)) !(2,maxres/3)
       do i=nnt,nct
         if (itype(i,1).ne.10) then
 !d        print *,'i=',i,' itype=',itype(i,1),' theta=',theta(i+1)  
-          call gen_side(itype(i,1),theta(i+1),alph(i),omeg(i),fail)
+          call gen_side(itype(i,1),theta(i+1),alph(i),omeg(i),fail,1)
         endif
       enddo
       call chainbuild
         alph0=alph(ind_sc)
         omeg0=omeg(ind_sc)
         call gen_side(itype(ind_sc,1),theta(ind_sc+1),alph(ind_sc),&
-             omeg(ind_sc),fail)
+             omeg(ind_sc),fail,1)
         call chainbuild
         call etotal(energia)
 !d      write (iout,'(a,i5,a,i4,2(a,f8.3),2(a,1pe14.5))')