********> bugfix.8 Author: Tom Cheatham Date: 4/20/95 Programs: sander Severity: moderate Affects: MPI parallel version (except on the T3D) Problem: Pressure and EKCMT off on step 1 and the results will diverge. Cause: Inconsistent parallelization in the init=3 case in the setting of the initial kinetics/pressure, etc. so that there are incomplete velocities/forces on each processor. Fix: Make the following change to sander/parallel.f ------------------------------------------------------------------------- *** OLD parallel.f --- NEW parallel.f *************** *** 241,249 rcvcnt(i) = iparpt3(i+1) - iparpt3(i) enddo ! call MPI_REDUCE_SCATTER(f, forcetmp(iparpt3(mytaskid)+1), ! . rcvcnt, MPI_DOUBLE_PRECISION, MPI_SUM, ! . MPI_COMM_WORLD, ierr) do i=1, 3*natom f(i) = forcetmp(i) enddo --- 241,259 ----- rcvcnt(i) = iparpt3(i+1) - iparpt3(i) enddo ! c ! c ...due to lack of parallelization in the initial parts ! c of runmd in the init=3 case, the more efficient ! c reduce_scatter needs to be replaced with a ! c mpi_allreduce call ! c ! c call MPI_REDUCE_SCATTER(f, forcetmp(iparpt3(mytaskid)+1), ! c . rcvcnt, MPI_DOUBLE_PRECISION, MPI_SUM, ! c . MPI_COMM_WORLD, ierr) ! c ! call MPI_ALLREDUCE(f, forcetmp, 3*natom, ! . MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,ierr) ! do i=1, 3*natom f(i) = forcetmp(i) enddo ------------------------------------------------------------------------- Temporary workarounds: start trajectory on a non-parallel system Routines affected: fdist() in parallel.f