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
module_lsm_simple Module Reference


NOTE: CODE IS INCOMPLETE AND WILL NOT WORK More...

Public Member Functions

subroutine, public lsm_simple_init (domain, options)
 
subroutine, public lsm_simple (theta, pii, qv, rain, snow, p, swdown, lwdown, wind, sensible_heat, latent_heat, ground_heat, tskin, tsoil, vwc, swe, options, dt)
 

Private Member Functions

subroutine calc_ground_heat (tsoil, tskin, ground_heat, dt)
 
subroutine calc_exchange_coefficient (wind, tskin, airt)
 
subroutine calc_sensible_heat (tskin, airt, wind, sensible_heat)
 
subroutine calc_latent_heat (vwc, tskin, qv, wind, latent_heat)
 
subroutine add_rain (vwc, rain, dt)
 

Private Attributes

real albedo
 
real zo
 
real vegfrac
 
real emissivity
 
real tdeep
 
real, dimension(:,:), allocatable base_exchange_term
 
real, dimension(:,:), allocatable exchange_c
 
real, dimension(:,:), allocatable z_atm
 
real, dimension(:,:), allocatable lnz_atm_term
 
real, dimension(:,:), allocatable ri
 
real, dimension(:,:), allocatable airt_m
 
real soil_dz
 
real soil_thermal_conductivity
 
real soil_density
 
real soil_specific_heat
 
real damping_time
 
real vwc_min
 
real vwc_max
 
real soil_hydro_conductivity
 
real soil_hydro_dz
 
real, parameter kappa =0.4
 

Detailed Description


NOTE: CODE IS INCOMPLETE AND WILL NOT WORK

Very simple land surface model code

Rain is partitioned into infiltration and runoff Snow is accumulated on the surface, then melts, runsoff, or sublimates Soil moisture is permitted to be lost to ET or subsurface flow

ET, Sensible Heat Flux, and Longwave are partitioned using Penman Monteith.

The entry point to the code is lsm_simple.

 Call tree graph :
 lsm_simple->
  [->],
  [->],
  [->]
 High level routine descriptions / purpose
   lsm_simple         - loops over X,Y grid cells, calls a, b, c
 Driver inputs: p,th,pii,rho,qv,rain,snow,dt,dz
   p   = pressure                      - 3D - input  - Pa     - (nx,nz,ny)
   th  = potential temperature         - 3D - in/out - K      - (nx,nz,ny)
   pii = inverse exner function        - 3D - input  - []     - (nx,nz,ny)
   rho = air density                   - 3D - input  - kg/m^3 - (nx,nz,ny)
   qv  = specific humidity             - 3D - in/out - kg/kg  - (nx,nz,ny)
   rain= rainfall                      - 2D - input  - mm     - (nx,ny)
   snow= snowfall                      - 2D - input  - mm     - (nx,ny)
   wind= wind speed                    - 2D - input  - m/s    - (nx,ny)
   swdown = shortwave down at surface - 2D - input  - W/m^2   - (nx,ny)
   lwdown = longwave down at surface  - 2D - input  - W/m^2   - (nx,ny)
   dt = time step                      - 0D - input  - seconds    - scalar
 
Author
Ethan Gutmann (gutma.nosp@m.nn@u.nosp@m.car.e.nosp@m.du)

Member Function/Subroutine Documentation

subroutine module_lsm_simple::add_rain ( real, dimension(:,:,:), intent(inout)  vwc,
real, dimension(:,:), intent(in)  rain,
real, intent(in)  dt 
)
private

Here is the caller graph for this function:

subroutine module_lsm_simple::calc_exchange_coefficient ( real, dimension(:,:), intent(in)  wind,
real, dimension(:,:), intent(in)  tskin,
real, dimension(:,:), intent(in)  airt 
)
private
subroutine module_lsm_simple::calc_ground_heat ( real, dimension(:,:,:), intent(inout)  tsoil,
real, dimension(:,:), intent(in)  tskin,
real, dimension(:,:), intent(out)  ground_heat,
real, intent(in)  dt 
)
private

Here is the caller graph for this function:

subroutine module_lsm_simple::calc_latent_heat ( real, dimension(:,:,:), intent(in)  vwc,
real, dimension(:,:), intent(in)  tskin,
real, dimension(:,:,:), intent(in)  qv,
real, dimension(:,:), intent(in)  wind,
real, dimension(:,:), intent(out)  latent_heat 
)
private

Here is the caller graph for this function:

subroutine module_lsm_simple::calc_sensible_heat ( real, dimension(:,:), intent(in)  tskin,
real, dimension(:,:), intent(in)  airt,
real, dimension(:,:), intent(in)  wind,
real, dimension(:,:), intent(out)  sensible_heat 
)
private

Here is the caller graph for this function:

subroutine, public module_lsm_simple::lsm_simple ( real, dimension(:,:,:), intent(inout)  theta,
real, dimension(:,:,:), intent(in)  pii,
real, dimension(:,:,:), intent(inout)  qv,
real, dimension(:,:), intent(in)  rain,
real, dimension(:,:), intent(in)  snow,
real, dimension(:,:,:), intent(in)  p,
real, dimension(:,:), intent(in)  swdown,
real, dimension(:,:), intent(in)  lwdown,
real, dimension(:,:), intent(in)  wind,
real, dimension(:,:), intent(inout)  sensible_heat,
real, dimension(:,:), intent(inout)  latent_heat,
real, dimension(:,:), intent(inout)  ground_heat,
real, dimension(:,:), intent(inout)  tskin,
real, dimension(:,:,:), intent(inout)  tsoil,
real, dimension(:,:,:), intent(inout)  vwc,
real, dimension(:,:), intent(inout)  swe,
type(options_type), intent(in)  options,
real, intent(in)  dt 
)

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine, public module_lsm_simple::lsm_simple_init ( type(domain_type), intent(in)  domain,
type(options_type), intent(in)  options 
)

Here is the caller graph for this function:

Member Data Documentation

real, dimension(:,:), allocatable module_lsm_simple::airt_m
private
real module_lsm_simple::albedo
private
real, dimension(:,:), allocatable module_lsm_simple::base_exchange_term
private
real module_lsm_simple::damping_time
private
real module_lsm_simple::emissivity
private
real, dimension(:,:), allocatable module_lsm_simple::exchange_c
private
real, parameter module_lsm_simple::kappa =0.4
private
real, dimension(:,:), allocatable module_lsm_simple::lnz_atm_term
private
real, dimension(:,:), allocatable module_lsm_simple::ri
private
real module_lsm_simple::soil_density
private
real module_lsm_simple::soil_dz
private
real module_lsm_simple::soil_hydro_conductivity
private
real module_lsm_simple::soil_hydro_dz
private
real module_lsm_simple::soil_specific_heat
private
real module_lsm_simple::soil_thermal_conductivity
private
real module_lsm_simple::tdeep
private
real module_lsm_simple::vegfrac
private
real module_lsm_simple::vwc_max
private
real module_lsm_simple::vwc_min
private
real, dimension(:,:), allocatable module_lsm_simple::z_atm
private
real module_lsm_simple::zo
private

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