--- trunk/src/io/DumpWriter.cpp 2006/08/30 18:42:29 1024 +++ trunk/src/io/DumpWriter.cpp 2008/01/23 21:23:02 1217 @@ -194,7 +194,7 @@ namespace oopse { os << " \n"; RealType currentTime = s->getTime(); - sprintf(buffer, " Time: %.10g\n", time); + sprintf(buffer, " Time: %.10g\n", currentTime); os << buffer; Mat3x3d hmat; @@ -234,20 +234,21 @@ namespace oopse { #ifndef IS_MPI os << " \n"; - + writeFrameProperties(os, info_->getSnapshotManager()->getCurrentSnapshot()); os << " \n"; for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) { - for (integrableObject = mol->beginIntegrableObject(ii); integrableObject != NULL; + + for (integrableObject = mol->beginIntegrableObject(ii); integrableObject != NULL; integrableObject = mol->nextIntegrableObject(ii)) { - os << prepareDumpLine(integrableObject); - + os << prepareDumpLine(integrableObject); + } } os << " \n"; - + os << " \n"; os.flush(); @@ -255,10 +256,11 @@ namespace oopse { //every node prepares the dump lines for integrable objects belong to itself std::string buffer; for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) { - + + for (integrableObject = mol->beginIntegrableObject(ii); integrableObject != NULL; integrableObject = mol->nextIntegrableObject(ii)) { - buffer += prepareDumpLine(integrableObject); + buffer += prepareDumpLine(integrableObject); } } @@ -267,9 +269,10 @@ namespace oopse { if (worldRank == masterNode) { os << " \n"; writeFrameProperties(os, info_->getSnapshotManager()->getCurrentSnapshot()); - os << buffer; os << " \n"; + os << buffer; + int nProc; MPI_Comm_size(MPI_COMM_WORLD, &nProc); for (int i = 1; i < nProc; ++i) { @@ -281,22 +284,20 @@ namespace oopse { MPI_Recv(&recvLength, 1, MPI_INT, i, 0, MPI_COMM_WORLD, &istatus); char* recvBuffer = new char[recvLength]; if (recvBuffer == NULL) { - } else { - MPI_Recv(&recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD, &istatus); + MPI_Recv(recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD, &istatus); os << recvBuffer; delete recvBuffer; } - } os << " \n"; os << " \n"; os.flush(); } else { - int sendBufferLength = buffer.size(); + int sendBufferLength = buffer.size() + 1; MPI_Send(&sendBufferLength, 1, MPI_INT, masterNode, 0, MPI_COMM_WORLD); - MPI_Send((void *)buffer.c_str(), sendBufferLength, MPI_CHAR, masterNode, 0, MPI_COMM_WORLD); + MPI_Send((void *)buffer.c_str(), sendBufferLength, MPI_CHAR, masterNode, 0, MPI_COMM_WORLD); } #endif // is_mpi @@ -314,7 +315,7 @@ namespace oopse { Vector3d vel; pos = integrableObject->getPos(); vel = integrableObject->getVel(); - sprintf(tempBuffer, "%18.10g\t%18.10g\t%18.10g\t%14.10g\t%14.10g\t%14.10g", + sprintf(tempBuffer, "%18.10g %18.10g %18.10g %13e %13e %13e", pos[0], pos[1], pos[2], vel[0], vel[1], vel[2]); line += tempBuffer; @@ -325,7 +326,7 @@ namespace oopse { Vector3d ji; q = integrableObject->getQ(); ji = integrableObject->getJ(); - sprintf(tempBuffer, "\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g", + sprintf(tempBuffer, " %13e %13e %13e %13e %13e %13e %13e", q[0], q[1], q[2], q[3], ji[0], ji[1], ji[2]); line += tempBuffer; @@ -338,13 +339,13 @@ namespace oopse { frc = integrableObject->getFrc(); trq = integrableObject->getTrq(); - sprintf(tempBuffer, "\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g", + sprintf(tempBuffer, " %13e %13e %13e %13e %13e %13e", frc[0], frc[1], frc[2], trq[0], trq[1], trq[2]); line += tempBuffer; } - sprintf(tempBuffer, "%d\t%s\t%s\n", index, type.c_str(), line.c_str()); + sprintf(tempBuffer, "%10d %7s %s\n", index, type.c_str(), line.c_str()); return std::string(tempBuffer); }