定義新的資料類型,這個資料類型是由 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 程式都可以使用任一順序。 定義的值反映一般使用方式。
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 |