Author: Dave Case Date: 08/18/03 Programs: sander Description: parallel minimizations where 3-point waters are to be shaken will actually not shake some of the waters. This leads to results whose details depend upon the number of processors Fix: apply the following patch to amber7/src/sander/fastwt.f ------------------------------------------------------------------------------ *** fastwt.f 8 Jan 2002 06:46:10 -0000 7.12 --- fastwt.f 18 Aug 2003 17:09:55 -0000 *************** *** 152,159 **** c c -- screen out residue if wrong resname c - IF (IPRES(I+1)-IPRES(I).NE.3) all3point = .false. IF (LBRES(I).NE.IWTNM) GO TO 10 c c -- screen out residue if an atom is fixed (belly) or c if an atom name does not match or is duplicated --- 152,159 ---- c c -- screen out residue if wrong resname c IF (LBRES(I).NE.IWTNM) GO TO 10 + IF (IPRES(I+1)-IPRES(I).NE.3) all3point = .false. c c -- screen out residue if an atom is fixed (belly) or c if an atom name does not match or is duplicated *************** *** 387,399 **** ISTART = IPRES(I) IEND = IPRES(I) + 2 #ifdef MPI ! if (istart.ge.iparpt(mytaskid)+1 .and. . iend.le.iparpt(mytaskid+1)) then ! #endif CALL SETLEP (ISTART ,IEND ,X0 ,XH , * NATOM ,IORWAT ,RBTARG ) - #ifdef MPI - end if #endif END IF 10 CONTINUE --- 387,405 ---- ISTART = IPRES(I) IEND = IPRES(I) + 2 #ifdef MPI ! if( mpi_orig) then ! CALL SETLEP (ISTART ,IEND ,X0 ,XH, ! * NATOM ,IORWAT ,RBTARG ) ! else ! if (istart.ge.iparpt(mytaskid)+1 .and. . iend.le.iparpt(mytaskid+1)) then ! CALL SETLEP (ISTART ,IEND ,X0 ,XH, ! * NATOM ,IORWAT ,RBTARG ) ! end if ! end if ! #else CALL SETLEP (ISTART ,IEND ,X0 ,XH , * NATOM ,IORWAT ,RBTARG ) #endif END IF 10 CONTINUE ------------------------------------------------------------------------------ Temporary workarounds: none