Merge branch 'prerelease-3.2.1'
[unres.git] / source / cluster / wham / src-M / probabl.F
index 293fb8f..d563daf 100644 (file)
@@ -29,8 +29,9 @@
       character*5 ctemper
       integer ilen
       external ilen
-      real*4 Fdimless(maxconf)
+      real*4 Fdimless(maxconf),Fdimless_(maxconf)
       double precision energia(0:max_ene)
+      double precision totfree_(maxconf),entfac_(maxconf)
       do i=1,ncon
         list_conf(i)=i
       enddo
@@ -139,7 +140,7 @@ c          write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
 c          call enerprint(energia(0),fT)
 c          call pdbout(totfree(i),16,i)
 #ifdef DEBUG
-          write (iout,*) i," energia",(energia(j),j=0,19)
+          write (iout,*) i," energia",(energia(j),j=0,max_ene)
           write (iout,*) "etot", etot
           write (iout,*) "ft(6)", ft(6)
 #endif
@@ -179,6 +180,7 @@ c        write (iout,*) evdw
         estr=enetb(18,i)
         esccor=enetb(19,i)
         edihcnstr=enetb(20,i)
+        evdw_t=enetb(21,i)
 c#ifdef SPLITELE
 c        etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+
 c     &ft(1)*welec*ees+wvdwpp*evdw1
@@ -207,8 +209,13 @@ c#endif
         write (iout,*) "evdw1", wvdwpp,evdw1
         write (iout,*) "ebe" ebe,wang
 #endif        
+#ifdef MPI
+        Fdimless_(i)=beta_h(ib)*etot+entfac(ii)
+        totfree_(i)=etot
+#else
         Fdimless(i)=beta_h(ib)*etot+entfac(ii)
         totfree(i)=etot
+#endif
 #ifdef DEBUG
         write (iout,*) "fdim calc", i,ii,ib,
      &   1.0d0/(1.987d-3*beta_h(ib)),totfree(i),
@@ -216,19 +223,22 @@ c#endif
 #endif
       enddo   ! i
 #ifdef MPI
-      call MPI_Gatherv(Fdimless(1),scount(me),
+      call MPI_Gatherv(Fdimless_(1),scount(me),
      & MPI_REAL,Fdimless(1),
      & scount(0),idispl(0),MPI_REAL,Master,
      & MPI_COMM_WORLD, IERROR)
-      call MPI_Gatherv(totfree(1),scount(me),
+      call MPI_Gatherv(totfree_(1),scount(me),
      & MPI_DOUBLE_PRECISION,totfree(1),
      & scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
      & MPI_COMM_WORLD, IERROR)
       call MPI_Gatherv(entfac(indstart(me)+1),scount(me),
-     & MPI_DOUBLE_PRECISION,entfac(1),
+     & MPI_DOUBLE_PRECISION,entfac_(1),
      & scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
      & MPI_COMM_WORLD, IERROR)
       if (me.eq.Master) then
+        do i=1,ncon
+          entfac(i)=entfac_(i)
+        enddo 
 #endif
 #ifdef DEBUG
         write (iout,*) "The FDIMLESS array before sorting"