update
[unres.git] / source / unres / src_MD-M-SAXS-homology / readpdb.F
index d4fc28f..68db17c 100644 (file)
@@ -107,9 +107,9 @@ c            write (2,*) "ires",ires," ishift",ishift
             endif
             read(card(31:54),'(3f8.3)') (c(j,ires),j=1,3)
             read(card(61:66),*) bfac(ires)
-            if(me.eq.king.or..not.out1file)
-     &       write (iout,'(2i3,2x,a,3f8.3)') 
-     &       ires,itype(ires),res,(c(j,ires),j=1,3)
+c            if(me.eq.king.or..not.out1file)
+c     &       write (iout,'(2i3,2x,a,3f8.3)') 
+c     &       ires,itype(ires),res,(c(j,ires),j=1,3)
             iii=1
             do j=1,3
               sccor(j,iii)=c(j,ires)
@@ -251,8 +251,8 @@ C Calculate internal coordinates.
        enddo
       endif
       call flush(iout)
-      write(iout,*)"before int_from_cart nres",nres
-      call int_from_cart(.true.,.true.)
+c      write(iout,*)"before int_from_cart nres",nres
+      call int_from_cart(.true.,.false.)
       do i=1,nres
         thetaref(i)=theta(i)
         phiref(i)=phi(i)
@@ -262,19 +262,19 @@ C Calculate internal coordinates.
           dc(j,i)=c(j,i+1)-c(j,i)
           dc_norm(j,i)=dc(j,i)*vbld_inv(i+1)
         enddo
-        write (iout,*) i,(dc(j,i),j=1,3),(dc_norm(j,i),j=1,3),
-     &   vbld_inv(i+1)
+c        write (iout,*) i,(dc(j,i),j=1,3),(dc_norm(j,i),j=1,3),
+c     &   vbld_inv(i+1)
       enddo
       do i=2,nres-1
         do j=1,3
           dc(j,i+nres)=c(j,i+nres)-c(j,i)
           dc_norm(j,i+nres)=dc(j,i+nres)*vbld_inv(i+nres)
         enddo
-        write (iout,*) i,(dc(j,i+nres),j=1,3),(dc_norm(j,i+nres),j=1,3),
-     &   vbld_inv(i+nres)
+c        write (iout,*) i,(dc(j,i+nres),j=1,3),(dc_norm(j,i+nres),j=1,3),
+c     &   vbld_inv(i+nres)
       enddo
-      call sc_loc_geom(.true.)
-      call int_from_cart1(.true.)
+      call sc_loc_geom(.false.)
+      call int_from_cart1(.false.)
 c      call chainbuild
 C Copy the coordinates to reference coordinates
       do i=1,nres
@@ -350,6 +350,8 @@ ctest          stop
         endif
         vbld(i+1)=dist(i,i+1)
         vbld_inv(i+1)=1.0d0/vbld(i+1)
+c        write (iout,*) "i",i+1," vbld",vbld(i+1)," vbld_inv",
+c     &      vbld_inv(i+1)
         if (i.gt.1) theta(i+1)=alpha(i-1,i,i+1)
         if (i.gt.2) phi(i+1)=beta(i-2,i-1,i,i+1)
       enddo
@@ -432,12 +434,16 @@ c-------------------------------------------------------------------------------
         do j=1,3
           dc_norm(j,i)=vbld_inv(i+1)*(c(j,i+1)-c(j,i))
         enddo
+c        write (iout,*) "i",i," dc",(dc_norm(j,i),j=1,3),
+c     &    " vbld",vbld_inv(i+1)
       enddo
       do i=2,nres-1
         if (itype(i).ne.10 .and. itype(i).ne.ntyp1) then
           do j=1,3
             dc_norm(j,i+nres)=vbld_inv(i+nres)*(c(j,i+nres)-c(j,i))
           enddo
+c          write (iout,*) "i",i," dc",(dc_norm(j,i+nres),j=1,3),
+c     &    " vbld",vbld_inv(i+nres)
         else
           do j=1,3
             dc_norm(j,i+nres)=0.0d0
@@ -499,17 +505,17 @@ c
         endif
       enddo
       if (lprn) then
-        do i=2,nres
-          iti=itype(i)
 #ifdef MPI
-          if(me.eq.king.or..not.out1file)
-     &     write (iout,'(a3,i4,3f10.5)') restyp(iti),i,xxref(i),
-     &      yyref(i),zzref(i)
-#else
-          write (iout,'(a3,i4,3f10.5)') restyp(iti),i,xxref(i),yyref(i),
-     &     zzref(i)
+        if (me.eq.king.or..not.out1file) then
 #endif
+        write (iout,*) "xxref,yyref,zzref"
+        do i=2,nres
+          write (iout,'(a3,i4,3f10.5)') 
+     &     restyp(itype(i)),i,xxref(i),yyref(i),zzref(i)
         enddo
+#ifdef MPI
+        endif
+#endif
       endif
       return
       end
@@ -539,11 +545,24 @@ c---------------------------------------------------------------------------
       include 'COMMON.CHAIN'
       do i=1,nres-1
        vbld(i+1)=vbl
-       vbld_inv(i+1)=1.0d0/vbld(i+1)
+       vbld_inv(i+1)=vblinv
        vbld(i+1+nres)=dsc(iabs(itype(i+1)))
        vbld_inv(i+1+nres)=dsc_inv(iabs(itype(i+1)))
 c       print *,vbld(i+1),vbld(i+1+nres)
       enddo
+c Adam 2/26/20 Alter virtual bonds for non-blocking end groups of each chain
+      do i=1,nchain
+        i1=chain_border(1,i)
+        i2=chain_border(2,i)
+        if (i1.gt.1) then
+          vbld(i1)=vbld(i1)/2
+          vbld_inv(i1)=vbld_inv(i1)*2
+        endif
+        if (i2.lt.nres) then
+          vbld(i2+1)=vbld(i2+1)/2
+          vbld_inv(i2+1)=vbld_inv(i2+1)*2
+        endif
+      enddo
       return
       end
 c---------------------------------------------------------------------------
@@ -835,7 +854,7 @@ C Calculate internal coordinates.
       enddo
       endif
 C Calculate internal coordinates.
-      call int_from_cart(.true.,.false.)
+      call int_from_cart(.true.,.true.)
       call sc_loc_geom(.false.)
       do i=1,nres
         thetaref(i)=theta(i)