+ (*newcomm) = smpi_comm_new(smpi_comm_group(comm), smpi_comm_topo(comm));
+ int ret = MPI_SUCCESS;
+ //todo: faire en sorte que ça fonctionne avec un communicator dupliqué (refaire un init_smp ?)
+
+ /* MPI_Comm tmp=smpi_comm_get_intra_comm(comm);
+ if( tmp != MPI_COMM_NULL)
+ smpi_comm_set_intra_comm((*newcomm), smpi_comm_dup(tmp));
+ tmp=smpi_comm_get_leaders_comm(comm);
+ if( tmp != MPI_COMM_NULL)
+ smpi_comm_set_leaders_comm((*newcomm), smpi_comm_dup(tmp));
+ if(comm->non_uniform_map !=NULL){
+ (*newcomm)->non_uniform_map=
+ xbt_malloc(smpi_comm_size(comm->leaders_comm)*sizeof(int));
+ memcpy((*newcomm)->non_uniform_map,
+ comm->non_uniform_map,smpi_comm_size(comm->leaders_comm)*sizeof(int) );
+ }
+ if(comm->leaders_map !=NULL){
+ (*newcomm)->leaders_map=xbt_malloc(smpi_comm_size(comm)*sizeof(int));
+ memcpy((*newcomm)->leaders_map,
+ comm->leaders_map,smpi_comm_size(comm)*sizeof(int) );
+ }*/