EtaHybridVerticalCoordinate Derived Type

type, public :: EtaHybridVerticalCoordinate


Constructor

public interface EtaHybridVerticalCoordinate

  • private function new_EtaHybridVerticalCoordinate_by_ak_bk(ak, bk, unusable, ref_pressure, rc) result(grid)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL64), intent(in) :: ak(:)
    real(kind=REAL64), intent(in) :: bk(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    real(kind=REAL64), intent(in), optional :: ref_pressure
    integer, intent(inout), optional :: rc

    Return Value type(EtaHybridVerticalCoordinate)

  • private function new_EtaHybridVerticalCoordinate_by_cfg(config, unusable, rc) result(grid)

    Arguments

    Type IntentOptional Attributes Name
    type(ESMF_Config) :: config
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(inout), optional :: rc

    Return Value type(EtaHybridVerticalCoordinate)

  • private function new_EtaHybridVerticalCoordinate_by_file(filename, unusable, rc) result(grid)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: filename
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(inout), optional :: rc

    Return Value type(EtaHybridVerticalCoordinate)


Type-Bound Procedures

generic, public :: get_eta => get_eta_r8, get_eta_r4

  • private subroutine get_eta_r8(this, ptop, pint, ak, bk, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL64), intent(out) :: ptop
    real(kind=REAL64), intent(out) :: pint
    real(kind=REAL64), intent(out) :: ak(:)
    real(kind=REAL64), intent(out) :: bk(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc
  • private subroutine get_eta_r4(this, ptop, pint, ak, bk, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL32), intent(out) :: ptop
    real(kind=REAL32), intent(out) :: pint
    real(kind=REAL32), intent(out) :: ak(:)
    real(kind=REAL32), intent(out) :: bk(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_eta_r4

  • private subroutine get_eta_r4(this, ptop, pint, ak, bk, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL32), intent(out) :: ptop
    real(kind=REAL32), intent(out) :: pint
    real(kind=REAL32), intent(out) :: ak(:)
    real(kind=REAL32), intent(out) :: bk(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_eta_r8

  • private subroutine get_eta_r8(this, ptop, pint, ak, bk, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL64), intent(out) :: ptop
    real(kind=REAL64), intent(out) :: pint
    real(kind=REAL64), intent(out) :: ak(:)
    real(kind=REAL64), intent(out) :: bk(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

generic, public :: get_pressure_levels => get_pressure_levels_r8, get_pressure_levels_r4

  • private subroutine get_pressure_levels_r8(this, pressure_levels, unusable, reference_pressure, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL64), intent(out) :: pressure_levels(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    real(kind=REAL64), intent(in), optional :: reference_pressure
    integer, intent(out), optional :: rc
  • private subroutine get_pressure_levels_r4(this, pressure_levels, unusable, reference_pressure, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL32), intent(out) :: pressure_levels(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    real(kind=REAL32), intent(in), optional :: reference_pressure
    integer, intent(out), optional :: rc

procedure, public :: get_pressure_levels_r4

  • private subroutine get_pressure_levels_r4(this, pressure_levels, unusable, reference_pressure, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL32), intent(out) :: pressure_levels(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    real(kind=REAL32), intent(in), optional :: reference_pressure
    integer, intent(out), optional :: rc

procedure, public :: get_pressure_levels_r8

  • private subroutine get_pressure_levels_r8(this, pressure_levels, unusable, reference_pressure, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL64), intent(out) :: pressure_levels(:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    real(kind=REAL64), intent(in), optional :: reference_pressure
    integer, intent(out), optional :: rc

generic, public :: get_pressures => get_pressures_r8_3d, get_pressures_r4_3d

  • private subroutine get_pressures_r8_3d(this, pressures, surface_pressure, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL64), intent(out) :: pressures(:,:,:)
    real(kind=REAL64), intent(in), optional :: surface_pressure(:,:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc
  • private subroutine get_pressures_r4_3d(this, pressures, surface_pressure, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL32), intent(out) :: pressures(:,:,:)
    real(kind=REAL32), intent(in), optional :: surface_pressure(:,:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_pressures_r4_3d

  • private subroutine get_pressures_r4_3d(this, pressures, surface_pressure, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL32), intent(out) :: pressures(:,:,:)
    real(kind=REAL32), intent(in), optional :: surface_pressure(:,:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_pressures_r8_3d

  • private subroutine get_pressures_r8_3d(this, pressures, surface_pressure, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(EtaHybridVerticalCoordinate), intent(in) :: this
    real(kind=REAL64), intent(out) :: pressures(:,:,:)
    real(kind=REAL64), intent(in), optional :: surface_pressure(:,:)
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

Source Code

   type :: EtaHybridVerticalCoordinate
      private
      real(kind=REAL64), allocatable :: ak(:)
      real(kind=REAL64), allocatable :: bk(:)
      integer :: num_levels = 0
      real(kind=REAL64) :: ref_pressure
   contains
      procedure :: get_eta_r8
      procedure :: get_eta_r4
      procedure :: get_pressure_levels_r8
      procedure :: get_pressure_levels_r4
      procedure :: get_pressures_r8_3d
      procedure :: get_pressures_r4_3d
      generic :: get_eta =>get_eta_r8, get_eta_r4
      generic :: get_pressure_levels=>get_pressure_levels_r8,   get_pressure_levels_r4
      generic :: get_pressures      =>get_pressures_r8_3d,get_pressures_r4_3d
   end type EtaHybridVerticalCoordinate