← Back to Documentation Home
CCPP SciDoc v8.0.0  v8.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
clm_lake Module Reference

This module contains the CLM Lake model. More...

Functions/Subroutines

subroutine, public clm_lake_run (flag_restart, im, km, me, master, fhour, idate, kdt, iopt_lake, iopt_lake_clm, min_lakeice, lakedepth_default, use_lakedepth, dtp, use_lake_model, clm_lake_initialized, frac_grid, frac_ice, lkm, use_cdeps_data, mask_dat, tg3, pgr, zlvl, gt0, prsi, phii, qvcurr, gu0, gv0, xlat_d, xlon_d, ch, cm, dlwsfci, dswsfci, oro_lakedepth, wind, tsfc, flag_iter, flag_lakefreeze, isltyp, rainncprv, raincprv, evap_wat, evap_ice, hflx_wat, hflx_ice, gflx_wat, gflx_ice, ep1d_water, ep1d_ice, tsurf_water, tsurf_ice, tsfc_wat, tisfc, weasdi, snodi, hice, qss_water, qss_ice, cmm_water, cmm_ice, chh_water, chh_ice, uustar_water, uustar_ice, lake_t_snow, albedo, zorlw, zorli, lake_t2m, lake_q2m, weasd, snowd, fice, icy, salty, savedtke12d, snowdp2d, h2osno2d, snl2d, t_grnd2d, t_lake3d, lake_icefrac3d, t_soisno3d, h2osoi_ice3d, h2osoi_liq3d, h2osoi_vol3d, z3d, dz3d, zi3d, t1, qv1, prsl1, input_lakedepth, clm_lakedepth, cannot_freeze, errflg, errmsg)
 
subroutine, public clm_lake_init (con_pi, karman, con_g, con_sbc, con_t0c, rhowater, con_csol, con_cliq, con_hfus, con_hvap, con_rd, con_cp, rholakeice, clm_lake_debug, clm_debug_print, con_eps_model, con_fvirt_model, errmsg, errflg)
 

Variables

integer, parameter, public kind_lake = kind_dbl_prec
 
logical, public lakedebug = .false.
 
real(kind_lake), parameter, public spval = 1.e36
 special value for missing data (ocean)
 

Detailed Description

This module contains the CLM Lake model.

This lake scheme was taken from module_sf_lake in WRF 4.3.1, and modified for CCPP by Sam Trahan in June 2022.

The original documentation said:

The lake scheme was retrieved from the Community Land Model version 4.5 (Oleson et al. (2013) [155]) with some modifications by Gu et al. (2015) [75]. It is a one-dimensional mass and energy balance scheme with 20-25 model layers, including up to 5 snow layers on the lake ice, 10 water layers, and 10 soil layers on the lake bottom. The lake scheme is used with actual lake points and lake depth derived from the WPS, and it also can be used with user defined lake points and lake depth in WRF (lake_min_elev and lakedepth_default). The lake scheme is independent of a land surface scheme and therefore can be used with any land surface scheme embedded in WRF. The lake scheme developments and evaluations were included in Subin et al. (2012) [189] and Gu et al. (2015) [75] .

Function/Subroutine Documentation

◆ clm_lake_init()

subroutine, public clm_lake::clm_lake_init ( real(kind_phys), intent(in)  con_pi,
real(kind_phys), intent(in)  karman,
real(kind_phys), intent(in)  con_g,
real(kind_phys), intent(in)  con_sbc,
real(kind_phys), intent(in)  con_t0c,
real(kind_phys), intent(in)  rhowater,
real(kind_phys), intent(in)  con_csol,
real(kind_phys), intent(in)  con_cliq,
real(kind_phys), intent(in)  con_hfus,
real(kind_phys), intent(in)  con_hvap,
real(kind_phys), intent(in)  con_rd,
real(kind_phys), intent(in)  con_cp,
real(kind_phys), intent(in)  rholakeice,
logical, intent(in)  clm_lake_debug,
logical, intent(in)  clm_debug_print,
real(kind_phys), intent(in)  con_eps_model,
real(kind_phys), intent(in)  con_fvirt_model,
character(*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

Argument Table

Definition at line 5301 of file clm_lake.f90.

◆ clm_lake_run()

subroutine, public clm_lake::clm_lake_run ( logical, intent(in)  flag_restart,
integer, intent(in)  im,
integer, intent(in)  km,
integer, intent(in)  me,
integer, intent(in)  master,
real(kind_phys), intent(in)  fhour,
integer, dimension(4), intent(in)  idate,
integer, intent(in)  kdt,
integer, intent(in)  iopt_lake,
integer, intent(in)  iopt_lake_clm,
real(kind_phys), intent(in)  min_lakeice,
real(kind_phys), intent(in)  lakedepth_default,
logical, intent(in)  use_lakedepth,
real(kind_phys), intent(in)  dtp,
integer, dimension(:), intent(in)  use_lake_model,
real(kind_phys), dimension(:), intent(inout)  clm_lake_initialized,
logical, intent(in)  frac_grid,
logical, intent(in)  frac_ice,
integer, intent(in)  lkm,
logical, intent(in)  use_cdeps_data,
real(kind_phys), dimension(:), intent(in), optional  mask_dat,
real(kind_phys), dimension(:), intent(in)  tg3,
real(kind_phys), dimension(:), intent(in)  pgr,
real(kind_phys), dimension(:), intent(in)  zlvl,
real(kind_phys), dimension(:,:), intent(in)  gt0,
real(kind_phys), dimension(:,:), intent(in)  prsi,
real(kind_phys), dimension(:,:), intent(in)  phii,
real(kind_phys), dimension(:), intent(in)  qvcurr,
real(kind_phys), dimension(:,:), intent(in)  gu0,
real(kind_phys), dimension(:,:), intent(in)  gv0,
real(kind_phys), dimension(:), intent(in)  xlat_d,
real(kind_phys), dimension(:), intent(in)  xlon_d,
real(kind_phys), dimension(:), intent(in)  ch,
real(kind_phys), dimension(:), intent(in)  cm,
real(kind_phys), dimension(:), intent(in)  dlwsfci,
real(kind_phys), dimension(:), intent(in)  dswsfci,
real(kind_phys), dimension(:), intent(in)  oro_lakedepth,
real(kind_phys), dimension(:), intent(in)  wind,
real(kind_phys), dimension(:), intent(inout)  tsfc,
logical, dimension(:), intent(in)  flag_iter,
logical, dimension(:), intent(inout)  flag_lakefreeze,
integer, dimension(:), intent(in)  isltyp,
real(kind_phys), dimension(:), intent(in)  rainncprv,
real(kind_phys), dimension(:), intent(in)  raincprv,
real(kind_phys), dimension(:), intent(inout)  evap_wat,
real(kind_phys), dimension(:), intent(inout)  evap_ice,
real(kind_phys), dimension(:), intent(inout)  hflx_wat,
real(kind_phys), dimension(:), intent(inout)  hflx_ice,
real(kind_phys), dimension(:), intent(inout)  gflx_wat,
real(kind_phys), dimension(:), intent(inout)  gflx_ice,
real(kind_phys), dimension(:), intent(inout)  ep1d_water,
real(kind_phys), dimension(:), intent(inout)  ep1d_ice,
real(kind_phys), dimension(:), intent(inout)  tsurf_water,
real(kind_phys), dimension(:), intent(inout)  tsurf_ice,
real(kind_phys), dimension(:), intent(inout)  tsfc_wat,
real(kind_phys), dimension(:), intent(inout)  tisfc,
real(kind_phys), dimension(:), intent(inout)  weasdi,
real(kind_phys), dimension(:), intent(inout)  snodi,
real(kind_phys), dimension(:), intent(inout)  hice,
real(kind_phys), dimension(:), intent(inout)  qss_water,
real(kind_phys), dimension(:), intent(inout)  qss_ice,
real(kind_phys), dimension(:), intent(inout)  cmm_water,
real(kind_phys), dimension(:), intent(inout)  cmm_ice,
real(kind_phys), dimension(:), intent(inout)  chh_water,
real(kind_phys), dimension(:), intent(inout)  chh_ice,
real(kind_phys), dimension(:), intent(inout)  uustar_water,
real(kind_phys), dimension(:), intent(inout)  uustar_ice,
real(kind_phys), dimension(:), intent(inout)  lake_t_snow,
real(kind_phys), dimension(:), intent(inout)  albedo,
real(kind_phys), dimension(:), intent(inout)  zorlw,
real(kind_phys), dimension(:), intent(inout)  zorli,
real(kind_phys), dimension(:), intent(inout)  lake_t2m,
real(kind_phys), dimension(:), intent(inout)  lake_q2m,
real(kind_phys), dimension(:), intent(inout)  weasd,
real(kind_phys), dimension(:), intent(inout)  snowd,
real(kind_phys), dimension(:), intent(inout)  fice,
logical, dimension(:), intent(inout)  icy,
integer, dimension( : ), intent(inout)  salty,
real(kind_phys), dimension(: ), intent(inout)  savedtke12d,
real(kind_phys), dimension(: ), intent(inout)  snowdp2d,
real(kind_phys), dimension(: ), intent(inout)  h2osno2d,
real(kind_phys), dimension(: ), intent(inout)  snl2d,
real(kind_phys), dimension(: ), intent(inout)  t_grnd2d,
real(kind_phys), dimension( :,: ), intent(inout)  t_lake3d,
real(kind_phys), dimension( :,: ), intent(inout)  lake_icefrac3d,
real(kind_phys), dimension( :,-nlevsnow+1: ), intent(inout)  t_soisno3d,
real(kind_phys), dimension( :,-nlevsnow+1: ), intent(inout)  h2osoi_ice3d,
real(kind_phys), dimension( :,-nlevsnow+1: ), intent(inout)  h2osoi_liq3d,
real(kind_phys), dimension( :,-nlevsnow+1: ), intent(inout)  h2osoi_vol3d,
real(kind_phys), dimension( :,-nlevsnow+1: ), intent(inout)  z3d,
real(kind_phys), dimension( :,-nlevsnow+1: ), intent(inout)  dz3d,
real(kind_phys), dimension( :,-nlevsnow+0: ), intent(inout)  zi3d,
real(kind_phys), dimension(:), intent(in)  t1,
real(kind_phys), dimension(:), intent(in)  qv1,
real(kind_phys), dimension(:), intent(in)  prsl1,
real(kind_phys), dimension( : ), intent(inout)  input_lakedepth,
real(kind_phys), dimension( : ), intent(inout)  clm_lakedepth,
integer, dimension( : ), intent(inout)  cannot_freeze,
integer, intent(out)  errflg,
character(*), intent(out)  errmsg 
)

Argument Table

Definition at line 264 of file clm_lake.f90.

Variable Documentation

◆ kind_lake

integer, parameter, public clm_lake::kind_lake = kind_dbl_prec

Definition at line 36 of file clm_lake.f90.

◆ lakedebug

logical, public clm_lake::lakedebug = .false.

Definition at line 38 of file clm_lake.f90.

◆ spval

real(kind_lake), parameter, public clm_lake::spval = 1.e36

special value for missing data (ocean)

Definition at line 105 of file clm_lake.f90.