--- trunk/OOPSE-1.0/libmdtools/mpiSimulation.cpp 2004/07/16 18:58:03 1334 +++ trunk/OOPSE-1.0/libmdtools/mpiSimulation.cpp 2004/07/26 14:36:05 1411 @@ -84,8 +84,22 @@ void mpiSimulation::divideLabor( ){ parallelData->nGroupsGlobal = entryPlug->ngroup; parallelData->nMolGlobal = entryPlug->n_mol; - myRandom = new randomSPRNG( baseSeed ); + if (parallelData->nProcessors > parallelData->nMolGlobal) { + sprintf( painCave.errMsg, + "nProcessors (%d) > nMol (%d)\n" + "\tThe number of processors is larger than\n" + "\tthe number of molecules. This will not result in a \n" + "\tusable division of atoms for force decomposition.\n" + "\tEither try a smaller number of processors, or run the\n" + "\tsingle-processor version of OOPSE.\n", + parallelData->nProcessors, parallelData->nMolGlobal ); + painCave.isFatal = 1; + simError(); + } + myRandom = new randomSPRNG( baseSeed ); + + a = 3.0 * (double)parallelData->nMolGlobal / (double)parallelData->nAtomsGlobal; // Initialize things that we'll send out later: