introduction of different ftors for each site
authorAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Fri, 31 Jul 2015 10:24:38 +0000 (12:24 +0200)
committerAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Fri, 31 Jul 2015 10:24:38 +0000 (12:24 +0200)
12 files changed:
source/cluster/wham/src-M/COMMON.CONTROL
source/cluster/wham/src-M/energy_p_new.F
source/cluster/wham/src-M/include_unres/COMMON.TORCNSTR
source/cluster/wham/src-M/readrtns.F
source/unres/src_MD-M/COMMON.TORCNSTR
source/unres/src_MD-M/dihed_cons.F
source/unres/src_MD-M/energy_p_new_barrier.F
source/unres/src_MD-M/readrtns_CSA.F
source/wham/src-M/enecalc1.F
source/wham/src-M/energy_p_new.F
source/wham/src-M/include_unres/COMMON.TORCNSTR
source/wham/src-M/molread_zs.F

index 992affa..e65a5b2 100644 (file)
@@ -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
index a65c91c..39d35dd 100644 (file)
@@ -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
index f8fc3a1..5c26487 100644 (file)
@@ -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
index 06777ec..8624355 100644 (file)
@@ -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)
index e4af17c..ec35b4f 100644 (file)
@@ -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
index 1fb6c53..ddf198d 100644 (file)
@@ -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 
index 662a796..766d2d5 100644 (file)
@@ -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
index 00e72a0..1cda5ea 100644 (file)
@@ -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)
index e36aa27..ab0a408 100644 (file)
@@ -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
index 26e2a9b..33e670a 100644 (file)
@@ -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
index f8fc3a1..bef2264 100644 (file)
@@ -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
index 4462f2d..061ae05 100644 (file)
@@ -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)