The Intermediate Complexity Atmospheric Research model (ICAR)
A computationally efficient atmospheric model for downscaling.
 All Classes Files Functions Variables
Public Member Functions | Private Member Functions | Private Attributes | List of all members
pbl_simple Module Reference


Simple PBL diffusion package for ICAR More...

Public Member Functions

subroutine, public simple_pbl (domain, dt)
 
subroutine, public init_simple_pbl (domain, options)
 
subroutine, public finalize_simple_pbl ()
 

Private Member Functions

subroutine diffuse_variable (q, rhomean, rho_dz, j)
 
subroutine pbl_diffusion (domain, j)
 
subroutine calc_shear (domain, j)
 
subroutine calc_virt_pot_temp_zgradient (domain, j)
 
subroutine calc_pbl_stability_function (j)
 
subroutine calc_richardson_gradient (domain, j)
 

Private Attributes

real, dimension(:,:,:), allocatable virt_pot_temp_zgradient_m
 
real, dimension(:,:,:), allocatable rig_m
 
real, dimension(:,:,:), allocatable shear_m
 
real, dimension(:,:,:), allocatable stability_m
 
real, dimension(:,:,:), allocatable l_m
 
real, dimension(:,:,:), allocatable k_m
 
real, dimension(:,:,:), allocatable kq_m
 
real, dimension(:,:,:), allocatable prandtl_m
 
real, dimension(:,:,:), allocatable lastqv_m
 
integer nx
 
integer nz
 
integer ny
 
real, parameter pr_upper_limit = 4.0
 
real, parameter pr_lower_limit = 0.25
 
real, parameter asymp_length_scale = 1/250.0
 
real, parameter n_substeps =10.
 
real, parameter diffusion_reduction =10.0
 

Detailed Description


Simple PBL diffusion package for ICAR

Local-K diffusion type PBL as in Louis (1979) as documented in Hong and Pan (1996) = HP96 Hong and Pan used this for their free atmosphere diffusion, but noted differences used in the "current operational model" notably the asymptotic length scale lambda

 HP96 = Hong,S.-Y. and H.-L. Pan (1996) Monthly Weather Review v127 p2322
       Nonlocal Boundary Layer Vertical Diffusion in a Medium Range Forecast Model
 Implemented with K,shear,stability... on half levels
  rho on half levels for f=k*rho*dq/dz*dt
  rho on full levels for q=q+f/rho
   q,U,V on full levels
 
Author
Ethan Gutmann (gutma.nosp@m.nn@u.nosp@m.car.e.nosp@m.du)

Member Function/Subroutine Documentation

subroutine pbl_simple::calc_pbl_stability_function ( integer, intent(in)  j)
private

Here is the caller graph for this function:

subroutine pbl_simple::calc_richardson_gradient ( type(domain_type), intent(inout)  domain,
integer, intent(in)  j 
)
private

Here is the caller graph for this function:

subroutine pbl_simple::calc_shear ( type(domain_type), intent(in)  domain,
integer, intent(in)  j 
)
private

Here is the caller graph for this function:

subroutine pbl_simple::calc_virt_pot_temp_zgradient ( type(domain_type), intent(in)  domain,
integer, intent(in)  j 
)
private

Here is the caller graph for this function:

subroutine pbl_simple::diffuse_variable ( real, dimension(nx+2,nz+1,ny+2), intent(inout)  q,
real, dimension(nx,nz), intent(in)  rhomean,
real, dimension(nx,nz), intent(in)  rho_dz,
integer, intent(in)  j 
)
private

Here is the caller graph for this function:

subroutine, public pbl_simple::finalize_simple_pbl ( )

Here is the caller graph for this function:

subroutine, public pbl_simple::init_simple_pbl ( type(domain_type), intent(in)  domain,
type(options_type), intent(in)  options 
)

Here is the caller graph for this function:

subroutine pbl_simple::pbl_diffusion ( type(domain_type), intent(inout)  domain,
integer, intent(in)  j 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine, public pbl_simple::simple_pbl ( type(domain_type), intent(inout)  domain,
real, intent(in)  dt 
)

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

real, parameter pbl_simple::asymp_length_scale = 1/250.0
private
real, parameter pbl_simple::diffusion_reduction =10.0
private
real, dimension(:,:,:), allocatable pbl_simple::k_m
private
real, dimension(:,:,:), allocatable pbl_simple::kq_m
private
real, dimension(:,:,:), allocatable pbl_simple::l_m
private
real, dimension(:,:,:), allocatable pbl_simple::lastqv_m
private
real, parameter pbl_simple::n_substeps =10.
private
integer pbl_simple::nx
private
integer pbl_simple::ny
private
integer pbl_simple::nz
private
real, parameter pbl_simple::pr_lower_limit = 0.25
private
real, parameter pbl_simple::pr_upper_limit = 4.0
private
real, dimension(:,:,:), allocatable pbl_simple::prandtl_m
private
real, dimension(:,:,:), allocatable pbl_simple::rig_m
private
real, dimension(:,:,:), allocatable pbl_simple::shear_m
private
real, dimension(:,:,:), allocatable pbl_simple::stability_m
private
real, dimension(:,:,:), allocatable pbl_simple::virt_pot_temp_zgradient_m
private

The documentation for this module was generated from the following file: