Provided by: openmpi-doc_1.6.5-8_all bug

NAME

       MPI_Type_create_struct - Creates a structured data type.

SYNTAX

C Syntax

       #include <mpi.h>
       int MPI_Type_create_struct(int count, int array_of_blocklengths[],
            MPI_Aint array_of_displacements[], MPI_Datatype array_of_types[],
            MPI_Datatype *newtype)

Fortran Syntax (see FORTRAN 77 NOTES)

       INCLUDE 'mpif.h'
       MPI_TYPE_CREATE_STRUCT(COUNT, ARRAY_OF_BLOCKLENGTHS,
                 ARRAY_OF_DISPLACEMENTS, ARRAY_OF_TYPES, NEWTYPE, IERROR)
            INTEGER   COUNT, ARRAY_OF_BLOCKLENGTHS(*), ARRAY_OF_TYPES(*),
            INTEGER NEWTYPE, IERROR
            INTEGER(KIND=MPI_ADDRESS_KIND) ARRAY_OF_DISPLACEMENTS(*)

C++ Syntax

       #include <mpi.h>
       static MPI::Datatype MPI::Datatype::Create_struct(int count,
            const int array_of_blocklengths[], const MPI::Aint
            array_of_displacements[], const MPI::Datatype
            array_of_types[])

INPUT PARAMETERS

       count     Number  of  blocks (integer) -- also number of entries in arrays array_of_types,
                 array_of_displacements, and array_of_blocklengths.

       array_of_blocklengths
                 Number of elements in each block (array of integers).

       array_of_displacements
                 Byte displacement of each block (array of integers).

       array_of_types
                 Type of elements in each block (array of handles to data-type objects).

OUTPUT PARAMETERS

       newtype   New data type (handle).

       IERROR    Fortran only: Error status (integer).

DESCRIPTION

       MPI_Type_create_struct  creates  a   structured   data   type.   This   routine   replaces
       MPI_Type_struct, which is now deprecated.

       NOTE  -  This  routine  replaces  MPI_Type_struct,  which  is deprecated. See the man page
       MPI_Type_struct(3) for information about that routine.

FORTRAN 77 NOTES

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

            INTEGER*MPI_ADDRESS_KIND ARRAY_OF_DISPLACEMENTS(*)

       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++ 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_struct
       MPI_Type_create_hindexed