iterter(ires_old-1)=1
itype(ires_old)=ntyp1
iterter(ires_old)=1
-c ishift1=ishift1+1
+ ishift1=ishift1+1
ibeg=2
- write (iout,*) "Chain ended",ires,ishift,ires_old,ibeg
+ write (iout,*) "Chain ended",ires,ishift,ires_old
if (unres_pdb) then
do j=1,3
dc(j,ires)=sccor(j,iii)
read (card(18:20),'(a3)') res
c write (iout,*) "ires",ires,ires-ishift+ishift1,
c & " ires_old",ires_old
-c write (iout,*) "ishift",ishift," ishift1",ishift1
-c write (iout,*) "IRES",ires-ishift+ishift1,ires_old
+c write (iout,*) "ishift",ishift," ishift1",ishift1
+c write (iout,*) "IRES",ires-ishift+ishift1,ires_old
if (ires-ishift+ishift1.ne.ires_old) then
! Calculate the CM of the preceding residue.
! if (ibeg.eq.0) call sccenter(ires,iii,sccor)
sccalc=.true.
endif
! Start new residue.
-c write (iout,*) "ibeg",ibeg
if (res.eq.'Cl-' .or. res.eq.'Na+') then
ires=ires_old
cycle
else if (ibeg.eq.2) then
! Start a new chain
ishift=-ires_old+ires-1 !!!!!
-c ishift1=ishift1-1 !!!!!
-c write (iout,*) "New chain started",ires,ires_old,ishift,
-c & ishift1
+ ishift1=ishift1-1 !!!!!
+c write (iout,*) "New chain started",ires,ishift,ishift1,"!"
ires=ires-ishift+ishift1
- write (iout,*) "New chain started ires",ires
ires_old=ires
-c ires=ires_old+1
ibeg=0
else
ishift=ishift-(ires-ishift+ishift1-ires_old-1)
if (atom.eq.'CA' .or. atom.eq.'CH3' .or.
& res.eq.'NHE'.and.atom(:2).eq.'HN') then
read(card(31:54),'(3f8.3)') (c(j,ires),j=1,3)
-c write (iout,*) "backbone ",atom
-c write (iout,*) ires,res,(c(j,ires),j=1,3)
+! write (iout,*) "backbone ",atom
#ifdef DEBUG
write (iout,'(i6,i3,2x,a,3f8.3)')
& ires,itype(ires),res,(c(j,ires),j=1,3)
e2(3)=0.0d0
endif
do j=1,3
- c(j,i)=c(j,i+1)+1.9d0*(-e1(j)+e2(j))/sqrt(2.0d0)
+ c(j,i)=c(j,i+1)-1.9d0*e2(j)
enddo
else !unres_pdb
do j=1,3
character*3 seq,res
character*5 atom
character*80 card
- double precision sccor(3,50)
+ double precision sccor(3,20)
integer rescode,iterter(maxres)
- logical zero
do i=1,maxres
iterter(i)=0
enddo
e2(3)=0.0d0
endif
do j=1,3
- c(j,i)=c(j,i+1)+1.9d0*(-e1(j)+e2(j))/sqrt(2.0d0)
+ c(j,i)=c(j,i+1)-1.9d0*e2(j)
enddo
else !unres_pdb
do j=1,3
e2(3)=0.0d0
endif
do j=1,3
- c(j,nres)=c(j,nres-1)+1.9d0*(-e1(j)+e2(j))/sqrt(2.0d0)
+ c(j,nres)=c(j,nres-1)-1.9d0*e2(j)
enddo
else
do j=1,3
e2(3)=0.0d0
endif
do j=1,3
- c(j,1)=c(j,2)+1.9d0*(e1(j)-e2(j))/dsqrt(2.0d0)
+ c(j,1)=c(j,2)-1.9d0*e2(j)
enddo
else
do j=1,3
& (c(j,ires+nres),j=1,3)
enddo
endif
- zero=.false.
- do ires=1,nres
- zero=zero.or.itype(ires).eq.0
- enddo
- if (zero) then
- write (iout,'(2a)') "Gaps in PDB coordinates detected;",
- & " look for ZERO in the control output above."
- write (iout,'(2a)') "Repair the PDB file using MODELLER",
- & " or other softwared and resubmit."
- call flush(iout)
- stop
- endif
C Calculate internal coordinates.
call int_from_cart(.true.,out_template_coord)
call sc_loc_geom(.false.)
thetaref(i)=theta(i)
phiref(i)=phi(i)
enddo
- dc(:,0)=c(:,1)
do i=1,nres-1
do j=1,3
dc(j,i)=c(j,i+1)-c(j,i)