ty_cloud_optics_rrtmgp Derived Type

type, public, extends(ty_optical_props) :: ty_cloud_optics_rrtmgp


Inherits

type~~ty_cloud_optics_rrtmgp~~InheritsGraph type~ty_cloud_optics_rrtmgp ty_cloud_optics_rrtmgp ty_optical_props ty_optical_props type~ty_cloud_optics_rrtmgp->ty_optical_props

Contents


Components

TypeVisibilityAttributesNameInitial
integer, public :: ice_nsteps =0
real(kind=wp), public :: ice_step_size =0._wp
integer, public :: icergh =0
integer, public :: liq_nsteps =0
real(kind=wp), public :: liq_step_size =0._wp
real(kind=wp), public, dimension(:,:,: ), allocatable:: lut_asyice
real(kind=wp), public, dimension(:,: ), allocatable:: lut_asyliq
real(kind=wp), public, dimension(:,:,: ), allocatable:: lut_extice
real(kind=wp), public, dimension(:,: ), allocatable:: lut_extliq
real(kind=wp), public, dimension(:,:,: ), allocatable:: lut_ssaice
real(kind=wp), public, dimension(:,: ), allocatable:: lut_ssaliq
real(kind=wp), public, dimension(:,:,:,:), allocatable:: pade_asyice
real(kind=wp), public, dimension(:,:,: ), allocatable:: pade_asyliq
real(kind=wp), public, dimension(:,:,:,:), allocatable:: pade_extice
real(kind=wp), public, dimension(:,:,: ), allocatable:: pade_extliq
real(kind=wp), public, dimension(:), allocatable:: pade_sizreg_asyice
real(kind=wp), public, dimension(:), allocatable:: pade_sizreg_asyliq
real(kind=wp), public, dimension(:), allocatable:: pade_sizreg_extice
real(kind=wp), public, dimension(:), allocatable:: pade_sizreg_extliq
real(kind=wp), public, dimension(:), allocatable:: pade_sizreg_ssaice
real(kind=wp), public, dimension(:), allocatable:: pade_sizreg_ssaliq
real(kind=wp), public, dimension(:,:,:,:), allocatable:: pade_ssaice
real(kind=wp), public, dimension(:,:,: ), allocatable:: pade_ssaliq
real(kind=wp), public :: radice_lwr =0._wp
real(kind=wp), public :: radice_upr =0._wp
real(kind=wp), public :: radliq_lwr =0._wp
real(kind=wp), public :: radliq_upr =0._wp

Type-Bound Procedures

procedure, public :: cloud_optics

  • private function cloud_optics(this, clwp, ciwp, reliq, reice, optical_props) result(error_msg)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(in) :: this
    real(kind=wp), intent(in) :: clwp(:,:)
    real(kind=wp), intent(in) :: ciwp(:,:)
    real(kind=wp), intent(in) :: reliq(:,:)
    real(kind=wp), intent(in) :: reice(:,:)
    class(ty_optical_props_arry), intent(inout) :: optical_props

    Return Value character(len=128)

procedure, public :: finalize

  • private subroutine finalize(this)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(inout) :: this

procedure, public :: get_max_radius_ice

  • private function get_max_radius_ice(this) result(r)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(in) :: this

    Return Value real(kind=wp)

procedure, public :: get_max_radius_liq

  • private function get_max_radius_liq(this) result(r)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(in) :: this

    Return Value real(kind=wp)

procedure, public :: get_min_radius_ice

  • private function get_min_radius_ice(this) result(r)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(in) :: this

    Return Value real(kind=wp)

procedure, public :: get_min_radius_liq

  • private function get_min_radius_liq(this) result(r)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(in) :: this

    Return Value real(kind=wp)

procedure, public :: get_num_ice_roughness_types

  • private function get_num_ice_roughness_types(this) result(i)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(in) :: this

    Return Value integer

generic, public :: load => load_lut, load_pade

  • private function load_lut(this, band_lims_wvn, radliq_lwr, radliq_upr, radice_lwr, radice_upr, lut_extliq, lut_ssaliq, lut_asyliq, lut_extice, lut_ssaice, lut_asyice) result(error_msg)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(inout) :: this
    real(kind=wp), intent(in), dimension(:,:):: band_lims_wvn
    real(kind=wp), intent(in) :: radliq_lwr
    real(kind=wp), intent(in) :: radliq_upr
    real(kind=wp), intent(in) :: radice_lwr
    real(kind=wp), intent(in) :: radice_upr
    real(kind=wp), intent(in), dimension(:,:):: lut_extliq
    real(kind=wp), intent(in), dimension(:,:):: lut_ssaliq
    real(kind=wp), intent(in), dimension(:,:):: lut_asyliq
    real(kind=wp), intent(in), dimension(:,:,:):: lut_extice
    real(kind=wp), intent(in), dimension(:,:,:):: lut_ssaice
    real(kind=wp), intent(in), dimension(:,:,:):: lut_asyice

    Return Value character(len=128)

  • private function load_pade(this, band_lims_wvn, pade_extliq, pade_ssaliq, pade_asyliq, pade_extice, pade_ssaice, pade_asyice, pade_sizreg_extliq, pade_sizreg_ssaliq, pade_sizreg_asyliq, pade_sizreg_extice, pade_sizreg_ssaice, pade_sizreg_asyice) result(error_msg)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(inout) :: this
    real(kind=wp), intent(in), dimension(:,:):: band_lims_wvn
    real(kind=wp), intent(in), dimension(:,:,:):: pade_extliq
    real(kind=wp), intent(in), dimension(:,:,:):: pade_ssaliq
    real(kind=wp), intent(in), dimension(:,:,:):: pade_asyliq
    real(kind=wp), intent(in), dimension(:,:,:,:):: pade_extice
    real(kind=wp), intent(in), dimension(:,:,:,:):: pade_ssaice
    real(kind=wp), intent(in), dimension(:,:,:,:):: pade_asyice
    real(kind=wp), intent(in), dimension(:):: pade_sizreg_extliq
    real(kind=wp), intent(in), dimension(:):: pade_sizreg_ssaliq
    real(kind=wp), intent(in), dimension(:):: pade_sizreg_asyliq
    real(kind=wp), intent(in), dimension(:):: pade_sizreg_extice
    real(kind=wp), intent(in), dimension(:):: pade_sizreg_ssaice
    real(kind=wp), intent(in), dimension(:):: pade_sizreg_asyice

    Return Value character(len=128)

procedure, public :: set_ice_roughness

  • private function set_ice_roughness(this, icergh) result(error_msg)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_cloud_optics_rrtmgp), intent(inout) :: this
    integer, intent(in) :: icergh

    Return Value character(len=128)