********>bugfix.10: Author: Wei Zhang Date: 10/06/2008 Programs: sander Description: The MPI communicators were not properly set up for "full" PIMD and NEB runs. Apply the following patch from $AMBERHOME: patch -p0 -N ------------------------------------------------------------------------------ Index: src/sander/force.f =================================================================== RCS file: /raid5/case/cvsroot/amber10/src/sander/force.f,v retrieving revision 9.68 diff -p -r9.68 force.f *** src/sander/force.f 7 Apr 2008 16:35:55 -0000 9.68 --- src/sander/force.f 10 Sep 2008 15:10:44 -0000 *************** subroutine force(xx,ix,ih,ipairs,x,f,ene *** 1144,1151 **** bnd_vir = bnd_vir/nbead call pimd_full_spring_force(x,f,real_mass,Epot_spring,Epot_deriv,dvdl) # ifdef MPI ! call mpi_reduce(ener,totener(23),28,MPI_DOUBLE_PRECISION, & ! MPI_SUM,0,commmaster,ierr) # endif #endif ! Pass dvdl = dV/dl for TI w.r.t. mass. --- 1144,1151 ---- bnd_vir = bnd_vir/nbead call pimd_full_spring_force(x,f,real_mass,Epot_spring,Epot_deriv,dvdl) # ifdef MPI ! if(master) call mpi_reduce(ener,totener(23),28,MPI_DOUBLE_PRECISION, & ! MPI_SUM,0,commmaster,ierr) # endif #endif ! Pass dvdl = dV/dl for TI w.r.t. mass. Index: src/sander/pimd_force.f =================================================================== RCS file: /raid5/case/cvsroot/amber10/src/sander/pimd_force.f,v retrieving revision 9.21 diff -p -r9.21 pimd_force.f *** src/sander/pimd_force.f 7 Apr 2008 16:35:56 -0000 9.21 --- src/sander/pimd_force.f 10 Sep 2008 15:10:44 -0000 *************** subroutine full_neb_forces(mass,x,f,v,ep *** 710,720 **** end do !ezero is the higher energy of the two end points ! ezero = max( nrg_all(1), nrg_all(ncopy) ) !emax is the highest energy of all the points emax = nrg_all(1) ! do rep = 2, ncopy emax = max(emax, nrg_all(rep)) end do --- 710,720 ---- end do !ezero is the higher energy of the two end points ! ezero = max( nrg_all(1), nrg_all(nbead) ) !emax is the highest energy of all the points emax = nrg_all(1) ! do rep = 2, nbead emax = max(emax, nrg_all(rep)) end do Index: src/sander/runmd.f =================================================================== RCS file: /raid5/case/cvsroot/amber10/src/sander/runmd.f,v retrieving revision 9.82 diff -p -r9.82 runmd.f *** src/sander/runmd.f 7 Apr 2008 16:35:56 -0000 9.82 --- src/sander/runmd.f 10 Sep 2008 15:10:45 -0000 *************** subroutine runmd(xx,ix,ih,ipairs,x,winv, *** 2411,2419 **** #ifndef LES if ( ipimd>0 .or. ineb>0 ) then # ifdef MPI ! call mpi_reduce(ener(2),totener(2),1,MPI_DOUBLE_PRECISION, & ! mpi_sum,0,commmaster,ierr) ! # endif endif ! Passing of dvdl=dV/dl for TI w.r.t. mass --- 2411,2419 ---- #ifndef LES if ( ipimd>0 .or. ineb>0 ) then # ifdef MPI ! if(master) call mpi_reduce(ener(2),totener(2),1,MPI_DOUBLE_PRECISION, & ! MPI_SUM,0,commmaster,ierr) ! # endif endif ! Passing of dvdl=dV/dl for TI w.r.t. mass Index: src/sander/sander.f =================================================================== RCS file: /raid5/case/cvsroot/amber10/src/sander/sander.f,v retrieving revision 9.61 diff -p -r9.61 sander.f *** src/sander/sander.f 27 Mar 2008 15:47:22 -0000 9.61 --- src/sander/sander.f 10 Sep 2008 15:10:45 -0000 *************** subroutine sander() *** 989,995 **** write (6,'(a,i4)') "REMD: Getting initial energy for replica ",repnum #endif /* MPI */ ! if ( ipimd > 0 .or. ineb > 0 ) then call pimd_init(natom,x(lmass),x(lwinv),x(lvel),ipimd) end if --- 989,995 ---- write (6,'(a,i4)') "REMD: Getting initial energy for replica ",repnum #endif /* MPI */ ! if ( ipimd > 0 ) then call pimd_init(natom,x(lmass),x(lwinv),x(lvel),ipimd) end if ------------------------------------------------------------------------------ Temporary workarounds: none