Fixed a MAJOR error in WHAM; energies were computed inconsistently
[unres.git] / source / unres / src_MD-M / energy_p_new_barrier.F
index 0c2f5ed..ec85660 100644 (file)
@@ -663,7 +663,7 @@ c      enddo
           gradc(j,i,icg)=gradbufc(j,i)+welec*gelc(j,i)+
      &                wel_loc*gel_loc(j,i)+
      &                0.5d0*(wscp*gvdwc_scpp(j,i)+
-     &                welec*gelc_long(j,i)
+     &                welec*gelc_long(j,i) +
      &                wel_loc*gel_loc_long(j,i)+
      &                wcorr*gcorr_long(j,i)+
      &                wcorr5*gradcorr5_long(j,i)+
@@ -3665,7 +3665,7 @@ c        write (iout,*) "eturn4 i",i," j",j," j1",j1," j2",j2
         iti1=itortyp(itype(i+1))
         iti2=itortyp(itype(i+2))
         iti3=itortyp(itype(i+3))
-        write(iout,*) "iti1",iti1," iti2",iti2," iti3",iti3
+C        write(iout,*) i,"iti1",iti1," iti2",iti2," iti3",iti3,itype(i+3)
         call transpose2(EUg(1,1,i+1),e1t(1,1))
         call transpose2(Eug(1,1,i+2),e2t(1,1))
         call transpose2(Eug(1,1,i+3),e3t(1,1))
@@ -5559,7 +5559,8 @@ c     lprn=.true.
       etors=0.0D0
       do i=iphi_start,iphi_end
         if (itype(i-2).eq.21 .or. itype(i-1).eq.21 
-     &       .or. itype(i).eq.21) cycle
+     &       .or. itype(i).eq.21
+     &       .or. itype(i-3).eq.ntyp1) cycle
       etors_ii=0.0D0
         itori=itortyp(itype(i-2))
         itori1=itortyp(itype(i-1))
@@ -5655,7 +5656,8 @@ c     lprn=.true.
 C      write(iout,*) "a tu??"
       do i=iphid_start,iphid_end
         if (itype(i-2).eq.21 .or. itype(i-1).eq.21
-     &      .or. itype(i).eq.21 .or. itype(i+1).eq.21) cycle
+     &      .or. itype(i).eq.21 .or. itype(i+1).eq.21
+     &       .or. itype(i-3).eq.ntyp1) cycle
         itori=itortyp(itype(i-2))
         itori1=itortyp(itype(i-1))
         itori2=itortyp(itype(i))