reshape_ptr Subroutine

private subroutine reshape_ptr(self, in, out, reshape_type, aux, error_code)

Performs reshape from bricks to pencils layout or vice versa using type(c_ptr) pointers instead of buffers

Note

Buffers in and out cannot be the same

Type Bound

dtfft_plan_t

Arguments

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

Abstract plan

type(c_ptr), intent(in) :: in

Incoming pointer. Note that values of this pointer will be modified in GPU build

type(c_ptr), intent(in) :: out

Resulting pointer

type(dtfft_reshape_t), intent(in) :: reshape_type

Type of reshape.

type(c_ptr), intent(in) :: aux

Auxiliary buffer. Not optional. If not required, c_null_ptr must be passed. Size of buffer must be greater than value returned by alloc_size parameter of get_local_sizes subroutine

integer(kind=int32), intent(out), optional :: error_code

Optional error code returned to user


Calls

proc~~reshape_ptr~~CallsGraph proc~reshape_ptr dtfft_plan_t%reshape_ptr proc~pop_nvtx_domain_range pop_nvtx_domain_range proc~reshape_ptr->proc~pop_nvtx_domain_range proc~push_nvtx_domain_range push_nvtx_domain_range proc~reshape_ptr->proc~push_nvtx_domain_range proc~reshape_private dtfft_plan_t%reshape_private proc~reshape_ptr->proc~reshape_private 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~check_aux dtfft_plan_t%check_aux proc~reshape_private->proc~check_aux proc~execute~2 reshape_plan_base%execute proc~reshape_private->proc~execute~2 proc~string_f2c string_f2c proc~astring_f2c->proc~string_f2c interface~to_str to_str proc~check_aux->interface~to_str is_null_ptr is_null_ptr proc~check_aux->is_null_ptr mpi_abort mpi_abort proc~check_aux->mpi_abort proc~dtfft_get_error_string dtfft_get_error_string proc~check_aux->proc~dtfft_get_error_string proc~get_alloc_bytes dtfft_plan_t%get_alloc_bytes proc~check_aux->proc~get_alloc_bytes proc~get_aux_bytes~3 dtfft_plan_t%get_aux_bytes proc~check_aux->proc~get_aux_bytes~3 proc~get_conf_log_enabled get_conf_log_enabled proc~check_aux->proc~get_conf_log_enabled proc~is_aux_needed reshape_plan_base%is_aux_needed proc~check_aux->proc~is_aux_needed proc~mem_alloc_ptr dtfft_plan_t%mem_alloc_ptr proc~check_aux->proc~mem_alloc_ptr proc~ptr_offset ptr_offset proc~check_aux->proc~ptr_offset proc~write_message write_message proc~check_aux->proc~write_message proc~create_nvtx_domain->proc~astring_f2c interface~nvtxdomaincreate_c nvtxDomainCreate_c proc~create_nvtx_domain->interface~nvtxdomaincreate_c proc~execute~2->proc~pop_nvtx_domain_range proc~execute~2->proc~push_nvtx_domain_range execute execute proc~execute~2->execute proc~execute~2->is_null_ptr proc~is_same_ptr is_same_ptr proc~execute~2->proc~is_same_ptr proc~double_to_string double_to_string interface~to_str->proc~double_to_string proc~float_to_string float_to_string interface~to_str->proc~float_to_string proc~int32_to_string int32_to_string interface~to_str->proc~int32_to_string proc~int64_to_string int64_to_string interface~to_str->proc~int64_to_string proc~int8_to_string int8_to_string interface~to_str->proc~int8_to_string proc~get_alloc_bytes->proc~dtfft_get_error_string proc~get_alloc_bytes->proc~write_message proc~get_alloc_size dtfft_plan_t%get_alloc_size proc~get_alloc_bytes->proc~get_alloc_size proc~get_element_size dtfft_plan_t%get_element_size proc~get_alloc_bytes->proc~get_element_size proc~get_aux_bytes~3->proc~dtfft_get_error_string proc~get_aux_bytes~3->proc~write_message proc~get_aux_size dtfft_plan_t%get_aux_size proc~get_aux_bytes~3->proc~get_aux_size proc~get_aux_bytes~3->proc~get_element_size interface~get_conf_internal get_conf_internal proc~get_conf_log_enabled->interface~get_conf_internal proc~get_aux_bytes~2 reshape_plan_base%get_aux_bytes proc~is_aux_needed->proc~get_aux_bytes~2 proc~mem_alloc_ptr->is_null_ptr proc~mem_alloc_ptr->proc~dtfft_get_error_string proc~mem_alloc_ptr->proc~write_message mem_alloc mem_alloc proc~mem_alloc_ptr->mem_alloc proc~mem_alloc_host mem_alloc_host proc~mem_alloc_ptr->proc~mem_alloc_host mpi_comm_rank mpi_comm_rank proc~write_message->mpi_comm_rank mpi_finalized mpi_finalized proc~write_message->mpi_finalized proc~get_conf_internal_int32 get_conf_internal_int32 interface~get_conf_internal->proc~get_conf_internal_int32 proc~get_conf_internal_logical get_conf_internal_logical interface~get_conf_internal->proc~get_conf_internal_logical proc~get_local_sizes dtfft_plan_t%get_local_sizes proc~get_alloc_size->proc~get_local_sizes proc~get_aux_bytes_generic get_aux_bytes_generic proc~get_aux_bytes~2->proc~get_aux_bytes_generic proc~get_aux_size->proc~dtfft_get_error_string proc~get_aux_size->proc~is_aux_needed proc~get_aux_size->proc~write_message proc~get_aux_size->proc~get_alloc_size proc~get_aux_size->proc~get_aux_bytes~2 proc~get_aux_size_reshape dtfft_plan_t%get_aux_size_reshape proc~get_aux_size->proc~get_aux_size_reshape proc~get_element_size->proc~dtfft_get_error_string proc~get_element_size->proc~write_message interface~aligned_alloc aligned_alloc proc~mem_alloc_host->interface~aligned_alloc proc~get_aux_bytes abstract_reshape_handle%get_aux_bytes proc~get_aux_bytes_generic->proc~get_aux_bytes proc~get_aux_size_reshape->proc~dtfft_get_error_string proc~get_aux_size_reshape->proc~write_message proc~get_aux_size_reshape->proc~get_element_size proc~get_aux_bytes_reshape dtfft_plan_t%get_aux_bytes_reshape proc~get_aux_size_reshape->proc~get_aux_bytes_reshape proc~get_local_sizes->proc~dtfft_get_error_string proc~get_local_sizes->proc~write_message proc~get_local_sizes->proc~get_aux_bytes~2 mpi_allreduce mpi_allreduce proc~get_local_sizes->mpi_allreduce proc~get_backend reshape_plan_base%get_backend proc~get_local_sizes->proc~get_backend proc~get_local_sizes_internal dtfft_plan_t%get_local_sizes_internal proc~get_local_sizes->proc~get_local_sizes_internal proc~get_local_sizes~2 get_local_sizes proc~get_local_sizes->proc~get_local_sizes~2 proc~is_backend_nvshmem is_backend_nvshmem proc~get_local_sizes->proc~is_backend_nvshmem proc~get_aux_bytes_reshape->proc~dtfft_get_error_string proc~get_aux_bytes_reshape->proc~write_message proc~get_aux_bytes_reshape->proc~get_aux_bytes~2 proc~get_local_sizes_internal->proc~get_local_sizes~2 counts counts proc~get_local_sizes_internal->counts starts starts proc~get_local_sizes_internal->starts

Called by

proc~~reshape_ptr~~CalledByGraph proc~reshape_ptr dtfft_plan_t%reshape_ptr proc~dtfft_reshape_c dtfft_reshape_c proc~dtfft_reshape_c->proc~reshape_ptr proc~reshape dtfft_plan_t%reshape proc~reshape->proc~reshape_ptr