create_fft_plan_pair Subroutine

public subroutine create_fft_plan_pair(plan_fw, plan_bw, use_cufftmp, fft_n, fw_type, bw_type, label, worksize_fw, worksize_bw, stat, no_auto_alloc)

Creates the forward and the backward FFT plan the way the solver does. A backward plan that forces the fallback to plain cuFFT makes the forward plan, built on cuFFTMp, get rebuilt on plain cuFFT, so both plans end on the same library. Shared by the solver init and the x3d2-memcheck probe. The optional arguments are the ones of create_fft_plan. label is appended to the plan names in the messages. When stat is present and not zero, the plans made so far are destroyed and the other plan is left undefined.

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: plan_fw
integer, intent(inout) :: plan_bw
logical, intent(inout) :: use_cufftmp
integer, intent(in) :: fft_n(3)
integer, intent(in) :: fw_type
integer, intent(in) :: bw_type
character(len=*), intent(in) :: label
integer(kind=int_ptr_kind()), intent(out), optional :: worksize_fw
integer(kind=int_ptr_kind()), intent(out), optional :: worksize_bw
integer, intent(out), optional :: stat
logical, intent(in), optional :: no_auto_alloc

Calls

proc~~create_fft_plan_pair~~CallsGraph proc~create_fft_plan_pair m_cuda_poisson_fft::create_fft_plan_pair cufftdestroy cufftdestroy proc~create_fft_plan_pair->cufftdestroy proc~check_cufft m_cuda_errors::check_cufft proc~create_fft_plan_pair->proc~check_cufft proc~create_fft_plan m_cuda_poisson_fft::create_fft_plan proc~create_fft_plan_pair->proc~create_fft_plan interface~str m_logger::str proc~check_cufft->interface~str proc~abort_run m_logger::abort_run proc~check_cufft->proc~abort_run proc~create_fft_plan->cufftdestroy proc~create_fft_plan->proc~check_cufft cufftcreate cufftcreate proc~create_fft_plan->cufftcreate cufftmakeplan3d cufftmakeplan3d proc~create_fft_plan->cufftmakeplan3d cufftmpattachcomm cufftmpattachcomm proc~create_fft_plan->cufftmpattachcomm cufftsetautoallocation cufftsetautoallocation proc~create_fft_plan->cufftsetautoallocation proc~create_fft_plan->interface~str proc~log_warn m_logger::log_warn proc~create_fft_plan->proc~log_warn proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized proc~log_warn->interface~str proc~log_warn->mpi_comm_rank proc~log_warn->mpi_comm_size proc~log_warn->mpi_finalized proc~log_warn->mpi_initialized

Called by

proc~~create_fft_plan_pair~~CalledByGraph proc~create_fft_plan_pair m_cuda_poisson_fft::create_fft_plan_pair proc~create_plans m_cuda_poisson_fft::cuda_poisson_fft_t%create_plans proc~create_plans->proc~create_fft_plan_pair proc~create_plans_110 m_cuda_poisson_fft::cuda_poisson_110_t%create_plans_110 proc~create_plans_110->proc~create_fft_plan_pair proc~fft_workspace_bytes_query m_cuda_memcheck_device::fft_workspace_bytes_query proc~fft_workspace_bytes_query->proc~create_fft_plan_pair none~ensure_probe m_cuda_memcheck_device::cuda_memcheck_device_t%ensure_probe none~ensure_probe->proc~fft_workspace_bytes_query none~query_plan_need m_cuda_memcheck_device::cuda_memcheck_device_t%query_plan_need none~query_plan_need->proc~fft_workspace_bytes_query proc~prepare_probe m_memcheck_estimate::prepare_probe proc~prepare_probe->none~ensure_probe proc~prepare_probe->none~query_plan_need proc~report m_memcheck_report::report proc~report->proc~prepare_probe program~x3d2_memcheck x3d2_memcheck program~x3d2_memcheck->proc~report