Эта функция похожа на MPI_TYPE_INDEXED
за исключением того, что
аргумент blocklength
одинаковый для всех блоков. Имеются много кодов,
использующих косвенную адресацию, являющуюся результатом неструктурных
сеток, где blocksize
- всегда 1 (собрать/рассеять). Следующая удобная
функция учитывает константу blocksize
и произвольные смещения.
MPI_TYPE_CREATE_INDEXED_BLOCK(count, blocklength,
array_of_displacements, oldtype, newtype)
IN | count |
длина массива смещений (целое число) | |
IN | blocklength |
размер блока (целое число) | |
IN | array_of_displacements |
массив смещений (массив целого числа) | |
IN | oldtype |
старый тип данных (указатель) | |
OUT | newtype |
новый тип данных (указатель) |
int MPI_Type_create_indexed_block(int count, int blocklength,
int array_of_displacements[], MPI_Datatype oldtype,
MPI_Datatype *newtype)
MPI_TYPE_CREATE_INDEXED_BLOCK(COUNT, BLOCKLENGTH,
ARRAY_OF_DISPLACEMENTS, OLDTYPE, NEWTYPE, IERROR)
INTEGER COUNT, BLOCKLENGTH, ARRAY_OF_DISPLACEMENTS(*), OLDTYPE,
NEWTYPE, IERROR
MPI::Datatype MPI::Datatype::Create_indexed_block(int count,
int blocklength, const int array_of_displacements[]) const