-
Notifications
You must be signed in to change notification settings - Fork 92
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
Modified crown allometric spread logic #279
Changes from 8 commits
206df52
1788055
9b64aeb
cba6a07
e372f3a
75016e1
bd0b6c2
69ccb59
7c06feb
6d34a0c
06e3c88
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -225,14 +225,13 @@ real(r8) function c_area( cohort_in ) | |
! Function of DBH (cm) canopy spread (m/cm) and number of individuals. | ||
! ============================================================================ | ||
|
||
use EDParamsMod , only : ED_val_grass_spread | ||
use EDTypesMod , only : nclmax | ||
|
||
type(ed_cohort_type), intent(in) :: cohort_in | ||
|
||
real(r8) :: dbh ! Tree diameter at breat height. cm. | ||
real(r8) :: crown_area_to_dbh_exponent | ||
integer :: can_layer_index | ||
real(r8) :: spreadterm | ||
|
||
! default is to use the same exponent as the dbh to bleaf exponent so that per-plant canopy depth remains invariant during growth, | ||
! but allowed to vary via the allom_blca_expnt_diff term (which has default value of zero) | ||
|
@@ -244,9 +243,8 @@ real(r8) function c_area( cohort_in ) | |
write(fates_log(),*) 'z_area 2',EDPftvarcon_inst%max_dbh | ||
write(fates_log(),*) 'z_area 3',EDPftvarcon_inst%woody | ||
write(fates_log(),*) 'z_area 4',cohort_in%n | ||
write(fates_log(),*) 'z_area 5',cohort_in%patchptr%spread | ||
write(fates_log(),*) 'z_area 5',cohort_in%siteptr%spread | ||
write(fates_log(),*) 'z_area 6',cohort_in%canopy_layer | ||
write(fates_log(),*) 'z_area 7',ED_val_grass_spread | ||
end if | ||
|
||
dbh = min(cohort_in%dbh,EDPftvarcon_inst%max_dbh(cohort_in%pft)) | ||
|
@@ -260,15 +258,12 @@ real(r8) function c_area( cohort_in ) | |
! So we allow layer index exceedence here and force it down to max. | ||
! (rgk/cdk 05/2017) | ||
! ---------------------------------------------------------------------------------- | ||
|
||
can_layer_index = min(cohort_in%canopy_layer,nclmax) | ||
|
||
if(EDPftvarcon_inst%woody(cohort_in%pft) == 1)then | ||
c_area = 3.142_r8 * cohort_in%n * & | ||
(cohort_in%patchptr%spread(can_layer_index)*dbh)**crown_area_to_dbh_exponent | ||
else | ||
c_area = 3.142_r8 * cohort_in%n * (ED_val_grass_spread*dbh)**crown_area_to_dbh_exponent | ||
end if | ||
|
||
! apply site-level spread elasticity to the cohort crown allometry term | ||
spreadterm = cohort_in%siteptr%spread * EDPftvarcon_inst%allom_d2ca_coefficient_max(cohort_in%pft) + & | ||
(1._r8 - cohort_in%siteptr%spread) * EDPftvarcon_inst%allom_d2ca_coefficient_min(cohort_in%pft) | ||
! | ||
c_area = 3.142_r8 * cohort_in%n * (spreadterm * dbh)**crown_area_to_dbh_exponent | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. what is this constant? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. its kinda like pi but only has 4 significant figures. happy to switch to actual pi now that i've confirmed that it's bit for bit as it currently stands. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. interesting, that's the circle thing There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. which is itself slightly weird. I feel like that made more sense physically when the crown_area_to_dbh_exponent was 2 (as in the original PPA papers) but at this point its sort of an artifact. that term could easily be pulled into the allom_d2ca_coefficient but for simplicity I left as-is since doing so would change the dependency between allom_d2ca_coefficient and crown_area_to_dbh_exponent. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ok, so then would people prefer I subsume it into the default value of the allom_d2ca_coefficient given whatever default crown_area_to_dbh_exponent we are currently using? or leave as-is and make it a named pi? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. well, honestly my comment started off as a joke, but now I see where you are going. There is no math reflecting a circular form anymore, so the pi is somewhat misleading. imho, the precision on that pi specifically isn't important and everyone knows what 3.14 is. If you want to remove it and subsume in the parameter, up to you, I would see it as a bonus prize. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. actually, while doing this, i realize that its weird that this particular power law is written as There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. that comment got mangled by formatting, look at edited version There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. thanks. that makes it easier to understand the crown plasticity as just the ratio of the max:min terms rather than that ratio raised to some power. |
||
|
||
end function c_area | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So this is not really arealayer, but area of all upper canopy layers in the site.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
right, i guess i ought to rename it