MPI_TYPE_HINDEXED, MPI_Type_hindexed Purpose Returns a new datatype that represents count blocks. Each block is defined by an entry in array_of_blocklengths and array_of_displacements. Displacements are expressed in bytes. C synopsis #include int MPI_Type_hindexed(int count,int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype oldtype,MPI_Datatype *newtype); FORTRAN synopsis include 'mpif.h' or use mpi MPI_TYPE_HINDEXED(INTEGER COUNT,INTEGER ARRAY_OF_BLOCKLENGTHS(*), INTEGER ARRAY_OF DISPLACEMENTS(*),INTEGER OLDTYPE, INTEGER NEWTYPE,INTEGER IERROR) Parameters count is the number of blocks and the number of entries in array_of_displacements and array_of_blocklengths (non-negative integer) (IN) array_of_blocklengths is the number of instances of oldtype for each block (array of non-negative integers) (IN) array_of_displacements is a byte displacement for each block (array of integer) (IN) oldtype is the old datatype (handle) (IN) newtype is the new datatype (handle) (OUT) IERROR is the FORTRAN return code. It is always the last argument. Description This subroutine returns a new datatype that represents count blocks. Each is defined by an entry in array_of_blocklengths and array_of_displacements. Displacements are expressed in bytes rather than in multiples of the oldtype extent as in MPI_TYPE_INDEXED. Notes MPI_TYPE_CREATE_HINDEXED supersedes MPI_TYPE_HINDEXED. For FORTRAN 64-bit codes, an INTEGER may not be enough to represent a displacement. When displacements are known to be small enough, this subrotuine remains usable at your own risk. New codes should use MPI_TYPE_CREATE_HINDEXED. newtype must be committed using MPI_TYPE_COMMIT before being used for communication. Errors Invalid count count < 0 Invalid blocklength blocklength [i] < 0 Undefined oldtype Oldtype is MPI_LB, MPI_UB or MPI_PACKED MPI not initialized MPI already finalized Related information MPI_TYPE_COMMIT MPI_TYPE_FREE MPI_TYPE_GET_CONTENTS MPI_TYPE_GET_ENVELOPE