- Timestamp:
- 05/16/17 17:54:30 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan_merged/src/filter/spatial_transform_filter.cpp
r1076 r1134 65 65 } 66 66 67 std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> > CSpatialTransformFilterEngine::engines;67 std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> > *CSpatialTransformFilterEngine::engines_ptr = 0; 68 68 69 69 CSpatialTransformFilterEngine* CSpatialTransformFilterEngine::get(CGridTransformation* gridTransformation) … … 73 73 "Impossible to get the requested engine, the grid transformation is invalid."); 74 74 75 std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> >::iterator it = engines.find(gridTransformation); 76 if (it == engines.end()) 75 if(engines_ptr == NULL) engines_ptr = new std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> >; 76 77 std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> >::iterator it = engines_ptr->find(gridTransformation); 78 if (it == engines_ptr->end()) 77 79 { 78 80 boost::shared_ptr<CSpatialTransformFilterEngine> engine(new CSpatialTransformFilterEngine(gridTransformation)); 79 it = engines .insert(std::make_pair(gridTransformation, engine)).first;81 it = engines_ptr->insert(std::make_pair(gridTransformation, engine)).first; 80 82 } 81 83 … … 153 155 154 156 idxSendBuff = 0; 155 std::vector< MPI_Request> sendRecvRequest;157 std::vector<ep_lib::MPI_Request> sendRecvRequest; 156 158 for (itSend = itbSend; itSend != iteSend; ++itSend, ++idxSendBuff) 157 159 { … … 163 165 sendBuff[idxSendBuff][idx] = dataCurrentSrc(localIndex_p(idx)); 164 166 } 165 sendRecvRequest.push_back( MPI_Request());167 sendRecvRequest.push_back(ep_lib::MPI_Request()); 166 168 MPI_Isend(sendBuff[idxSendBuff], countSize, MPI_DOUBLE, destRank, 12, client->intraComm, &sendRecvRequest.back()); 167 169 } … … 181 183 int srcRank = itRecv->first; 182 184 int countSize = itRecv->second.size(); 183 sendRecvRequest.push_back( MPI_Request());185 sendRecvRequest.push_back(ep_lib::MPI_Request()); 184 186 MPI_Irecv(recvBuff + currentBuff, countSize, MPI_DOUBLE, srcRank, 12, client->intraComm, &sendRecvRequest.back()); 185 187 currentBuff += countSize; 186 188 } 187 std::vector< MPI_Status> status(sendRecvRequest.size());189 std::vector<ep_lib::MPI_Status> status(sendRecvRequest.size()); 188 190 MPI_Waitall(sendRecvRequest.size(), &sendRecvRequest[0], &status[0]); 189 191
Note: See TracChangeset
for help on using the changeset viewer.