Class that describes information about data layout
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int8), | public | :: | aligned_dim |
Position of aligned dimension. For example: X pencil aligned_dim = 1, Z pencil aligned_dim = 3 |
|||
| integer(kind=int8), | public | :: | rank |
Rank of buffer: 2 or 3 |
|||
| integer(kind=int32), | public, | allocatable | :: | starts(:) |
Local starts, starting from 0 for both C and Fortran |
||
| integer(kind=int32), | public, | allocatable | :: | counts(:) |
Local counts of data, in elements |
||
| logical, | public | :: | is_even |
Is data evenly distributed across processes |
Creates pencil
Creates pencil
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(pencil), | intent(inout) | :: | self |
Pencil |
||
| integer(kind=int8), | intent(in) | :: | rank |
Rank of buffer |
||
| integer(kind=int8), | intent(in) | :: | aligned_dim |
Position of aligned dimension |
||
| integer(kind=int32), | intent(in) | :: | counts(:) |
Global counts |
||
| type(MPI_Comm), | intent(in) | :: | comms(:) |
Grid communicators |
||
| integer(kind=int32), | intent(in), | optional | :: | lstarts(:) |
Local starts |
|
| integer(kind=int32), | intent(in), | optional | :: | lcounts(:) |
Local counts |
|
| integer(kind=int8), | intent(in), | optional | :: | order(:) |
Order of dimensions |
Creates public object that users can use to create own FFT backends
Creates public object that users can use to create own FFT backends
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(pencil), | intent(in) | :: | self |
Pencil |