Поделиться через


функция MPI_Type_create_subarray

Определяет новый тип данных, состоящий из n-мерного подмассивного массива n-мерного массива. Вложенный массив может находиться в любом месте полного массива. Это может быть любой ненулевой размер, если он полностью содержится в массиве.

Синтаксис

int MPIAPI MPI_Type_create_subarray(
        int                   ndims,
        _In_count_(ndims) int array_of_sizes[],
        _In_count_(ndims) int array_of_subsizes[],
        _In_count_(ndims) int array_of_starts[],
        int                   order,
        MPI_Datatype          oldtype,
  _Out_ MPI_Datatype          *newtype
);

Параметры

ndims

Количество измерений массива и количество элементов в array_of_sizes, array_of_subsizes и array_of_starts параметрах.

array_of_sizes

Количество элементов в каждом измерении полного массива.

array_of_subsizes

Количество элементов в каждом измерении подмассивного массива.

array_of_starts

Начальный индекс подмассивного массива в каждом измерении.

order

Порядок измерений.

MPI_ORDER_C

Порядок основной строки, в котором все элементы для данной строки хранятся непрерывно.

MPI_ORDER_FORTRAN

Основной порядок столбцов, в котором все элементы для данного столбца хранятся непрерывно.

Примечание

Программы C и Fortran могут использовать любой заказ. Определенные значения отражают типичное использование.

 

старый тип

Указывает тип данных каждого элемента.

newtype [out]

При возврате содержит дескриптор MPI_Datatype , представляющий новый тип данных.

Возвращаемое значение

Возвращает MPI_SUCCESS при успешном выполнении. В противном случае возвращаемое значение представляет собой код ошибки.

В Fortran возвращаемое значение хранится в параметре IERROR .

Fortran

    MPI_TYPE_CREATE_SUBARRAY(NDIMS, ARRAY_OF_SIZES, ARRAY_OF_SUBSIZES, ARRAY_OF_STARTS, ORDER, OLDTYPE, NEWTYPE, IERROR)
        NDIMS, ARRAY_OF_SIZES, ARRAY_OF_SUBSIZES, ARRAY_OF_STARTS, ORDER, OLDTYPE, NEWTYPE, IERROR

Комментарии

Функция возвращает ошибку, если размер подмассивного массива превышает размер массива. Для каждого измерения i значение параметра array_of_subsizes[i] должно быть больше или равно 1 и меньше или равно параметру array_of_sizes[i] .

Функция возвращает ошибку, если вложенный массив начинается или заканчивается за пределами массива. Для любого измерения i значение параметра должно быть равно нулю, а сумма параметров array_of_starts[i] и array_of_subsizes[i] должна быть меньше или равна значению параметра array_of_sizes[i] . Например, если вложенный массив имеет тот же размер, что и массив, то вложенный массив должен начинаться с нуля индекса. Предполагается, что массивы индексируются, начиная с нуля.

Требования

Продукт

Распространяемый пакет HPC 2012 MS-MPI, пакет HPC 2008 R2 распространяемый пакет MS-MPI, пакет HPC 2008 MS-MPI или клиентские служебные программы пакета HPC 2008

Заголовок

Mpi.h; Mpif.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

См. также раздел

Функции типов данных MPI