Merge branch 'devel' into AFM
[unres.git] / source / wham / src-M / enecalc1.F
index c29d517..fee94cf 100644 (file)
@@ -35,7 +35,7 @@
       double precision tole /1.0d-1/
       integer i,itj,ii,iii,j,k,l,licz
       integer ir,ib,ipar,iparm
-      integer iscor,islice
+      integer iscor,islice,scount_buff(0:99)
       real*4 csingle(3,maxres2)
       double precision energ
       double precision temp
@@ -167,7 +167,7 @@ C        write (iout,*) "tuz za energia"
           write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
         call enerprint(energia(0),fT)
         write (iout,'(2i5,21f8.2)') i,iparm,(energia(k),k=1,21)
-        write (iout,*) "ftors",ftors
+        write (iout,*) "ftors(1)",ftors(1)
         call briefout(i,energia(0))
         temp=1.0d0/(beta_h(ib,ipar)*1.987D-3)
         write (iout,*) "temp", temp
@@ -277,12 +277,15 @@ c     &   " snk",snk_p(iR,ib,ipar)
   121   continue
       enddo   
 #ifdef MPI
-      scount(me)=iii 
-      write (iout,*) "Me",me," scount",scount(me)
+      scount_buff(me)=iii 
+      write (iout,*) "Me",me," scount_buff",scount_buff(me)
       call flush(iout)
 c  Master gathers updated numbers of conformations written by all procs.
-      call MPI_AllGather( scount(me), 1, MPI_INTEGER, scount(0), 1, 
+c      call MPI_AllGather(MPI_IN_PLACE,1,MPI_DATATYPE_NULL,scount(0),1,
+c     &  MPI_INTEGER, WHAM_COMM, IERROR)
+      call MPI_AllGather( scount_buff(me), 1, MPI_INTEGER, scount(0), 1,
      &  MPI_INTEGER, WHAM_COMM, IERROR)
+
       indstart(0)=1
       indend(0)=scount(0)
       do i=1, Nprocs-1
@@ -368,7 +371,7 @@ c------------------------------------------------------------------------------
       double precision energ
       integer ilen,iroof
       external ilen,iroof
-      integer ir,ib,iparm
+      integer ir,ib,iparm, scount_buff(0:99)
       integer isecstr(maxres)
       write (licz2,'(bz,i2.2)') islice
       call opentmp(islice,ientout,bprotfile_temp)
@@ -673,8 +676,13 @@ c      write (iout,*) "xdrf3dfcoord"
 c      call flush(iout)
       call xdrfint_(ixdrf, nss, iret)
       do j=1,nss
-        call xdrfint_(ixdrf, ihpb(j), iret)
-        call xdrfint_(ixdrf, jhpb(j), iret)
+           if (dyn_ss) then
+            call xdrfint(ixdrf, idssb(j)+nres, iret)
+            call xdrfint(ixdrf, jdssb(j)+nres, iret)
+           else
+            call xdrfint_(ixdrf, ihpb(j), iret)
+            call xdrfint_(ixdrf, jhpb(j), iret)
+           endif
       enddo
       call xdrffloat_(ixdrf,real(eini),iret) 
       call xdrffloat_(ixdrf,real(efree),iret) 
@@ -685,8 +693,13 @@ c      call flush(iout)
 
       call xdrfint(ixdrf, nss, iret)
       do j=1,nss
-        call xdrfint(ixdrf, ihpb(j), iret)
-        call xdrfint(ixdrf, jhpb(j), iret)
+           if (dyn_ss) then
+            call xdrfint(ixdrf, idssb(j)+nres, iret)
+            call xdrfint(ixdrf, jdssb(j)+nres, iret)
+           else
+            call xdrfint(ixdrf, ihpb(j), iret)
+            call xdrfint(ixdrf, jhpb(j), iret)
+           endif
       enddo
       call xdrffloat(ixdrf,real(eini),iret) 
       call xdrffloat(ixdrf,real(efree),iret)