intoduction of quartic restrains in multichain, bugfix in single chain
[unres.git] / source / unres / src_MD-M / energy_p_new_barrier.F
index cf9ddcb..745f7d5 100644 (file)
@@ -4087,6 +4087,9 @@ C
       include 'COMMON.CONTROL'
       dimension ggg(3)
       ehpb=0.0D0
+      do i=1,3
+       ggg(i)=0.0d0
+      enddo
 cd      write(iout,*)'edis: nhpb=',nhpb,' fbr=',fbr
 cd      write(iout,*)'link_start=',link_start,' link_end=',link_end
       if (link_end.eq.0) return
@@ -4122,9 +4125,9 @@ cd   &   ' waga=',waga,' fac=',fac
 c Restraints from contact prediction
           dd=dist(ii,jj)
           if (constr_dist.eq.11) then
-            ehpb=ehpb+fordepth(i)**4
+            ehpb=ehpb+fordepth(i)**4.0d0
      &          *rlornmr1(dd,dhpb(i),dhpb1(i),forcon(i))
-            fac=fordepth(i)**4
+            fac=fordepth(i)**4.0d0
      &          *rlornmr1prim(dd,dhpb(i),dhpb1(i),forcon(i))/dd
            else
           if (dhpb1(i).gt.0.0d0) then
@@ -4162,8 +4165,10 @@ C Calculate the distance between the two points and its difference from the
 C target distance.
           dd=dist(ii,jj)
           if (constr_dist.eq.11) then
-            ehpb=ehpb+fordepth(i)**4*rlornmr1(dd,dhpb(i),dhpb1(i))
-            fac=fordepth(i)**4*rlornmr1prim(dd,dhpb(i),dhpb1(i))/dd
+            ehpb=ehpb+fordepth(i)**4.0d0
+     &           *rlornmr1(dd,dhpb(i),dhpb1(i),forcon(i))
+            fac=fordepth(i)**4.0d0
+     &           *rlornmr1prim(dd,dhpb(i),dhpb1(i),forcon(i))/dd
            else   
           if (dhpb1(i).gt.0.0d0) then
             ehpb=ehpb+2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))