Ignore:
Timestamp:
12/04/17 17:12:00 (6 years ago)
Author:
yushan
Message:

omp dev : unify MPI_Comm type

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_openmp/extern/src_ep_dev/ep_dup.cpp

    r1287 r1354  
    22#include <mpi.h> 
    33#include "ep_declaration.hpp" 
     4#include "ep_mpi.hpp" 
    45 
    56namespace ep_lib 
     
    1415      newcomm->is_ep = comm.is_ep; 
    1516 
    16       ::MPI_Comm input = static_cast< ::MPI_Comm>(comm.mpi_comm); 
    17       ::MPI_Comm output; 
     17      ::MPI_Comm input = to_mpi_comm(comm.mpi_comm); 
     18      ::MPI_Comm *output = new ::MPI_Comm; 
    1819 
    1920       
    20       ::MPI_Comm_dup(input, &output); 
     21      ::MPI_Comm_dup(input, output); 
    2122 
    2223      newcomm->mpi_comm = output; 
     
    2829 
    2930    // for intracomm 
    30     if(comm.mpi_comm == static_cast< ::MPI_Comm >(MPI_COMM_NULL.mpi_comm)) return 0; 
     31    if(comm.mpi_comm == static_cast< ::MPI_Comm* >(MPI_COMM_NULL.mpi_comm)) return 0; 
    3132 
    3233 
     
    3940      MPI_Info info; 
    4041      MPI_Comm *out_comm; 
    41       ::MPI_Comm mpi_dup; 
     42      ::MPI_Comm *mpi_dup = new ::MPI_Comm; 
    4243 
    43       ::MPI_Comm in_comm = static_cast< ::MPI_Comm>(comm.mpi_comm); 
     44      ::MPI_Comm in_comm = to_mpi_comm(comm.mpi_comm); 
    4445 
    45       ::MPI_Comm_dup(in_comm, &mpi_dup); 
     46      ::MPI_Comm_dup(in_comm, mpi_dup); 
    4647 
    4748      MPI_Comm_create_endpoints(mpi_dup, num_ep, info, out_comm); 
     
    5960  { 
    6061     
    61     if(comm.mpi_comm == static_cast< ::MPI_Comm >(MPI_COMM_NULL.mpi_comm)) return 0; 
     62    if(comm.mpi_comm == static_cast< ::MPI_Comm* >(MPI_COMM_NULL.mpi_comm)) return 0; 
    6263 
    6364    int my_rank = comm.ep_comm_ptr->size_rank_info[1].first; 
     
    6970      MPI_Info info; 
    7071      MPI_Comm *out_comm; 
    71       ::MPI_Comm mpi_dup; 
     72      ::MPI_Comm *mpi_dup = new ::MPI_Comm; 
    7273 
    73       ::MPI_Comm in_comm = static_cast< ::MPI_Comm>(comm.mpi_comm); 
     74      ::MPI_Comm in_comm = to_mpi_comm(comm.mpi_comm); 
    7475 
    75       ::MPI_Comm_dup(in_comm, &mpi_dup); 
     76      ::MPI_Comm_dup(in_comm, mpi_dup); 
    7677 
    7778      MPI_Comm_create_endpoints(mpi_dup, num_ep, info, out_comm); 
    7879 
    79       ::MPI_Comm mpi_inter; 
     80      ::MPI_Comm *mpi_inter = new ::MPI_Comm; 
    8081 
    81       ::MPI_Comm_dup(static_cast< ::MPI_Comm>(comm.ep_comm_ptr->intercomm->mpi_inter_comm), &mpi_inter); 
     82      ::MPI_Comm_dup(to_mpi_comm(comm.ep_comm_ptr->intercomm->mpi_inter_comm), mpi_inter); 
    8283       
    8384      for(int i=0; i<num_ep; i++) 
Note: See TracChangeset for help on using the changeset viewer.