double precision sccor(3,50)
double precision e1(3),e2(3),e3(3)
integer rescode,iterter(maxres),cou
- logical fail
+ logical fail,sccalc
integer i,j,iii,ires,ires_old,ishift,ishift1,ibeg
double precision dcj,efree_temp
bfac=0.0d0
lsecondary=.false.
nhfrag=0
nbfrag=0
+ iii=0
+ sccalc=.false.
do
read (ipdbin,'(a80)',end=10) card
-! write (iout,'(a)') card
+c write (iout,'(a)') card
if (card(:5).eq.'HELIX') then
nhfrag=nhfrag+1
lsecondary=.true.
itype(ires_old-1)=ntyp1
iterter(ires_old-1)=1
itype(ires_old)=ntyp1
+ iterter(ires_old)=1
ishift1=ishift1+1
ibeg=2
-! write (iout,*) "Chain ended",ires,ishift,ires_old
+ write (iout,*) "Chain ended",ires,ishift,ires_old
if (unres_pdb) then
do j=1,3
dc(j,ires)=sccor(j,iii)
else
call sccenter(ires,iii,sccor)
endif
-c iii=0
+ iii=0
+ sccalc=.true.
endif
! Read free energy
if (index(card,"FREE ENERGY").gt.0) read(card(35:),*) efree_temp
! Fish out the ATOM cards.
if (index(card(1:4),'ATOM').gt.0) then
+ sccalc=.false.
read (card(12:16),*) atom
c write (2,'(a)') card
-! write (iout,*) "! ",atom," !",ires
+c write (iout,*) "ibeg",ibeg
+c write (iout,*) "! ",atom," !",ires
! if (atom.eq.'CA' .or. atom.eq.'CH3') then
read (card(23:26),*) ires
read (card(18:20),'(a3)') res
-! write (iout,*) "ires",ires,ires-ishift+ishift1,
-! & " ires_old",ires_old
-! write (iout,*) "ishift",ishift," ishift1",ishift1
-! write (iout,*) "IRES",ires-ishift+ishift1,ires_old
+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
if (ires-ishift+ishift1.ne.ires_old) then
! Calculate the CM of the preceding residue.
! if (ibeg.eq.0) call sccenter(ires,iii,sccor)
if (ibeg.eq.0) then
-! write (iout,*) "Calculating sidechain center iii",iii
+c write (iout,*) "Calculating sidechain center iii",iii
if (unres_pdb) then
do j=1,3
dc(j,ires+nres)=sccor(j,iii)
call sccenter(ires_old,iii,sccor)
endif
iii=0
+ sccalc=.true.
endif
! Start new residue.
if (res.eq.'Cl-' .or. res.eq.'Na+') then
! Start a new chain
ishift=-ires_old+ires-1 !!!!!
ishift1=ishift1-1 !!!!!
-! write (iout,*) "New chain started",ires,ishift,ishift1,"!"
+c write (iout,*) "New chain started",ires,ishift,ishift1,"!"
ires=ires-ishift+ishift1
ires_old=ires
ibeg=0
else
ires=ires-ishift+ishift1
endif
-! write (iout,*) "ires_old",ires_old," ires",ires
+c write (iout,*) "ires_old",ires_old," ires",ires
if (card(27:27).eq."A" .or. card(27:27).eq."B") then
! ishift1=ishift1+1
endif
-! write (2,*) "ires",ires," res ",res!," ity"!,ity
+c write (2,*) "ires",ires," res ",res!," ity"!,ity
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)
if (dcj.eq.0) dcj=1.23591524223
c(j,i)=c(j,i-1)+dcj
c(j,nres+i)=c(j,i)
+ dC(j,i)=c(j,i)
enddo
endif !unres_pdb
else !itype(i+1).eq.ntyp1
if (dcj.eq.0) dcj=1.23591524223
c(j,i)=c(j,i+1)-dcj
c(j,nres+i)=c(j,i)
+ dC(j,i)=c(j,i)
enddo
endif !unres_pdb
endif !itype(i+1).eq.ntyp1
enddo
write (iout,*) "After loop in readpbd"
C Calculate the CM of the last side chain.
+ if (.not. sccalc) then
if (unres_pdb) then
do j=1,3
dc(j,ires)=sccor(j,iii)
c write (iout,*) "Calling sccenter iii",iii
call sccenter(ires,iii,sccor)
endif
+ endif
nsup=nres
nstart_sup=1
if (itype(nres).ne.10) then
& restyp(itype(ires)),ires,(c(j,ires),j=1,3),
& (c(j,ires+nres),j=1,3)
enddo
- endif
call flush(iout)
+ endif
c write(iout,*)"before int_from_cart nres",nres
call int_from_cart(.true.,.false.)
do i=1,nres