FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(fft_type), | intent(out) | :: | fft | |||
integer, | intent(in) | :: | direction | |||
integer, | intent(in) | :: | n | |||
integer, | intent(in) | :: | howmany |
subroutine init_z (fft, direction, n, howmany)
use job_manage, only: time_message
implicit none
type (fft_type), intent (out) :: fft
integer, intent (in) :: direction, n
integer, intent (in) :: howmany
# if FFT == _FFTW3_
complex, dimension (:,:), allocatable :: dummy_in_data, dummy_out_data
integer, dimension (1) :: array_n, embed
# endif
call time_message(.false., time_fft, ' FFT')
fft = basic_init(n, direction, howmany, .false.)
#if FFT == _FFTW3_
array_n = n
embed = n+1
allocate (dummy_in_data(n+1, howmany), dummy_out_data(n+1, howmany))
call FFTW_PREFIX(_plan_many_dft)(fft%plan, 1, array_n, howmany, &
dummy_in_data, embed, 1, n+1, &
dummy_out_data, embed, 1, n+1, &
direction, fftw_flags())
deallocate (dummy_in_data, dummy_out_data)
# endif
call time_message(.false., time_fft, ' FFT')
end subroutine init_z