ModelVerticalGrid Derived Type

type, public, extends(VerticalGrid) :: ModelVerticalGrid


Inherits

type~~modelverticalgrid~~InheritsGraph type~modelverticalgrid ModelVerticalGrid 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(standard_name, units, num_levels) result(vgrid)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: standard_name
    character(len=*), intent(in) :: units
    integer, intent(in) :: num_levels

    Return Value type(ModelVerticalGrid)


Type-Bound Procedures

procedure, public :: add_short_name

  • private subroutine add_short_name(this, unusable, edge, center)

    Arguments

    Type IntentOptional Attributes Name
    class(ModelVerticalGrid), intent(inout) :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    character(len=*), intent(in), optional :: edge
    character(len=*), intent(in), optional :: center

procedure, public :: can_connect_to

  • private function can_connect_to(this, dst, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ModelVerticalGrid), intent(in) :: this
    class(VerticalGrid), intent(in) :: dst
    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, vertical_dim_spec, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ModelVerticalGrid), intent(in) :: this
    type(ESMF_Field), intent(out) :: field
    class(ComponentDriver), 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
    type(VerticalDimSpec), intent(in) :: vertical_dim_spec
    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_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 :: get_short_name

  • private function get_short_name(this, vertical_dim_spec, rc) result(short_name)

    Arguments

    Type IntentOptional Attributes Name
    class(ModelVerticalGrid), intent(in) :: this
    type(VerticalDimSpec), intent(in) :: vertical_dim_spec
    integer, optional :: rc

    Return Value character(len=:), allocatable

procedure, public :: get_units

  • private function get_units(this) result(units)

    Arguments

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

    Return Value character(len=:), allocatable

procedure, public :: is_identical_to

  • private function is_identical_to(this, that, rc)

    Arguments

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

    Return Value logical

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

procedure, public :: set_units

  • private subroutine set_units(this, units)

    Arguments

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

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

  • private subroutine write_formatted(this, unit, iotype, v_list, iostat, iomsg)

    Arguments

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

procedure, public :: write_formatted

  • private subroutine write_formatted(this, unit, iotype, v_list, iostat, iomsg)

    Arguments

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

Source Code

   type, extends(VerticalGrid) :: ModelVerticalGrid
      private
      character(:), allocatable :: standard_name
      integer :: num_levels = -1
      character(:), allocatable :: short_name_edge
      character(:), allocatable :: short_name_center
      type(StateRegistry), pointer :: registry => null()
   contains
      procedure :: get_num_levels
      procedure :: get_coordinate_field
      procedure :: can_connect_to
      procedure :: is_identical_to
      procedure :: write_formatted

      ! subclass-specific methods
      procedure :: add_short_name
      procedure :: get_short_name
      procedure :: set_registry
      procedure :: get_registry
   end type ModelVerticalGrid