CCPP SciDoc for UFS-SRW v2.2.0  SRW v2.2.0
Common Community Physics Package Developed at DTC
clm_lake Module Reference

Functions/Subroutines

logical function limit_temperature_by_climatology (xlat_d, xlon_positive)
 
subroutine is_salty (xlat_d, xlon_positive, cannot_freeze, salty)
 
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, tg3, pgr, zlvl, gt0, prsi, phii, qvcurr, gu0, gv0, xlat_d, xlon_d, ch, cm, dlwsfci, dswsfci, oro_lakedepth, wind, rho0, tsfc, flag_iter, 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, z_lake3d, dz_lake3d, watsat3d, csol3d, sand3d, clay3d, tkmg3d, tkdry3d, tksatu3d, clm_lakedepth, cannot_freeze, errflg, errmsg)
 
subroutine lakemain (forc_t, forc_pbot, forc_psrf, forc_hgt, forc_hgt_q, forc_hgt_t, forc_hgt_u, forc_q, forc_u, forc_v, forc_lwrad, prec, sabg, lat, z_lake, dz_lake, lakedepth, do_capsnow, h2osno, snowdp, snl, z, dz, zi, h2osoi_vol, h2osoi_liq, h2osoi_ice, t_grnd, t_soisno, t_lake, savedtke1, lake_icefrac, eflx_lwrad_net, eflx_gnet, eflx_sh_tot, eflx_lh_tot, t_ref2m, q_ref2m, dtime, watsat, tksatu, tkmg, tkdry, csol, taux, tauy, ram1, z0mg, ustar_out, errmsg, errflg, xlat_d, xlon_d)
 
subroutine shallakefluxes (forc_t, forc_pbot, forc_psrf, forc_hgt, forc_hgt_q, forc_hgt_t, forc_hgt_u, forc_q, forc_u, forc_v, forc_lwrad, forc_snow, forc_rain, t_grnd, h2osno, snowdp, sabg, lat, dz, dz_lake, t_soisno, t_lake, snl, h2osoi_liq, h2osoi_ice, savedtke1, qflx_prec_grnd, qflx_evap_soi, qflx_evap_tot, eflx_sh_grnd, eflx_lwrad_out, eflx_lwrad_net, eflx_soil_grnd, eflx_sh_tot, eflx_lh_tot, eflx_lh_grnd, t_veg, t_ref2m, q_ref2m, taux, tauy, ram1, ws, ks, eflx_gnet, z0mg, ustar_out, errmsg, errflg, xlat_d, xlon_d)
 Calculates lake temperatures and surface fluxes for shallow lakes. More...
 
subroutine shallaketemperature (t_grnd, h2osno, sabg, dz, dz_lake, z, zi, z_lake, ws, ks, snl, eflx_gnet, lakedepth, lake_icefrac, snowdp, eflx_sh_grnd, eflx_sh_tot, eflx_soil_grnd, t_lake, t_soisno, h2osoi_liq, h2osoi_ice, savedtke1, watsat, tksatu, tkmg, tkdry, csol, dtime, frac_iceold, qflx_snomelt, imelt, errmsg, errflg, xlat_d, xlon_d)
 
subroutine soilthermprop_lake (snl, dz, zi, z, t_soisno, h2osoi_liq, h2osoi_ice, watsat, tksatu, tkmg, tkdry, csol, tk, cv, tktopsoillay, errmsg, errflg)
 Calculation of thermal conductivities and heat capacities of snow/soil layers
(1) The volumetric heat capacity is calculated as a linear combination in terms of the volumetric fraction of the constituent phases. More...
 
subroutine phasechange_lake (snl, h2osno, dz, dz_lake, t_soisno, h2osoi_liq, h2osoi_ice, lake_icefrac, t_lake, snowdp, qflx_snomelt, eflx_snomelt, imelt, cv, cv_lake, lhabs)
 Calculation of the phase change within snow, soil, & lake layers:
(1) Check the conditions for which the phase change may take place, i.e., the layer temperature is greater than the freezing point and the ice mass is not equal to zero (i.e. melting),
or the layer temperature is less than the freezing point
and the liquid water mass is greater than the allowable supercooled (i.e. freezing).
(2) Assess the amount of phase change from the energy excess (or deficit) after setting the layer temperature to freezing point, depending on how much water or ice is available.
(3) Re-adjust the ice and liquid mass, and the layer temperature: either to the freezing point if enough water or ice is available to fully compensate, or to a remaining temperature. More...
 
subroutine shallakehydrology (dz_lake, forc_rain, forc_snow, begwb, qflx_evap_tot, forc_t, do_capsnow, t_grnd, qflx_evap_soi, qflx_snomelt, imelt, frac_iceold, z, dz, zi, snl, h2osno, snowdp, lake_icefrac, t_lake, endwb, snowage, snowice, snowliq, t_snow, t_soisno, h2osoi_ice, h2osoi_liq, h2osoi_vol, qflx_drain, qflx_surf, qflx_infl, qflx_qrgwl, qcharge, qflx_prec_grnd, qflx_snowcap, qflx_snowcap_col, qflx_snow_grnd_pft, qflx_snow_grnd_col, qflx_rain_grnd, qflx_evap_tot_col, soilalpha, zwt, fcov, rootr_column, qflx_evap_grnd, qflx_sub_snow, qflx_dew_snow, qflx_dew_grnd, qflx_rain_grnd_col, watsat, tksatu, tkmg, tkdry, csol, dtime, errmsg, errflg)
 Calculation of Shallow Lake Hydrology. Full hydrology of snow layers is done. However, there is no infiltration, and the water budget is balanced with qflx_qrgwl. Lake water mass is kept constant. The soil is simply maintained at volumetric saturation if ice melting frees up pore space. Likewise, if the water portion alone at some point exceeds pore capacity, it is reduced. This is consistent with the possibility of initializing the soil layer with excess ice. The only real error with that is that the thermal conductivity will ignore the excess ice (and accompanying thickness change). More...
 
subroutine qsat (T, p, es, esdT, qs, qsdT)
 Computes saturation mixing ratio and the change in saturation mixing ratio with respect to temperature. More...
 
subroutine tridiagonal (lbc, ubc, lbj, ubj, jtop, numf, filter, a, b, c, r, u)
 
subroutine snowwater (lbc, ubc, num_snowc, filter_snowc, num_nosnowc, filter_nosnowc, snl, do_capsnow, qflx_snomelt, qflx_rain_grnd, qflx_sub_snow, qflx_evap_grnd, qflx_dew_snow, qflx_dew_grnd, dz, dtime, h2osoi_ice, h2osoi_liq, qflx_top_soil)
 Evaluate the change of snow mass and the snow water onto soil. Water flow within snow is computed by an explicit and non-physical based scheme, which permits a part of liquid water over the holding capacity (a tentative value is used, i.e. equal to 0.033*porosity) to percolate into the underlying layer. Except for cases where the porosity of one of the two neighboring layers is less than 0.05, zero flow is assumed. The water flow out of the bottom of the snow pack will participate as the input of the soil water and runoff. This subroutine uses a filter for columns containing snow which must be constructed prior to being called. More...
 
subroutine snowcompaction (lbc, ubc, num_snowc, filter_snowc, snl, imelt, frac_iceold, t_soisno, h2osoi_ice, h2osoi_liq, dtime, dz)
 Determine the change in snow layer thickness due to compaction and settling. Three metamorphisms of changing snow characteristics are implemented, i.e., destructive, overburden, and melt. The treatments of the former two are from SNTHERM.89 and SNTHERM.99 (1991, 1999). The contribution due to melt metamorphism is simply taken as a ratio of snow ice fraction after the melting versus before the melting. More...
 
subroutine combinesnowlayers (lbc, ubc, num_snowc, filter_snowc, snl, h2osno, snowdp, dz, zi, t_soisno, h2osoi_ice, h2osoi_liq, z)
 Combine snow layers that are less than a minimum thickness or mass If the snow element thickness or mass is less than a prescribed minimum, then it is combined with a neighboring element.
More...
 
subroutine dividesnowlayers (lbc, ubc, num_snowc, filter_snowc, snl, dz, zi, t_soisno, h2osoi_ice, h2osoi_liq, z)
 Subdivides snow layers if they exceed their prescribed maximum thickness. More...
 
subroutine combo (dz, wliq, wice, t, dz2, wliq2, wice2, t2)
 Combines two elements and returns the following combined variables: dz, t, wliq, wice. More...
 
subroutine buildsnowfilter (lbc, ubc, num_nolakec, filter_nolakec, snl, num_snowc, filter_snowc, num_nosnowc, filter_nosnowc)
 Constructs snow filter for use in vectorized loops for snow hydrology. More...
 
subroutine frictionvelocity (pgridcell, forc_hgt, forc_hgt_u, forc_hgt_t, forc_hgt_q, lbp, ubp, fn, filterp, displa, z0m, z0h, z0q, obu, iter, ur, um, ustar, temp1, temp2, temp12m, temp22m, u10, fv, fm)
 Calculation of the friction velocity, relation for potential temperature and humidity profiles of surface boundary layer.
The scheme is based on the work of Zeng et al. (1998): Intercomparison of bulk aerodynamic algorithms for the computation of sea surface fluxes using TOGA CORE and TAO data. J. Climate, Vol. 11, 2628-2644.
More...
 
real(kind_lake) function stabilityfunc1 (zeta)
 
real(kind_lake) function stabilityfunc2 (zeta)
 
subroutine moninobukini (ur, thv, dthv, zldis, z0m, um, obu)
 
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)
 
subroutine lakeini (kdt, ISLTYP, gt0, snowd, weasd, lakedepth_default, fhour, oro_lakedepth, savedtke12d, snowdp2d, h2osno2d, snl2d, t_grnd2d, t_lake3d, lake_icefrac3d, z_lake3d, dz_lake3d, t_soisno3d, h2osoi_ice3d, h2osoi_liq3d, h2osoi_vol3d, z3d, dz3d, zi3d, watsat3d, csol3d, tkmg3d, fice, hice, min_lakeice, tsfc, use_lake_model, use_lakedepth, tkdry3d, tksatu3d, im, prsi, xlat_d, xlon_d, clm_lake_initialized, sand3d, clay3d, tg3, clm_lakedepth, km, me, master, errmsg, errflg)
 

Variables

integer, parameter, public kind_lake = kind_dbl_prec
 
logical, public lakedebug = .false.
 
logical debug_print = .false.
 
logical, parameter pergro = .false.
 
logical, parameter use_etalake = .false.
 
real(kind_lake), parameter etalake = 1.1925*50**(-0.424)
 Set this to your desired value if USE_ETALAKE=.true. More...
 
integer, parameter nlevsoil = 10
 number of soil layers More...
 
integer, parameter nlevlake = 10
 number of lake layers More...
 
integer, parameter nlevsnow = 5
 maximum number of snow layers More...
 
real(kind_lake), parameter scalez = 0.025_kind_lake
 Soil layer thickness discretization (m) More...
 
integer, parameter lbp = 1
 pft-index bounds More...
 
integer, parameter ubp = 1
 
integer, parameter lbc = 1
 column-index bounds More...
 
integer, parameter ubc = 1
 
integer, parameter num_shlakec = 1
 number of columns in lake filter More...
 
integer, dimension(1), parameter filter_shlakec = 1
 lake filter (columns) More...
 
integer, parameter num_shlakep = 1
 number of pfts in lake filter More...
 
integer, dimension(1), parameter filter_shlakep = 1
 lake filter (pfts) More...
 
integer, dimension(1), parameter pcolumn = 1
 
integer, dimension(1), parameter pgridcell = 1
 
integer, dimension(1), parameter cgridcell = 1
 gridcell index of column More...
 
integer, dimension(1), parameter clandunit = 1
 landunit index of column More...
 
integer, parameter begg = 1
 
integer, parameter endg = 1
 
integer, parameter begl = 1
 
integer, parameter endl = 1
 
integer, parameter begc = 1
 
integer, parameter endc = 1
 
integer, parameter begp = 1
 
integer, parameter endp = 1
 
integer, parameter column =1
 
logical, dimension(1), parameter lakpoi = .true.
 
real(kind_lake), parameter tcrit = 2.5
 critical temperature to determine rain or snow More...
 
real(kind_lake), parameter tkwat = 0.6
 thermal conductivity of water [W/m/k] More...
 
real(kind_lake), parameter tkice = 2.290
 thermal conductivity of ice [W/m/k] More...
 
real(kind_lake), parameter tkairc = 0.023
 thermal conductivity of air [W/m/k] More...
 
real(kind_lake), parameter snow_bd = 250
 constant snow bulk density (only used in special case here) [kg/m^3] More...
 
real(kind_lakepi
 ratio of the circumference of a circle to its diameter More...
 
real(kind_lakevkc
 von Karman constant [-] More...
 
real(kind_lakegrav
 gravity constant [m/s2] More...
 
real(kind_lakesb
 stefan-boltzmann constant [W/m2/K4] More...
 
real(kind_laketfrz
 freezing temperature [K] More...
 
real(kind_lakedenh2o
 density of liquid water [kg/m3] More...
 
real(kind_lakedenice
 density of ice [kg/m3] More...
 
real(kind_lakecpice
 Specific heat of ice [J/kg-K]. More...
 
real(kind_lakecpliq
 Specific heat of water [J/kg-K]. More...
 
real(kind_lakehfus
 Latent heat of fusion for ice [J/kg]. More...
 
real(kind_lakehvap
 Latent heat of evap for water [J/kg]. More...
 
real(kind_lakehsub
 Latent heat of sublimation [J/kg]. More...
 
real(kind_lakeinvhvap
 1/hvap [kg/J] More...
 
real(kind_lakeinvhsub
 1/hsub [kg/J] More...
 
real(kind_lakerair
 gas constant for dry air [J/kg/K] More...
 
real(kind_lakecpair
 specific heat of dry air [J/kg/K] More...
 
real(kind_lakecon_eps
 ratio of gas constants of air and water vapor [unitless] More...
 
real(kind_lakeone_minus_con_eps
 1 - con_eps [unitless] More...
 
real(kind_lakecon_fvirt
 1/con_eps - 1 [unitless] More...
 
real(kind_lake), parameter, public spval = 1.e36
 special value for missing data (ocean) More...
 
real(kind_lake), parameter depth_c = 50.
 below the level t_lake3d will be 277.0 !mchen More...
 
real(kind_lake), parameter zero_h2o = 1e-12
 lower mixing ratio is is treated as zero More...
 
real(kind_lake), parameter wimp = 0.05
 Water impermeable if porosity less than wimp. More...
 
real(kind_lake), parameter ssi = 0.033
 Irreducible water saturation of snow. More...
 
real(kind_lake), parameter cnfac = 0.5
 Crank Nicholson factor between 0 and 1. More...
 
integer, parameter istsoil = 1
 !soil "water" type More...
 
real(kind_lake), dimension(19), parameter sand = (/92.,80.,66.,20.,5.,43.,60.,10.,32.,51., 6.,22.,39.7,0.,100.,54.,17.,100.,92./)
 
real(kind_lake), dimension(19), parameter clay = (/ 3., 5.,10.,15.,5.,18.,27.,33.,33.,41.,47.,58.,14.7,0., 0., 8.5,54., 0., 3./)
 
real(kind_lake), dimension(1:nlevlakezlak
 lake z (layers) More...
 
real(kind_lake), dimension(1:nlevlakedzlak
 lake dz (thickness) More...
 
real(kind_lake), dimension(1:nlevsoilzsoi
 soil z (layers) More...
 
real(kind_lake), dimension(1:nlevsoildzsoi
 soil dz (thickness) More...
 
real(kind_lake), dimension(0:nlevsoilzisoi
 soil zi (interfaces)
More...
 
real, dimension(1:25), parameter saltlk_t = (/ 0.5, 0.,-0.5, 3., 4., 7., 8., 12., 13., 16., 19., 21., 23.5, 25., 26.,24.,23.,20.5,18., 15., 11.5, 8., 4., 1., 0.5/)
 
real, dimension(12), parameter month_length = (/ 31, 29, 31, 30, 31, 30, 31, 30, 30, 31, 30, 31 /)
 
logical, parameter include_all_salty_locations = .false.