结构数据类型的生成

  这是最通用的数据构造器。形式如下:

  MPI_TYPE_STRUCT( count, array_of_blocklength, array_of_displacement,
  array_of_types, newtype )
  IN count 块的数目
  IN array_of_blocklength 各块的元素个数(数组)
  IN array_of_displacement 各块的偏移(数组)
  IN array_of_types 构成各块的元素类型(数组)
  OUT newtype

  int MPI_Type_struct( int count, int *array_of_blocklength,
  MPI_Aint *array_of_displacement,
  MPI_Datatype *array_of_types,
  MPI_Datatype *newtype);

  在构造新类型时,构造器首先构造块,块i(i=0,1,...,count-1)是由array_of_blocklength[i]个array_of_type[i]类型的数据构成的CONTIGUOUS类型。然后用这count个块构成newtype类型,块i(i=0,1,...,count-1)在newtype类型中的偏移为array_of_displacement[i]。
  (思考,如何用MPI_Type_struct构造器来实现其它的构造器?)