pencil_init Derived Type

type, public :: pencil_init

Class that describes information about data layout

It is an extension of dtfft_pencil_t with additional fields


Inherits

type~~pencil_init~~InheritsGraph type~pencil_init pencil_init MPI_Comm MPI_Comm type~pencil_init->MPI_Comm comms

Components

Type Visibility Attributes Name Initial
type(MPI_Comm), public, allocatable :: comms(:)

1D communicators for each dimension

integer(kind=int32), public, allocatable :: starts(:)

Local starts

integer(kind=int32), public, allocatable :: counts(:)

Local counts

integer(kind=int32), public, allocatable :: dims(:)

Global dimensions of entire region


Type-Bound Procedures

procedure, public, pass(self) :: create => create_pencil_init

Creates and validates pencil passed by user to plan constructors

  • private function create_pencil_init(self, pencil, comm) result(error_code)

    Creates and validates pencil passed by user to plan constructors

    Arguments

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

    Internal pencil representation based on dtfft_pencil_t

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

    Pencil passed by user to plan constructors

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

    MPI Communicator passed to plan constructors

    Return Value integer(kind=int32)

    Error code

procedure, public, pass(self) :: destroy => destroy_pencil_init

Destroys pencil_init

  • private subroutine destroy_pencil_init(self)

    Destroys pencil_init

    Arguments

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

    Internal pencil representation based on dtfft_pencil_t