|  « Return to documentation listingTable of Contents 
MPI_Type_hindexed - Creates an indexed datatype with offsets in bytes
-- use of this routine is deprecated. 
 
 #include <mpi.h>
int MPI_Type_hindexed(int count, int *array_of_blocklengths,
    MPI_Aint *array_of_displacements, MPI_Datatype oldtype,
    MPI_Datatype *newtype)
 
 INCLUDE ’mpif.h’
MPI_TYPE_HINDEXED(COUNT, ARRAY_OF_BLOCKLENGTHS,
        ARRAY_OF_DISPLACEMENTS, OLDTYPE, NEWTYPE, IERROR)
    INTEGER    COUNT, ARRAY_OF_BLOCKLENGTHS(*)
    INTEGER    ARRAY_OF_DISPLACEMENTS(*), OLDTYPE, NEWTYPE
    INTEGER    IERROR
 
count       Number of blocks -- also number of entries in
array_of_displacements  and array_of_blocklengths  (integer). array_of_blocklengths
Number of elements in each block (array of nonnegative integers). array_of_displacements
 Byte displacement of each block (array of integer). oldtype       Old datatype
(handle). 
 
Note that use of this routine
is deprecated as of MPI-2. Use MPI_Type_create_hindexed instead.newtype       New datatype (handle). 
IERROR Fortran
only: Error status (integer).
  
This deprecated
routine is not available in C++.   
The function is identical to MPI_Type_indexed,
except that block displacements in array_of_displacements are specified
in bytes, rather than in multiples of the oldtype extent.   
Assume that oldtype
has type map  
     {(type(0), disp(0)), ..., (type(n-1), disp(n-1))},
with extent ex. Let B be the array_of_blocklength argument and D be the
array_of_displacements argument. The newly created datatype has  
 n x S^count-1
    (i=0)        B[i]  entries:
  {(type(0), disp(0) + D[0]),...,(type(n-1), disp(n-1) + D[0]),...,
  (type(0), disp(0) + (D[0] + B[0]-1)* ex),...,
  type(n-1), disp(n-1) + (D[0]+ B[0]-1)* ex),...,
  (type(0), disp(0) + D[count-1]),...,(type(n-1), disp(n-1) + D[count-1]),...,
  (type(0), disp(0) +  D[count-1] + (B[count-1] -1)* ex),...,
  (type(n-1), disp(n-1) + D[count-1] + (B[count-1] -1)* ex)}
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.
 
MPI_Type_create_hindexed MPI_Type_indexed
 
   
 
 
Table of Contents 
  « Return to documentation listing |