Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grazing #1140

Merged
merged 25 commits into from
Feb 18, 2025
Merged

Grazing #1140

Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ee5ef88
adding land use parameters to file: grazing, PFT max canopy coverage
ckoven May 2, 2023
bc633e2
Merge branch 'luh2' into grazing
ckoven Jul 6, 2023
dbd692d
starting to add grazing parameterization
ckoven Jul 10, 2023
580df9e
more grazing updates
ckoven Jul 11, 2023
c62e98d
Merge branch 'luh2' into grazing_merge
ckoven Aug 14, 2023
cab4ee7
merged luh2 and resolved conflicts
ckoven Sep 18, 2023
cb5ea6d
fixed merged conflict
ckoven Sep 18, 2023
dcbf787
Merge branch 'luh2' into grazing_merge
ckoven Sep 19, 2023
2b36e09
Merge branch 'luh2' into grazing_merge
ckoven Oct 5, 2023
9e035dd
Merge branch 'luh2' into grazing_merge
ckoven Oct 16, 2023
3f755f0
merged main and resolved conflicts
ckoven Dec 19, 2023
4e818e8
changed hite to height
ckoven Dec 19, 2023
b67019d
changed grazing rate to 4%/day
ckoven Dec 19, 2023
53a6a44
merged main and resolved conflicts
ckoven Jul 19, 2024
636e003
read the grazing parameters
ckoven Jul 19, 2024
2b87e44
set all grazing_rate parameters to zero
ckoven Jul 24, 2024
c039964
compile-time bugfixes
ckoven Jul 25, 2024
e7b236b
added grazing carbon flux history variable
ckoven Oct 31, 2024
ac5bf38
add api37 parameter file and xml patch file
glemieux Jan 11, 2025
b3113b7
Merge tag 'sci.1.80.6_api.37.0.0' into grazing_merge
glemieux Jan 13, 2025
6fa3079
correct woody logic check
glemieux Jan 21, 2025
4b100b2
fix error to EDPhysiologyMod.F90 when nutrients are on
ckoven Jan 22, 2025
76225c9
Apply suggestions from code review
ckoven Jan 24, 2025
b619100
Apply suggestions from code review
ckoven Jan 27, 2025
da70f55
added herbivory flux to restart data
ckoven Jan 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
more grazing updates
ckoven committed Jul 11, 2023
commit 580df9e05ac7346a827485c5a68bc0d35917b7df
31 changes: 31 additions & 0 deletions biogeochem/FatesLandUseChangeMod.F90
Original file line number Diff line number Diff line change
@@ -29,6 +29,7 @@ module FatesLandUseChangeMod
public :: get_landuse_transition_rates
public :: get_landusechange_rules
public :: get_luh_statedata
public :: fates_grazing


! module data
@@ -298,4 +299,34 @@ subroutine CheckLUHData(luh_vector,modified_flag)

end subroutine CheckLUHData

!----------------------------------------------------------------------------------------------------

subroutine fates_grazing(prt, ft, land_use_label, hite)

use PRTGenericMod, only : leaf_organ
use PRTGenericMod, only : prt_vartypes
use PRTLossFluxesMod, only : PRTHerbivoryLosses

! apply grazing and browsing to plants as a function of PFT, height (for woody plants), and land use label.

class(prt_vartypes), intent(inout), pointer :: prt
integer, intent(in) :: ft
integer, intent(in) :: land_use-label
real(r8), intent(in) :: hite

real(r8) :: grazing_rate ! rate of grazing (or browsing) of leaf tissue [day -1]

grazing_rate = fates_landuse_grazing_rate(land_use_label) * fates_landuse_grazing_palatability(ft)

if ( grazing_rate .gt. 0._r8) then
if (woody(ft)) then
grazing_rate = grazing_rate * &
max(0._r8, min(1._r8, (fates_landuse_grazing_maxheight - hite*fates_allom_crown_depth_frac(ft)/(hite - hite*fates_allom_crown_depth_frac(ft)))))
endif

call PRTHerbivoryLosses(prt, leaf_organ, grazing_rate)
end if

end subroutine fates_grazing

end module FatesLandUseChangeMod
9 changes: 9 additions & 0 deletions main/EDParamsMod.F90
Original file line number Diff line number Diff line change
@@ -134,6 +134,7 @@ module EDParamsMod
character(len=param_string_length),parameter,public :: ED_name_history_coageclass_bin_edges = "fates_history_coageclass_bin_edges"
character(len=param_string_length),parameter,public :: ED_name_history_damage_bin_edges = "fates_history_damage_bin_edges"


! Hydraulics Control Parameters (ONLY RELEVANT WHEN USE_FATES_HYDR = TRUE)
! ----------------------------------------------------------------------------------------------
real(r8),protected,public :: hydr_kmax_rsurf1 ! maximum conducitivity for unit root surface
@@ -246,6 +247,14 @@ module EDParamsMod
! product pool (pprodharv10) of all woody PFT types
character(len=param_string_length),parameter,public :: logging_name_pprodharv10="fates_landuse_pprodharv10_forest_mean"

! grazing-related parameters
character(len=param_string_length),parameter,public :: ED_name_landuse_grazing_palatability = "fates_landuse_grazing_palatability"
character(len=param_string_length),parameter,public :: ED_name_landuse_grazing_rate = "fates_landuse_grazing_rate"
character(len=param_string_length),parameter,public :: ED_name_landuse_grazing_carbon_use_eff = "fates_landuse_grazing_carbon_use_eff"
character(len=param_string_length),parameter,public :: ED_name_landuse_grazing_maxheight = "fates_landuse_grazing_maxheight"
character(len=param_string_length),parameter,public :: ED_name_landuse_grazing_nitrogen_use_eff = "fates_landuse_grazing_nitrogen_use_eff"
character(len=param_string_length),parameter,public :: ED_name_landuse_grazing_phosphorus_use_eff = "fates_landuse_grazing_phosphorus_use_eff"

real(r8),protected,public :: eca_plant_escalar ! scaling factor for plant fine root biomass to
! calculate nutrient carrier enzyme abundance (ECA)

1 change: 1 addition & 0 deletions main/FatesParametersInterface.F90
Original file line number Diff line number Diff line change
@@ -38,6 +38,7 @@ module FatesParametersInterface
character(len=*), parameter, public :: dimension_name_hlm_pftno = 'fates_hlm_pftno'
character(len=*), parameter, public :: dimension_name_history_damage_bins = 'fates_history_damage_bins'
character(len=*), parameter, public :: dimension_name_damage = 'fates_damage_class'
character(len=*), parameter, public :: dimension_name_landuse = 'fates_landuseclass'

! Dimensions in the host namespace:
character(len=*), parameter, public :: dimension_name_host_allpfts = 'allpfts'
10 changes: 0 additions & 10 deletions parameter_files/fates_params_default.cdl
Original file line number Diff line number Diff line change
@@ -597,9 +597,6 @@ variables:
double fates_landuse_grazing_rate(fates_landuseclass) ;
fates_landuse_grazing_rate:units = "1/day" ;
fates_landuse_grazing_rate:long_name = "fraction of leaf biomass consumed by grazers per day" ;
double fates_landuse_pft_maxcancov(fates_landuseclass, fates_pft) ;
fates_landuse_pft_maxcancov:units = "area fraction" ;
fates_landuse_pft_maxcancov:long_name = "Maximum canopy coverage of each PFT in each land use class" ;
double fates_canopy_closure_thresh ;
fates_canopy_closure_thresh:units = "unitless" ;
fates_canopy_closure_thresh:long_name = "tree canopy coverage at which crown area allometry changes from savanna to forest value" ;
@@ -1462,13 +1459,6 @@ data:

fates_landuse_grazing_rate = 0.0, 0.0, 0.07, 0.07, 0.0 ;

fates_landuse_pft_maxcancov =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 1, 1, 1,
0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ;

fates_canopy_closure_thresh = 0.8 ;

fates_cnp_eca_plant_escalar = 1.25e-05 ;