+ CHECK_GROUP(1, group)
+ CHECK_NEGATIVE(2, MPI_ERR_ARG, n)
+ CHECK_NULL(3, MPI_ERR_ARG, ranges)
+ CHECK_NULL(4, MPI_ERR_ARG, newgroup)
+ for(int i = 0; i < n; i++){
+ if (ranges[i][0] < 0 || ranges[i][0] >= group->size() ||
+ ranges[i][1] < 0 || ranges[i][1] >= group->size()){
+ return MPI_ERR_RANK;
+ }
+ if ((ranges[i][0] < ranges[i][1] && ranges[i][2] < 0) ||
+ (ranges[i][0] > ranges[i][1] && ranges[i][2] > 0)){
+ return MPI_ERR_ARG;
+ }
+ if (ranges[i][2] == 0)
+ return MPI_ERR_ARG;
+ }
+ if (n > group->size()){
+ XBT_WARN("MPI_Group_range_incl, param 2 > group size");