--- trunk/src/io/RestWriter.cpp 2012/09/10 18:38:44 1796 +++ trunk/src/io/RestWriter.cpp 2014/02/26 14:14:50 1969 @@ -35,11 +35,14 @@ * * [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). */ +#ifdef IS_MPI +#include +#endif #include #include @@ -48,9 +51,6 @@ #include "io/RestWriter.hpp" #include "utils/simError.h" #include "brains/SnapshotManager.hpp" -#ifdef IS_MPI -#include -#endif namespace OpenMD { RestWriter::RestWriter(SimInfo* info, const std::string& filename, @@ -78,7 +78,7 @@ namespace OpenMD { #ifdef IS_MPI - MPI::Status istatus; + MPI_Status* istatus; #endif #ifndef IS_MPI @@ -148,19 +148,21 @@ namespace OpenMD { (*output_) << "#time\t"; (*output_) << buffer; - int nProc = MPI::COMM_WORLD.Get_size(); + int nProc; + MPI_Comm_size( MPI_COMM_WORLD, &nProc); + for (int i = 1; i < nProc; ++i) { // receive the length of the string buffer that was // prepared by processor i int recvLength; - MPI::COMM_WORLD.Recv(&recvLength, 1, MPI::INT, i, 0, istatus); + MPI_Recv(&recvLength, 1, MPI_INT, i, 0, MPI_COMM_WORLD, istatus); char* recvBuffer = new char[recvLength]; if (recvBuffer == NULL) { } else { - MPI::COMM_WORLD.Recv(recvBuffer, recvLength, MPI::CHAR, i, 0, - istatus); + MPI_Recv(recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD, + istatus); (*output_) << recvBuffer; delete [] recvBuffer; } @@ -168,9 +170,9 @@ namespace OpenMD { (*output_).flush(); } else { int sendBufferLength = buffer.size() + 1; - MPI::COMM_WORLD.Send(&sendBufferLength, 1, MPI::INT, masterNode, 0); - MPI::COMM_WORLD.Send((void *)buffer.c_str(), sendBufferLength, MPI::CHAR, - masterNode, 0); + 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); } #endif // is_mpi @@ -180,7 +182,7 @@ namespace OpenMD { void RestWriter::writeRest(std::vector > restInfo) { #ifdef IS_MPI - MPI::Status istatus; + MPI_Status* istatus; #endif #ifndef IS_MPI @@ -224,19 +226,19 @@ namespace OpenMD { (*output_) << buffer; int nProc; - nProc = MPI::COMM_WORLD.Get_size(); + MPI_Comm_size( MPI_COMM_WORLD, &nProc); for (int i = 1; i < nProc; ++i) { // receive the length of the string buffer that was // prepared by processor i int recvLength; - MPI::COMM_WORLD.Recv(&recvLength, 1, MPI::INT, i, 0, istatus); + MPI_Recv(&recvLength, 1, MPI_INT, i, 0, MPI_COMM_WORLD, istatus); char* recvBuffer = new char[recvLength]; if (recvBuffer == NULL) { } else { - MPI::COMM_WORLD.Recv(recvBuffer, recvLength, MPI::CHAR, i, 0, - istatus); + MPI_Recv(recvBuffer, recvLength, MPI_CHAR, i, 0, MPI_COMM_WORLD, + istatus); (*output_) << recvBuffer; delete [] recvBuffer; @@ -245,9 +247,9 @@ namespace OpenMD { (*output_).flush(); } else { int sendBufferLength = buffer.size() + 1; - MPI::COMM_WORLD.Send(&sendBufferLength, 1, MPI::INT, masterNode, 0); - MPI::COMM_WORLD.Send((void *)buffer.c_str(), sendBufferLength, - MPI::CHAR, masterNode, 0); + 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); } #endif // is_mpi }