This module defines objects and methods to perform fast fourier transforms in LEAP using the FFTW library.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | parameter | :: | C_FFTW_R2R_KIND | = | C_INT32_T | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_ALLOW_LARGE_GENERIC | = | 8192 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_ALLOW_PRUNING | = | 1048576 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_BACKWARD | = | +1 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_BELIEVE_PCOST | = | 256 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_CONSERVE_MEMORY | = | 4 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_DESTROY_INPUT | = | 1 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_DHT | = | 2 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_ESTIMATE | = | 64 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_ESTIMATE_PATIENT | = | 128 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_EXHAUSTIVE | = | 8 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_FORWARD | = | -1 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_HC2R | = | 1 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_MEASURE | = | 0 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_BUFFERING | = | 2048 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_DFT_R2HC | = | 512 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_FIXED_RADIX_LARGE_N | = | 524288 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_INDIRECT_OP | = | 4096 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_NONTHREADED | = | 1024 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_RANK_SPLITS | = | 16384 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_SIMD | = | 131072 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_SLOW | = | 262144 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_VRANK_SPLITS | = | 32768 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_NO_VRECURSE | = | 65536 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_PATIENT | = | 32 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_PRESERVE_INPUT | = | 16 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_R2HC | = | 0 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_REDFT00 | = | 3 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_REDFT01 | = | 4 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_REDFT10 | = | 5 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_REDFT11 | = | 6 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_RODFT00 | = | 7 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_RODFT01 | = | 8 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_RODFT10 | = | 9 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_RODFT11 | = | 10 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_UNALIGNED | = | 2 | |
| integer(kind=C_INT), | public, | parameter | :: | FFTW_WISDOM_ONLY | = | 2097152 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_SIZE_T), | value | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_SIZE_T), | value | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(inout), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(inout), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_DOUBLE), | intent(inout), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_DOUBLE), | intent(inout), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_DOUBLE), | intent(inout), | dimension(*) | :: | ri | ||
| real(kind=C_DOUBLE), | intent(inout), | dimension(*) | :: | ii | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | io |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_DOUBLE), | intent(inout), | dimension(*) | :: | ri | ||
| real(kind=C_DOUBLE), | intent(inout), | dimension(*) | :: | ii | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_DOUBLE), | intent(inout), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | io |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_FUNPTR), | value | :: | write_char | |||
| type(C_PTR), | value | :: | data |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | output_file |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=C_CHAR), | intent(in), | dimension(*) | :: | filename |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_DOUBLE), | intent(out) | :: | add | |||
| real(kind=C_DOUBLE), | intent(out) | :: | mul | |||
| real(kind=C_DOUBLE), | intent(out) | :: | fmas |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| type(C_PTR), | value | :: | output_file |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_FUNPTR), | value | :: | read_char | |||
| type(C_PTR), | value | :: | data |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | input_file |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=C_CHAR), | intent(in), | dimension(*) | :: | filename |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=C_CHAR), | intent(in), | dimension(*) | :: | input_string |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_SIZE_T), | value | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| integer(kind=C_INT), | value | :: | n2 | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| integer(kind=C_INT), | value | :: | n2 | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| integer(kind=C_INT), | value | :: | n2 | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | intent(in), | dimension(*) | :: | kind | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ri | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ii | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | io | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ri | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ii | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | io | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | intent(in), | dimension(*) | :: | kind | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ri | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ii | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | io | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ri | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ii | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftw_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | io | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| integer(kind=C_INT), | value | :: | howmany | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | inembed | ||
| integer(kind=C_INT), | value | :: | istride | |||
| integer(kind=C_INT), | value | :: | idist | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | onembed | ||
| integer(kind=C_INT), | value | :: | ostride | |||
| integer(kind=C_INT), | value | :: | odist | |||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| integer(kind=C_INT), | value | :: | howmany | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | inembed | ||
| integer(kind=C_INT), | value | :: | istride | |||
| integer(kind=C_INT), | value | :: | idist | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | onembed | ||
| integer(kind=C_INT), | value | :: | ostride | |||
| integer(kind=C_INT), | value | :: | odist | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| integer(kind=C_INT), | value | :: | howmany | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | inembed | ||
| integer(kind=C_INT), | value | :: | istride | |||
| integer(kind=C_INT), | value | :: | idist | |||
| complex(kind=C_DOUBLE_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | onembed | ||
| integer(kind=C_INT), | value | :: | ostride | |||
| integer(kind=C_INT), | value | :: | odist | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| integer(kind=C_INT), | value | :: | howmany | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | inembed | ||
| integer(kind=C_INT), | value | :: | istride | |||
| integer(kind=C_INT), | value | :: | idist | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | onembed | ||
| integer(kind=C_INT), | value | :: | ostride | |||
| integer(kind=C_INT), | value | :: | odist | |||
| integer(kind=C_FFTW_R2R_KIND), | intent(in), | dimension(*) | :: | kind | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | intent(in), | dimension(*) | :: | kind | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind0 | |||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind1 | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| integer(kind=C_INT), | value | :: | n2 | |||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_DOUBLE), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind0 | |||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind1 | |||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind2 | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | nthreads |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=C_DOUBLE), | value | :: | t |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_SIZE_T), | value | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_SIZE_T), | value | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(inout), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(inout), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_FLOAT), | intent(inout), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_FLOAT), | intent(inout), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_FLOAT), | intent(inout), | dimension(*) | :: | ri | ||
| real(kind=C_FLOAT), | intent(inout), | dimension(*) | :: | ii | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | io |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_FLOAT), | intent(inout), | dimension(*) | :: | ri | ||
| real(kind=C_FLOAT), | intent(inout), | dimension(*) | :: | ii | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_FLOAT), | intent(inout), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | io |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_FUNPTR), | value | :: | write_char | |||
| type(C_PTR), | value | :: | data |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | output_file |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=C_CHAR), | intent(in), | dimension(*) | :: | filename |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| real(kind=C_DOUBLE), | intent(out) | :: | add | |||
| real(kind=C_DOUBLE), | intent(out) | :: | mul | |||
| real(kind=C_DOUBLE), | intent(out) | :: | fmas |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p | |||
| type(C_PTR), | value | :: | output_file |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_FUNPTR), | value | :: | read_char | |||
| type(C_PTR), | value | :: | data |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | input_file |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=C_CHAR), | intent(in), | dimension(*) | :: | filename |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=C_CHAR), | intent(in), | dimension(*) | :: | input_string |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_SIZE_T), | value | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| integer(kind=C_INT), | value | :: | n2 | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| integer(kind=C_INT), | value | :: | n2 | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| integer(kind=C_INT), | value | :: | n2 | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | intent(in), | dimension(*) | :: | kind | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ri | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ii | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | io | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ri | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ii | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim64), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | io | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | intent(in), | dimension(*) | :: | kind | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ri | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ii | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | io | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ri | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ii | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | dims | ||
| integer(kind=C_INT), | value | :: | howmany_rank | |||
| type(fftwf_iodim), | intent(in), | dimension(*) | :: | howmany_dims | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | ro | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | io | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| integer(kind=C_INT), | value | :: | howmany | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | inembed | ||
| integer(kind=C_INT), | value | :: | istride | |||
| integer(kind=C_INT), | value | :: | idist | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | onembed | ||
| integer(kind=C_INT), | value | :: | ostride | |||
| integer(kind=C_INT), | value | :: | odist | |||
| integer(kind=C_INT), | value | :: | sign | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| integer(kind=C_INT), | value | :: | howmany | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | in | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | inembed | ||
| integer(kind=C_INT), | value | :: | istride | |||
| integer(kind=C_INT), | value | :: | idist | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | onembed | ||
| integer(kind=C_INT), | value | :: | ostride | |||
| integer(kind=C_INT), | value | :: | odist | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| integer(kind=C_INT), | value | :: | howmany | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | inembed | ||
| integer(kind=C_INT), | value | :: | istride | |||
| integer(kind=C_INT), | value | :: | idist | |||
| complex(kind=C_FLOAT_COMPLEX), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | onembed | ||
| integer(kind=C_INT), | value | :: | ostride | |||
| integer(kind=C_INT), | value | :: | odist | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| integer(kind=C_INT), | value | :: | howmany | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | inembed | ||
| integer(kind=C_INT), | value | :: | istride | |||
| integer(kind=C_INT), | value | :: | idist | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | onembed | ||
| integer(kind=C_INT), | value | :: | ostride | |||
| integer(kind=C_INT), | value | :: | odist | |||
| integer(kind=C_FFTW_R2R_KIND), | intent(in), | dimension(*) | :: | kind | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | rank | |||
| integer(kind=C_INT), | intent(in), | dimension(*) | :: | n | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | intent(in), | dimension(*) | :: | kind | ||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind0 | |||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind1 | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | n0 | |||
| integer(kind=C_INT), | value | :: | n1 | |||
| integer(kind=C_INT), | value | :: | n2 | |||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | in | ||
| real(kind=C_FLOAT), | intent(out), | dimension(*) | :: | out | ||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind0 | |||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind1 | |||
| integer(kind=C_FFTW_R2R_KIND), | value | :: | kind2 | |||
| integer(kind=C_INT), | value | :: | flags |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT), | value | :: | nthreads |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=C_DOUBLE), | value | :: | t |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(C_PTR), | value | :: | p |
A utility to perform Fast Fourier Transforms
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | Ng(3) |
Global number of grid points in each direction |
|||
| type(block_obj), | public, | pointer | :: | block | => | null() |
Associated block structure |
| type(fftbuf_obj), | public | :: | buffers(3) |
Input/Output buffers passed to FFTW |
|||
| integer, | public | :: | contig_dir | = | 0 |
Continguous direction |
|
| logical, | public | :: | fft_dir(3) | = | .false. |
Flags for FFT in each direction |
|
| integer, | public | :: | l_dims(3) |
Size of original array in each direction |
|||
| integer, | public | :: | l_offsets(3) |
Offsets of the local original array in global array |
|||
| type(C_PTR), | public | :: | p_in(3) | = | C_NULL_PTR |
Pointer to input array |
|
| type(C_PTR), | public | :: | p_out(3) | = | C_NULL_PTR |
Pointer to output array |
|
| type(parallel_obj), | public, | pointer | :: | parallel | => | null() |
Associated parallel structure |
| type(C_PTR), | public | :: | plan_b(3) | = | C_NULL_PTR |
Pointer to FFTW plan for inverse transform |
|
| type(C_PTR), | public | :: | plan_f(3) | = | C_NULL_PTR |
Pointer to FFTW plan for forward transform |
|
| integer, | private, | allocatable | :: | r_counts(:) |
Element count to be received by this MPI rank |
||
| integer, | private, | allocatable | :: | r_displs(:) |
Element displacements received by this MPI rank |
||
| integer, | private, | allocatable | :: | r_ptr(:) |
Pointers in received buffers |
||
| integer, | private, | allocatable | :: | s_counts(:) |
Element count to be sent by this MPI rank |
||
| integer, | private, | allocatable | :: | s_displs(:) |
Element displacements sent by this MPI rank |
||
| integer, | private, | allocatable | :: | s_ptr(:) |
Pointers in sent buffers |
| procedure, public :: Finalize => fft_obj_Final | |
| procedure, public :: GetOriginalLayout => fft_obj_GetOriginalLayout | |
| procedure, public :: GetRankFromLayout => fft_obj_GetRankFromLayout | |
| procedure, public :: GetTransposeLayout => fft_obj_GetTransposeLayout | |
| procedure, public :: Initialize => fft_obj_Init | |
| procedure, public :: Inverse => fft_obj_Inverse | |
| procedure, public :: SetContigDirection => fft_obj_SetContigDirection | |
| procedure, public :: SetFFTDirections => fft_obj_SetFFTDirections | |
| procedure, public :: Transform => fft_obj_Transform | |
| procedure, public :: Transpose => fft_obj_Transpose |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=C_INT), | public | :: | is | ||||
| integer(kind=C_INT), | public | :: | n | ||||
| integer(kind=C_INT), | public | :: | os |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=C_INTPTR_T), | public | :: | is | ||||
| integer(kind=C_INTPTR_T), | public | :: | n | ||||
| integer(kind=C_INTPTR_T), | public | :: | os |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=C_INT), | public | :: | is | ||||
| integer(kind=C_INT), | public | :: | n | ||||
| integer(kind=C_INT), | public | :: | os |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=C_INTPTR_T), | public | :: | is | ||||
| integer(kind=C_INTPTR_T), | public | :: | n | ||||
| integer(kind=C_INTPTR_T), | public | :: | os |
Object containing input/output buffers passed to FFTW
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=C_DOUBLE), | public, | pointer | :: | in(:) | => | null() |
Input buffer |
| real(kind=C_DOUBLE), | public, | pointer | :: | out(:) | => | null() |
Output buffer |
Returns the rank owning a given grid index
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
||
| integer, | intent(in) | :: | idx(3) |
Grid index |
||
| integer, | intent(in) | :: | Ng(3) |
Global grid points in each direction |
Rank owning this index
Finalizes object and frees memory.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
Determines data layout of original array.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
Returns the new layout and decomposition resulting from swapping two directions.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
||
| integer, | intent(in) | :: | swap_1 |
Direction to swap |
||
| integer, | intent(in) | :: | swap_2 |
Direction to swap |
||
| integer, | intent(in) | :: | Ng(3) |
Global number of grid points in each direction in the original layout |
||
| integer, | intent(out) | :: | Ng_T(3) |
Global number of grid points in each direction in the transposed layout |
||
| integer, | intent(out) | :: | l_dims_T(3) |
Size of each subblock in the transposed layout |
||
| integer, | intent(out) | :: | l_offsets_T(3) |
Offsets of each subblock in the transposed layout |
Initializes the FFT object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
||
| type(block_obj), | intent(in), | target | :: | block |
A block object |
|
| type(parallel_obj), | intent(in), | target | :: | parallel |
Parallel structure to link with |
Computes the Inverse of a Fourier Transform and stores it back in the input field. The FFT must be given in the halfcomplex format.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
||
| type(eulerian_obj_r), | intent(inout) | :: | field |
Field containing FFT coefficient in halfcomplex format |
Ensures that there is at least one contiguous direction and selects the one with largest number of grid points since that direction will be decomposed by the transpose.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
Sets the FFT directions.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
||
| logical, | intent(in) | :: | dir_flag(3) |
FFT directions |
Computes the Fourier Transform of field and stores it back in the input field in the "halfcomplex" (r2r) format. E.g. if the FFT is to be carried out in the 1-dir, then field%cell(:,j,k) contains the fourier transform in the 1-dir stored as follows r_0, r_1, ..., r_(Ng(1)1/2), i_(Ng(1)+1/2-1),..., i_1 r_m is the real part of mode m2pi/L(1) and i_m is the imaginary part of mode m2pi/L(1) for points at location y(j) (or ym(j), depending on the field staggering), z(k) (or zm(k)).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
||
| type(eulerian_obj_r), | intent(inout) | :: | field |
Input field |
Builds the transposed array A_T by swapping directions (swap_1) and (swap_2) of input array A. Note that the MPI decomposition remains unchanged. E.g.: 1) dir1=1 and dir2=2: field_T%cell(i,j,k) = field%cell(j,i,k) 2) dir1=3 and dir2=2: field_T%cell(i,j,k) = field%cell(i,k,j)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
||
| integer, | intent(in) | :: | swap_1 |
Direction to swap |
||
| integer, | intent(in) | :: | swap_2 |
Direction to swap |
||
| real(kind=wp), | intent(in) | :: | A(:,:,:) |
Input array to transpose |
||
| integer, | intent(in) | :: | Ng(3) |
Global nbr of grid points in the original layout |
||
| integer, | intent(in) | :: | l_dims(3) |
Size of each subblock in the original layout |
||
| integer, | intent(in) | :: | l_offsets(3) |
Offsets of each subblock in the original layout |
||
| real(kind=wp), | intent(out), | allocatable | :: | A_T(:,:,:) |
Transposed array |
|
| integer, | intent(out) | :: | Ng_T(3) |
Global nbr of grid points in the transposed layout |
||
| integer, | intent(out) | :: | l_dims_T(3) |
Size of each subblock in the transposed layout |
||
| integer, | intent(out) | :: | l_offsets_T(3) |
Offsets of each subblock in the transposed layout |