-
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
variable soil depth compatibility with CLM5 #381
Conversation
… defined quantity bc_in(s)%nlevsoil. Part-way through converting decomposition stuff.
biogeochem/FatesAllometryMod.F90
Outdated
! These are public contexts that other routines | ||
! should pass as arguments to the generic root profile | ||
! wrapper. | ||
integer, parameter, public :: i_hydro_rootprof_context = 1 |
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.
Maybe a few comments on what are these parameter refer to will be useful for the understanding of the codes. What is 1 and 2 means too?
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.
great, will add
biogeochem/FatesAllometryMod.F90
Outdated
! PROFILE SWAPPING FLAGS. OR IF THERE IS NO DEMAND< LEAVE AS IS. | ||
! | ||
! | ||
! Two context exist 'hydraulic' and 'biomass' |
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.
a little more explanation what is hydraulic and biomass context represents will be useful
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.
We need to incorporate this new root distribution into the hydraulic codes......
@xuchongang In the previous version, we had a pre-defined number of rooting layers. nlevsoi_hyd, and it was set to 10 I think by default. Note that now I changed it to nlevsoi_hyd_max. Question, what is the reasonable range of values that this should take? I can tell in the code that this allows us to also specify a single root layer, ie nlevsoi_hyd_max = 1. But, what if there are 20 soil layers? The default with clm5 on the 1x1_brazil compset generated 20 soil layers (above bedrock). Do you still want to specify roots in only the first 10, or would you rather just specify two modes, ie single layer vs however many soil layers exist? Note on line 406, I'm not sure what to specify here, the arrays are not necessarily the same length. https://github.com/NGEET/fates/blob/master/biogeophys/FatesPlantHydraulicsMod.F90#L406 I think the two arrays should be indexed by (1:nlevsoi_hyd) (which is the minimum of nlevsoi_hyd_max and the number of soil layers). EDIT: Regarding line 406.. But for setting z_node_aroot in the trivial case of nlevsoi_hyd=1, does z_node_aroot go to the lowest soil layer? |
Also, @xuchongang , it looks like we are re-constructing the rooting profile in hydraulics, I should have hydraulics call the new rooting profile function that is used in other parts of the code. https://github.com/NGEET/fates/blob/master/biogeophys/FatesPlantHydraulicsMod.F90#L317 EDIT: For instance, Could we add zeng_2001 to the list of root profiles: And then modify your bisection function to work on the resulting normalized depth profile? UPDATE: Wait, is the zeng_2001 a depth function, or a function on the rhizosphere radial axis? |
Ryan,
That is correct. I think we need make a new issue and update this with
the new rooting profile.
Yours
Chonggang
…On Wed, May 23, 2018 at 1:13 PM, Ryan Knox ***@***.***> wrote:
Also, @xuchongang <https://github.com/xuchongang> , it looks like we are
re-constructing the rooting profile in hydraulics, I should have hydraulics
call the new rooting profile function that is used in other parts of the
code.
https://github.com/NGEET/fates/blob/master/biogeophys/
FatesPlantHydraulicsMod.F90#L317
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#381 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AH2Yx_jWwpqjCwDiZsWEPgbIjkn9EGtmks5t1bTTgaJpZM4T8MSj>
.
|
Ryan,
1:nlevsoi_hyd is good one line 406. We need to fix this for the HYDRO
simulation. We may also want to increase the nlevsoi_hyd_max to 20. For
code consistence, we want to pass the number of maximum soil layer from the
host model.
Yours
Chonggang
…On Wed, May 23, 2018 at 1:01 PM, Ryan Knox ***@***.***> wrote:
@xuchongang <https://github.com/xuchongang> In the previous version, we
had a pre-defined number of rooting layers. nlevsoi_hyd, and it was set to
10 I think by default. Note that now I changed it to nlevsoi_hyd_max.
Question, what is the reasonable range of values that this should take?
I can tell in the code that this allows us to also specify a single root
layer, ie nlevsoi_hyd_max = 1.
But, what if there are 20 soil layers? The default with clm5 on the
1x1_brazil compset generated 20 soil layers (above bedrock). Do you still
want to specify roots in only the first 10, or would you rather just
specify two modes, ie single layer vs however many soil layers exist?
Note on line 406, I'm not sure what to specify here, the arrays are not
necessarily the same length.
https://github.com/NGEET/fates/blob/master/biogeophys/
FatesPlantHydraulicsMod.F90#L406
I think the two arrays should be indexed by (1:nlevsoi_hyd) (which is the
minimum of nlevsoi_hyd_max and the number of soil layers).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#381 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AH2Yx9S4zZoAAecSqwXjdPYYwza3P2wRks5t1bIWgaJpZM4T8MSj>
.
|
ok, the more I look at the code, I can see that there are not so trivial differences between how your hydraulics assesses roots and how the other schemes in fates do it. Lets make an issue and address in a later set of changes. |
Regarding z_node_aroot.... how about the 1 layer case? Should z_node_aroot be set to the depth of the soil column, or the depth of the first layer?
Does that look right? |
…dr%z_node_aroot in plant hydraulics with new soil depth system
Ryan and I had a phone conversaion. For the case nlevsoi_hyd == 1, this is related to the total soil depth that the soil can reach to. The current code is OK but need to further improvement for this case that nlevsoi_hyd == 1. |
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.
Ryan and I identify some potential improvement on the hydraulic side: 1) make the root distribution constistent across the code; 2) improve the special case for one soil layers.
…alue, added code that checks to make sure it is larger than number of soil layers.
Description:
THIS IS A BACKWARDS INCOMPATIBLE CHANGE, WILL REQUIRE UPDATES IN HOST. WILL INCREMENT API TAG TO 4.0.0
CLM5 introduced variable soil depths at the column level. Thus, we need to pass these depths into fates at the site level, and modify usage of arrays dictated by this depth accordingly. This also affected the decomposition depth.
Collaborators:
Expectation of Answer Changes:
There may be some round-off differences just because code was moved around, but differences should be small.
Checklist:
Test Results:
All PASS