cloud_type Derived Type

type, public :: cloud_type


Contents


Components

Type Visibility Attributes Name Initial
integer, public :: ntype = 0
real(kind=jprb), public, allocatable, dimension(:,:,:) :: mixing_ratio
real(kind=jprb), public, allocatable, dimension(:,:,:) :: effective_radius
real(kind=jprb), public, pointer, dimension(:,:) :: q_liq
real(kind=jprb), public, pointer, dimension(:,:) :: q_ice
real(kind=jprb), public, pointer, dimension(:,:) :: re_liq
real(kind=jprb), public, pointer, dimension(:,:) :: re_ice
real(kind=jprb), public, allocatable, dimension(:,:) :: fraction
real(kind=jprb), public, allocatable, dimension(:,:) :: fractional_std
real(kind=jprb), public, allocatable, dimension(:,:) :: inv_cloud_effective_size
real(kind=jprb), public, allocatable, dimension(:,:) :: inv_inhom_effective_size
real(kind=jprb), public, allocatable, dimension(:,:) :: overlap_param

Type-Bound Procedures

procedure, public :: allocate => allocate_cloud_arrays

  • public subroutine allocate_cloud_arrays(this, ncol, nlev, ntype, use_inhom_effective_size)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout), target :: this
    integer, intent(in) :: ncol
    integer, intent(in) :: nlev
    integer, intent(in), optional :: ntype
    logical, intent(in), optional :: use_inhom_effective_size

procedure, public :: deallocate => deallocate_cloud_arrays

procedure, public :: set_overlap_param

  • public subroutine set_overlap_param(this, thermodynamics, decorrelation_length, istartcol, iendcol)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout) :: this
    type(thermodynamics_type), intent(in) :: thermodynamics
    real(kind=jprb), intent(in) :: decorrelation_length
    integer, intent(in), optional :: istartcol
    integer, intent(in), optional :: iendcol

procedure, public :: set_overlap_param_approx

  • public subroutine set_overlap_param_approx(this, thermodynamics, decorrelation_length, istartcol, iendcol)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout) :: this
    type(thermodynamics_type), intent(in) :: thermodynamics
    real(kind=jprb), intent(in) :: decorrelation_length
    integer, intent(in), optional :: istartcol
    integer, intent(in), optional :: iendcol

procedure, public :: create_fractional_std

  • public subroutine create_fractional_std(this, ncol, nlev, frac_std)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout) :: this
    integer, intent(in) :: ncol
    integer, intent(in) :: nlev
    real(kind=jprb), intent(in) :: frac_std

procedure, public :: create_inv_cloud_effective_size

  • public subroutine create_inv_cloud_effective_size(this, ncol, nlev, inv_eff_size)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout) :: this
    integer, intent(in) :: ncol
    integer, intent(in) :: nlev
    real(kind=jprb), intent(in) :: inv_eff_size

procedure, public :: create_inv_cloud_effective_size_eta

  • public subroutine create_inv_cloud_effective_size_eta(this, ncol, nlev, pressure_hl, inv_eff_size_low, inv_eff_size_mid, inv_eff_size_high, eta_low_mid, eta_mid_high, istartcol, iendcol)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout) :: this
    integer, intent(in) :: ncol
    integer, intent(in) :: nlev
    real(kind=jprb), intent(in) :: pressure_hl(:,:)
    real(kind=jprb), intent(in) :: inv_eff_size_low
    real(kind=jprb), intent(in) :: inv_eff_size_mid
    real(kind=jprb), intent(in) :: inv_eff_size_high
    real(kind=jprb), intent(in) :: eta_low_mid
    real(kind=jprb), intent(in) :: eta_mid_high
    integer, intent(in), optional :: istartcol
    integer, intent(in), optional :: iendcol

procedure, public :: param_cloud_effective_separation_eta

  • public subroutine param_cloud_effective_separation_eta(this, ncol, nlev, pressure_hl, separation_surf, separation_toa, power, inhom_separation_factor, istartcol, iendcol)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout) :: this
    integer, intent(in) :: ncol
    integer, intent(in) :: nlev
    real(kind=jprb), intent(in) :: pressure_hl(:,:)
    real(kind=jprb), intent(in) :: separation_surf
    real(kind=jprb), intent(in) :: separation_toa
    real(kind=jprb), intent(in) :: power
    real(kind=jprb), intent(in), optional :: inhom_separation_factor
    integer, intent(in), optional :: istartcol
    integer, intent(in), optional :: iendcol

procedure, public :: crop_cloud_fraction

  • public subroutine crop_cloud_fraction(this, istartcol, iendcol, cloud_fraction_threshold, cloud_mixing_ratio_threshold)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout) :: this
    integer, intent(in) :: istartcol
    integer, intent(in) :: iendcol
    real(kind=jprb) :: cloud_fraction_threshold
    real(kind=jprb) :: cloud_mixing_ratio_threshold

procedure, public :: out_of_physical_bounds

  • public function out_of_physical_bounds(this, istartcol, iendcol, do_fix) result(is_bad)

    Arguments

    Type IntentOptional Attributes Name
    class(cloud_type), intent(inout) :: this
    integer, intent(in), optional :: istartcol
    integer, intent(in), optional :: iendcol
    logical, intent(in), optional :: do_fix

    Return Value logical