& 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
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)
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
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
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)
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
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) ='-'
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
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)
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
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
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)
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
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
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
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
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)