The Intermediate Complexity Atmospheric Research model (ICAR)
A computationally efficient atmospheric model for downscaling.
|
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 |
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
|
private |
|
private |
|
private |
|
private |
|
private |
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 | ||
) |
subroutine, public module_lsm_simple::lsm_simple_init | ( | type(domain_type), intent(in) | domain, |
type(options_type), intent(in) | options | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |