Creates a datatype corresponding to a distributed, multidimensional array


#include "mpi.h"
int MPI_Type_create_darray(int size, int rank, int ndims, 
                           int *array_of_gsizes, int *array_of_distribs, 
                           int *array_of_dargs, int *array_of_psizes, 
                           int order, MPI_Datatype oldtype, 
                           MPI_Datatype *newtype) 

Input Parameters

size size of process group (positive integer)
rank rank in process group (nonnegative integer)
ndims number of array dimensions as well as process grid dimensions (positive integer)
array_of_gsizes number of elements of type oldtype in each dimension of global array (array of positive integers)
array_of_distribs distribution of array in each dimension (array of state)
array_of_dargs distribution argument in each dimension (array of positive integers)
array_of_psizes size of process grid in each dimension (array of positive integers)
order array storage order flag (state)
oldtype old datatype (handle)

Output Parameters

new datatype (handle)

Notes for Fortran

All MPI routines in Fortran (except for MPI_WTIME and MPI_WTICK) have an additional argument ierr at the end of the argument list. ierr is an integer and has the same meaning as the return value of the routine in C. In Fortran, MPI routines are subroutines, and are invoked with the call statement.

All MPI objects (e.g., MPI_Datatype, MPI_Comm) are of type INTEGER in Fortran.