GeomFactory Derived Type

type, public, abstract :: GeomFactory


Inherited by

type~~geomfactory~~InheritedByGraph type~geomfactory GeomFactory type~cubedspheregeomfactory CubedSphereGeomFactory type~cubedspheregeomfactory->type~geomfactory type~latlongeomfactory LatLonGeomFactory type~latlongeomfactory->type~geomfactory type~vector_wrapper~4 vector_wrapper type~vector_wrapper~4->type~geomfactory item type~geomfactoryvector GeomFactoryVector type~geomfactoryvector->type~vector_wrapper~4 elements type~geomfactoryvectoriterator GeomFactoryVectorIterator type~geomfactoryvectoriterator->type~vector_wrapper~4 elements type~vectorriterator~2 VectorRIterator type~vectorriterator~2->type~geomfactoryvectoriterator iterator

Type-Bound Procedures

procedure(I_make_file_metadata), public, deferred :: make_file_metadata

  • function I_make_file_metadata(this, geom_spec, unusable, chunksizes, rc) result(file_metadata) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(GeomFactory), intent(in) :: this
    class(GeomSpec), intent(in) :: geom_spec
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(in), optional :: chunksizes(:)
    integer, intent(out), optional :: rc

    Return Value type(FileMetadata)

procedure(I_make_geom), public, deferred :: make_geom

  • function I_make_geom(this, geom_spec, rc) result(geom) Prototype

    Arguments

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

    Return Value type(ESMF_Geom)

procedure(I_make_geom_spec_from_hconfig), public, deferred :: make_geom_spec_from_hconfig

  • function I_make_geom_spec_from_hconfig(this, hconfig, rc) result(spec) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(GeomFactory), intent(in) :: this
    type(ESMF_HConfig), intent(in) :: hconfig
    integer, intent(out), optional :: rc

    Return Value class(GeomSpec), allocatable

procedure(I_make_geom_spec_from_metadata), public, deferred :: make_geom_spec_from_metadata

  • function I_make_geom_spec_from_metadata(this, file_metadata, rc) result(spec) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(GeomFactory), intent(in) :: this
    type(FileMetadata), intent(in) :: file_metadata
    integer, intent(out), optional :: rc

    Return Value class(GeomSpec), allocatable

procedure(I_make_gridded_dims), public, deferred :: make_gridded_dims

  • function I_make_gridded_dims(this, geom_spec, rc) result(gridded_dims) Prototype

    Arguments

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

    Return Value type(StringVector)

generic, public :: make_spec => make_geom_spec_from_hconfig

  • private function make_geom_spec_from_hconfig(this, hconfig, rc) result(geom_spec)

    Arguments

    Type IntentOptional Attributes Name
    class(LatLonGeomFactory), intent(in) :: this
    type(ESMF_HConfig), intent(in) :: hconfig
    integer, intent(out), optional :: rc

    Return Value class(GeomSpec), allocatable

generic, public :: make_spec => make_geom_spec_from_metadata

  • private function make_geom_spec_from_metadata(this, file_metadata, rc) result(geom_spec)

    Arguments

    Type IntentOptional Attributes Name
    class(LatLonGeomFactory), intent(in) :: this
    type(FileMetadata), intent(in) :: file_metadata
    integer, intent(out), optional :: rc

    Return Value class(GeomSpec), allocatable

generic, public :: supports => supports_spec

  • private function supports_spec(this, geom_spec) result(supports)

    Arguments

    Type IntentOptional Attributes Name
    class(LatLonGeomFactory), intent(in) :: this
    class(GeomSpec), intent(in) :: geom_spec

    Return Value logical

generic, public :: supports => supports_hconfig

  • private function supports_hconfig(this, hconfig, rc) result(supports)

    Arguments

    Type IntentOptional Attributes Name
    class(LatLonGeomFactory), intent(in) :: this
    type(ESMF_HConfig), intent(in) :: hconfig
    integer, intent(out), optional :: rc

    Return Value logical

generic, public :: supports => supports_metadata

  • private function supports_metadata(this, file_metadata, rc) result(supports)

    Arguments

    Type IntentOptional Attributes Name
    class(LatLonGeomFactory), intent(in) :: this
    type(FileMetadata), intent(in) :: file_metadata
    integer, intent(out), optional :: rc

    Return Value logical

procedure(I_supports_hconfig), public, deferred :: supports_hconfig

  • function I_supports_hconfig(this, hconfig, rc) result(supports) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(GeomFactory), intent(in) :: this
    type(ESMF_HConfig), intent(in) :: hconfig
    integer, intent(out), optional :: rc

    Return Value logical

procedure(I_supports_metadata), public, deferred :: supports_metadata

  • function I_supports_metadata(this, file_metadata, rc) result(supports) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(GeomFactory), intent(in) :: this
    type(FileMetadata), intent(in) :: file_metadata
    integer, intent(out), optional :: rc

    Return Value logical

procedure(I_supports_spec), public, deferred :: supports_spec

  • function I_supports_spec(this, geom_spec) result(supports) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(GeomFactory), intent(in) :: this
    class(GeomSpec), intent(in) :: geom_spec

    Return Value logical

Source Code

   type, abstract :: GeomFactory
      private
   contains
      procedure(I_make_geom_spec_from_hconfig),  deferred :: make_geom_spec_from_hconfig
      procedure(I_make_geom_spec_from_metadata), deferred :: make_geom_spec_from_metadata
      generic :: make_spec => make_geom_spec_from_hconfig
      generic :: make_spec => make_geom_spec_from_metadata
      procedure(I_supports_spec), deferred :: supports_spec
      procedure(I_supports_hconfig), deferred :: supports_hconfig
      procedure(I_supports_metadata), deferred :: supports_metadata
      generic :: supports => supports_spec
      generic :: supports => supports_hconfig
      generic :: supports => supports_metadata

      procedure(I_make_geom), deferred :: make_geom
      procedure(I_make_file_metadata), deferred :: make_file_metadata
      procedure(I_make_gridded_dims), deferred :: make_gridded_dims
   end type GeomFactory