clean fix revert to previous vestion
[unres.git] / source / wham / src-M / energy_p_new.F
index 6c943cc..a36e177 100644 (file)
@@ -104,6 +104,18 @@ C
         call Eliptransfer(eliptran)
       endif
 
+      if (TUBElog.eq.1) then
+      print *,"just before call"
+        call calctube(Etube)
+       print *,"just after call",etube
+       elseif (TUBElog.eq.2) then
+        call calctube2(Etube)
+       elseif (TUBElog.eq.3) then
+        call calcnano(Etube)
+       else
+       Etube=0.0d0
+       endif
+
 C 
 C 12/1/95 Multi-body terms
 C
@@ -136,7 +148,7 @@ c      write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t
      & +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
      & +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
      & +wbond*estr+wsccor*fact(1)*esccor+ethetacnstr
-     & +wliptran*eliptran
+     & +wliptran*eliptran+wtube*Etube
       else
       etot=wsc*(evdw+fact(6)*evdw_t)+wscp*evdw2+welec*fact(1)*ees
      & +wvdwpp*evdw1
@@ -146,7 +158,7 @@ c      write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t
      & +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
      & +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
      & +wbond*estr+wsccor*fact(1)*esccor+ethetacnstr
-     & +wliptran*eliptran
+     & +wliptran*eliptran+wtube*Etube
       endif
 #else
       if (shield_mode.gt.0) then
@@ -158,7 +170,7 @@ c      write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t
      & +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
      & +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
      & +wbond*estr+wsccor*fact(1)*esccor+ethetacnstr
-     & +wliptran*eliptran
+     & +wliptran*eliptran+wtube*Etube
       else
       etot=wsc*(evdw+fact(6)*evdw_t)+wscp*evdw2
      & +welec*fact(1)*(ees+evdw1)
@@ -168,7 +180,7 @@ c      write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t
      & +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
      & +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
      & +wbond*estr+wsccor*fact(1)*esccor+ethetacnstr
-     & +wliptran*eliptran
+     & +wliptran*eliptran+wtube*Etube
       endif
 #endif
       energia(0)=etot
@@ -205,6 +217,7 @@ c      write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t
       energia(21)=evdw_t
       energia(24)=ethetacnstr
       energia(22)=eliptran
+      energia(25)=Etube
 c detecting NaNQ
 #ifdef ISNAN
 #ifdef AIX
@@ -260,6 +273,8 @@ C
      &                 +wturn4*gshieldc_loc_t4(j,i)
      &                 +wel_loc*gshieldc_ll(j,i)
      &                 +wel_loc*gshieldc_loc_ll(j,i)
+     &                +wtube*gg_tube(j,i)
+
 
           gradx(j,i,icg)=wsc*gvdwx(j,i)+wscp*gradx_scp(j,i)+
      &                  wbond*gradbx(j,i)+
@@ -271,6 +286,7 @@ C
      &                 +wturn3*gshieldx_t3(j,i)
      &                 +wturn4*gshieldx_t4(j,i)
      &                 +wel_loc*gshieldx_ll(j,i)
+     &                +wtube*gg_tube_SC(j,i)
 
         else
           gradc(j,i,icg)=fact(1)*wsc*gvdwc(j,i)
@@ -297,6 +313,8 @@ C
      &                 +wturn4*gshieldc_loc_t4(j,i)
      &                 +wel_loc*gshieldc_ll(j,i)
      &                 +wel_loc*gshieldc_loc_ll(j,i)
+     &                +wtube*gg_tube(j,i)
+
 
           gradx(j,i,icg)=fact(1)*wsc*gvdwx(j,i)
      &                 +fact(1)*wscp*gradx_scp(j,i)+
@@ -309,6 +327,7 @@ C
      &                 +wturn3*gshieldx_t3(j,i)
      &                 +wturn4*gshieldx_t4(j,i)
      &                 +wel_loc*gshieldx_ll(j,i)
+     &                +wtube*gg_tube_SC(j,i)
 
 
         endif
@@ -339,6 +358,7 @@ C
      &                 +wturn4*gshieldc_loc_t4(j,i)
      &                 +wel_loc*gshieldc_ll(j,i)
      &                 +wel_loc*gshieldc_loc_ll(j,i)
+     &                +wtube*gg_tube(j,i)
 
           gradx(j,i,icg)=wsc*gvdwx(j,i)+wscp*gradx_scp(j,i)+
      &                  wbond*gradbx(j,i)+
@@ -350,6 +370,8 @@ C
      &                 +wturn3*gshieldx_t3(j,i)
      &                 +wturn4*gshieldx_t4(j,i)
      &                 +wel_loc*gshieldx_ll(j,i)
+     &                 +wtube*gg_tube_sc(j,i)
+
 
               else
           gradc(j,i,icg)=fact(1)*wsc*gvdwc(j,i)+
@@ -375,6 +397,7 @@ C
      &                 +wturn4*gshieldc_loc_t4(j,i)
      &                 +wel_loc*gshieldc_ll(j,i)
      &                 +wel_loc*gshieldc_loc_ll(j,i)
+     &                +wtube*gg_tube(j,i)
 
           gradx(j,i,icg)=fact(1)*wsc*gvdwx(j,i)+
      &                  fact(1)*wscp*gradx_scp(j,i)+
@@ -387,6 +410,8 @@ C
      &                 +wturn3*gshieldx_t3(j,i)
      &                 +wturn4*gshieldx_t4(j,i)
      &                 +wel_loc*gshieldx_ll(j,i)
+     &                 +wtube*gg_tube_sc(j,i)
+
 
          endif
         enddo
@@ -446,6 +471,7 @@ C------------------------------------------------------------------------
       estr=energia(18)
       ethetacnstr=energia(24)
       eliptran=energia(22)
+      Etube=energia(25)
 #ifdef SPLITELE
       write (iout,10) evdw,wsc,evdw2,wscp,ees,welec*fact(1),evdw1,
      &  wvdwpp,
@@ -455,7 +481,7 @@ C------------------------------------------------------------------------
      &  eel_loc,wel_loc*fact(2),eello_turn3,wturn3*fact(2),
      &  eello_turn4,wturn4*fact(3),eello_turn6,wturn6*fact(5),
      &  esccor,wsccor*fact(1),edihcnstr,ethetacnstr,ebr*nss,
-     & eliptran,wliptran,etot
+     & eliptran,wliptran,etube,wtube ,etot
    10 format (/'Virtual-chain energies:'//
      & 'EVDW=  ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-SC)'/
      & 'EVDW2= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-p)'/
@@ -480,6 +506,7 @@ C------------------------------------------------------------------------
      & 'ETHETC= ',1pE16.6,' (valence angle constraints)'/
      & 'ESS=   ',1pE16.6,' (disulfide-bridge intrinsic energy)'/ 
      & 'ELT=',1pE16.6, ' WEIGHT=',1pD16.6,' (Lipid transfer energy)'/
+     & 'ETUBE=',1pE16.6, ' WEIGHT=',1pD16.6,' (Lipid transfer energy)'/
      & 'ETOT=  ',1pE16.6,' (total)')
 #else
       write (iout,10) evdw,wsc,evdw2,wscp,ees,welec*fact(1),estr,wbond,
@@ -488,7 +515,7 @@ C------------------------------------------------------------------------
      &  ecorr6,wcorr6*fact(5),eel_loc,wel_loc*fact(2),
      &  eello_turn3,wturn3*fact(2),eello_turn4,wturn4*fact(3),
      &  eello_turn6,wturn6*fact(5),esccor*fact(1),wsccor,
-     &  edihcnstr,ethetacnstr,ebr*nss,eliptran,wliptran,etot
+     &  edihcnstr,ethetacnstr,ebr*nss,eliptran,wliptran,etube,wtube,etot
    10 format (/'Virtual-chain energies:'//
      & 'EVDW=  ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-SC)'/
      & 'EVDW2= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-p)'/
@@ -2371,8 +2398,12 @@ C          fac_shield(j)=0.6
           fac_shield(j)=1.0
           eesij=(el1+el2)
           ees=ees+eesij
+     &*((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
           endif
           evdw1=evdw1+evdwij*sss
+     &*((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
 c             write (iout,'(a6,2i5,0pf7.3,2i5,2e11.3)') 
 c     &'evdw1',i,j,evdwij
 c     &,iteli,itelj,aaa,evdw1
@@ -2387,7 +2418,11 @@ C Calculate contributions to the Cartesian gradient.
 C
 #ifdef SPLITELE
           facvdw=-6*rrmij*(ev1+evdwij)*sss
+     &    *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
           facel=-3*rrmij*(el1+eesij)
+     &*((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
           fac1=fac
           erij(1)=xj*rmij
           erij(2)=yj*rmij
@@ -2471,8 +2506,13 @@ C          ggg(2)=facvdw*yj
 C          ggg(3)=facvdw*zj
           if (sss.gt.0.0) then
           ggg(1)=facvdw*xj+sssgrad*rmij*evdwij*xj
+     &    *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
           ggg(2)=facvdw*yj+sssgrad*rmij*evdwij*yj
+     &    *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
           ggg(3)=facvdw*zj+sssgrad*rmij*evdwij*zj
+     &    *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
           else
           ggg(1)=0.0
           ggg(2)=0.0
@@ -2483,6 +2523,11 @@ C          ggg(3)=facvdw*zj
             gvdwpp(k,i)=gvdwpp(k,i)+ghalf
             gvdwpp(k,j)=gvdwpp(k,j)+ghalf
           enddo
+           gvdwpp(3,j)=gvdwpp(3,j)+
+     &     sss*ssgradlipj*evdwij/2.0d0*lipscale**2
+           gvdwpp(3,i)=gvdwpp(3,i)+
+     &     sss*ssgradlipi*evdwij/2.0d0*lipscale**2
+
 *
 * Loop over residues i+1 thru j-1.
 *
@@ -2493,6 +2538,8 @@ C          ggg(3)=facvdw*zj
           enddo
 #else
           facvdw=(ev1+evdwij)*sss
+     &    *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
           facel=el1+eesij  
           fac1=fac
           fac=-3*rrmij*(facvdw+facvdw+facel)
@@ -2537,6 +2584,8 @@ cd   &          (dcosg(k),k=1,3)
           do k=1,3
             ggg(k)=ecosb*dcosb(k)+ecosg*dcosg(k) 
      &      *fac_shield(i)**2*fac_shield(j)**2
+     &      *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
           enddo
           do k=1,3
             ghalf=0.5D0*ggg(k)
@@ -2544,11 +2593,15 @@ cd   &          (dcosg(k),k=1,3)
      &               +(ecosa*(dc_norm(k,j)-cosa*dc_norm(k,i))
      &               + ecosb*(erij(k)-cosb*dc_norm(k,i)))*vbld_inv(i+1)
      &           *fac_shield(i)**2*fac_shield(j)**2
+     &      *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
 
             gelc(k,j)=gelc(k,j)+ghalf
      &               +(ecosa*(dc_norm(k,i)-cosa*dc_norm(k,j))
      &               + ecosg*(erij(k)-cosg*dc_norm(k,j)))*vbld_inv(j+1)
      &           *fac_shield(i)**2*fac_shield(j)**2
+     &      *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0)
+
           enddo
           do k=i+1,j-1
             do l=1,3
@@ -2804,9 +2857,11 @@ C           fac_shield(j)=0.6
           eel_loc_ij=eel_loc_ij
      &    *fac_shield(i)*fac_shield(j)
      &*((sslipi+sslipj)/2.0d0*lipscale+1.0d0)
-c          write (iout,*) 'i',i,' j',j,' eel_loc_ij',eel_loc_ij
-C          write (iout,'(a6,2i5,0pf7.3)')
-C     &            'eelloc',i,j,eel_loc_ij
+C          write (iout,'(a3,i4,a3,i4,a8,4f8.3)') 
+C     & 'i',i,' j',j,' eel_loc_ij',eel_loc_ij,sslipi,
+C     & sslipj,lipscale
+C          write (iout,'(a6,2i5,0pf7.3,2f7.3)')
+C     &            'eelloc',i,j,eel_loc_ij,a22*muij(1),a23*muij(2)
 C          write(iout,*) 'muije=',i,j,muij(1),muij(2),muij(3),muij(4)
 c          write (iout,*) a22,muij(1),a23,muij(2),a32,muij(3)
 C          eel_loc=eel_loc+eel_loc_ij
@@ -3245,7 +3300,9 @@ C        fac_shield(j)=0.6
         eello_t3=0.5d0*(pizda(1,1)+pizda(2,2))
      &  *fac_shield(i)*fac_shield(j)
      &*((sslipi+sslipj)/2.0d0*lipscale+1.0d0)
-
+          write (iout,'(a3,i4,a3,i4,a8,4f8.3)') 
+     & 'i',i,' j',j,' eturn3',eello_t3,sslipi,
+     & sslipj,lipscale
 cd        write (2,*) 'i,',i,' j',j,'eello_turn3',
 cd     &    0.5d0*(pizda(1,1)+pizda(2,2)),
 cd     &    ' eello_turn3_num',4*eello_turn3_num
@@ -3404,6 +3461,8 @@ C        fac_shield(j)=0.6
 
         eello_turn4=eello_turn4-(s1+s2+s3)
      &  *fac_shield(i)*fac_shield(j)
+     &*((sslipi+sslipj)/2.0d0*lipscale+1.0d0)
+
         eello_t4=-(s1+s2+s3)
      &  *fac_shield(i)*fac_shield(j)
 
@@ -9207,7 +9266,6 @@ C simple Kihara potential
       include 'COMMON.LOCAL'
       include 'COMMON.CHAIN'
       include 'COMMON.DERIV'
-      include 'COMMON.NAMES'
       include 'COMMON.INTERACT'
       include 'COMMON.IOUNITS'
       include 'COMMON.CALC'
@@ -9380,7 +9438,6 @@ C simple Kihara potential
       include 'COMMON.LOCAL'
       include 'COMMON.CHAIN'
       include 'COMMON.DERIV'
-      include 'COMMON.NAMES'
       include 'COMMON.INTERACT'
       include 'COMMON.IOUNITS'
       include 'COMMON.CALC'
@@ -9642,7 +9699,6 @@ C simple Kihara potential
       include 'COMMON.LOCAL'
       include 'COMMON.CHAIN'
       include 'COMMON.DERIV'
-      include 'COMMON.NAMES'
       include 'COMMON.INTERACT'
       include 'COMMON.IOUNITS'
       include 'COMMON.CALC'