This module is a Fortran part of C interface
C pointer to Fortran plan
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| class(dtfft_plan_t), | public, | allocatable | :: | p |
Actual Fortran plan |
Converts C communicator to Fortran communicator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=c_int32_t), | intent(in) | :: | c_comm |
C communicator |
Creates R2R dtFFT Plan, allocates all structures and prepares FFT, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=c_int8_t), | intent(in) | :: | ndims |
Rank of transform. Can be 2 or 3. |
||
| type(c_ptr), | intent(in), | value | :: | dims |
Global sizes of transform |
|
| type(c_ptr), | intent(in), | value | :: | kinds |
FFT R2R kinds |
|
| integer(kind=c_int32_t), | intent(in), | value | :: | comm |
Communicator |
|
| type(dtfft_precision_t), | intent(in) | :: | precision |
Precision of transform |
||
| type(dtfft_effort_t), | intent(in) | :: | effort |
|
||
| type(dtfft_executor_t), | intent(in) | :: | executor |
Type of External FFT Executor |
||
| type(c_ptr), | intent(out) | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Creates R2R dtFFT Plan from Pencil, allocates all structures and prepares FFT, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_pencil_c), | intent(in) | :: | pencil |
C pointer to Fortran pencil |
||
| type(c_ptr), | intent(in), | value | :: | kinds |
FFT R2R kinds |
|
| integer(kind=c_int32_t), | intent(in), | value | :: | comm |
Communicator |
|
| type(dtfft_precision_t), | intent(in) | :: | precision |
Precision of transform |
||
| type(dtfft_effort_t), | intent(in) | :: | effort |
|
||
| type(dtfft_executor_t), | intent(in) | :: | executor |
Type of External FFT Executor |
||
| type(c_ptr), | intent(out) | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Creates C2C dtFFT Plan, allocates all structures and prepares FFT, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=c_int8_t), | intent(in) | :: | ndims |
Rank of transform. Can be 2 or 3. |
||
| type(c_ptr), | intent(in), | value | :: | dims |
Global sizes of transform |
|
| integer(kind=c_int32_t), | intent(in), | value | :: | comm |
Communicator |
|
| type(dtfft_precision_t), | intent(in) | :: | precision |
Precision of transform |
||
| type(dtfft_effort_t), | intent(in) | :: | effort |
|
||
| type(dtfft_executor_t), | intent(in) | :: | executor |
Type of External FFT Executor |
||
| type(c_ptr), | intent(out) | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Creates C2C dtFFT plan from Pencil, allocates all structures and prepares FFT, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_pencil_c), | intent(in) | :: | pencil |
C pointer to Fortran pencil |
||
| integer(kind=c_int32_t), | intent(in), | value | :: | comm |
Communicator |
|
| type(dtfft_precision_t), | intent(in) | :: | precision |
Precision of transform |
||
| type(dtfft_effort_t), | intent(in) | :: | effort |
|
||
| type(dtfft_executor_t), | intent(in) | :: | executor |
Type of External FFT Executor |
||
| type(c_ptr), | intent(out) | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Checks if dtFFT Plan is using Z-slab optimization
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
| logical(kind=c_bool), | intent(out) | :: | is_z_slab_enabled |
Is plan internally using Z-slab optimization |
The enumerated type dtfft_error_t defines API call result codes.
Checks if dtFFT Plan is using Y-slab optimization
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
| logical(kind=c_bool), | intent(out) | :: | is_y_slab_enabled |
Is plan internally using Y-slab optimization |
The enumerated type dtfft_error_t defines API call result codes.
Executes dtFFT Plan, C interface. aux can be NULL.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
| type(c_ptr), | intent(in), | value | :: | in |
Incomming pointer, not NULL |
|
| type(c_ptr), | intent(in), | value | :: | out |
Outgoing buffer, not NULL |
|
| type(dtfft_execute_t), | intent(in) | :: | execute_type |
Type of execution |
||
| type(c_ptr), | intent(in), | value | :: | aux |
Aux buffer, can be NULL |
The enumerated type dtfft_error_t defines API call result codes.
Executes single transposition, C interface.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
| type(c_ptr), | intent(in), | value | :: | in |
Incomming pointer, not NULL |
|
| type(c_ptr), | intent(in), | value | :: | out |
Outgoing buffer, not NULL |
|
| type(dtfft_transpose_t), | intent(in) | :: | transpose_type |
Type of transposition. |
The enumerated type dtfft_error_t defines API call result codes.
Starts asynchronous transposition, returns transpose handle, C interface.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
| type(c_ptr), | intent(in), | value | :: | in |
Incomming pointer, not NULL |
|
| type(c_ptr), | intent(in), | value | :: | out |
Outgoing buffer, not NULL |
|
| type(dtfft_transpose_t), | intent(in) | :: | transpose_type |
Type of transposition. |
||
| type(dtfft_request_t), | intent(out) | :: | request |
Async transpose handle |
The enumerated type dtfft_error_t defines API call result codes.
Finishes asynchronous transposition, C interface.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
| type(dtfft_request_t), | intent(inout) | :: | request |
Async transpose handle |
The enumerated type dtfft_error_t defines API call result codes.
Destroys dtFFT Plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr) | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Returns local sizes, counts in real and Fourier spaces and number of elements to be allocated for in and out buffers,
C interface.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| integer(kind=c_int32_t), | intent(out), | optional | :: | in_starts(3) |
Starts of local portion of data in ‘real’ space |
|
| integer(kind=c_int32_t), | intent(out), | optional | :: | in_counts(3) |
Counts of local portion of data in ‘real’ space |
|
| integer(kind=c_int32_t), | intent(out), | optional | :: | out_starts(3) |
Starts of local portion of data in ‘fourier’ space |
|
| integer(kind=c_int32_t), | intent(out), | optional | :: | out_counts(3) |
Counts of local portion of data in ‘fourier’ space |
|
| integer(kind=c_size_t), | intent(out), | optional | :: | alloc_size |
Minimum data needs to be allocated |
The enumerated type dtfft_error_t defines API call result codes.
Returns minimum number of bytes to be allocated for in and out buffers, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| integer(kind=c_size_t), | intent(out) | :: | alloc_size |
Minimum data needs to be allocated |
The enumerated type dtfft_error_t defines API call result codes.
Returns pencil decomposition info, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| integer(kind=c_int32_t), | intent(in) | :: | dim |
Dimension requested |
||
| type(dtfft_pencil_c) | :: | pencil |
Pencil pointer |
The enumerated type dtfft_error_t defines API call result codes.
Returns size of element in bytes, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| integer(kind=c_size_t), | intent(out) | :: | element_size |
Size of element in bytes |
The enumerated type dtfft_error_t defines API call result codes.
Returns minimum number of bytes required to execute plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| integer(kind=c_size_t), | intent(out) | :: | alloc_bytes |
Number of bytes required |
The enumerated type dtfft_error_t defines API call result codes.
Returns executor type used in plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| type(dtfft_executor_t), | intent(out) | :: | executor |
The enumerated type dtfft_executor_t |
The enumerated type dtfft_error_t defines API call result codes.
Returns precision used in plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| type(dtfft_precision_t), | intent(out) | :: | precision |
The enumerated type dtfft_precision_t |
The enumerated type dtfft_error_t defines API call result codes.
Returns dimensions of plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| integer(kind=c_int8_t), | intent(out) | :: | ndims |
Number of dimensions |
||
| type(c_ptr), | intent(out) | :: | dims |
Array of dimensions |
The enumerated type dtfft_error_t defines API call result codes.
Returns grid decomposition dimensions of plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| integer(kind=c_int8_t), | intent(out) | :: | ndims |
Number of dimensions |
||
| type(c_ptr), | intent(out) | :: | grid_dims |
Array of dimensions |
The enumerated type dtfft_error_t defines API call result codes.
Sets dtFFT configuration, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_config_t), | intent(in) | :: | config |
Configuration to set |
The enumerated type dtfft_error_t defines API call result codes.
Reports dtFFT Plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Allocates memory for dtFFT Plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| integer(kind=c_size_t), | value | :: | alloc_bytes |
Number of bytes to allocate |
||
| type(c_ptr) | :: | ptr |
Allocated pointer |
The enumerated type dtfft_error_t defines API call result codes.
Frees memory for dtFFT Plan, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| type(c_ptr), | value | :: | ptr |
Pointer to deallocate |
The enumerated type dtfft_error_t defines API call result codes.
Returns selected dtfft_backend_t during autotuning
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| type(dtfft_backend_t), | intent(out) | :: | backend |
The enumerated type dtfft_backend_t |
The enumerated type dtfft_error_t defines API call result codes.
Returns Stream associated with plan
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| type(dtfft_stream_t), | intent(out) | :: | stream |
CUDA stream |
The enumerated type dtfft_error_t defines API call result codes.
Returns selected dtfft_platform_t during autotuning
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
| type(dtfft_platform_t), | intent(out) | :: | platform |
The enumerated type dtfft_platform_t |
The enumerated type dtfft_error_t defines API call result codes.
Returns an explaination of error_code that could have been previously returned by one of dtFFT API calls,
C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=c_int32_t), | intent(in) | :: | error_code |
The enumerated type dtfft_error_t defines API call result codes. |
||
| character(len=c_char), | intent(out) | :: | error_string(*) |
Explanation of error |
||
| integer(kind=c_size_t), | intent(out) | :: | error_string_size |
Size of |
Returns string representation of dtfft_precision_t, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_precision_t), | intent(in) | :: | precision |
The enumerated type dtfft_precision_t |
||
| character(len=c_char), | intent(out) | :: | precision_string(*) |
Resulting string |
||
| integer(kind=c_size_t), | intent(out) | :: | precision_string_size |
Size of string |
Returns string representation of dtfft_executor_t, C interface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_executor_t), | intent(in) | :: | executor |
The enumerated type dtfft_executor_t |
||
| character(len=c_char), | intent(out) | :: | executor_string(*) |
Resulting string |
||
| integer(kind=c_size_t), | intent(out) | :: | executor_string_size |
Size of string |
Returns string representation of dtfft_backend_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_backend_t), | intent(in) | :: | backend |
The enumerated type dtfft_backend_t |
||
| character(len=c_char), | intent(out) | :: | backend_string(*) |
Resulting string |
||
| integer(kind=c_size_t), | intent(out) | :: | backend_string_size |
Size of string |