Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

How to divide PHS hydraulic distribution by direction

Gamling Dang

gamlingdang
New Member
Dear staff:
I am using CLM5 (CESM2.2) to simulate soil water movement. The Plant Hydraulics Scheme mentioned in "Implementing Plant Hydraulics in the Community Land Model, Version 5" shows the detailed information about hydraulic redistribution. According to SoilWaterPlantSinkMod.F90:
do j = 1, nlevsoi
grav2 = z(c,j) * 1000._r8
temp(c) = 0._r8
do pi = 1,max_patch_per_col
if (pi <= col%npatches(c)) then
p = col%patchi(c) + pi - 1
if (patch%active(p).and.frac_veg_nosno(p)>0) then
if (patch%wtcol(p) > 0._r8) then
temp(c) = temp(c) + k_soil_root(p,j) &
* (smp(c,j) - vegwp(p,4) - grav2)* patch%wtcol(p)
endif
end if
end if
end do
qflx_rootsoi_col(c,j)= temp(c)

if (temp(c) < 0._r8) qflx_phs_neg_col(c) = qflx_phs_neg_col(c) + temp(c)
end do
Hydraulic redistribution occurs when smp(c,j) - vegwp(p,4) - grav2 <0. qflx_phs_neg_col and net qflx_rootsoi_col here should be the flux induced by hydraulic redistribution.
In the Supporting Information attached in "Implementing Plant Hydraulics in the Community Land Model, Version 5", there is a figure showing the upward and downward hydraulic redistribution. I want to know how to divide the qflx_phs_neg_col into upward and downward parts? Could anyone provide some suggestions? Thanks.
 

slevis

Moderator
Staff member
@Gamling Dang
I'm new to this piece of code, so you may end up with a better idea, but here are some initial thoughts:
- temp(c) seems to take the patch-level calculation to column-level, so you probably need to work at the patch-level.
- In the patch-level calculation I see
k_soil_root(p,j) * (smp(c,j) - vegwp(p,4) - grav2)
Here I'm guessing that "grav2" is part of the downward term. I don't know about the others off the top of my head, so you will need to figure that out.
- If you wish to add new variables to your history files, then your best bet is to see how existing history variables got added and then using them as templates.
 

Gamling Dang

gamlingdang
New Member
@Gamling Dang
I'm new to this piece of code, so you may end up with a better idea, but here are some initial thoughts:
- temp(c) seems to take the patch-level calculation to column-level, so you probably need to work at the patch-level.
- In the patch-level calculation I see
k_soil_root(p,j) * (smp(c,j) - vegwp(p,4) - grav2)
Here I'm guessing that "grav2" is part of the downward term. I don't know about the others off the top of my head, so you will need to figure that out.
- If you wish to add new variables to your history files, then your best bet is to see how existing history variables got added and then using them as templates.
Dear Slevis, thanks for your suggestion.
 
Top