Skip to content

Commit

Permalink
Add CLM Lake Model and update Flake (NOAA-EMC#606)
Browse files Browse the repository at this point in the history
* Updated flake physics and modified related files

* LAKEDEBUG is now clm_lake_debug namelist parameter

* fix bugs in salty code and add Caspian & Dead seas

* set roughness length over ice & water in clm lake model

* bug fixes to get fractional ice working

* restart works with FV3_HRRR suite

* do not freeze great salt lakes

* remove clm_lake_fill_with_zero

* FV3_HRRR uses clm lake; new FV3_HRRR_flake for flake

* Eliminate an out-of-bounds access in MDLFLD.f in UPP. This UPP bug is triggered by one of the new regression tests.

* clm lake is HRRR default, alternative suite with flake

* bug fix for 2threads support in conus13km tests

---------

Co-authored-by: Yihua.Wu <[email protected]>
Co-authored-by: Helin Wei <[email protected]>
  • Loading branch information
3 people authored Apr 26, 2023
1 parent aed0607 commit 33ac26d
Show file tree
Hide file tree
Showing 15 changed files with 1,966 additions and 47 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ add_library(fv3atm
cpl/module_block_data.F90
cpl/module_cplfields.F90
cpl/module_cap_cpl.F90
io/clm_lake_io.F90
io/FV3GFS_io.F90
io/FV3GFS_restart_io.F90
io/module_write_netcdf.F90
Expand Down
1 change: 1 addition & 0 deletions ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@
'physics/physics/lsm_noah.f',
'physics/physics/noahmpdrv.F90',
'physics/physics/flake_driver.F90',
'physics/physics/clm_lake.f90',
'physics/physics/sfc_nst_pre.f',
'physics/physics/sfc_nst.f',
'physics/physics/sfc_nst_post.f',
Expand Down
3 changes: 0 additions & 3 deletions ccpp/data/CCPP_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,6 @@ module CCPP_typedefs
integer, pointer :: idxday(:) => null() !<
logical, pointer :: icy(:) => null() !<
logical, pointer :: lake(:) => null() !<
logical, pointer :: use_flake(:) => null() !<
logical, pointer :: ocean(:) => null() !<
integer :: ipr !<
integer, pointer :: islmsk(:) => null() !<
Expand Down Expand Up @@ -647,7 +646,6 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model)
allocate (Interstitial%idxday (IM))
allocate (Interstitial%icy (IM))
allocate (Interstitial%lake (IM))
allocate (Interstitial%use_flake (IM))
allocate (Interstitial%ocean (IM))
allocate (Interstitial%islmsk (IM))
allocate (Interstitial%islmsk_cice (IM))
Expand Down Expand Up @@ -1327,7 +1325,6 @@ subroutine gfs_interstitial_phys_reset (Interstitial, Model)
Interstitial%dry = .false.
Interstitial%icy = .false.
Interstitial%lake = .false.
Interstitial%use_flake = .false.
Interstitial%ocean = .false.
Interstitial%islmsk = 0
Interstitial%islmsk_cice = 0
Expand Down
6 changes: 0 additions & 6 deletions ccpp/data/CCPP_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -1238,12 +1238,6 @@
units = flag
dimensions = (horizontal_loop_extent)
type = logical
[use_flake]
standard_name = flag_for_using_flake
long_name = flag indicating lake points using flake model
units = flag
dimensions = (horizontal_loop_extent)
type = logical
[ocean]
standard_name = flag_nonzero_ocean_surface_fraction
long_name = flag indicating presence of some ocean surface area fraction
Expand Down
266 changes: 250 additions & 16 deletions ccpp/data/GFS_typedefs.F90

Large diffs are not rendered by default.

Loading

0 comments on commit 33ac26d

Please sign in to comment.