/*D
   MPI_Comm_dup_with_info - Duplicates an existing communicator using the supplied info hints

Synopsis:
.vb
int MPI_Comm_dup_with_info(MPI_Comm comm, MPI_Info info, MPI_Comm *newcomm)
.ve

Input Parameters:
+ comm - communicator (handle)
- info - info object (handle)

Output Parameters:
. newcomm - copy of comm (handle)

Notes:
  MPI_Comm_dup_with_info behaves exactly as MPI_Comm_dup except that
  the info hints associated with the communicator comm are not
  duplicated in newcomm.  The hints provided by the argument info are
  associated with the output communicator newcomm instead.

Info hints:
. mpi_assert_no_any_tag - boolean, default = false.
  If set to true, user promises that MPI_ANY_TAG will not be used with the
  communicator. This potentially allows MPICH to treat messages with different
  tags independent and seek to improve performance, e.g. by employ multiple
  network context.
. mpi_assert_no_any_source - boolean, default = false.
  If set to true, user promises that MPI_ANY_SOURCE will not be used with the
  communicator. This potentially allows MPICH to treat messages send to different
  ranks or receive from different ranks independent and seek to improve
  performance, e.g. by employ multiple network context.
. mpi_assert_exact_length - boolean, default = false.
  If set to true, user promises that the lengths of messages received by the
  process will always equal to the size of the corresponding receive buffers.
. mpi_assert_allow_overtaking - boolean, default = false.
  If set to true, user asserts that send operations are not required to be matched
  at the receiver in the order in which the send operations were performed by the
  sender, and receive operations are not required to be matched in the order in
  which they were performed by the receivers.

.N ThreadSafe

.N Fortran

.N Errors
.N MPI_SUCCESS
.N MPI_ERR_ARG
.N MPI_ERR_COMM
.N MPI_ERR_INFO
.N MPI_ERR_OTHER

.seealso: MPI_Comm_dup, MPI_Comm_free, MPI_Keyval_create, MPI_Attr_put, MPI_Attr_delete, MPI_Comm_create_keyval, MPI_Comm_set_attr, MPI_Comm_delete_attr
D*/

