AIX xdrfint_
[unres.git] / source / unres / src_MD-M / MREMD.F
index d55a95b..852d74e 100644 (file)
@@ -959,7 +959,7 @@ cd            write(iout,*) "########",ii
 
 cd            write(iout,*) "i=",i,i_temp,i_mult,i_iset,i_mset
 
-            i_dir=iran_num(1,3)
+             i_dir=iran_num(1,3)
 cd            write(iout,*) "i_dir=",i_dir
 
             if(i_dir.eq.1 .and. remd_m(i_temp+1).gt.0 )then            
@@ -1170,7 +1170,7 @@ co     &    " rescaling weights with temperature",t_bath
          stdfp=dsqrt(2*Rb*t_bath/d_time)
          do i=1,ntyp
            stdfsc(i)=dsqrt(2*Rb*t_bath/d_time)
-         enddo 
+         enddo
 
 cde         write(iout,*) 'REMD after',me,t_bath
            time08=MPI_WTIME()
@@ -1500,8 +1500,13 @@ c end debugging
           call xdrffloat_(ixdrf, real(t_restart1(4,il)), iret)
           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 xdrfint_(ixdrf, nfrag+npair+3*nfrag_back, iret)
           call xdrfint_(ixdrf, iset_restart1(il), iret)
@@ -1538,8 +1543,13 @@ c end debugging
           call xdrffloat(ixdrf, real(t_restart1(4,il)), iret)
           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 xdrfint(ixdrf, nfrag+npair+3*nfrag_back, iret)
           call xdrfint(ixdrf, iset_restart1(il), iret)
@@ -1782,10 +1792,14 @@ c     &                (d_restart1(j,i+2*nres*il),j=1,3)
               enddo
              endif
 #endif
-              call mpi_scatter(i2set,1,mpi_integer,
-     &           iset,1,mpi_integer,king,
-     &           CG_COMM,ierr) 
-
+Corrected AL 8/19/2014: each processor needs whole iset array not only its
+c own element
+c              call mpi_scatter(i2set,1,mpi_integer,
+c     &           iset,1,mpi_integer,king,
+c     &           CG_COMM,ierr)
+              call mpi_bcast(i2set(0),nodes,mpi_integer,king,
+     &         CG_COMM,ierr)
+              iset=i2set(me)
            endif
 
 
@@ -1861,4 +1875,4 @@ c     &                (d_restart1(j,i+2*nres*il),j=1,3)
         if(me.eq.king) close(irest2)
         return
         end
-          
+