IBM Books

MPI Subroutine Reference

MPI_TYPE_GET_ENVELOPE, MPI_Type_get_envelope

Purpose

Determines the constructor that was used to create the datatype and the amount of data that will be returned by a call to MPI_TYPE_GET_CONTENTS for the same datatype.

C synopsis

#include <mpi.h>
int MPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers,
    int *num_addresses, int *num_datatypes, int *combiner);

C++ synopsis

#include mpi.h
void MPI::Datatype::Get_envelope(int& num_integers, int& num_addresses, 
				 int& num_datatypes, int& combiner) 
				 const;

FORTRAN synopsis

include 'mpif.h' or use mpi
MPI_TYPE_GET_ENVELOPE(INTEGER DATATYPE, INTEGER NUM_INTEGERS,
    INTEGER NUM_ADDRESSES, INTEGER NUM_DATATYPES, INTEGER COMBINER,
    INTEGER IERROR)

Parameters

datatype
is the datatype to access (handle) (IN)

num_integers
is the number of input integers used in the call constructing combiner (non-negative integer) (OUT)

num_addresses
is the number of input addresses used in the call constructing combiner (non-negative integer) (OUT)

num_datatypes
is the number of input datatypes used in the call constructing combiner (non-negative integer) (OUT)

combiner
is the combiner (state) (OUT)

Table 5 lists the combiners and the calls associated with them.

Table 5. Combiners and calls

Combiner What it represents
MPI_COMBINER_NAMED A named, predefined datatype
MPI_COMBINER_DUP MPI_TYPE_DUP
MPI_COMBINER_CONTIGUOUS MPI_TYPE_CONTIGUOUS
MPI_COMBINER_VECTOR MPI_TYPE_VECTOR
MPI_COMBINER_HVECTOR MPI_TYPE_HVECTOR from C and in some cases FORTRAN or MPI_TYPE_CREATE_HVECTOR
MPI_COMBINER_HVECTOR_INTEGER MPI_TYPE_HVECTOR from FORTRAN
MPI_COMBINER_INDEXED MPI_TYPE_INDEXED
MPI_COMBINER_HINDEXED MPI_TYPE_HINDEXED from C and in some cases FORTRAN or MPI_TYPE_CREATE_HINDEXED
MPI_COMBINER_HINDEXED_INTEGER MPI_TYPE_HINDEXED from FORTRAN
MPI_COMBINER_INDEXED_BLOCK MPI_TYPE_CREATE_INDEXED_BLOCK
MPI_COMBINER_STRUCT MPI_TYPE_STRUCT from C and in some cases FORTRAN or MPI_TYPE_CREATE_STRUCT
MPI_COMBINER_STRUCT_INTEGER MPI_TYPE_STRUCT from FORTRAN
MPI_COMBINER_SUBARRAY MPI_TYPE_CREATE_SUBARRAY
MPI_COMBINER_DARRAY MPI_TYPE_CREATE_DARRAY
MPI_COMBINER_F90_REAL MPI_TYPE_CREATE_F90_REAL
MPI_COMBINER_F90_COMPLEX MPI_TYPE_CREATE_F90_COMPLEX
MPI_COMBINER_F90_INTEGER MPI_TYPE_CREATE_F90_INTEGER
MPI_COMBINER_RESIZED MPI_TYPE_CREATE_RESIZED

Description

MPI_TYPE_GET_ENVELOPE provides information about an unknown datatype that will allow it to be decoded if appropriate. This includes identifying the combiner used to create the unknown type and the sizes that the arrays must be if MPI_TYPE_GET_CONTENTS is to be called. MPI_TYPE_GET_ENVELOPE is also used to determine whether a datatype handle returned by MPI_TYPE_GET_CONTENTS or MPI_FILE_GET_VIEW is for a predefined, named datatype. When the combiner is MPI_COMBINER_NAMED, it is an error to call MPI_TYPE_GET_CONTENTS or MPI_TYPE_FREE with the datatype.

Errors

Invalid datatype

MPI already finalized

MPI not initialized

Related information

MPI_TYPE_FREE
MPI_TYPE_GET_CONTENTS


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]