verticalData Derived Type

type, public :: verticalData


Inherits

type~~verticaldata~~InheritsGraph type~verticaldata verticalData ESMF_Field ESMF_Field type~verticaldata->ESMF_Field interp_var

Inherited by

type~~verticaldata~~InheritedByGraph type~verticaldata verticalData type~historycollection~2 HistoryCollection type~historycollection~2->type~verticaldata vdata type~historytrajectory HistoryTrajectory type~historycollection~2->type~historytrajectory trajectory type~mapl_griddedio MAPL_GriddedIO type~historycollection~2->type~mapl_griddedio mGriddedIO type~masksamplergeosat MaskSamplerGeosat type~historycollection~2->type~masksamplergeosat mask_sampler type~sampler sampler type~historycollection~2->type~sampler xsampler type~stationsampler StationSampler type~historycollection~2->type~stationsampler station_sampler type~historytrajectory->type~verticaldata vdata type~mapl_griddedio->type~verticaldata vdata type~masksamplergeosat->type~verticaldata vdata type~sampler->type~verticaldata vdata type~stationsampler->type~verticaldata vdata type~extdata_iobundle ExtData_IoBundle type~extdata_iobundle->type~mapl_griddedio cfio type~extdatang_iobundle ExtDataNG_IOBundle type~extdatang_iobundle->type~mapl_griddedio grid_io type~fieldbundlewriter FieldBundleWriter type~fieldbundlewriter->type~mapl_griddedio cfio type~historycollectionvectoriterator~2 HistoryCollectionVectorIterator type~historycollectionvectoriterator~2->type~historycollection~2 elements type~historycollectionvectorriterator~2 HistoryCollectionVectorRIterator type~historycollectionvectorriterator~2->type~historycollection~2 elements type~historycollectionvector~2 HistoryCollectionVector type~historycollectionvector~2->type~historycollection~2 elements type~iobundlevector IoBundleVector type~iobundlevector->type~extdata_iobundle elements type~iobundlevectoriterator IoBundleVectorIterator type~iobundlevectoriterator->type~extdata_iobundle elements type~iobundlevectorriterator IoBundleVectorRIterator type~iobundlevectorriterator->type~extdata_iobundle elements type~vector_wrapper~26 vector_wrapper type~vector_wrapper~26->type~extdatang_iobundle item type~iobundlengvector IoBundleNGVector type~iobundlengvector->type~vector_wrapper~26 elements type~iobundlengvectoriterator IoBundleNGVectorIterator type~iobundlengvectoriterator->type~vector_wrapper~26 elements

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: func
character(len=:), public, allocatable :: long_name
character(len=:), public, allocatable :: positive
character(len=:), public, allocatable :: standard_name
character(len=:), public, allocatable :: vcoord
character(len=:), public, allocatable :: vunit
character(len=:), public, allocatable :: vvar
integer, public, allocatable :: ks(:,:,:)
integer, public, allocatable :: ks_e(:,:,:)
integer, public :: lm = 0
integer, public :: nedge
integer, public :: regrid_type
logical, public :: ascending
real, public, allocatable :: interp_levels(:)
real, public, allocatable :: levs(:)
real, public, allocatable :: pl3d(:,:,:)
real, public, allocatable :: ple3d(:,:,:)
real, public :: pow = 0.0
real, public, allocatable :: scaled_levels(:)
real, public, allocatable :: surface_level(:,:)
real, public :: vscale
real, public, allocatable :: weight(:,:,:)
real, public, allocatable :: weight_e(:,:,:)
type(ESMF_Field), public :: interp_var

Constructor

public interface verticalData

  • private function newVerticalData(levels, vcoord, vscale, vunit, positive, long_name, standard_name, force_no_regrid, rc) result(vData)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), optional, pointer :: levels(:)
    character(len=*), intent(in), optional :: vcoord
    real, intent(in), optional :: vscale
    character(len=*), intent(in), optional :: vunit
    character(len=*), intent(in), optional :: positive
    character(len=*), intent(in), optional :: long_name
    character(len=*), intent(in), optional :: standard_name
    logical, intent(in), optional :: force_no_regrid
    integer, intent(out), optional :: rc

    Return Value type(verticalData)


Type-Bound Procedures

procedure, public :: append_vertical_metadata

  • private subroutine append_vertical_metadata(this, metadata, bundle, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(verticalData), intent(inout) :: this
    type(FileMetadata), intent(inout) :: metadata
    type(ESMF_FieldBundle), intent(inout) :: bundle
    integer, intent(out), optional :: rc

procedure, public :: correct_topo

  • private subroutine correct_topo(this, field, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(verticalData), intent(inout) :: this
    type(ESMF_Field), intent(inout) :: field
    integer, intent(out), optional :: rc

procedure, public :: flip_levels

  • private subroutine flip_levels(this, ptrin, ptrout, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(verticalData), intent(inout) :: this
    real, intent(inout) :: ptrin(:,:,:)
    real, intent(inout) :: ptrout(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: get_interpolating_variable

  • private subroutine get_interpolating_variable(this, bundle, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(verticalData), intent(inout) :: this
    type(ESMF_FieldBundle), intent(inout) :: bundle
    integer, intent(out), optional :: rc

procedure, public :: regrid_eta_to_pressure

  • private subroutine regrid_eta_to_pressure(this, ptrin, ptrout, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(verticalData), intent(inout), target :: this
    real, intent(inout) :: ptrin(:,:,:)
    real, intent(inout) :: ptrout(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: regrid_select_level

  • private subroutine regrid_select_level(this, ptrIn, ptrOut, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(verticalData), intent(inout) :: this
    real, intent(inout) :: ptrIn(:,:,:)
    real, intent(inout) :: ptrOut(:,:,:)
    integer, intent(out), optional :: rc

procedure, public :: setup_eta_to_pressure

  • private subroutine setup_eta_to_pressure(this, regrid_handle, output_grid, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(verticalData), intent(inout) :: this
    class(AbstractRegridder), intent(inout), optional :: regrid_handle
    type(ESMF_Grid), intent(inout), optional :: output_grid
    integer, intent(out), optional :: rc

procedure, public :: skip_var

  • private function skip_var(this, field, rc) result(skip)

    Arguments

    Type IntentOptional Attributes Name
    class(verticalData), intent(inout) :: this
    type(ESMF_Field), intent(inout) :: field
    integer, intent(out), optional :: rc

    Return Value logical

Source Code

  type, public :: verticalData
     character(len=:), allocatable :: vunit
     character(len=:), allocatable :: func
     character(len=:), allocatable :: vvar
     character(len=:), allocatable :: positive
     character(len=:), allocatable :: long_name
     character(len=:), allocatable :: standard_name
     character(len=:), allocatable :: vcoord
     real :: vscale
     real :: pow=0.0
     real, allocatable :: levs(:)
     real, allocatable :: interp_levels(:)
     real, allocatable :: scaled_levels(:)
     real, allocatable :: surface_level(:,:)
     real, allocatable :: ple3d(:,:,:)
     real, allocatable :: pl3d(:,:,:)
     integer :: lm = 0
     integer :: regrid_type
     type(ESMF_Field) :: interp_var
     logical :: ascending
     integer              :: nedge       ! number of edge
     integer, allocatable :: ks(:,:,:)
     integer, allocatable :: ks_e(:,:,:) ! edge
     real,    allocatable :: weight(:,:,:)
     real,    allocatable :: weight_e(:,:,:) !edge
     contains
        procedure :: append_vertical_metadata
        procedure :: get_interpolating_variable
        procedure :: regrid_eta_to_pressure
        procedure :: regrid_select_level
        procedure :: skip_var
        procedure :: correct_topo
        procedure :: setup_eta_to_pressure
        procedure :: flip_levels
  end type verticalData