create_reshape_plans Subroutine

private subroutine create_reshape_plans(plans, backend, platform, helper, effort, force_effort, base_init_dtype, base_init_storage, base_dtype, base_storage, bricks, pencils, backends, plan_id)

Uses

  • proc~~create_reshape_plans~~UsesGraph proc~create_reshape_plans create_reshape_plans iso_fortran_env iso_fortran_env proc~create_reshape_plans->iso_fortran_env

Creates and allocates all reshape operation plans

This subroutine allocates and initializes plans for all four reshape operations: - X_BRICKS_TO_PENCILS: brick to pencil in X dimension (real space) - X_PENCILS_TO_BRICKS: pencil to brick in X dimension (real space) - Z_PENCILS_TO_BRICKS: pencil to brick in Z dimension (Fourier space) - Z_BRICKS_TO_PENCILS: brick to pencil in Z dimension (Fourier space)

Arguments

Type IntentOptional Attributes Name
type(reshape_container), intent(inout), allocatable :: plans(:)

Array of reshape plan containers to be allocated and initialized

type(dtfft_backend_t), intent(in) :: backend

Communication backend to use for reshape operations

type(dtfft_platform_t), intent(in) :: platform

Execution platform (HOST or CUDA)

type(backend_helper), intent(inout) :: helper

Backend helper for communication setup

type(dtfft_effort_t), intent(in) :: effort

dtFFT planner effort level

logical, intent(in) :: force_effort
type(MPI_Datatype), intent(in) :: base_init_dtype

Base MPI datatype for real space data

integer(kind=int64), intent(in) :: base_init_storage

Number of bytes needed to store single real element

type(MPI_Datatype), intent(in) :: base_dtype

Base MPI datatype for Fourier space data

integer(kind=int64), intent(in) :: base_storage

Number of bytes needed to store single complex element

type(pencil), intent(in), target :: bricks(:)

Pencils describing brick data distribution

type(pencil), intent(in), target :: pencils(:)

Array of pencil decompositions

type(dtfft_backend_t), intent(in), optional :: backends(11:14)

Adaptive backends

integer(kind=int8), intent(in), optional :: plan_id

Single plan id to create


Calls

proc~~create_reshape_plans~~CallsGraph proc~create_reshape_plans create_reshape_plans mpi_abort mpi_abort proc~create_reshape_plans->mpi_abort proc~allocate_plans allocate_plans proc~create_reshape_plans->proc~allocate_plans proc~create~18 abstract_reshape_handle%create proc~create_reshape_plans->proc~create~18 proc~get_conf_reshape get_conf_reshape proc~create_reshape_plans->proc~get_conf_reshape proc~write_message write_message proc~create_reshape_plans->proc~write_message proc~allocate_plans->mpi_abort proc~allocate_plans->proc~write_message proc~create~18->mpi_abort proc~create~18->proc~write_message create_private create_private proc~create~18->create_private proc~get_reshape_type get_reshape_type proc~create~18->proc~get_reshape_type proc~get_transpose_type get_transpose_type proc~create~18->proc~get_transpose_type proc~is_valid_reshape_type is_valid_reshape_type proc~create~18->proc~is_valid_reshape_type proc~is_valid_transpose_type is_valid_transpose_type proc~create~18->proc~is_valid_transpose_type mpi_comm_rank mpi_comm_rank proc~write_message->mpi_comm_rank mpi_finalized mpi_finalized proc~write_message->mpi_finalized

Called by

proc~~create_reshape_plans~~CalledByGraph proc~create_reshape_plans create_reshape_plans proc~autotune_adaptive autotune_adaptive proc~autotune_adaptive->proc~create_reshape_plans proc~autotune_reshape_plan autotune_reshape_plan proc~autotune_reshape_plan->proc~create_reshape_plans proc~autotune_reshape_plan->proc~autotune_adaptive proc~create reshape_plan%create proc~create->proc~create_reshape_plans proc~create->proc~autotune_reshape_plan