ModelVerticalGrid Derived Type

type, public, extends(VerticalGrid) :: ModelVerticalGrid


Inherits

type~~modelverticalgrid~~InheritsGraph type~modelverticalgrid ModelVerticalGrid StringVector StringVector type~modelverticalgrid->StringVector variants type~stateregistry StateRegistry type~modelverticalgrid->type~stateregistry registry type~verticalgrid VerticalGrid type~modelverticalgrid->type~verticalgrid type~abstractregistry AbstractRegistry type~stateregistry->type~abstractregistry type~registryptrmap RegistryPtrMap type~stateregistry->type~registryptrmap subregistries type~stateitemextensionvector StateItemExtensionVector type~stateregistry->type~stateitemextensionvector owned_items type~virtualptfamilymap VirtualPtFamilyMap type~stateregistry->type~virtualptfamilymap family_map type~map_set~5 map_Set type~registryptrmap->type~map_set~5 tree type~vector_wrapper~24 vector_wrapper type~stateitemextensionvector->type~vector_wrapper~24 elements type~map_set~16 map_Set type~virtualptfamilymap->type~map_set~16 tree type~map_s_basenode~16 map_s_BaseNode type~map_set~16->type~map_s_basenode~16 root type~map_s_basenode~5 map_s_BaseNode type~map_set~5->type~map_s_basenode~5 root type~stateitemextension StateItemExtension type~vector_wrapper~24->type~stateitemextension item

Constructor

public interface ModelVerticalGrid

  • private function new_ModelVerticalGrid_basic(num_levels) result(vgrid)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: num_levels

    Return Value type(ModelVerticalGrid)


Type-Bound Procedures

procedure, public :: add_variant

  • private subroutine add_variant(this, short_name)

    Arguments

    Type IntentOptional Attributes Name
    class(ModelVerticalGrid), intent(inout) :: this
    character(len=*), intent(in) :: short_name

procedure, public :: can_connect_to

  • interface

    private module function can_connect_to(this, src, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ModelVerticalGrid), intent(in) :: this
    class(VerticalGrid), intent(in) :: src
    integer, intent(out), optional :: rc

    Return Value logical

procedure, public :: get_coordinate_field

  • private subroutine get_coordinate_field(this, field, coupler, standard_name, geom, typekind, units, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ModelVerticalGrid), intent(in) :: this
    type(ESMF_Field), intent(out) :: field
    type(GriddedComponentDriver), intent(out), pointer :: coupler
    character(len=*), intent(in) :: standard_name
    type(ESMF_Geom), intent(in) :: geom
    type(ESMF_TypeKind_Flag), intent(in) :: typekind
    character(len=*), intent(in) :: units
    integer, intent(out), optional :: rc

procedure, public :: get_id

  • private function get_id(this) result(id)

    Arguments

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

    Return Value integer

procedure, public :: get_num_levels

  • private function get_num_levels(this) result(num_levels)

    Arguments

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

    Return Value integer

procedure, public :: get_num_variants

  • private function get_num_variants(this) result(num_variants)

    Arguments

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

    Return Value integer

procedure, public :: get_registry

  • private function get_registry(this) result(registry)

    Arguments

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

    Return Value type(StateRegistry), pointer

procedure, public :: make_info

  • private function make_info(this, rc) result(info)

    Arguments

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

    Return Value type(ESMF_Info)

procedure, public :: same_id

  • private function same_id(this, other)

    Arguments

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

    Return Value logical

procedure, public :: set_id

  • private subroutine set_id(this)

    Arguments

    Type IntentOptional Attributes Name
    class(VerticalGrid), intent(inout) :: this

procedure, public :: set_registry

  • private subroutine set_registry(this, registry)

    Arguments

    Type IntentOptional Attributes Name
    class(ModelVerticalGrid), intent(inout) :: this
    type(StateRegistry), intent(in), target :: registry

Source Code

   type, extends(VerticalGrid) :: ModelVerticalGrid
      private
      integer :: num_levels = -1
      type(StringVector) :: variants

!#      character(:), allocatable :: short_name
!#      character(:), allocatable :: standard_name
!#      type(ESMF_Field) :: reference_field
      type(StateRegistry), pointer :: registry => null()
   contains
      procedure :: get_num_levels
      procedure :: get_coordinate_field
      procedure :: can_connect_to

      ! subclass-specific methods
      procedure :: add_variant
      procedure :: get_num_variants
      procedure :: set_registry
      procedure :: get_registry
   end type ModelVerticalGrid