corrections of maxres2 in c array
authorEmilia Lubecka <emilia.lubecka@ug.edu.pl>
Fri, 16 Dec 2016 10:06:03 +0000 (11:06 +0100)
committerEmilia Lubecka <emilia.lubecka@ug.edu.pl>
Fri, 16 Dec 2016 10:06:03 +0000 (11:06 +0100)
source/unres/geometry.f90
source/unres/io.f90

index 8b30374..7a91cc7 100644 (file)
       write (iout,'(/a)') 'Recalculated internal coordinates'
       do i=2,nres-1
        do j=1,3
-         c(j,nres2)=0.5D0*(c(j,i-1)+c(j,i+1))  !maxres2=2*maxres
+         c(j,nres2+2)=0.5D0*(c(j,i-1)+c(j,i+1))        !maxres2=2*maxres
         enddo
         be=0.0D0
         if (i.gt.3) be=rad2deg*beta(i-3,i-2,i-1,i)
-        be1=rad2deg*beta(nres+i,i,nres2,i+1)
+        be1=rad2deg*beta(nres+i,i,nres2+2,i+1)
         alfai=0.0D0
         if (i.gt.2) alfai=rad2deg*alpha(i-2,i-1,i)
         write (iout,1212) restyp(itype(i)),i,dist(i-1,i),&
-        alfai,be,dist(nres+i,i),rad2deg*alpha(nres+i,i,nres2),be1
+        alfai,be,dist(nres+i,i),rad2deg*alpha(nres+i,i,nres2+2),be1
       enddo   
  1212 format (a3,'(',i3,')',2(f10.5,2f10.2))
 
         dnorm1=dist(i-1,i)
         dnorm2=dist(i,i+1) 
        do j=1,3
-         c(j,nres2)=0.5D0*(2*c(j,i)+(c(j,i-1)-c(j,i))/dnorm1 &
+         c(j,nres2+2)=0.5D0*(2*c(j,i)+(c(j,i-1)-c(j,i))/dnorm1 &
            +(c(j,i+1)-c(j,i))/dnorm2)
         enddo
         be=0.0D0
          tauangle(2,i+1)=beta(i-2,i-1,i,i+nres)
         endif
         endif
-        omeg(i)=beta(nres+i,i,nres2,i+1)
-        alph(i)=alpha(nres+i,i,nres2)
+        omeg(i)=beta(nres+i,i,nres2+2,i+1)
+        alph(i)=alpha(nres+i,i,nres2+2)
         theta(i+1)=alpha(i-1,i,i+1)
         vbld(i)=dist(i-1,i)
         vbld_inv(i)=1.0d0/vbld(i)
 ! SCs.
       iteli=itel(i)
       do j=1,3
-       c(j,nres2+1)=0.5D0*(c(j,i)+c(j,i+1))
+!      c(j,nres2+1)=0.5D0*(c(j,i)+c(j,i+1))
+       c(j,nres2+3)=0.5D0*(c(j,i)+c(j,i+1))
       enddo
       do j=nnt,i-2
        itj=iabs(itype(j))
 !d      print *,'overlap, p-Sc: i=',i,' j=',j,
 !d   &         ' dist=',dist(nres+j,maxres2+1)
-       if (dist(nres+j,nres2+1).lt.4.0D0*redfac) then
+       if (dist(nres+j,nres2+3).lt.4.0D0*redfac) then
          overlap=.true.
          return
         endif
 ! groups.
       do j=1,nnt-2
        do k=1,3
-         c(k,nres2+1)=0.5D0*(c(k,j)+c(k,j+1))
+         c(k,nres2+3)=0.5D0*(c(k,j)+c(k,j+1))
         enddo
 !d      print *,'overlap, SC-p: i=',i,' j=',j,
 !d   &         ' dist=',dist(nres+i,maxres2+1)
-       if (dist(nres+i,nres2+1).lt.4.0D0*redfac) then
+       if (dist(nres+i,nres2+3).lt.4.0D0*redfac) then
           overlap=.true.
          return
         endif
       enddo
 ! Check for p-p overlaps
       do j=1,3
-       c(j,nres2+2)=0.5D0*(c(j,i)+c(j,i+1))
+       c(j,nres2+4)=0.5D0*(c(j,i)+c(j,i+1))
       enddo
       do j=nnt,i-2
         itelj=itel(j)
        do k=1,3
-         c(k,nres2+2)=0.5D0*(c(k,j)+c(k,j+1))
+         c(k,nres2+4)=0.5D0*(c(k,j)+c(k,j+1))
         enddo
 !d      print *,'overlap, p-p: i=',i,' j=',j,
 !d   &         ' dist=',dist(maxres2+1,maxres2+2)
         if(iteli.ne.0.and.itelj.ne.0)then
-        if (dist(nres2+1,nres2+2).lt.rpp(iteli,itelj)*redfac) then
+        if (dist(nres2+3,nres2+4).lt.rpp(iteli,itelj)*redfac) then
           overlap=.true.
           return
         endif
       if (lside) then
         do i=2,nres-1
           do j=1,3
-            c(j,nres2)=0.5D0*(2*c(j,i)+(c(j,i-1)-c(j,i))*vbld_inv(i) &
+            c(j,nres2+2)=0.5D0*(2*c(j,i)+(c(j,i-1)-c(j,i))*vbld_inv(i) &
            +(c(j,i+1)-c(j,i))*vbld_inv(i+1))
 ! in wham            c(j,maxres2)=0.5D0*(c(j,i-1)+c(j,i+1)
           enddo
           endif
 !#endif
           if (iti.ne.10) then
-            alph(i)=alpha(nres+i,i,nres2)
-            omeg(i)=beta(nres+i,i,nres2,i+1)
+            alph(i)=alpha(nres+i,i,nres2+2)
+            omeg(i)=beta(nres+i,i,nres2+2,i+1)
           endif
           if(me.eq.king.or..not.out1file)then
            if (lprn) &
index 328d27b..4936ea8 100644 (file)
 !      deallocate(c)
 !      deallocate(dc)
 !      deallocate(itype)
-!      allocate(c(3,2*nres+2))
+!      allocate(c(3,2*nres+4))
 !      allocate(dc(3,0:2*nres+2))
 !      allocate(itype(nres+2))
       allocate(itel(nres+2))