EXEC_FFTW Subroutine

public subroutine EXEC_FFTW(KTYPE, KRLEN, KCLEN, KOFF, KFIELDS, LD_ALL, PREEL)

@brief Execute FFTW transforms for arrays stored as PREEL(field,point).

Note

This routine shares the module-wide FFTW plan cache, so calls may serialize briefly in CREATE_PLAN_FFTW when accessing the FFTW_CREATE critical region.

Arguments

Type IntentOptional Attributes Name
integer(kind=JPIM), intent(in) :: KTYPE

Transform direction selector: 1 for complex-to-real and -1 for real-to-complex.

integer(kind=JPIM), intent(in) :: KRLEN

Number of real values in each transform.

integer(kind=JPIM), intent(in) :: KCLEN

Storage length of the packed FFT segment in real-valued form.

integer(kind=JPIM), intent(in) :: KOFF

One-based offset of the transform segment inside PREEL.

integer(kind=JPIM), intent(in) :: KFIELDS

Number of fields to transform.

logical, intent(in) :: LD_ALL

If true, execute all fields in one batched FFTW call; otherwise transform one field at a time.

real(kind=JPRB), intent(inout) :: PREEL(:,:)

Calls

proc~~exec_fftw~~CallsGraph proc~exec_fftw EXEC_FFTW dfftw_destroy_plan dfftw_destroy_plan proc~exec_fftw->dfftw_destroy_plan dr_hook dr_hook proc~exec_fftw->dr_hook fftw_alloc_complex fftw_alloc_complex proc~exec_fftw->fftw_alloc_complex fftw_free fftw_free proc~exec_fftw->fftw_free fftwf_alloc_complex fftwf_alloc_complex proc~exec_fftw->fftwf_alloc_complex fftwf_free fftwf_free proc~exec_fftw->fftwf_free proc~abort_trans ABORT_TRANS proc~exec_fftw->proc~abort_trans sfftw_destroy_plan sfftw_destroy_plan proc~exec_fftw->sfftw_destroy_plan mpl_abort mpl_abort proc~abort_trans->mpl_abort sdl_srlabort sdl_srlabort proc~abort_trans->sdl_srlabort sdl_traceback sdl_traceback proc~abort_trans->sdl_traceback

Called by

proc~~exec_fftw~~CalledByGraph proc~exec_fftw EXEC_FFTW proc~eftdirad EFTDIRAD proc~eftdirad->proc~exec_fftw proc~eftinvad EFTINVAD proc~eftinvad->proc~exec_fftw proc~ftdir FTDIR proc~ftdir->proc~exec_fftw proc~ftdirad FTDIRAD proc~ftdirad->proc~exec_fftw proc~ftinv FTINV proc~ftinv->proc~exec_fftw proc~ftinvad FTINVAD proc~ftinvad->proc~exec_fftw proc~dir_trans_ctl DIR_TRANS_CTL proc~dir_trans_ctl->proc~ftdir proc~dir_trans_ctlad DIR_TRANS_CTLAD proc~dir_trans_ctlad->proc~ftinv proc~eftdir_ctl EFTDIR_CTL proc~eftdir_ctl->proc~ftdir proc~eftdir_ctlad EFTDIR_CTLAD proc~eftdir_ctlad->proc~eftdirad proc~eftinv_ctl EFTINV_CTL proc~eftinv_ctl->proc~ftinv proc~eftinv_ctlad EFTINV_CTLAD proc~eftinv_ctlad->proc~eftinvad proc~ftdir_ctl FTDIR_CTL proc~ftdir_ctl->proc~ftdir proc~ftdir_ctlad FTDIR_CTLAD proc~ftdir_ctlad->proc~ftdirad proc~ftinv_ctl FTINV_CTL proc~ftinv_ctl->proc~ftinv proc~ftinv_ctlad FTINV_CTLAD proc~ftinv_ctlad->proc~ftinvad proc~inv_trans_ctlad INV_TRANS_CTLAD proc~inv_trans_ctlad->proc~ftdir proc~inv_trans_ctl~2 INV_TRANS_CTL proc~inv_trans_ctl~2->proc~ftinv proc~dir_trans DIR_TRANS proc~dir_trans->proc~dir_trans_ctl proc~dir_trans_ctlad~2 DIR_TRANS_CTLAD proc~dir_trans_ctlad~2->proc~ftdir_ctlad proc~dir_trans_ctl~2 DIR_TRANS_CTL proc~dir_trans_ctl~2->proc~ftdir_ctl proc~dir_transad DIR_TRANSAD proc~dir_transad->proc~dir_trans_ctlad proc~dir_transad~2 DIR_TRANSAD proc~dir_transad~2->proc~dir_trans_ctlad proc~dir_trans~2 DIR_TRANS proc~dir_trans~2->proc~dir_trans_ctl proc~edir_trans_ctl EDIR_TRANS_CTL proc~edir_trans_ctl->proc~eftdir_ctl proc~edir_trans_ctlad EDIR_TRANS_CTLAD proc~edir_trans_ctlad->proc~eftdir_ctlad proc~einv_trans_ctlad EINV_TRANS_CTLAD proc~einv_trans_ctlad->proc~eftinv_ctlad proc~einv_trans_ctl~2 EINV_TRANS_CTL proc~einv_trans_ctl~2->proc~eftinv_ctl proc~inv_trans_ctl INV_TRANS_CTL proc~inv_trans_ctl->proc~ftinv_ctl proc~inv_trans_ctlad~2 INV_TRANS_CTLAD proc~inv_trans_ctlad~2->proc~ftinv_ctlad proc~inv_transad INV_TRANSAD proc~inv_transad->proc~inv_trans_ctlad proc~inv_transad~2 INV_TRANSAD proc~inv_transad~2->proc~inv_trans_ctlad proc~edir_trans EDIR_TRANS proc~edir_trans->proc~edir_trans_ctl proc~edir_transad EDIR_TRANSAD proc~edir_transad->proc~edir_trans_ctlad proc~edir_trans~2 EDIR_TRANS proc~edir_trans~2->proc~edir_trans_ctl proc~einv_transad EINV_TRANSAD proc~einv_transad->proc~einv_trans_ctlad proc~inv_trans INV_TRANS proc~inv_trans->proc~inv_trans_ctl proc~inv_trans~2 INV_TRANS proc~inv_trans~2->proc~inv_trans_ctl