Open MPI logo

MPI_Type_get_contents(3) man page (version 1.3.4)

  |   Home   |   Support   |   FAQ   |  

« Return to documentation listing



NAME

       MPI_Type_get_contents  -  Returns  information  about arguments used in
       creation of a data type.

SYNTAX


C Syntax

       #include <mpi.h>
       int MPI_Type_get_contents(MPI_Datatype datatype, int max_integers,
            int max_addresses, int max_datatypes, int array_of_integers[], MPI_Aint array_of_addresses[], MPI_Datatype array_of_datatypes[])

Fortran Syntax (see FORTRAN 77 NOTES)

       INCLUDE 'mpif.h'
       MPI_TYPE_GET_CONTENTS(DATATYPE, MAX_INTEGERS, MAX_ADDRESSES,
                 MAX_DATATYPES, ARRAY_OF_INTEGERS, ARRAY_OF_ADDRESSES,
                 ARRAY_OF_DATATYPES, IERROR)
            INTEGER   DATATYPE, MAX_INTEGERS, MAX_ADDRESSES, MAX_DATATYPES
            INTEGER   ARRAY_OF_INTEGERS(*), ARRAY_OF_DATATYPES(*), IERROR
            INTEGER(KIND=MPI_ADDRESS_KIND) ARRAY_OF_ADDRESSES(*)

C++ Syntax

       #include <mpi.h>
       void MPI::Datatype::Get_contents(int max_integers, int max_addresses,
            int max_datatypes, int array_of_integers[],
            MPI::Aint array_of_addresses[],
            MPI::Datatype array_of_datatypes[]) const

INPUT PARAMETERS

       datatype  Data type to access (handle).

       max_integers
                 Number of elements in  array_of_integers  (nonnegative  inte-
                 ger).

       max_addresses
                 Number  of  elements in array_of_addresses (nonnegative inte-
                 ger).

       max_datatypes
                 Number of elements in array_of_datatypes  (nonnegative  inte-
                 ger).

OUTPUT PARAMETERS

       array_of_integers
                 Contains  integer  arguments  used  in  constructing datatype
                 (array of integers).

       array_of_addresses
                 Contains address  arguments  used  in  constructing  datatype
                 (array of integers).

       array_of_datatypes
                 Contains  data-type  arguments  used in constructing datatype
                 (array of integers).

       provide   sufficiently   large   arrays   in   the   decoding   routine
       MPI_Type_get_contents. This call and the meaning of the returned values
       is described below. The combiner reflects the MPI data type constructor
       call that was used in creating datatype.

       The parameter datatype must be a predefined unnamed or a  derived  data
       type.  The  call  is  erroneous  if datatype is a predefined named data
       type.

       The values given for  max_integers,  max_addresses,  and  max_datatypes
       must  be  at  least  as  large  as  the value returned in num_integers,
       num_addresses,   and   num_datatypes,   respectively,   in   the   call
       MPI_Type_get_envelope for the same datatype argument.

       The  data types returned in array_of_datatypes are handles to data-type
       objects that are equivalent to the data types used in the original con-
       struction  call.  If  these  were derived data types, then the returned
       data types are new data-type objects, and the user is  responsible  for
       freeing  these  datatypes  with MPI_Type_free. If these were predefined
       data types, then the returned data type is  equal  to  that  (constant)
       predefined data type and cannot be freed.

       The  committed  state of returned derived data types is undefined, that
       is, the data types may or may not be committed. Furthermore,  the  con-
       tent of attributes of returned data types is undefined.

       Note  that  MPI_Type_get_contents can be invoked with a data-type argu-
       ment that was constructed using MPI_Type_create_f90_real, MPI_Type_cre-
       ate_f90_integer,  or MPI_Type_create_f90_complex (an unnamed predefined
       data type). In such a case, an empty array_of_datatypes is returned.

       In the MPI-1 data-type constructor calls, the address arguments in For-
       tran are of type INTEGER. In the new MPI-2 calls, the address arguments
       are of type INTEGER(KIND=MPI ADDRESS KIND). The call  MPI_Type_get_con-
       tents  returns  all  addresses  in an argument of type INTEGER(KIND=MPI
       ADDRESS KIND). This is true even if the  old  MPI-1  calls  were  used.
       Thus,  the  location  of  values  returned  can  be thought of as being
       returned by the C bindings. It can also be determined by examining  the
       new  MPI-2  calls  for  data-type constructors for the deprecated MPI-1
       calls that involve addresses.

FORTRAN 77 NOTES

       The  MPI  standard  prescribes  portable   Fortran   syntax   for   the
       ARRAY_OF_ADDRESSES  argument  only for Fortran 90. FORTRAN 77 users may
       use the non-portable syntax

            INTEGER*MPI_ADDRESS_KIND ARRAY_OF_ADDRESSES(*)

       where MPI_ADDRESS_KIND is a constant defined in mpif.h  and  gives  the
       length of the declared integer in bytes.

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++  func-
       tions  do  not  return  errors.  If the default error handler is set to
       MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism

SEE ALSO

       MPI_Type_get_envelope

1.3.4                            Nov 11, 2009         MPI_Type_get_contents(3)

« Return to documentation listing