create_private Function

private function create_private(self, dims, transposed_dims, base_comm, comm_dims, effort, base_dtype, base_storage, is_custom_cart_comm, cart_comm, comms, pencils) result(error_code)

Creates transposition plans

Type Bound

transpose_plan_host

Arguments

Type IntentOptional Attributes Name
class(transpose_plan_host), intent(inout) :: self

Transposition class

integer(kind=int32), intent(in) :: dims(:)

Global sizes of the transform requested

integer(kind=int32), intent(in) :: transposed_dims(:,:)

Transposed sizes of the transform requested

type(MPI_Comm), intent(in) :: base_comm

Base communicator

integer(kind=int32), intent(in) :: comm_dims(:)

Number of MPI Processes in all directions

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

How thoroughly dtFFT searches for the optimal plan

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

Base MPI_Datatype

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

Number of bytes needed to store single element

logical, intent(in) :: is_custom_cart_comm

Is custom Cartesian communicator provided by user

type(MPI_Comm), intent(out) :: cart_comm

Cartesian communicator

type(MPI_Comm), intent(out) :: comms(:)

Array of 1d communicators

type(pencil), intent(out) :: pencils(:)

Pencils

Return Value integer(kind=int32)

Error code


Calls

proc~~create_private~2~~CallsGraph proc~create_private~2 transpose_plan_host%create_private back_ids back_ids proc~create_private~2->back_ids dummy_decomp dummy_decomp proc~create_private~2->dummy_decomp dummy_timer dummy_timer proc~create_private~2->dummy_timer forw_ids forw_ids proc~create_private~2->forw_ids interface~int_to_str int_to_str proc~create_private~2->interface~int_to_str mpi_comm_size mpi_comm_size proc~create_private~2->mpi_comm_size proc~autotune_grid_decomposition~2 transpose_plan_host%autotune_grid_decomposition proc~create_private~2->proc~autotune_grid_decomposition~2 proc~autotune_grid~2 transpose_plan_host%autotune_grid proc~create_private~2->proc~autotune_grid~2 proc~create_cart_comm create_cart_comm proc~create_private~2->proc~create_cart_comm proc~create~8 pencil%create proc~create_private~2->proc~create~8 proc~get_datatype_from_env get_datatype_from_env proc~create_private~2->proc~get_datatype_from_env proc~get_log_enabled get_log_enabled proc~create_private~2->proc~get_log_enabled proc~write_message write_message proc~create_private~2->proc~write_message proc~int_to_str_int32 int_to_str_int32 interface~int_to_str->proc~int_to_str_int32 proc~int_to_str_int64 int_to_str_int64 interface~int_to_str->proc~int_to_str_int64 proc~int_to_str_int8 int_to_str_int8 interface~int_to_str->proc~int_to_str_int8 proc~autotune_grid_decomposition~2->interface~int_to_str proc~autotune_grid_decomposition~2->mpi_comm_size proc~autotune_grid_decomposition~2->proc~autotune_grid~2 proc~autotune_grid_decomposition~2->proc~get_log_enabled proc~autotune_grid_decomposition~2->proc~write_message proc~autotune_grid~2->interface~int_to_str proc~autotune_grid~2->proc~create_cart_comm proc~autotune_grid~2->proc~create~8 proc~autotune_grid~2->proc~get_log_enabled proc~autotune_grid~2->proc~write_message mpi_comm_free mpi_comm_free proc~autotune_grid~2->mpi_comm_free proc~autotune_mpi_datatypes transpose_plan_host%autotune_mpi_datatypes proc~autotune_grid~2->proc~autotune_mpi_datatypes proc~destroy~8 pencil%destroy proc~autotune_grid~2->proc~destroy~8 proc~double_to_str double_to_str proc~autotune_grid~2->proc~double_to_str proc~get_local_sizes~2 get_local_sizes proc~autotune_grid~2->proc~get_local_sizes~2 proc~get_plan_execution_time transpose_plan_host%get_plan_execution_time proc~autotune_grid~2->proc~get_plan_execution_time proc~pop_nvtx_domain_range pop_nvtx_domain_range proc~autotune_grid~2->proc~pop_nvtx_domain_range proc~push_nvtx_domain_range push_nvtx_domain_range proc~autotune_grid~2->proc~push_nvtx_domain_range mpi_cart_create mpi_cart_create proc~create_cart_comm->mpi_cart_create mpi_cart_sub mpi_cart_sub proc~create_cart_comm->mpi_cart_sub proc~create~8->proc~destroy~8 proc~get_local_size get_local_size proc~create~8->proc~get_local_size interface~get_env get_env proc~get_datatype_from_env->interface~get_env mpi_comm_rank mpi_comm_rank proc~write_message->mpi_comm_rank mpi_finalized mpi_finalized proc~write_message->mpi_finalized proc~get_env_base get_env_base interface~get_env->proc~get_env_base proc~get_env_int32 get_env_int32 interface~get_env->proc~get_env_int32 proc~get_env_int8 get_env_int8 interface~get_env->proc~get_env_int8 proc~get_env_logical get_env_logical interface~get_env->proc~get_env_logical proc~get_env_string get_env_string interface~get_env->proc~get_env_string proc~autotune_transpose_id transpose_plan_host%autotune_transpose_id proc~autotune_mpi_datatypes->proc~autotune_transpose_id proc~get_local_size->mpi_comm_size proc~get_local_size->mpi_comm_rank mpi_allgather mpi_allgather proc~get_local_size->mpi_allgather proc~get_plan_execution_time->interface~int_to_str proc~get_plan_execution_time->mpi_comm_size proc~get_plan_execution_time->proc~get_log_enabled proc~get_plan_execution_time->proc~write_message proc~get_plan_execution_time->proc~double_to_str proc~get_plan_execution_time->proc~pop_nvtx_domain_range proc~get_plan_execution_time->proc~push_nvtx_domain_range mpi_allreduce mpi_allreduce proc~get_plan_execution_time->mpi_allreduce mpi_wtime mpi_wtime proc~get_plan_execution_time->mpi_wtime proc~create~12 transpose_handle_host%create proc~get_plan_execution_time->proc~create~12 proc~destroy~13 transpose_handle_host%destroy proc~get_plan_execution_time->proc~destroy~13 proc~execute~12 transpose_handle_host%execute proc~get_plan_execution_time->proc~execute~12 proc~get_iters_from_env get_iters_from_env proc~get_plan_execution_time->proc~get_iters_from_env interface~nvtxdomainrangepop_c nvtxDomainRangePop_c proc~pop_nvtx_domain_range->interface~nvtxdomainrangepop_c interface~nvtxdomainrangepushex_c nvtxDomainRangePushEx_c proc~push_nvtx_domain_range->interface~nvtxdomainrangepushex_c proc~astring_f2c astring_f2c proc~push_nvtx_domain_range->proc~astring_f2c proc~create_nvtx_domain create_nvtx_domain proc~push_nvtx_domain_range->proc~create_nvtx_domain proc~string_f2c string_f2c proc~astring_f2c->proc~string_f2c proc~autotune_transpose_id->proc~get_plan_execution_time proc~create_nvtx_domain->proc~astring_f2c interface~nvtxdomaincreate_c nvtxDomainCreate_c proc~create_nvtx_domain->interface~nvtxdomaincreate_c proc~create~12->mpi_comm_size proc~create~12->mpi_allgather proc~create_handle handle_t%create_handle proc~create~12->proc~create_handle proc~create_transpose_2d transpose_handle_host%create_transpose_2d proc~create~12->proc~create_transpose_2d proc~create_transpose_xy transpose_handle_host%create_transpose_XY proc~create~12->proc~create_transpose_xy proc~create_transpose_xz transpose_handle_host%create_transpose_XZ proc~create~12->proc~create_transpose_xz proc~create_transpose_yz transpose_handle_host%create_transpose_YZ proc~create~12->proc~create_transpose_yz proc~create_transpose_zx transpose_handle_host%create_transpose_ZX proc~create~12->proc~create_transpose_zx proc~get_transpose_type get_transpose_type proc~create~12->proc~get_transpose_type mpi_request_free mpi_request_free proc~destroy~13->mpi_request_free proc~destroy_handle handle_t%destroy_handle proc~destroy~13->proc~destroy_handle mpi_alltoall_init mpi_alltoall_init proc~execute~12->mpi_alltoall_init mpi_alltoallw_init mpi_alltoallw_init proc~execute~12->mpi_alltoallw_init mpi_start mpi_start proc~execute~12->mpi_start mpi_wait mpi_wait proc~execute~12->mpi_wait proc~get_env_int32->proc~get_log_enabled proc~get_env_int32->proc~write_message proc~get_env_int32->interface~get_env proc~get_env_int8->interface~get_env proc~get_env_logical->interface~get_env proc~get_env_string->proc~get_log_enabled proc~get_env_string->proc~write_message proc~get_env_string->interface~get_env proc~get_iters_from_env->interface~get_env proc~create_handle->proc~destroy_handle mpi_type_commit mpi_type_commit proc~create_transpose_2d->mpi_type_commit mpi_type_contiguous mpi_type_contiguous proc~create_transpose_2d->mpi_type_contiguous mpi_type_create_resized mpi_type_create_resized proc~create_transpose_2d->mpi_type_create_resized mpi_type_vector mpi_type_vector proc~create_transpose_2d->mpi_type_vector proc~free_datatypes free_datatypes proc~create_transpose_2d->proc~free_datatypes proc~create_transpose_xy->mpi_type_commit proc~create_transpose_xy->mpi_type_contiguous mpi_type_create_hvector mpi_type_create_hvector proc~create_transpose_xy->mpi_type_create_hvector proc~create_transpose_xy->mpi_type_create_resized proc~create_transpose_xy->mpi_type_vector proc~create_transpose_xy->proc~free_datatypes proc~create_transpose_xz->mpi_type_commit proc~create_transpose_xz->mpi_type_contiguous proc~create_transpose_xz->mpi_type_create_hvector proc~create_transpose_xz->mpi_type_create_resized proc~create_transpose_xz->mpi_type_vector proc~create_transpose_xz->proc~free_datatypes proc~create_transpose_yz->mpi_type_commit proc~create_transpose_yz->mpi_type_contiguous proc~create_transpose_yz->mpi_type_create_hvector proc~create_transpose_yz->mpi_type_create_resized proc~create_transpose_yz->mpi_type_vector proc~create_transpose_yz->proc~free_datatypes proc~create_transpose_zx->mpi_type_commit proc~create_transpose_zx->mpi_type_contiguous proc~create_transpose_zx->mpi_type_create_hvector proc~create_transpose_zx->mpi_type_create_resized proc~create_transpose_zx->mpi_type_vector proc~create_transpose_zx->proc~free_datatypes mpi_type_free mpi_type_free proc~destroy_handle->mpi_type_free proc~free_datatypes->mpi_type_free