# MPI_Type_create_subarray

Creates a datatype describing a subarray of a multidimensional array

## Synopsis

    #include "mpi.h"
    int MPI_Type_create_subarray(
            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

newtype
  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.

Location:subarray.c