This source file includes following definitions.
- MPI_Group_translate_ranks
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include "ompi_config.h"
25 #include <stdio.h>
26
27 #include "ompi/mpi/c/bindings.h"
28 #include "ompi/runtime/params.h"
29 #include "ompi/communicator/communicator.h"
30 #include "ompi/errhandler/errhandler.h"
31 #include "ompi/group/group.h"
32
33 #if OMPI_BUILD_MPI_PROFILING
34 #if OPAL_HAVE_WEAK_SYMBOLS
35 #pragma weak MPI_Group_translate_ranks = PMPI_Group_translate_ranks
36 #endif
37 #define MPI_Group_translate_ranks PMPI_Group_translate_ranks
38 #endif
39
40 static const char FUNC_NAME[] = "MPI_Group_translate_ranks";
41
42
43 int MPI_Group_translate_ranks(MPI_Group group1, int n_ranks, const int ranks1[],
44 MPI_Group group2, int ranks2[])
45 {
46 int err;
47
48
49 if( MPI_PARAM_CHECK ) {
50 OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
51
52 if ((MPI_GROUP_NULL == group1) || (MPI_GROUP_NULL == group2) ||
53 (NULL == group1) || (NULL == group2)) {
54 return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_GROUP,
55 FUNC_NAME);
56 }
57 if (n_ranks < 0) {
58 return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_GROUP,
59 FUNC_NAME);
60 }
61 if (n_ranks > 0 && ((NULL == ranks1) || (NULL == ranks2 ))) {
62 return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_GROUP,
63 FUNC_NAME);
64 }
65 }
66
67 if (0 == n_ranks) {
68 return MPI_SUCCESS;
69 }
70
71 OPAL_CR_ENTER_LIBRARY();
72
73 err = ompi_group_translate_ranks ( group1, n_ranks, ranks1,
74 group2, ranks2 );
75 OMPI_ERRHANDLER_RETURN(err, MPI_COMM_WORLD, err, FUNC_NAME );
76 }