Page 1
MPI_Type_get_envelope(3)MPI_Type_get_envelope(3)NAMEMPI_Type_get_envelope - Returns the number and type of input arguments
SYNOPSIS
C:
#include "mpi.h"
int MPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers,
int *num_addresses, int *num_datatypes, int *combiner)
Fortran:
INCLUDE "mpif.h" (or USE MPI)
INTEGER datatype, num_integers, num_addresses,
num_datatypes, combiner, ierror
CALL MPI_TYPE_GET_ENVELOPE(datatype, num_integers, num_addresses,
num_datatypes, combiner, ierror)
DESCRIPTION
For a specified data type, MPI_Type_get_envelope returns information on
the number and type of input arguments that were used in the call that
created the data type. The returned values can be used to provide
sufficiently large arrays in the decoding routine, MPI_Type_get_contents.
MPI_Type_get_envelope accepts the following arguments:
datatype Specifies the data type to be accessed (handle)
num_integers Returns the number of input integers used in the call
that constructs the combiner (nonnegative integer)
num_addresses Returns the number of input addresses used in the
call that constructs the combiner (nonnegative
integer)
num_datatypes Returns the number of input data types used in the
call that constructs the combiner (nonnegative
integer)
combiner Reflects the MPI data type constructor call that was
used in creating the data type (state)
ierror Specifies the return code value for successful
completion, which is in MPI_SUCCESS. MPI_SUCCESS is
defined in the mpif.h file.
Page 2
MPI_Type_get_envelope(3)MPI_Type_get_envelope(3)
By requiring that the combiner reflect the constructor used in the
creation of the data type, the decoded information can be used to
effectively recreate the calling sequence used in the original creation.
One call is effectively the same as another when the information obtained
from MPI_Type_get_contents can be used with either to produce the same
outcome. In some MPI implementations, C calls, MPI_Type_hindexed and
MPI_Type_create_hindexed, are always effectively the same, while the
Fortran call, MPI_TYPE_HINDEXED, is different from either of these.
The decoded information keeps track of data type duplications. This is
important for distinguishing between a predefined data type and a
duplicate of a predefined data type. The former is a constant object that
cannot be freed; the latter is a derived data type that can be freed.
The actual arguments used in the creation call for a data type can be
obtained from the MPI_Type_get_contents call.
SEE ALSOMPI_File_open(3), MPI_Type_get_contents(3)
Page 3