Variable Derived Type

type, public :: Variable


Inherits

type~~variable~~InheritsGraph type~variable 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 type~pair~10 pair type~tvector~10->type~pair~10 elements

Inherited by

type~~variable~~InheritedByGraph type~variable Variable type~coordinatevariable CoordinateVariable type~coordinatevariable->type~variable type~filemetadata FileMetadata type~filemetadata->type~variable global_var type~pair~12 pair type~pair~12->type~variable value type~addhistcollectionmessage AddHistCollectionMessage type~addhistcollectionmessage->type~filemetadata fmd type~cfiocollection CFIOCollection type~cfiocollection->type~filemetadata file type~extdatafilestream ExtDataFileStream type~extdatafilestream->type~filemetadata metadata type~filemetadatautils FileMetadataUtils type~filemetadatautils->type~filemetadata type~filemetadatavector FileMetadataVector type~filemetadatavector->type~filemetadata elements type~filemetadatavectoriterator FileMetadataVectorIterator type~filemetadatavectoriterator->type~filemetadata elements type~filemetadatavectorriterator FileMetadataVectorRIterator type~filemetadatavectorriterator->type~filemetadata elements type~historycollection HistoryCollection type~historycollection->type~filemetadata fmd type~mapl_griddedio MAPL_GriddedIO type~mapl_griddedio->type~filemetadata metadata type~masksamplergeosat MaskSamplerGeosat type~masksamplergeosat->type~filemetadata metadata type~obs_unit obs_unit type~obs_unit->type~filemetadata metadata type~pfio_vector PFIO_Vector type~pfio_vector->type~filemetadata elements type~pfio_vectoriterator PFIO_VectorIterator type~pfio_vectoriterator->type~filemetadata elements type~pfio_vectorriterator PFIO_VectorRIterator type~pfio_vectorriterator->type~filemetadata elements type~regridsupport RegridSupport type~regridsupport->type~filemetadata cfio_cubed_sphere, cfio_lat_lon type~replacemetadatamessage ReplaceMetadataMessage type~replacemetadatamessage->type~filemetadata fmd type~sampler sampler type~sampler->type~filemetadata metadata type~stationsampler StationSampler type~stationsampler->type~filemetadata metadata type~tvector~12 tVector type~tvector~12->type~pair~12 elements

Constructor

public interface Variable

  • private function new_Variable(unusable, type, dimensions, chunksizes, const_value, deflation, quantize_algorithm, quantize_level, zstandard_level, rc) result(var)

    Arguments

    Type IntentOptional Attributes Name
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(in), optional :: type
    character(len=*), intent(in), optional :: dimensions
    integer, intent(in), optional :: chunksizes(:)
    type(UnlimitedEntity), intent(in), optional :: const_value
    integer, intent(in), optional :: deflation
    integer, intent(in), optional :: quantize_algorithm
    integer, intent(in), optional :: quantize_level
    integer, intent(in), optional :: zstandard_level
    integer, intent(out), optional :: rc

    Return Value type(Variable)


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 :: 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_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_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_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

generic, public :: operator(/=) => 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

generic, public :: operator(==) => 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 :: 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 :: serialize

  • private subroutine serialize(this, buffer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(Variable), intent(in) :: this
    integer, intent(inout), allocatable :: buffer(:)
    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 :: Variable
      private
      integer :: type = -1
      type (StringVector) :: dimensions
      type (StringAttributeMap) :: attributes
      type (UnlimitedEntity) :: const_value
      integer :: deflation = 0 ! default no compression
      integer :: quantize_algorithm = 0 ! default no quantization
      integer :: quantize_level = 0 ! default no quantize_level
      integer :: zstandard_level = 0 ! default no zstandard
      integer, allocatable :: chunksizes(:)
   contains
      procedure :: get_type
      procedure :: get_ith_dimension
      procedure :: get_dimensions
      procedure :: get_attributes
      procedure :: get_const_value

      procedure :: get_attribute
      generic :: add_attribute => add_attribute_0d
      generic :: add_attribute => add_attribute_1d
      procedure :: add_attribute_0d
      procedure :: add_attribute_1d
      procedure :: remove_attribute
      procedure :: add_const_value

      procedure :: get_chunksizes
      procedure :: get_deflation
      procedure :: set_deflation
      procedure :: get_quantize_algorithm
      procedure :: get_quantize_level
      procedure :: get_zstandard_level
      procedure :: is_attribute_present
      generic :: operator(==) => equal
      generic :: operator(/=) => not_equal
      procedure :: equal
      procedure :: not_equal

      procedure :: serialize

   end type Variable