Creates a datatype describing a subarray of a multidimensional array


#include "mpi.h"
int MPI_Type_create_subarray(ndims, array_of_sizes, array_of_subsizes, array_of_starts, order, oldtype, newtype)
int          ndims;
int          *array_of_sizes;
int          *array_of_subsizes;
int          *array_of_starts;
int          order;
MPI_Datatype oldtype; 
MPI_Datatype *newtype;

Input Parameters

ndims number of array dimensions (positive integer)
array_of_sizes number of elements of type oldtype in each dimension of the full array (array of positive integers)
array_of_subsizes number of elements of type oldtype in each dimension of the subarray (array of positive integers)
array_of_starts starting coordinates of the subarray in each dimension (array of nonnegative 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.