radiation_cloud Module


Uses

  • module~~radiation_cloud~~UsesGraph module~radiation_cloud radiation_cloud module~parkind1~2 PARKIND1 module~radiation_cloud->module~parkind1~2

Contents


Derived Types

type, public ::  cloud_type

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 Subroutine
procedure , public :: deallocate => deallocate_cloud_arrays Subroutine
procedure , public :: set_overlap_param Subroutine
procedure , public :: set_overlap_param_approx Subroutine
procedure , public :: create_fractional_std Subroutine
procedure , public :: create_inv_cloud_effective_size Subroutine
procedure , public :: create_inv_cloud_effective_size_eta Subroutine
procedure , public :: param_cloud_effective_separation_eta Subroutine
procedure , public :: crop_cloud_fraction Subroutine
procedure , public :: out_of_physical_bounds Function

Functions

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


Subroutines

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

public subroutine deallocate_cloud_arrays(this)

Arguments

Type IntentOptional Attributes Name
class(cloud_type), intent(inout) :: this

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

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

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

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

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

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

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