A datatype which stores a process grid and all its communicators.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | total_processors | total processors in the grid.  | 
  
|||
| integer, | public | :: | num_process_rows | number of rows in the grid.  | 
  
|||
| integer, | public | :: | num_process_columns | number of columns in the grid.  | 
  
|||
| integer, | public | :: | num_process_slices | number of 2D slices in the grid.  | 
  
|||
| integer, | public | :: | slice_size | the size of a 2D slice.  | 
  
|||
| integer, | public | :: | my_slice | which slice is the current process in.  | 
  
|||
| integer, | public | :: | my_row | which row is the current process in.  | 
  
|||
| integer, | public | :: | my_column | which column is the current process in.  | 
  
|||
| integer, | public | :: | global_rank | current process rank amongst processes.  | 
  
|||
| integer, | public | :: | within_slice_rank | rank for within slice communication.  | 
  
|||
| integer, | public | :: | between_slice_rank | rank for between slice communication.  | 
  
|||
| integer, | public | :: | column_rank | rank for within column communication.  | 
  
|||
| integer, | public | :: | row_rank | rank for within row communication.  | 
  
|||
| integer, | public | :: | global_comm | communicator with every other process.  | 
  
|||
| integer, | public | :: | row_comm | communicator within a row.  | 
  
|||
| integer, | public | :: | column_comm | communicator within a column.  | 
  
|||
| integer, | public | :: | within_slice_comm | communicator within a slice.  | 
  
|||
| integer, | public | :: | between_slice_comm | communicator between slices.  | 
  
|||
| integer, | public | :: | grid_error | stores errors from MPI calls.  | 
  
|||
| integer, | public | :: | RootID | = | 0 | Which rank is root?  | 
  
|
| integer, | public | :: | block_multiplier | Block scaling factor.  | 
  
|||
| integer, | public | :: | number_of_blocks_columns | number of column blocks.  | 
  
|||
| integer, | public | :: | number_of_blocks_rows | number of row blocks.  | 
  
|||
| integer, | public, | DIMENSION(:), ALLOCATABLE | :: | blocked_row_comm | blocked communicator within a row.  | 
  
||
| integer, | public, | DIMENSION(:), ALLOCATABLE | :: | blocked_column_comm | blocked communicator within a column.  | 
  
||
| integer, | public, | DIMENSION(:,:), ALLOCATABLE | :: | blocked_within_slice_comm | blocked communicator within a slice.  | 
  
||
| integer, | public, | DIMENSION(:,:), ALLOCATABLE | :: | blocked_between_slice_comm | blocked communicator between slices.  |