ExtensionFamily Derived Type

type, public :: ExtensionFamily


Inherits

type~~extensionfamily~~InheritsGraph type~extensionfamily ExtensionFamily type~stateitemextensionptrvector StateItemExtensionPtrVector type~extensionfamily->type~stateitemextensionptrvector extensions type~vector_wrapper~23 vector_wrapper type~stateitemextensionptrvector->type~vector_wrapper~23 elements type~stateitemextensionptr StateItemExtensionPtr type~vector_wrapper~23->type~stateitemextensionptr item type~stateitemextension StateItemExtension type~stateitemextensionptr->type~stateitemextension ptr

Inherited by

type~~extensionfamily~~InheritedByGraph type~extensionfamily ExtensionFamily type~virtualptfamilypair VirtualPtFamilyPair type~virtualptfamilypair->type~extensionfamily second type~map_s_node~16 map_s_Node type~map_s_node~16->type~virtualptfamilypair value type~map_s_node~16->type~map_s_node~16 parent type~map_setiterator~16 map_SetIterator type~map_setiterator~16->type~map_s_node~16 node type~virtualptfamilymapiterator VirtualPtFamilyMapIterator type~virtualptfamilymapiterator->type~map_setiterator~16 set_iter

Constructor

public interface ExtensionFamily

  • private function new_ExtensionFamily_empty() result(family)

    Arguments

    None

    Return Value type(ExtensionFamily)

  • private function new_ExtensionFamily_primary(primary) result(family)

    Arguments

    Type IntentOptional Attributes Name
    type(StateItemExtension), intent(in), pointer :: primary

    Return Value type(ExtensionFamily)


Type-Bound Procedures

procedure, public :: add_extension

  • private subroutine add_extension(this, extension)

    Arguments

    Type IntentOptional Attributes Name
    class(ExtensionFamily), intent(inout) :: this
    type(StateItemExtension), intent(in), pointer :: extension

procedure, public :: find_closest_extension

  • private function find_closest_extension(family, goal_spec, rc) result(closest_extension)

    Arguments

    Type IntentOptional Attributes Name
    class(ExtensionFamily), intent(in) :: family
    class(StateItemSpec), intent(in) :: goal_spec
    integer, intent(out), optional :: rc

    Return Value type(StateItemExtension), pointer

procedure, public :: get_extension

  • private function get_extension(this, i) result(extension)

    Arguments

    Type IntentOptional Attributes Name
    class(ExtensionFamily), intent(in), target :: this
    integer, intent(in) :: i

    Return Value type(StateItemExtension), pointer

procedure, public :: get_extensions

  • private function get_extensions(this) result(extensions)

    Arguments

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

    Return Value type(StateItemExtensionPtrVector), pointer

procedure, public :: get_primary

  • private function get_primary(this, rc) result(primary)

    Arguments

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

    Return Value type(StateItemExtension), pointer

procedure, public :: has_primary

  • private function has_primary(this)

    Arguments

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

    Return Value logical

procedure, public :: num_variants

  • private function num_variants(this)

    Arguments

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

    Return Value integer

Source Code

   type :: ExtensionFamily
      private
      logical :: has_primary_ = .false.
      type(StateItemExtensionPtrVector) :: extensions
   contains
      procedure :: has_primary
      procedure :: get_primary
      procedure :: get_extensions
      procedure :: get_extension
      procedure :: add_extension
      procedure :: num_variants

      procedure :: find_closest_extension
   end type ExtensionFamily