Ignore:
Timestamp:
05/16/17 17:54:30 (7 years ago)
Author:
yushan
Message:

branch merged with trunk r1130

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_yushan_merged/src/filter/spatial_transform_filter.cpp

    r1076 r1134  
    6565  } 
    6666 
    67   std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> > CSpatialTransformFilterEngine::engines; 
     67  std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> > *CSpatialTransformFilterEngine::engines_ptr = 0; 
    6868 
    6969  CSpatialTransformFilterEngine* CSpatialTransformFilterEngine::get(CGridTransformation* gridTransformation) 
     
    7373            "Impossible to get the requested engine, the grid transformation is invalid."); 
    7474 
    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()) 
    7779    { 
    7880      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; 
    8082    } 
    8183 
     
    153155 
    154156      idxSendBuff = 0; 
    155       std::vector<MPI_Request> sendRecvRequest; 
     157      std::vector<ep_lib::MPI_Request> sendRecvRequest; 
    156158      for (itSend = itbSend; itSend != iteSend; ++itSend, ++idxSendBuff) 
    157159      { 
     
    163165          sendBuff[idxSendBuff][idx] = dataCurrentSrc(localIndex_p(idx)); 
    164166        } 
    165         sendRecvRequest.push_back(MPI_Request()); 
     167        sendRecvRequest.push_back(ep_lib::MPI_Request()); 
    166168        MPI_Isend(sendBuff[idxSendBuff], countSize, MPI_DOUBLE, destRank, 12, client->intraComm, &sendRecvRequest.back()); 
    167169      } 
     
    181183        int srcRank = itRecv->first; 
    182184        int countSize = itRecv->second.size(); 
    183         sendRecvRequest.push_back(MPI_Request()); 
     185        sendRecvRequest.push_back(ep_lib::MPI_Request()); 
    184186        MPI_Irecv(recvBuff + currentBuff, countSize, MPI_DOUBLE, srcRank, 12, client->intraComm, &sendRecvRequest.back()); 
    185187        currentBuff += countSize; 
    186188      } 
    187       std::vector<MPI_Status> status(sendRecvRequest.size()); 
     189      std::vector<ep_lib::MPI_Status> status(sendRecvRequest.size()); 
    188190      MPI_Waitall(sendRecvRequest.size(), &sendRecvRequest[0], &status[0]); 
    189191 
Note: See TracChangeset for help on using the changeset viewer.