Dear Colleague, A bug in the parallel version of the Dissipative Particle Dynamics code has been discovered. The deport routine in domain_module.f90 contains calls to the subroutines contract_bndtbl, contract_angtbl and contract_dhdtbl (in lines 214-216) which are supposedly conditional on finding any bonds that need to be transferred from the current processor to its neighbour. The conditions specified in lines 214, 215 and 216 do not, however, guarantee that these subroutines are called when they need to be and thus outdated bond data might therefore be retained in the tables, leading to an error message stating a bond cannot be found and terminating DL_MESO_DPD. It should be noted that this bug does not affect the accuracy of calculations, merely the ability to carry them out. It is also not applicable for the serial version of the DPD code. (Many thanks are due to Luo Zhonglin for drawing attention to this bug.) The bug can be fixed by changing line 72 of domain_module.f90 to: LOGICAL :: safe, bondmove adding the following immediately after line 87: bondmove = .false. modifying the IF statements in lines 137-142, 156-162 and 176-183 by including bondmove = .true. in each group of commands, e.g. lines 156-162 should be changed to: IF (lb==angtbl (j, 2)) THEN iang = iang + 1 bufout (imove + 10 + 2 * ibond + 3 * iang) = DBLE (angtbl (j, 1)) bufout (imove + 11 + 2 * ibond + 3 * iang) = DBLE (angtbl (j, 3)) bufout (imove + 12 + 2 * ibond + 3 * iang) = DBLE (angtbl (j, 4)) angtbl (j, 4) = -1 bondmove = .true. END IF and changing lines 214-216 to: IF (bondmove) THEN CALL contract_bndtbl CALL contract_angtbl CALL contract_dhdtbl END IF The above changes will ensure that the subroutines to remove old bond data will be called whenever any bond/angle/dihedral needs to be moved. This bug fix has been applied to the current DL_MESO release and a corrected version may be downloaded by registered users of 2.3 without re-registering and decrypted using the same password. Michael Seaton 2011-03-11