From c65d296f3cdc480d3737eae335a510332b4f0dc8 Mon Sep 17 00:00:00 2001 From: Adam Sieradzan Date: Fri, 31 Jul 2015 12:24:38 +0200 Subject: [PATCH] introduction of different ftors for each site --- source/cluster/wham/src-M/COMMON.CONTROL | 3 +- source/cluster/wham/src-M/energy_p_new.F | 20 ++++++------- .../wham/src-M/include_unres/COMMON.TORCNSTR | 3 +- source/cluster/wham/src-M/readrtns.F | 10 ++++--- source/unres/src_MD-M/COMMON.TORCNSTR | 3 +- source/unres/src_MD-M/dihed_cons.F | 5 ++-- source/unres/src_MD-M/energy_p_new_barrier.F | 18 ++++++------ source/unres/src_MD-M/readrtns_CSA.F | 12 ++++---- source/wham/src-M/enecalc1.F | 2 +- source/wham/src-M/energy_p_new.F | 30 ++++++++++---------- source/wham/src-M/include_unres/COMMON.TORCNSTR | 3 +- source/wham/src-M/molread_zs.F | 10 ++++--- 12 files changed, 65 insertions(+), 54 deletions(-) diff --git a/source/cluster/wham/src-M/COMMON.CONTROL b/source/cluster/wham/src-M/COMMON.CONTROL index 992affa..e65a5b2 100644 --- a/source/cluster/wham/src-M/COMMON.CONTROL +++ b/source/cluster/wham/src-M/COMMON.CONTROL @@ -6,5 +6,6 @@ & with_dihed_constr common /cntrl/ betaT,iscode,indpdb,refstr,pdbref,outpdb,outmol2, & punch_dist,print_dist,caonly,lside,lprint_cart,lprint_int, - & from_cart,from_bx,from_cx,efree,iopt,nstart,nend,symetr, + & from_cart,from_bx,from_cx, with_dihed_constr, + & efree,iopt,nstart,nend,symetr, & constr_dist diff --git a/source/cluster/wham/src-M/energy_p_new.F b/source/cluster/wham/src-M/energy_p_new.F index a65c91c..39d35dd 100644 --- a/source/cluster/wham/src-M/energy_p_new.F +++ b/source/cluster/wham/src-M/energy_p_new.F @@ -4440,12 +4440,12 @@ c write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg) difi=phii-phi0(i) if (difi.gt.drange(i)) then difi=difi-drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 else if (difi.lt.-drange(i)) then difi=difi+drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 endif ! write (iout,'(2i5,2f8.3,2e14.5)') i,itori,rad2deg*phii, ! & rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg) @@ -4533,14 +4533,14 @@ c write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg) edihi=0.0d0 if (difi.gt.drange(i)) then difi=difi-drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 - edihi=0.25d0*ftors*difi**4 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 + edihi=0.25d0*ftors(i)*difi**4 else if (difi.lt.-drange(i)) then difi=difi+drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 - edihi=0.25d0*ftors*difi**4 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 + edihi=0.25d0*ftors(i)*difi**4 else difi=0.0d0 endif diff --git a/source/cluster/wham/src-M/include_unres/COMMON.TORCNSTR b/source/cluster/wham/src-M/include_unres/COMMON.TORCNSTR index f8fc3a1..5c26487 100644 --- a/source/cluster/wham/src-M/include_unres/COMMON.TORCNSTR +++ b/source/cluster/wham/src-M/include_unres/COMMON.TORCNSTR @@ -1,5 +1,6 @@ integer ndih_constr,idih_constr(maxdih_constr) integer ndih_nconstr,idih_nconstr(maxdih_constr) - double precision phi0(maxdih_constr),drange(maxdih_constr),ftors + double precision phi0(maxdih_constr),drange(maxdih_constr), + & ftors(maxdih_constr) common /torcnstr/ phi0,drange,ftors,ndih_constr,idih_constr, & ndih_nconstr,idih_nconstr diff --git a/source/cluster/wham/src-M/readrtns.F b/source/cluster/wham/src-M/readrtns.F index 06777ec..8624355 100644 --- a/source/cluster/wham/src-M/readrtns.F +++ b/source/cluster/wham/src-M/readrtns.F @@ -289,14 +289,16 @@ C this fragment reads diheadral constrains read (inp,*) ndih_constr if (ndih_constr.gt.0) then - read (inp,*) ftors - write (iout,*) 'FTORS',ftors +C read (inp,*) ftors +C write (iout,*) 'FTORS',ftors C ftors is the force constant for torsional quartic constrains - read (inp,*) (idih_constr(i),phi0(i),drange(i),i=1,ndih_constr) + read (inp,*) (idih_constr(i),phi0(i),drange(i),ftors(i), + & i=1,ndih_constr) write (iout,*) & 'There are',ndih_constr,' constraints on phi angles.' do i=1,ndih_constr - write (iout,'(i5,2f8.3)') idih_constr(i),phi0(i),drange(i) + write (iout,'(i5,3f8.3)') idih_constr(i),phi0(i),drange(i), + & ftors(i) enddo do i=1,ndih_constr phi0(i)=deg2rad*phi0(i) diff --git a/source/unres/src_MD-M/COMMON.TORCNSTR b/source/unres/src_MD-M/COMMON.TORCNSTR index e4af17c..ec35b4f 100644 --- a/source/unres/src_MD-M/COMMON.TORCNSTR +++ b/source/unres/src_MD-M/COMMON.TORCNSTR @@ -1,6 +1,7 @@ integer ndih_constr,idih_constr(maxdih_constr) integer ndih_nconstr,idih_nconstr(maxdih_constr) integer idihconstr_start,idihconstr_end - double precision phi0(maxdih_constr),drange(maxdih_constr),ftors + double precision phi0(maxdih_constr),drange(maxdih_constr), + & ftors(maxdih_constr) common /torcnstr/ phi0,drange,ftors,ndih_constr,idih_constr, & ndih_nconstr,idih_nconstr,idihconstr_start,idihconstr_end diff --git a/source/unres/src_MD-M/dihed_cons.F b/source/unres/src_MD-M/dihed_cons.F index 1fb6c53..ddf198d 100644 --- a/source/unres/src_MD-M/dihed_cons.F +++ b/source/unres/src_MD-M/dihed_cons.F @@ -28,9 +28,9 @@ cdr call getenv_loc('SECPREDFIL',secpred) C read secondary structure prediction from JPRED here! ! read(isecpred,'(A80)',err=100,end=100) line ! read(line,'(f10.3)',err=110) ftors - read(isecpred,'(f10.3)',err=110) ftors + read(isecpred,'(f10.3)',err=110) ftors(1) - write (iout,*) 'FTORS factor =',ftors + write (iout,*) 'FTORS factor =',ftors(1) ! initialize secstruc to any do i=1,nres secstruc(i) ='-' @@ -52,6 +52,7 @@ C 8/13/98 Set limits to generating the dihedral angles ii=0 do i=1,nres + ftors(i)=ftors(1) if ( secstruc(i) .eq. 'H') then C Helix restraints for this residue ii=ii+1 diff --git a/source/unres/src_MD-M/energy_p_new_barrier.F b/source/unres/src_MD-M/energy_p_new_barrier.F index 662a796..766d2d5 100644 --- a/source/unres/src_MD-M/energy_p_new_barrier.F +++ b/source/unres/src_MD-M/energy_p_new_barrier.F @@ -5663,12 +5663,12 @@ c write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg) difi=phii-phi0(i) if (difi.gt.drange(i)) then difi=difi-drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 else if (difi.lt.-drange(i)) then difi=difi+drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 + edihcnstr=edihcnstr+0.25d0*ftors(i)**difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 endif ! write (iout,'(2i5,2f8.3,2e14.5)') i,itori,rad2deg*phii, ! & rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg) @@ -5767,12 +5767,12 @@ c do i=1,ndih_constr difi=pinorm(phii-phi0(i)) if (difi.gt.drange(i)) then difi=difi-drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 else if (difi.lt.-drange(i)) then difi=difi+drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 else difi=0.0 endif @@ -5780,7 +5780,7 @@ c do i=1,ndih_constr write (iout,'(a6,2i5,4f8.3,2e14.5)') "edihc", & i,itori,rad2deg*phii, & rad2deg*phi0(i), rad2deg*drange(i), - & rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg) + & rad2deg*difi,0.25d0*ftors(i)*difi**4,gloc(itori-3,icg) endif enddo cd write (iout,*) 'edihcnstr',edihcnstr diff --git a/source/unres/src_MD-M/readrtns_CSA.F b/source/unres/src_MD-M/readrtns_CSA.F index 00e72a0..1cda5ea 100644 --- a/source/unres/src_MD-M/readrtns_CSA.F +++ b/source/unres/src_MD-M/readrtns_CSA.F @@ -828,21 +828,23 @@ C 8/13/98 Set limits to generating the dihedral angles enddo read (inp,*) ndih_constr if (ndih_constr.gt.0) then - read (inp,*) ftors - read (inp,*) (idih_constr(i),phi0(i),drange(i),i=1,ndih_constr) +C read (inp,*) ftors + read (inp,*) (idih_constr(i),phi0(i),drange(i),ftors(i), + & i=1,ndih_constr) if(me.eq.king.or..not.out1file)then write (iout,*) & 'There are',ndih_constr,' constraints on phi angles.' do i=1,ndih_constr - write (iout,'(i5,2f8.3)') idih_constr(i),phi0(i),drange(i) + write (iout,'(i5,3f8.3)') idih_constr(i),phi0(i),drange(i), + & ftors(i) enddo endif do i=1,ndih_constr phi0(i)=deg2rad*phi0(i) drange(i)=deg2rad*drange(i) enddo - if(me.eq.king.or..not.out1file) - & write (iout,*) 'FTORS',ftors +C if(me.eq.king.or..not.out1file) +C & write (iout,*) 'FTORS',ftors do i=1,ndih_constr ii = idih_constr(i) phibound(1,ii) = phi0(i)-drange(i) diff --git a/source/wham/src-M/enecalc1.F b/source/wham/src-M/enecalc1.F index e36aa27..ab0a408 100644 --- a/source/wham/src-M/enecalc1.F +++ b/source/wham/src-M/enecalc1.F @@ -161,7 +161,7 @@ c & " kfac",kfac,"quot",quot," fT",fT write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct) call enerprint(energia(0),fT) write (iout,'(2i5,21f8.2)') i,iparm,(energia(k),k=1,21) - write (iout,*) "ftors",ftors + write (iout,*) "ftors(1)",ftors(1) call briefout(i,energia(0)) temp=1.0d0/(beta_h(ib,ipar)*1.987D-3) write (iout,*) "temp", temp diff --git a/source/wham/src-M/energy_p_new.F b/source/wham/src-M/energy_p_new.F index 26e2a9b..33e670a 100644 --- a/source/wham/src-M/energy_p_new.F +++ b/source/wham/src-M/energy_p_new.F @@ -4478,16 +4478,16 @@ c write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg) difi=phii-phi0(i) if (difi.gt.drange(i)) then difi=difi-drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 else if (difi.lt.-drange(i)) then difi=difi+drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 endif - write (iout,'(a6,2i5,2f8.3,2e14.5)') "edih", - & i,itori,rad2deg*phii, - & rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg) +C write (iout,'(a6,2i5,2f8.3,2e14.5)') "edih", +C & i,itori,rad2deg*phii, +C & rad2deg*difi,0.25d0*ftors(i)*difi**4,gloc(itori-3,icg) enddo ! write (iout,*) 'edihcnstr',edihcnstr return @@ -4574,24 +4574,24 @@ c write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg) edihi=0.0d0 if (difi.gt.drange(i)) then difi=difi-drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 - edihi=0.25d0*ftors*difi**4 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 + edihi=0.25d0*ftors(i)*difi**4 else if (difi.lt.-drange(i)) then difi=difi+drange(i) - edihcnstr=edihcnstr+0.25d0*ftors*difi**4 - gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3 - edihi=0.25d0*ftors*difi**4 + edihcnstr=edihcnstr+0.25d0*ftors(i)*difi**4 + gloc(itori-3,icg)=gloc(itori-3,icg)+ftors(i)*difi**3 + edihi=0.25d0*ftors(i)*difi**4 else difi=0.0d0 endif write (iout,'(a6,2i5,2f8.3,2e14.5)') "edih", & i,itori,rad2deg*phii, - & rad2deg*difi,0.25d0*ftors*difi**4 + & rad2deg*difi,0.25d0*ftors(i)*difi**4 c write (iout,'(2i5,4f10.5,e15.5)') i,itori,phii,phi0(i),difi, c & drange(i),edihi ! write (iout,'(2i5,2f8.3,2e14.5)') i,itori,rad2deg*phii, -! & rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg) +! & rad2deg*difi,0.25d0*ftors(i)*difi**4,gloc(itori-3,icg) enddo ! write (iout,*) 'edihcnstr',edihcnstr return diff --git a/source/wham/src-M/include_unres/COMMON.TORCNSTR b/source/wham/src-M/include_unres/COMMON.TORCNSTR index f8fc3a1..bef2264 100644 --- a/source/wham/src-M/include_unres/COMMON.TORCNSTR +++ b/source/wham/src-M/include_unres/COMMON.TORCNSTR @@ -1,5 +1,6 @@ integer ndih_constr,idih_constr(maxdih_constr) integer ndih_nconstr,idih_nconstr(maxdih_constr) - double precision phi0(maxdih_constr),drange(maxdih_constr),ftors + double precision phi0(maxdih_constr),drange(maxdih_constr), + & ftors(maxdih_constr) common /torcnstr/ phi0,drange,ftors,ndih_constr,idih_constr, & ndih_nconstr,idih_nconstr diff --git a/source/wham/src-M/molread_zs.F b/source/wham/src-M/molread_zs.F index 4462f2d..061ae05 100644 --- a/source/wham/src-M/molread_zs.F +++ b/source/wham/src-M/molread_zs.F @@ -77,13 +77,15 @@ C Convert sequence to numeric code read (inp,*) ndih_constr if (ndih_constr.gt.0) then - read (inp,*) ftors - write (iout,*) 'FTORS',ftors - read (inp,*) (idih_constr(i),phi0(i),drange(i),i=1,ndih_constr) +C read (inp,*) ftors +C write (iout,*) 'FTORS',ftors + read (inp,*) (idih_constr(i),phi0(i),drange(i),ftors(i), + & i=1,ndih_constr) write (iout,*) & 'There are',ndih_constr,' constraints on phi angles.' do i=1,ndih_constr - write (iout,'(i5,2f8.3)') idih_constr(i),phi0(i),drange(i) + write (iout,'(i5,3f8.3)') idih_constr(i),phi0(i),drange(i), + & ftors(i) enddo do i=1,ndih_constr phi0(i)=deg2rad*phi0(i) -- 1.7.9.5