/*D
   MPI_Comm_idup_with_info - nonblocking communicator duplication

Synopsis:
.vb
int MPI_Comm_idup_with_info(MPI_Comm comm, MPI_Info info, MPI_Comm *newcomm,
                            MPI_Request *request)
.ve

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

Output Parameters:
+ newcomm - copy of comm (handle)
- request - communication request (handle)

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.
. mpi_assert_strict_persistent_collective_ordering - boolean, default = false.
  If set to true, then the implementation may assume that all the persistent
  collective operations are started in the same order across all MPI processes in
  the group of the communicator. It is required that if this assertion is made on
  one member of the communicator's group, then it must be made on all members of
  that communicator's group with the same value.

.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

D*/

