Note
Allocation of the memory needed by the transformations, forward and backward, for the real case. 1 FFT distributed on several threads
The space remains allocated as long as transformations are needed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=I4), | intent(in) | :: | long |
first 2D array dimension |
||
integer(kind=I4), | intent(in) | :: | larg |
second 2D array dimension |
subroutine alloc_fftw3_real(long, larg) implicit none integer(kind=I4), intent(in) :: long !! *first 2D array dimension* integer(kind=I4), intent(in) :: larg !! *second 2D array dimension* ! forward p_f_i = fftw_alloc_real(int(long*larg, C_SIZE_T)) p_f_o = fftw_alloc_complex(int(long*larg, C_SIZE_T)) call c_f_pointer(p_f_i, rea_f_i, (/long,larg/)) call c_f_pointer(p_f_o, cmp_f_o, (/long,larg/)) ! backward p_b_i = fftw_alloc_complex(int(long*larg, C_SIZE_T)) p_b_o = fftw_alloc_real(int(long*larg, C_SIZE_T)) call c_f_pointer(p_b_i, cmp_b_i, (/long,larg/)) call c_f_pointer(p_b_o, rea_b_o, (/long,larg/)) return endsubroutine alloc_fftw3_real