X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;ds=inline;f=source%2Fcluster%2Fwham%2Fsrc-HCD%2Freadpdb.F;h=f7cfb863295bd78b2b9299e448307a20309cb2ec;hb=57038e4bdff4cc9534106b25bfbd4b9a844d47fd;hp=09e6e4e9889b00ce07696157c31c30c2b8720255;hpb=fd10e81284102e5a8466e05c87f0202979a2f00b;p=unres.git diff --git a/source/cluster/wham/src-HCD/readpdb.F b/source/cluster/wham/src-HCD/readpdb.F index 09e6e4e..f7cfb86 100644 --- a/source/cluster/wham/src-HCD/readpdb.F +++ b/source/cluster/wham/src-HCD/readpdb.F @@ -13,7 +13,7 @@ C geometry. include 'COMMON.NAMES' include 'COMMON.CONTROL' integer i,j,ibeg,ishift1,ires,iii,ires_old,ishift,ity - logical lprn /.false./,fail + logical lprn /.false./,fail,sccalc double precision e1(3),e2(3),e3(3) double precision dcj,efree_temp character*3 seq,res @@ -30,6 +30,7 @@ c write (2,*) "UNRES_PDB",unres_pdb ires=0 ires_old=0 iii=0 + sccalc=.false. lsecondary=.false. nhfrag=0 nbfrag=0 @@ -73,11 +74,13 @@ c write (2,*) "UNRES_PDB",unres_pdb call sccenter(ires,iii,sccor) endif iii=0 + sccalc=.true. endif ! Read free energy - if (index(card,"FREE ENERGY").gt.0) read(card(35:),*) efree_temp +c 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 @@ -95,12 +98,13 @@ c write (2,'(a)') card ! write (iout,*) "Calculating sidechain center iii",iii if (unres_pdb) then do j=1,3 - dc(j,ires+nres)=sccor(j,iii) + dc(j,ires_old)=sccor(j,iii) enddo else call sccenter(ires_old,iii,sccor) endif iii=0 + sccalc=.true. endif ! Start new residue. if (res.eq.'Cl-' .or. res.eq.'Na+') then @@ -221,7 +225,7 @@ C endif !unres_pdb endif !itype.eq.ntyp1 enddo C Calculate the CM of the last side chain. - call sccenter(ires,iii,sccor) + if (.not.sccalc) call sccenter(ires,iii,sccor) nsup=nres nstart_sup=1 if (itype(nres).ne.10) then @@ -343,17 +347,20 @@ c character*5 atom & ' Gamma' endif endif - do i=1,nres-1 + do i=2,nres iti=itype(i) - if (dist(i,i+1).lt.2.0D0 .or. dist(i,i+1).gt.5.0D0) then +c write (iout,*) i,i-1,(c(j,i),j=1,3),(c(j,i-1),j=1,3),dist(i,i-1) + if (itype(i-1).ne.ntyp1 .and. itype(i).ne.ntyp1 .and. + & (dist(i,i-1).lt.1.0D0 .or. dist(i,i-1).gt.6.0D0)) then write (iout,'(a,i4)') 'Bad Cartesians for residue',i -ctest stop +c stop endif - vbld(i+1)=dist(i,i+1) - vbld_inv(i+1)=1.0d0/vbld(i+1) - if (i.gt.1) theta(i+1)=alpha(i-1,i,i+1) + vbld(i)=dist(i-1,i) + vbld_inv(i)=1.0d0/vbld(i) + 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 + c if (unres_pdb) then c if (itype(1).eq.ntyp1) then c theta(3)=90.0d0*deg2rad @@ -802,7 +809,7 @@ C 2/15/2013 by Adam: corrected insertion of the first dummy residue endif endif C Calculate internal coordinates. - if (lprn) then + if (out_template_coord) then write (iout,'(/a)') & "Cartesian coordinates of the reference structure" write (iout,'(a,3(3x,a5),5x,3(3x,a5))') @@ -814,6 +821,7 @@ C Calculate internal coordinates. enddo endif C Calculate internal coordinates. +#ifdef DEBUG write (iout,'(a)') & "Backbone and SC coordinates as read from the PDB" do ires=1,nres @@ -821,7 +829,8 @@ C Calculate internal coordinates. & ires,itype(ires),restyp(itype(ires)),(c(j,ires),j=1,3), & (c(j,nres+ires),j=1,3) enddo - call int_from_cart(.true.,.false.) +#endif + call int_from_cart(.true.,out_template_coord) call sc_loc_geom(.false.) do i=1,nres thetaref(i)=theta(i)