29                  int const new_group_size)
 
   33    assert(input_size >= new_group_size);
 
   34    int const minimum_output_group_size =
 
   35        std::lround(input_size / new_group_size);
 
   36    int const maximum_output_group_size = (input_size % new_group_size)
 
   37                                              ? minimum_output_group_size + 1
 
   38                                              : minimum_output_group_size;
 
   39    return std::lround(input_index / maximum_output_group_size);
 
 
   48    int const file_group_id = 
getGroupIndex(rank_id, num_procs, n_files);
 
   49    MPI_Comm new_communicator;
 
   53                            std::move(file_group_id), 
""};