init_z Subroutine

public subroutine init_z(fft, direction, n, howmany)

Uses

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
type(fft_type), intent(out) :: fft
integer, intent(in) :: direction
integer, intent(in) :: n
integer, intent(in) :: howmany

Contents

Source Code


Source Code

  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