Type definitions for distributed arrays
Provides the darray_t type for DDI-style distributed 2D arrays. Columns are distributed across MPI ranks with each rank owning a contiguous block of columns. Supports dp, sp, i32, and i64 data types.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | public, | parameter | :: | DTYPE_DP | = | 1 |
Double precision real |
| integer(kind=int32), | public, | parameter | :: | DTYPE_I32 | = | 3 |
32-bit integer |
| integer(kind=int32), | public, | parameter | :: | DTYPE_I64 | = | 4 |
64-bit integer |
| integer(kind=int32), | public, | parameter | :: | DTYPE_SP | = | 2 |
Single precision real |
Distributed array descriptor
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | active | = | .false. |
Is this array slot in use? |
|
| real(kind=dp), | public, | pointer | :: | data_dp(:) | => | null() | |
| integer(kind=int32), | public, | pointer | :: | data_i32(:) | => | null() | |
| integer(kind=int64), | public, | pointer | :: | data_i64(:) | => | null() | |
| real(kind=sp), | public, | pointer | :: | data_sp(:) | => | null() | |
| integer(kind=int32), | public | :: | dtype | = | 0 |
Data type (DTYPE_DP, DTYPE_SP, etc.) |
|
| integer(kind=int32), | public | :: | handle | = | -1 |
Unique array handle |
|
| integer(kind=int64), | public | :: | local_size | = | 0 |
Size of local data (nrows * my_ncols) |
|
| integer(kind=int32), | public | :: | my_first_col | = | 0 |
First column owned (0-indexed) |
|
| integer(kind=int32), | public | :: | my_ncols | = | 0 |
Number of columns owned |
|
| integer(kind=int32), | public | :: | ncols | = | 0 |
Total number of columns |
|
| integer(kind=int32), | public | :: | nrows | = | 0 |
Total number of rows |
|
| type(win_t), | public | :: | win |
MPI window for RMA access |