--- branches/development/src/io/DumpReader.cpp 2012/09/06 19:44:06 1794 +++ branches/development/src/io/DumpReader.cpp 2013/05/10 14:59:13 1871 @@ -35,7 +35,7 @@ * * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). - * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). + * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). */ @@ -141,7 +141,7 @@ namespace OpenMD { prevPos = currPos; bool foundOpenSnapshotTag = false; bool foundClosedSnapshotTag = false; - bool foundOpenSiteDataTag = false; + while(inFile_->getline(buffer, bufferSize)) { ++lineNo; @@ -202,7 +202,7 @@ namespace OpenMD { #ifdef IS_MPI } - MPI_Bcast(&nframes_, 1, MPI_INT, 0, MPI_COMM_WORLD); + MPI::COMM_WORLD.Bcast(&nframes_, 1, MPI::INT, 0); #endif // is_mpi @@ -288,17 +288,18 @@ namespace OpenMD { } int sendBufferSize = sendBuffer.size(); - MPI_Bcast(&sendBufferSize, 1, MPI_INT, masterNode, MPI_COMM_WORLD); - MPI_Bcast((void *)sendBuffer.c_str(), sendBufferSize, MPI_CHAR, masterNode, MPI_COMM_WORLD); + MPI::COMM_WORLD.Bcast(&sendBufferSize, 1, MPI::INT, masterNode); + MPI::COMM_WORLD.Bcast((void *)sendBuffer.c_str(), sendBufferSize, + MPI::CHAR, masterNode); sstream.str(sendBuffer); } else { int sendBufferSize; - MPI_Bcast(&sendBufferSize, 1, MPI_INT, masterNode, MPI_COMM_WORLD); + MPI::COMM_WORLD.Bcast(&sendBufferSize, 1, MPI::INT, masterNode); char * recvBuffer = new char[sendBufferSize+1]; assert(recvBuffer); recvBuffer[sendBufferSize] = '\0'; - MPI_Bcast(recvBuffer, sendBufferSize, MPI_CHAR, masterNode, MPI_COMM_WORLD); + MPI::COMM_WORLD.Bcast(recvBuffer, sendBufferSize, MPI::CHAR, masterNode); sstream.str(recvBuffer); delete [] recvBuffer; } @@ -526,7 +527,7 @@ namespace OpenMD { StringTokenizer tokenizer(line); int nTokens; - + nTokens = tokenizer.countTokens(); if (nTokens < 2) { @@ -646,14 +647,12 @@ namespace OpenMD { void DumpReader::readSiteData(std::istream& inputStream) { - inputStream.getline(buffer, bufferSize); std::string line(buffer); - - if (line.find("") == std::string::npos) { - // site data isn't required for a simulation, so skip - return; - } + // We already found the starting tag or we wouldn't be + // here, so just start parsing until we get to the ending + // tag: + while(inputStream.getline(buffer, bufferSize)) { line = buffer;