Provided by: openmpi-doc_4.1.6-7ubuntu2_all bug

NAME

       MPI_Type_dup - Duplicates a data type with associated key values.

SYNTAX

C Syntax

       #include <mpi.h>
       int MPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype)

Fortran Syntax

       USE MPI
       ! or the older form: INCLUDE 'mpif.h'
       MPI_TYPE_DUP(TYPE, NEWTYPE, IERROR)
            INTEGER   TYPE, NEWTYPE, IERROR

Fortran 2008 Syntax

       USE mpi_f08
       MPI_Type_dup(oldtype, newtype, ierror)
            TYPE(MPI_Datatype), INTENT(IN) :: oldtype
            TYPE(MPI_Datatype), INTENT(OUT) :: newtype
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

C++ Syntax

       #include <mpi.h>
       MPI::Datatype MPI::Datatype::Dup() const

INPUT PARAMETER

       type      Data type (handle).

OUTPUT PARAMETERS

       newtype   Copy of type (handle).

       IERROR    Fortran only: Error status (integer).

DESCRIPTION

       MPI_Type_dup  is  a type constructor that duplicates the existing type with associated key
       values. For each key value, the respective copy callback function determines the attribute
       value  associated with this key in the new communicator. One particular action that a copy
       callback may take is to delete the attribute from the new data type. Returns in newtype  a
       new  data  type  with  exactly  the  same properties as type, as well as any copied cached
       information. The new data type has identical upper bound and lower bound  and  yields  the
       same  net  result  when  fully  decoded with the functions described in Section 8.6 of the
       MPI-2 standard. newtype has the same committed state as the old type.

NOTES

       Note that it is not defined by the  MPI  standard  what  happens  if  the  attribute  copy
       callback  invokes  other  MPI  functions.  In Open MPI, it is not valid for attribute copy
       callbacks (or any of their children) to add or delete attributes on  the  same  object  on
       which the attribute copy callback is being invoked.

ERRORS

       Almost all MPI routines return an error value; C routines as the value of the function and
       Fortran routines in the last argument. C++ functions do not return errors. If the  default
       error  handler  is  set  to  MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception
       mechanism will be used to throw an MPI::Exception object.

       Before the error value is returned, the current MPI error handler is called.  By  default,
       this  error  handler aborts the MPI job, except for I/O function errors. The error handler
       may   be   changed   with   MPI_Comm_set_errhandler;   the   predefined   error    handler
       MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not
       guarantee that an MPI program can continue past an error.

SEE ALSO

       MPI_Type_create_keyval