bug fix in respa and readpdb
[unres.git] / source / unres / src_MD-M / readpdb.F
index ca0be94..48bb75a 100644 (file)
@@ -17,8 +17,11 @@ C geometry.
       character*80 card
       dimension sccor(3,20)
       double precision e1(3),e2(3),e3(3)
-      integer rescode
+      integer rescode,iterter(maxres),cou
       logical fail
+      do i=1,maxres
+         iterter(i)=0
+      enddo
       ibeg=1
       lsecondary=.false.
       nhfrag=0
@@ -48,7 +51,9 @@ crc----------------------------------------
 C End current chain
           ires_old=ires+2
           itype(ires_old-1)=ntyp1 
+          iterter(ires_old-1)=1
           itype(ires_old)=ntyp1
+          iterter(ires_old)=1
           ibeg=2
           write (iout,*) "Chain ended",ires,ishift,ires_old
           if (unres_pdb) then
@@ -75,7 +80,7 @@ C Calculate the CM of the preceding residue.
             endif
 C Start new residue.
 c            write (iout,'(a80)') card
-            read (card(24:26),*) ires
+            read (card(23:26),*) ires
             read (card(18:20),'(a3)') res
             if (ibeg.eq.1) then
               ishift=ires-1
@@ -120,8 +125,8 @@ C system
       nres=ires
       do i=2,nres-1
         write (iout,*) i,itype(i),itype(i+1)
-        if (itype(i).eq.ntyp1) then
-         if (itype(i+1).eq.ntyp1) then
+        if (itype(i).eq.ntyp1.and.iterter(i).eq.1) then
+         if (itype(i+1).eq.ntyp1.and.iterter(i+1).eq.1 ) then
 C 16/01/2014 by Adasko: Adding to dummy atoms in the chain
 C first is connected prevous chain (itype(i+1).eq.ntyp1)=true
 C second dummy atom is conected to next chain itype(i+1).eq.ntyp1=false
@@ -141,6 +146,7 @@ C 2/15/2013 by Adam: corrected insertion of the last dummy residue
            else   !unres_pdb
            do j=1,3
              dcj=(c(j,i-2)-c(j,i-3))/2.0
+            if (dcj.eq.0) dcj=1.23591524223
              c(j,i)=c(j,i-1)+dcj
              c(j,nres+i)=c(j,i)
            enddo     
@@ -160,6 +166,7 @@ C 2/15/2013 by Adam: corrected insertion of the first dummy residue
           else !unres_pdb
            do j=1,3
             dcj=(c(j,i+3)-c(j,i+2))/2.0
+            if (dcj.eq.0) dcj=1.23591524223
             c(j,i)=c(j,i+1)-dcj
             c(j,nres+i)=c(j,i)
            enddo
@@ -194,6 +201,7 @@ C 2/15/2013 by Adam: corrected insertion of the last dummy residue
         else
         do j=1,3
           dcj=(c(j,nres-2)-c(j,nres-3))/2.0
+            if (dcj.eq.0) dcj=1.23591524223
           c(j,nres)=c(j,nres-1)+dcj
           c(j,2*nres)=c(j,nres)
         enddo
@@ -238,6 +246,7 @@ C Calculate internal coordinates.
      &    (c(j,nres+ires),j=1,3)
        enddo
       endif
+C      print *,"before int_from_cart"
       call int_from_cart(.true.,.false.)
       call sc_loc_geom(.true.)
       do i=1,nres
@@ -301,7 +310,9 @@ c        enddo
 c enddiagnostic       
 C makes copy of chains
         write (iout,*) "symetr", symetr
-       
+      do j=1,3
+      dc(j,0)=c(j,1)
+      enddo 
       if (symetr.gt.1) then
        call permut(symetr)
        nperm=1
@@ -361,7 +372,6 @@ cc enddiag
          hfrag(i,j)=hfrag(i,j)-ishift
         enddo
       enddo
-
       return
       end
 c---------------------------------------------------------------------------
@@ -429,6 +439,7 @@ c          vbld(nres)=3.8d0
 c          vbld_inv(nres)=1.0d0/vbld(2)
 c        endif
 c      endif
+      print *,"A TU2"
       if (lside) then
         do i=2,nres-1
           do j=1,3