tab_init_fftw3_real Subroutine

public subroutine tab_init_fftw3_real(long, larg, plan_flag)

Subroutine to initialize the FFTW3 process several FFT on single thread each Real case.

Arguments

Type IntentOptional Attributes Name
integer(kind=I4), intent(in) :: long

first 2D array dimension

integer(kind=I4), intent(in) :: larg

second 2D array dimension

integer(kind=I4), intent(in) :: plan_flag

planning option, FFTW_ESTIMATE for example


Calls

proc~~tab_init_fftw3_real~~CallsGraph proc~tab_init_fftw3_real tab_init_fftw3_real proc~tab_alloc_fftw3_real tab_alloc_fftw3_real proc~tab_init_fftw3_real->proc~tab_alloc_fftw3_real proc~tab_make_plan_fftw3_real tab_make_plan_fftw3_real proc~tab_init_fftw3_real->proc~tab_make_plan_fftw3_real interface~fftw_alloc_complex fftw_alloc_complex proc~tab_alloc_fftw3_real->interface~fftw_alloc_complex interface~fftw_alloc_real fftw_alloc_real proc~tab_alloc_fftw3_real->interface~fftw_alloc_real interface~fftw_plan_dft_c2r_2d fftw_plan_dft_c2r_2d proc~tab_make_plan_fftw3_real->interface~fftw_plan_dft_c2r_2d interface~fftw_plan_dft_r2c_2d fftw_plan_dft_r2c_2d proc~tab_make_plan_fftw3_real->interface~fftw_plan_dft_r2c_2d

Called by

proc~~tab_init_fftw3_real~~CalledByGraph proc~tab_init_fftw3_real tab_init_fftw3_real program~test_fftw3 test_fftw3 program~test_fftw3->proc~tab_init_fftw3_real

Source Code

   subroutine tab_init_fftw3_real(long, larg, plan_flag)
   !! Subroutine to initialize the FFTW3 process *several FFT on single thread each*
   !! Real case.
   implicit none
   integer(kind=I4), intent(in) :: long      !! *first  2D array dimension*
   integer(kind=I4), intent(in) :: larg      !! *second 2D array dimension*
   integer(kind=I4), intent(in) :: plan_flag !! *planning option, [[fftw3(module):FFTW_ESTIMATE]] for example*

      allocate( tab_rea_f_i( 0:NB_THREADS_FFT -1) )
      allocate( tab_cmp_f_o( 0:NB_THREADS_FFT -1) )

      allocate( tab_cmp_b_i( 0:NB_THREADS_FFT -1) )
      allocate( tab_rea_b_o( 0:NB_THREADS_FFT -1) )

      allocate( tab_p_f_i( 0:NB_THREADS_FFT -1) )
      allocate( tab_p_f_o( 0:NB_THREADS_FFT -1) )

      allocate( tab_p_b_i( 0:NB_THREADS_FFT -1) )
      allocate( tab_p_b_o( 0:NB_THREADS_FFT -1) )

      allocate( tab_plan_f(0:NB_THREADS_FFT -1) )
      allocate( tab_plan_b(0:NB_THREADS_FFT -1) )

      call tab_alloc_fftw3_real(long, larg)
      call tab_make_plan_fftw3_real(long, larg, plan_flag)

      MULTI_FFTW_ALLOCATED = .true.

   return
   endsubroutine tab_init_fftw3_real