object_t Derived Type

type, public, abstract :: object_t

Define an abstract parent type to ensure basic functionality expected to be provided by all non-abstract types. Each non-abstract type provides the functionality by extending self type and implementing its deferred binding(s). This type resembles java's Object class in the sense that it is intended to be the ultimate ancestor of every other type.


Inherited by

type~~object_t~~InheritedByGraph type~object_t object_t type~oracle_t oracle_t type~oracle_t->type~object_t

Components

Type Visibility Attributes Name Initial
logical, private :: defined = .false.

Default initialization indicates not yet user-defined


Type-Bound Procedures

procedure, public :: mark_as_defined

  • interface

    private pure module subroutine mark_as_defined(self)

    Mark the object as user-defined

    Arguments

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

procedure, public :: user_defined

  • interface

    private pure module function user_defined(self) result(is_defined)

    Return a boolean result indicating whether self object has been initialized since its declaration

    Arguments

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

    Return Value logical

generic, public :: write(formatted) => write_formatted

  • subroutine write_interface(self, unit, iotype, v_list, iostat, iomsg) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(object_t), intent(in) :: self
    integer, intent(in) :: unit
    character(len=*), intent(in) :: iotype
    integer, intent(in) :: v_list(:)
    integer, intent(out) :: iostat
    character(len=*), intent(inout) :: iomsg

procedure(write_interface), public, deferred :: write_formatted

  • subroutine write_interface(self, unit, iotype, v_list, iostat, iomsg) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(object_t), intent(in) :: self
    integer, intent(in) :: unit
    character(len=*), intent(in) :: iotype
    integer, intent(in) :: v_list(:)
    integer, intent(out) :: iostat
    character(len=*), intent(inout) :: iomsg