} else if (newcomm == nullptr) {
return MPI_ERR_ARG;
} else {
- comm->dup(newcomm);
- if(info!=MPI_INFO_NULL)
- (*newcomm)->set_info(info);
+ comm->dup_with_info(info, newcomm);
return MPI_SUCCESS;
}
}
}
MPI_Comm PMPI_Comm_f2c(MPI_Fint comm){
+ if(comm==-1)
+ return MPI_COMM_NULL;
return static_cast<MPI_Comm>(simgrid::smpi::Comm::f2c(comm));
}
MPI_Fint PMPI_Comm_c2f(MPI_Comm comm){
+ if(comm==MPI_COMM_NULL)
+ return -1;
return comm->c2f();
}