ArrayReference Derived Type

type, public, extends(AbstractDataReference) :: ArrayReference


Inherits

type~~arrayreference~~InheritsGraph type~arrayreference ArrayReference type~abstractdatareference AbstractDataReference type~arrayreference->type~abstractdatareference c_ptr c_ptr type~abstractdatareference->c_ptr base_address

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: shape(:)
integer, public :: type_kind
type(c_ptr), public :: base_address = C_NULL_PTR

Constructor

public interface ArrayReference

  • private function new_ArrayReference_from_param(in_c_loc, in_kind, in_shape) result(reference)

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), intent(in) :: in_c_loc
    integer, intent(in) :: in_kind
    integer, intent(in) :: in_shape(:)

    Return Value type(ArrayReference)

  • private function new_ArrayReference_0d(scalar, rc) result(reference)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in), target :: scalar
    integer, intent(out), optional :: rc

    Return Value type(ArrayReference)

  • private function new_ArrayReference_1d(array, rc) result(reference)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in), target :: array(:)
    integer, intent(out), optional :: rc

    Return Value type(ArrayReference)

  • private function new_ArrayReference_2d(array, rc) result(reference)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in), target :: array(:,:)
    integer, intent(out), optional :: rc

    Return Value type(ArrayReference)

  • private function new_ArrayReference_3d(array, rc) result(reference)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in), target :: array(:,:,:)
    integer, intent(out), optional :: rc

    Return Value type(ArrayReference)

  • private function new_ArrayReference_4d(array, rc) result(reference)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in), target :: array(:,:,:,:)
    integer, intent(out), optional :: rc

    Return Value type(ArrayReference)

  • private function new_ArrayReference_5d(array, rc) result(reference)

    Arguments

    Type IntentOptional Attributes Name
    class(*), intent(in), target :: array(:,:,:,:,:)
    integer, intent(out), optional :: rc

    Return Value type(ArrayReference)


Type-Bound Procedures

procedure, public :: allocate

  • private subroutine allocate(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: convert_addr

  • private function convert_addr(this) result(long)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in), target :: this

    Return Value integer(kind=INT64)

procedure, public :: copy_data_to

  • private subroutine copy_data_to(this, to, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in) :: this
    class(AbstractDataReference), intent(inout) :: to
    integer, intent(out), optional :: rc

procedure, public :: deallocate

  • private subroutine deallocate(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: deserialize

  • private subroutine deserialize(this, buffer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ArrayReference), intent(inout) :: this
    integer, intent(in) :: buffer(:)
    integer, intent(out), optional :: rc

procedure, public :: deserialize_base

  • private subroutine deserialize_base(this, buffer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(in) :: buffer(:)
    integer, intent(out), optional :: rc

procedure, public :: equal

procedure, public :: fence

  • private subroutine fence(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: fetch_data

  • private subroutine fetch_data(this, offset_address, global_shape, offset_start, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in), target :: this
    type(c_ptr), intent(in) :: offset_address
    integer, intent(in) :: global_shape(:)
    integer, intent(in), optional :: offset_start(:)
    integer, intent(out), optional :: rc

procedure, public :: get_length

  • private function get_length(this) result(length)

    Arguments

    Type IntentOptional Attributes Name
    class(ArrayReference), intent(in) :: this

    Return Value integer

procedure, public :: get_length_base

  • private function get_length_base(this) result(length)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in) :: this

    Return Value integer

generic, public :: operator(==) => equal

procedure, public :: serialize

  • private subroutine serialize(this, buffer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ArrayReference), intent(in) :: this
    integer, allocatable :: buffer(:)
    integer, intent(out), optional :: rc

procedure, public :: serialize_base

  • private subroutine serialize_base(this, buffer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AbstractDataReference), intent(in) :: this
    integer, allocatable :: buffer(:)
    integer, intent(out), optional :: rc

Source Code

   type,extends(AbstractDataReference) :: ArrayReference
   contains
      procedure :: get_length
      procedure :: serialize
      procedure :: deserialize
   end type ArrayReference