READ_HOMOL_FRAG wham
[unres.git] / source / wham / src-M / wham_calc1.F
index 718bca4..536dae6 100644 (file)
@@ -88,7 +88,7 @@ c      parameter (MaxHdim=200000)
       double precision etot,evdw,evdw_t,evdw2,ees,evdw1,ebe,etors,
      &  escloc,ehpb,ecorr,ecorr5,ecorr6,eello_turn4,eello_turn3,
      &  eturn6,eel_loc,edihcnstr,etors_d,estr,evdw2_14,esccor,
-     &  ehomology_constr
+     &  ehomology_constr,esaxs
 
 
       integer ind_point(maxpoint),upindE,indE
@@ -238,13 +238,13 @@ c        write (9,'(3i5,f10.5)') i,(iparm,potE(i,iparm),iparm=1,nParmSet)
         do iparm=1,nParmSet
 #ifdef DEBUG
           write (iout,'(2i5,21f8.2)') i,iparm,
-     &     (enetb(k,i,iparm),k=1,22)
+     &     (enetb(k,i,iparm),k=1,26)
 #endif
           call restore_parm(iparm)
 #ifdef DEBUG
           write (iout,*) wsc,wscp,welec,wvdwpp,wang,wtor,wscloc,
      &      wcorr,wcorr5,wcorr6,wturn4,wturn3,wturn6,wel_loc,
-     &      wtor_d,wsccor,wbond
+     &      wtor_d,wsccor,wbond,wsaxs
 #endif
           do ib=1,nT_h(iparm)
             if (rescale_mode.eq.1) then
@@ -324,10 +324,11 @@ c              write (iout,*) 1.0d0/(beta_h(ib,iparm)*1.987D-3),ft
             esccor=enetb(19,i,iparm)
             edihcnstr=enetb(20,i,iparm)
             ehomology_constr=enetb(22,i,iparm)
+            esaxs=enetb(26,i,iparm)
 #ifdef DEBUG
             write (iout,'(3i5,6f5.2,14f12.3)') i,ib,iparm,(ft(l),l=1,6),
      &       evdw+evdw_t,evdw2,ees,evdw1,ecorr,eel_loc,estr,ebe,escloc,
-     &       etors,etors_d,eello_turn3,eello_turn4,esccor
+     &       etors,etors_d,eello_turn3,eello_turn4,esccor,esaxs
 #endif
 
 #ifdef SPLITELE
@@ -339,7 +340,7 @@ c              write (iout,*) 1.0d0/(beta_h(ib,iparm)*1.987D-3),ft
      &      +ft(2)*wturn3*eello_turn3
      &      +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
      &      +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
-     &      +wbond*estr
+     &      +wbond*estr+wsaxs*esaxs
 #else
             etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2
      &      +ft(1)*welec*(ees+evdw1)
@@ -349,7 +350,7 @@ c              write (iout,*) 1.0d0/(beta_h(ib,iparm)*1.987D-3),ft
      &      +ft(2)*wturn3*eello_turn3
      &      +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
      &      +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
-     &      +wbond*estr
+     &      +wbond*estr+wsaxs*esaxs
 #endif
 #ifdef DEBUG
             write (iout,*) i,iparm,1.0d0/(beta_h(ib,iparm)*1.987D-3),
@@ -603,13 +604,13 @@ c        write (9,'(3i5,f10.5)') i,(iparm,potE(i,iparm),iparm=1,nParmSet)
         do iparm=1,nParmSet
 #ifdef DEBUG
           write (iout,'(2i5,21f8.2)') i,iparm,
-     &     (enetb(k,i,iparm),k=1,22)
+     &     (enetb(k,i,iparm),k=1,26)
 #endif
           call restore_parm(iparm)
 #ifdef DEBUG
           write (iout,*) wsc,wscp,welec,wvdwpp,wang,wtor,wscloc,
      &      wcorr,wcorr5,wcorr6,wturn4,wturn3,wturn6,wel_loc,
-     &      wtor_d,wsccor,wbond
+     &      wtor_d,wsccor,wbond,wsaxs
 #endif
           do ib=1,nT_h(iparm)
             if (rescale_mode.eq.1) then
@@ -689,6 +690,7 @@ c              write (iout,*) 1.0d0/(beta_h(ib,iparm)*1.987D-3),ft
             esccor=enetb(19,i,iparm)
             edihcnstr=enetb(20,i,iparm)
             ehomology_constr=enetb(22,i,iparm)
+            esaxs=enetb(26,i,iparm)
 #ifdef SPLITELE
             etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+ft(1)*welec*ees
      &      +wvdwpp*evdw1
@@ -698,7 +700,7 @@ c              write (iout,*) 1.0d0/(beta_h(ib,iparm)*1.987D-3),ft
      &      +ft(2)*wturn3*eello_turn3
      &      +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
      &      +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
-     &      +wbond*estr+ehomology_constr
+     &      +wbond*estr+ehomology_constr+wsaxs*esaxs
 #else
             etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2
      &      +ft(1)*welec*(ees+evdw1)
@@ -708,7 +710,7 @@ c              write (iout,*) 1.0d0/(beta_h(ib,iparm)*1.987D-3),ft
      &      +ft(2)*wturn3*eello_turn3
      &      +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
      &      +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
-     &      +wbond*estr+ehomology_constr
+     &      +wbond*estr+ehomology_constr+wsaxs*esaxs
 
 #endif
             etot=etot-entfac(i)/beta_h(ib,iparm)
@@ -932,6 +934,7 @@ c          write (iout,'(2i5,20f8.2)') t,t,(enetb(k,t,iparm),k=1,18)
           esccor=enetb(19,t,iparm)
           edihcnstr=enetb(20,t,iparm)
           ehomology_constr=enetb(22,t,iparm)
+          esaxs=enetb(26,t,iparm)
           if (homol_nset.gt.1)
      &       ehomology_constr=waga_homology(ihset)*ehomology_constr
           do k=0,nGridT
@@ -1053,7 +1056,7 @@ c            write (iout,*) "ftbis",ftbis
      &      +ft(2)*wturn3*eello_turn3
      &      +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
      &      +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
-     &      +wbond*estr+ehomology_constr
+     &      +wbond*estr+ehomology_constr+wsaxs*esaxs
             eprim=ftprim(6)*evdw_t+ftprim(1)*welec*ees
      &            +ftprim(1)*wtor*etors+
      &            ftprim(3)*wcorr*ecorr+ftprim(4)*wcorr5*ecorr5+
@@ -1076,7 +1079,7 @@ c            write (iout,*) "ftbis",ftbis
      &      +ft(2)*wturn3*eello_turn3
      &      +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
      &      +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
-     &      +wbond*estr+ehomology_constr
+     &      +wbond*estr+ehomology_constr+wsaxs*esaxs
             eprim=ftprim(6)*evdw_t+ftprim(1)*welec*(ees+evdw1)
      &           +ftprim(1)*wtor*etors+
      &            ftprim(3)*wcorr*ecorr+ftprim(4)*wcorr5*ecorr5+