Skip to content

Commit

Permalink
Changes to Logging and Initialization of the CLM Lake Model (NOAA-EMC…
Browse files Browse the repository at this point in the history
…#681)

* Changes to logging and initialization of the CLM Lake Model.

1. Use ice thickness hice(i) to find the level in the lake where ice is
   zero.
2. Do not allow lake temperature to be below freezing point if there is
   no ice.
3. If there is no snow or ice, do not allow surface lake temperature to
   be below freezing point.
   These changes fixed the problem with large errors in the energy budget
   at the beginning of the cold-start run with lakes.
4. Added flag to turn on debug print statements in the CLM lake model.

* merge ccpp-physics NOAA-EMC#91 (UFS-SRW v3.0.0 SciDoc updates)
  • Loading branch information
SamuelTrahanNOAA committed Aug 22, 2023
1 parent 7b2d88a commit 94a49f8
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 5 deletions.
8 changes: 6 additions & 2 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1082,6 +1082,7 @@ module GFS_typedefs
real(kind_phys) :: clm_lake_depth_default !< minimum lake elevation in clm lake model
logical :: clm_lake_use_lakedepth !< initialize lake from lakedepth
logical :: clm_lake_debug !< verbose debugging in clm_lake
logical :: clm_debug_print !< enables prints in clm_lakedebugging in clm_laki

!--- tuning parameters for physical parameterizations
logical :: ras !< flag for ras convection scheme
Expand Down Expand Up @@ -3461,6 +3462,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind_phys) :: clm_lake_depth_default = 50 !< default lake depth in clm lake model
logical :: clm_lake_use_lakedepth = .true. !< initialize depth from lakedepth
logical :: clm_lake_debug = .false. !< verbose debugging in clm_lake
logical :: clm_debug_print = .false. !< enables prints in clm_lake

!--- land/surface model parameters
integer :: lsm = 1 !< flag for land surface model to use =0 for osu lsm; =1 for noah lsm; =2 for noah mp lsm; =3 for RUC lsm
Expand Down Expand Up @@ -3706,7 +3708,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!< nstf_name(5) : zsea2 in mm
!--- fractional grid
logical :: frac_grid = .false. !< flag for fractional grid
logical :: frac_ice = .false. !< flag for fractional ice when fractional grid is not in use
logical :: frac_ice = .true. !< flag for lake fractional ice when fractional grid is not in use
logical :: ignore_lake = .true. !< flag for ignoring lakes
real(kind=kind_phys) :: min_lakeice = 0.15d0 !< minimum lake ice value
real(kind=kind_phys) :: min_seaice = 1.0d-11 !< minimum sea ice value
Expand Down Expand Up @@ -3915,7 +3917,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- lake model control
lkm, iopt_lake, lakedepth_threshold, lakefrac_threshold, &
clm_lake_depth_default, clm_lake_use_lakedepth, &
clm_lake_debug, use_lake2m, &
clm_lake_debug, clm_debug_print, use_lake2m, &
!--- physical parameterizations
ras, trans_trac, old_monin, cnvgwd, mstrat, moist_adj, &
cscnv, cal_pre, do_aw, do_shoc, shocaftcnv, shoc_cld, &
Expand Down Expand Up @@ -4649,6 +4651,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%clm_lake_depth_default = clm_lake_depth_default
Model%clm_lake_use_lakedepth = clm_lake_use_lakedepth
Model%clm_lake_debug = clm_lake_debug
Model%clm_debug_print = clm_debug_print

! Noah MP options from namelist
!
Expand Down Expand Up @@ -5640,6 +5643,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
print *,' clm_lake_use_lakedepth = ',Model%clm_lake_use_lakedepth
print *,' clm_lake_depth_default = ',Model%clm_lake_depth_default
print *,' clm_lake_debug = ',Model%clm_lake_debug
print *,' clm_debug_print = ',Model%clm_debug_print
print *,' nlevlake_clm_lake = ',Model%nlevlake_clm_lake
print *,' nlevsoil_clm_lake = ',Model%nlevsoil_clm_lake
print *,' nlevsnow_clm_lake = ',Model%nlevsnow_clm_lake
Expand Down
6 changes: 6 additions & 0 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -7147,6 +7147,12 @@
units = flag
dimensions = ()
type = logical
[clm_debug_print]
standard_name = flag_for_printing_in_clm_lake_model
long_name = flag for printing in clm lake model
units = flag
dimensions = ()
type = logical
[fire_aux_data_levels]
standard_name = fire_auxiliary_data_extent
long_name = number of levels of fire auxiliary data
Expand Down
4 changes: 2 additions & 2 deletions ccpp/driver/GFS_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2696,8 +2696,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'lake_q2m'
ExtDiag(idx)%desc = 'Humidity at 2 m from Lake Model'
ExtDiag(idx)%unit = '%'
ExtDiag(idx)%desc = '2m specific humidity from Lake Model'
ExtDiag(idx)%unit = 'kg/kg'
ExtDiag(idx)%mod_name = 'gfs_sfc'
ExtDiag(idx)%intpl_method = 'nearest_stod'
allocate (ExtDiag(idx)%data(nblks))
Expand Down
2 changes: 1 addition & 1 deletion ccpp/physics
Submodule physics updated 41 files
+767 −657 physics/clm_lake.f90
+14 −0 physics/clm_lake.meta
+1 −0 physics/cu_gf_deep.F90
+1 −1 physics/docs/ccpp_doxyfile
+8 −6 physics/docs/ccppsrw_doxyfile
+176 −1 physics/docs/library.bib
+60 −0 physics/docs/pdftxt/CLM_LAKE.txt
+20 −35 physics/docs/pdftxt/CU_GF_deep.txt
+7 −13 physics/docs/pdftxt/GFS_NOAHMP.txt
+0 −3 physics/docs/pdftxt/GFS_SAMFdeep.txt
+20 −13 physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt
+46 −0 physics/docs/pdftxt/GFS_UGWPv0.txt
+2 −2 physics/docs/pdftxt/GFS_v16_suite.txt
+4 −3 physics/docs/pdftxt/HRRR_suite.txt
+0 −41 physics/docs/pdftxt/NoahMP.txt
+5 −5 physics/docs/pdftxt/RAP_suite.txt
+335 −0 physics/docs/pdftxt/RE300/FV3_GFS_v16_input.nml
+295 −0 physics/docs/pdftxt/RE300/FV3_HRRR_input.nml
+302 −0 physics/docs/pdftxt/RE300/FV3_RAP_input.nml
+289 −0 physics/docs/pdftxt/RE300/FV3_RRFS_v1beta_input.nml
+295 −0 physics/docs/pdftxt/RE300/FV3_WoFS_v0_input.nml
+330 −0 physics/docs/pdftxt/RE300/namelists/input.nml.FV3_GFS_v16
+298 −0 physics/docs/pdftxt/RE300/namelists/input.nml.FV3_HRRR
+300 −0 physics/docs/pdftxt/RE300/namelists/input.nml.FV3_RAP
+285 −0 physics/docs/pdftxt/RE300/namelists/input.nml.FV3_RRFS_v1beta
+291 −0 physics/docs/pdftxt/RE300/namelists/input.nml.FV3_WoFS_v0
+94 −0 physics/docs/pdftxt/RE300/suite_FV3_GFS_v16.xml
+82 −0 physics/docs/pdftxt/RE300/suite_FV3_HRRR.xml
+90 −0 physics/docs/pdftxt/RE300/suite_FV3_RAP.xml
+84 −0 physics/docs/pdftxt/RE300/suite_FV3_RRFS_v1beta.xml
+80 −0 physics/docs/pdftxt/RE300/suite_FV3_WoFS_v0.xml
+2 −2 physics/docs/pdftxt/RRFS_v1beta_suite.txt
+53 −47 physics/docs/pdftxt/RUCLSM.txt
+14 −13 physics/docs/pdftxt/SRW_all_schemes_list.txt
+10 −2 physics/docs/pdftxt/SRW_mainpage.txt
+12 −4 physics/docs/pdftxt/THOMPSON.txt
+3 −2 physics/docs/pdftxt/WoFS_v0_suite.txt
+0 −0 physics/docs/pdftxt/all_schemes_list.txt
+55 −15 physics/docs/pdftxt/suite_input.nml.txt
+2 −0 physics/module_sf_ruclsm.F90
+7 −5 physics/satmedmfvdifq.F

0 comments on commit 94a49f8

Please sign in to comment.