make_plan_fftw3_real Subroutine

private subroutine make_plan_fftw3_real(long, larg, plan_flag)

Note

Creates forward and backward plans. 1 FFT distributed on several threads

Until no more transformation is needed, the plans remain as they are.

Warning

In C, the order line/column is reversed, so the 2nd dimension larg of the array is first provided in fftw_plan_dft_2d

calling from fortran

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~~make_plan_fftw3_real~~CallsGraph proc~make_plan_fftw3_real make_plan_fftw3_real interface~fftw_plan_dft_c2r_2d fftw_plan_dft_c2r_2d proc~make_plan_fftw3_real->interface~fftw_plan_dft_c2r_2d interface~fftw_plan_dft_r2c_2d fftw_plan_dft_r2c_2d proc~make_plan_fftw3_real->interface~fftw_plan_dft_r2c_2d

Called by

proc~~make_plan_fftw3_real~~CalledByGraph proc~make_plan_fftw3_real make_plan_fftw3_real proc~init_fftw3_real init_fftw3_real proc~init_fftw3_real->proc~make_plan_fftw3_real proc~calc_fftw3_real_bwd calc_fftw3_real_bwd proc~calc_fftw3_real_bwd->proc~init_fftw3_real proc~calc_fftw3_real_fwd calc_fftw3_real_fwd proc~calc_fftw3_real_fwd->proc~init_fftw3_real program~test_fftw3 test_fftw3 program~test_fftw3->proc~init_fftw3_real program~test_fftw3->proc~calc_fftw3_real_bwd program~test_fftw3->proc~calc_fftw3_real_fwd

Source Code

   subroutine make_plan_fftw3_real(long, larg, plan_flag)
   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*

      ! forward
      plan_f = fftw_plan_dft_r2c_2d(n0 = larg, n1 = long, in = rea_f_i, out = cmp_f_o, flags = plan_flag)

      ! backward
      plan_b = fftw_plan_dft_c2r_2d(n0 = larg, n1 = long, in = cmp_b_i, out = rea_b_o, flags = plan_flag)

   return
   endsubroutine make_plan_fftw3_real