CoordinateVariable Derived Type

type, public, extends(Variable) :: CoordinateVariable


Inherits

type~~coordinatevariable~~InheritsGraph type~coordinatevariable CoordinateVariable type~variable Variable type~coordinatevariable->type~variable StringVector StringVector type~variable->StringVector dimensions type~stringattributemap StringAttributeMap type~variable->type~stringattributemap attributes type~unlimitedentity UnlimitedEntity type~variable->type~unlimitedentity const_value type~set2~11 set2 type~stringattributemap->type~set2~11 tree type~ivector~10 iVector type~set2~11->type~ivector~10 parents, lefts, rights, heights type~tvector~10 tVector type~set2~11->type~tvector~10 items

Constructor

public interface CoordinateVariable

  • private function new_CoordinateVariable(var, coordinate_data, rc) result(coordinate_variable)

    Arguments

    Type IntentOptional Attributes Name
    type(Variable), intent(in) :: var
    class(*), intent(in) :: coordinate_data(:)
    integer, intent(out), optional :: rc

    Return Value type(CoordinateVariable)


Type-Bound Procedures

generic, public :: add_attribute => add_attribute_0d

  • private subroutine add_attribute_0d(this, attr_name, attr_value, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(inout), target :: this
    character(len=*), intent(in) :: attr_name
    class(*), intent(in) :: attr_value
    integer, intent(out), optional :: rc

generic, public :: add_attribute => add_attribute_1d

  • private subroutine add_attribute_1d(this, attr_name, attr_values, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(inout), target :: this
    character(len=*), intent(in) :: attr_name
    class(*), intent(in) :: attr_values(:)
    integer, intent(out), optional :: rc

procedure, public :: add_attribute_0d

  • private subroutine add_attribute_0d(this, attr_name, attr_value, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(inout), target :: this
    character(len=*), intent(in) :: attr_name
    class(*), intent(in) :: attr_value
    integer, intent(out), optional :: rc

procedure, public :: add_attribute_1d

  • private subroutine add_attribute_1d(this, attr_name, attr_values, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(inout), target :: this
    character(len=*), intent(in) :: attr_name
    class(*), intent(in) :: attr_values(:)
    integer, intent(out), optional :: rc

procedure, public :: add_const_value

  • private subroutine add_const_value(this, const_value, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(inout), target :: this
    type(UnlimitedEntity), intent(in) :: const_value
    integer, intent(out), optional :: rc

procedure, public :: equal

  • private function equal(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(in), target :: a
    type(Variable), intent(in), target :: b

    Return Value logical

procedure, public :: equal_c

  • private function equal_c(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: a
    type(CoordinateVariable), intent(in), target :: b

    Return Value logical

procedure, public :: get_attribute

  • private function get_attribute(this, attr_name, rc) result(attr)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(in), target :: this
    character(len=*), intent(in) :: attr_name
    integer, intent(out), optional :: rc

    Return Value type(Attribute), pointer

procedure, public :: get_attributes

  • private function get_attributes(this) result(attributes)

    Arguments

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

    Return Value type(StringAttributeMap), pointer

procedure, public :: get_chunksizes

  • private function get_chunksizes(this) result(chunksizes)

    Arguments

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

    Return Value integer, pointer, (:)

procedure, public :: get_const_value

  • private function get_const_value(this) result(const_value)

    Arguments

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

    Return Value type(UnlimitedEntity), pointer

procedure, public :: get_coordinate_data

  • private function get_coordinate_data(this, rc) result(coordinate_data)

    Arguments

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

    Return Value class(*), pointer, (:)

generic, public :: get_data => get_real32, get_real64, get_int32, get_int64

  • private subroutine get_real32(this, coordinate_data, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: this
    real(kind=REAL32), intent(out), pointer :: coordinate_data(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc
  • private subroutine get_real64(this, coordinate_data, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: this
    real(kind=REAL64), intent(out), pointer :: coordinate_data(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc
  • private subroutine get_int32(this, coordinate_data, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: this
    integer(kind=INT32), intent(out), pointer :: coordinate_data(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc
  • private subroutine get_int64(this, coordinate_data, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: this
    integer(kind=INT64), intent(out), pointer :: coordinate_data(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_deflation

  • private function get_deflation(this) result(deflateLevel)

    Arguments

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

    Return Value integer

procedure, public :: get_dimensions

  • private function get_dimensions(this) result(dimensions)

    Arguments

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

    Return Value type(StringVector), pointer

procedure, public :: get_int32

  • private subroutine get_int32(this, coordinate_data, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: this
    integer(kind=INT32), intent(out), pointer :: coordinate_data(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_int64

  • private subroutine get_int64(this, coordinate_data, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: this
    integer(kind=INT64), intent(out), pointer :: coordinate_data(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_ith_dimension

  • private function get_ith_dimension(this, i, unusable, rc) result(dimension_name)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(in), target :: this
    integer, intent(in) :: i
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

    Return Value character(len=:), pointer

procedure, public :: get_quantize_algorithm

  • private function get_quantize_algorithm(this) result(quantizeAlgorithm)

    Arguments

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

    Return Value integer

procedure, public :: get_quantize_level

  • private function get_quantize_level(this) result(quantizeLevel)

    Arguments

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

    Return Value integer

procedure, public :: get_real32

  • private subroutine get_real32(this, coordinate_data, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: this
    real(kind=REAL32), intent(out), pointer :: coordinate_data(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_real64

  • private subroutine get_real64(this, coordinate_data, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: this
    real(kind=REAL64), intent(out), pointer :: coordinate_data(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_type

  • private function get_type(this) result(type)

    Arguments

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

    Return Value integer

procedure, public :: get_zstandard_level

  • private function get_zstandard_level(this) result(zstandardLevel)

    Arguments

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

    Return Value integer

procedure, public :: is_attribute_present

  • private function is_attribute_present(this, attr_name, rc) result(isPresent)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(in), target :: this
    character(len=*), intent(in) :: attr_name
    integer, intent(out), optional :: rc

    Return Value logical

procedure, public :: not_equal

  • private function not_equal(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(in) :: a
    type(Variable), intent(in) :: b

    Return Value logical

procedure, public :: not_equal_c

  • private function not_equal_c(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: a
    type(CoordinateVariable), intent(in), target :: b

    Return Value logical

generic, public :: operator(/=) => not_equal, not_equal_c

  • private function not_equal(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(in) :: a
    type(Variable), intent(in) :: b

    Return Value logical

  • private function not_equal_c(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: a
    type(CoordinateVariable), intent(in), target :: b

    Return Value logical

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

  • private function equal(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(in), target :: a
    type(Variable), intent(in), target :: b

    Return Value logical

  • private function equal_c(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(in), target :: a
    type(CoordinateVariable), intent(in), target :: b

    Return Value logical

procedure, public :: remove_attribute

  • private subroutine remove_attribute(this, attr_name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(inout), target :: this
    character(len=*), intent(in) :: attr_name
    integer, intent(out), optional :: rc

procedure, public :: replace_coordinate_data

  • private subroutine replace_coordinate_data(this, coordinate_data, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(inout) :: this
    class(*), intent(in) :: coordinate_data(:)
    integer, intent(out), optional :: rc

procedure, public :: serialize

  • private subroutine serialize(this, buffer, rc)

    Arguments

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

procedure, public :: set_coordinate_data

  • private subroutine set_coordinate_data(this, coordinate_data, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(CoordinateVariable), intent(inout) :: this
    class(*), intent(in) :: coordinate_data(:)
    integer, intent(out), optional :: rc

procedure, public :: set_deflation

  • private subroutine set_deflation(this, deflate_level)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(inout), target :: this
    integer, intent(in) :: deflate_level

Source Code

   type, extends(Variable) :: CoordinateVariable
      private
      class(*), allocatable :: coordinate_data(:)
   contains
      procedure :: set_coordinate_data
      procedure :: get_coordinate_data
      procedure :: replace_coordinate_data
      generic :: get_data => get_real32, get_real64, get_int32, get_int64
      procedure :: get_real32
      procedure :: get_real64
      procedure :: get_int32
      procedure :: get_int64
      procedure :: serialize

      generic :: operator(==) => equal_c
      generic :: operator(/=) => not_equal_c
      procedure :: equal_c
      procedure :: not_equal_c

   end type CoordinateVariable