共用方式為


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_sizesarray_of_subsizesarray_of_starts 參數中的專案數目。

array_of_sizes

完整陣列之每個維度中的專案數目。

array_of_subsizes

子陣列中每個維度中的專案數目。

array_of_starts

每個維度中子陣列的起始索引。

order

維度的順序。

MPI_ORDER_C

指定資料列的所有元素會連續儲存的資料列主要順序。

MPI_ORDER_FORTRAN

資料行主要順序,指定資料行的所有元素都會連續儲存。

注意

C 和 Fortran 程式都可以使用任一順序。 定義的值反映一般使用方式。

 

oldtype

指定每個專案的資料類型。

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]參數的值必須大於或等於一,且小於或等於array_of_sizes[i]參數。

如果子陣列開始或結束于陣列界限之外,此函式會傳回錯誤。 對於任何維度 i,參數的值必須是零,而且 array_of_starts[i]array_of_subsizes[i] 參數的總和必須小於或等於 array_of_sizes[i] 參數的值。 例如,如果子陣列的大小與陣列相同,則子陣列必須從索引零開始。 陣列假設是從零開始編制索引。

規格需求

產品

HPC Pack 2012 MS-MPI 可轉散發套件、HPC Pack 2008 R2 MS-MPI 可轉散發套件、HPC Pack 2008 MS-MPI 可轉散發套件或 HPC Pack 2008 用戶端公用程式

標頭

Mpi.h;Mpif.h

媒體櫃

Msmpi.lib

DLL

Msmpi.dll

另請參閱

MPI 資料類型函式