abstract_transpose_handle Derived Type

type, public, abstract :: abstract_transpose_handle

Abstract transpose handle type


Inherited by

type~~abstract_transpose_handle~~InheritedByGraph type~abstract_transpose_handle abstract_transpose_handle type~plan_t plan_t type~plan_t->type~abstract_transpose_handle p type~transpose_handle_datatype transpose_handle_datatype type~transpose_handle_datatype->type~abstract_transpose_handle type~transpose_handle_generic transpose_handle_generic type~transpose_handle_generic->type~abstract_transpose_handle type~transpose_plan transpose_plan type~transpose_plan->type~plan_t plans type~dtfft_plan_t dtfft_plan_t type~dtfft_plan_t->type~transpose_plan plan type~dtfft_core_c2c dtfft_core_c2c type~dtfft_core_c2c->type~dtfft_plan_t type~dtfft_plan_r2r_t dtfft_plan_r2r_t type~dtfft_plan_r2r_t->type~dtfft_plan_t type~plan_c plan_c type~plan_c->type~dtfft_plan_t p type~dtfft_plan_c2c_t dtfft_plan_c2c_t type~dtfft_plan_c2c_t->type~dtfft_core_c2c type~dtfft_plan_r2c_t dtfft_plan_r2c_t type~dtfft_plan_r2c_t->type~dtfft_core_c2c

Type-Bound Procedures

procedure, public, non_overridable, pass(self) :: create

Creates transpose handle

  • private subroutine create(self, send, recv, base_storage, kwargs)

    Creates transpose handle

    Arguments

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

    Abstract transpose handle

    type(pencil), intent(in) :: send

    Send pencil

    type(pencil), intent(in) :: recv

    Recv pencil

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

    Base storage size

    type(create_args), intent(inout) :: kwargs

    Additional arguments

procedure, public, pass(self) :: get_aux_size

Returns number of bytes required by aux buffer

  • private pure function get_aux_size(self)

    Returns number of bytes required by aux buffer

    Arguments

    Type IntentOptional Attributes Name
    class(abstract_transpose_handle), intent(in) :: self

    Abstract Transpose Handle

    Return Value integer(kind=int64)

procedure(create_interface), public, deferred :: create_private

Creates transpose handle

  • subroutine create_interface(self, comm, send, recv, transpose_type, base_storage, kwargs) Prototype

    Creates transpose handle

    Arguments

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

    Abstract transpose handle

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

    MPI Communicator

    type(pencil), intent(in) :: send

    Send pencil

    type(pencil), intent(in) :: recv

    Recv pencil

    type(dtfft_transpose_t), intent(in) :: transpose_type

    Type of transpose to create

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

    Base storage

    type(create_args), intent(in) :: kwargs

    Additional arguments

procedure(execute_interface), public, deferred :: execute

Executes transpose handle

  • subroutine execute_interface(self, in, out, kwargs, error_code) Prototype

    Executes transpose handle

    Arguments

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

    Abstract Transpose Handle

    real(kind=real32), intent(inout) :: in(:)

    Send pointer

    real(kind=real32), intent(inout) :: out(:)

    Recv pointer

    type(execute_args), intent(inout) :: kwargs

    Additional arguments

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

    Error code

procedure(execute_end_interface), public, deferred :: execute_end

Finishes async transpose

  • subroutine execute_end_interface(self, kwargs, error_code) Prototype

    Finishes async transpose

    Arguments

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

    Abstract Transpose Handle

    type(execute_args), intent(inout) :: kwargs

    Additional arguments

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

    Error code

procedure(destroy_interface), public, deferred :: destroy

Destroys transpose handle

  • subroutine destroy_interface(self) Prototype

    Destroys transpose handle

    Arguments

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

    Abstract Transpose Handle

procedure(get_async_active_interface), public, deferred :: get_async_active

Returns if async transpose is active

  • elemental function get_async_active_interface(self) Prototype

    Returns if async transpose is active

    Arguments

    Type IntentOptional Attributes Name
    class(abstract_transpose_handle), intent(in) :: self

    Abstract Transpose Handle

    Return Value logical