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);