Describes some small extensions, some of which are needed in the following sections.
MPI_Datatype columntype;
int sizes[2] = {100, 100};
int subsizes[2] = {100, 25};
int starts[2] = { 0, 0};
int rank;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
starts[1]=rank*subsizes[1];
MPI_Type_create_subarray(2, sizes, subsizes, starts,
MPI_ORDER_C, MPI_DOUBLE, &columntype);