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) | |
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] .
| 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 | ||
| ) |
Definition at line 5301 of file clm_lake.f90.
| 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 | ||
| ) |
Definition at line 264 of file clm_lake.f90.
| integer, parameter, public clm_lake::kind_lake = kind_dbl_prec |
Definition at line 36 of file clm_lake.f90.
| logical, public clm_lake::lakedebug = .false. |
Definition at line 38 of file clm_lake.f90.
| 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.