Merge branch 'prerelease-3.2.1'
[unres.git] / source / cluster / wham / src / probabl.F
index 7fcd29b..bdca32a 100644 (file)
@@ -28,8 +28,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
@@ -111,13 +112,13 @@ c        write (iout,*) "i",i," ii",ii
           call int_from_cart1(.false.)
           call etotal(energia(0),fT)
           totfree(i)=energia(0)
-c#define DEBUG
+#define DEBUG
 #ifdef DEBUG
           write (iout,*) i," energia",(energia(j),j=0,20)
           call enerprint(energia(0),ft)
           call flush(iout)
 #endif
-c#undef DEBUG
+#undef DEBUG
           do k=1,max_ene
             enetb(k,i)=energia(k)
           enddo
@@ -172,29 +173,41 @@ cc        if (wcorr6.eq.0) ecorr6=0.0d0
      &  +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
      &  +wbond*estr
 #endif
+#ifdef MPI
+        Fdimless_(i)=beta_h(ib)*etot+entfac(ii)
+        totfree_(i)=etot
+#ifdef DEBUG
+        write (iout,*) "etrop", i,ii,ib,
+     &   1.0d0/(1.987d-3*beta_h(ib)),totfree(i),
+     &   entfac(ii),Fdimless_(i)
+#endif
+#else
         Fdimless(i)=beta_h(ib)*etot+entfac(ii)
         totfree(i)=etot
 #ifdef DEBUG
-        
         write (iout,*) "etrop", i,ii,ib,
      &   1.0d0/(1.987d-3*beta_h(ib)),totfree(i),
      &   entfac(ii),Fdimless(i)
 #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
 c#define DEBUG
 #ifdef DEBUG
@@ -223,14 +236,12 @@ c        write (iout,*) "qfree",qfree
         sumprob=0.0
         do i=1,min0(ncon,maxstr_proc)-1 
           sumprob=sumprob+dexp(dble(-fdimless(i)+fdimless(1)))/qfree 
-c#define DEBUG
 #ifdef DEBUG
           write (iout,*) 'i=',i,ib,beta_h(ib),
      &     1.0d0/(1.987d-3*beta_h(ib)),list_conf(i),
      &     totfree(list_conf(i)),
      &     -entfac(list_conf(i)),fdimless(i),sumprob
 #endif
-c#undef DEBUG
           if (sumprob.gt.prob_limit) goto 122
 c          if (sumprob.gt.1.00d0) goto 122
           nlist=nlist+1