Skip to content

eCLM-ParFlow: Calculate hydraulic conductivity based on ParFlow's water content - #129

Draft
s-poll wants to merge 5 commits into
masterfrom
dev-eclm-parflow-hkl
Draft

eCLM-ParFlow: Calculate hydraulic conductivity based on ParFlow's water content#129
s-poll wants to merge 5 commits into
masterfrom
dev-eclm-parflow-hkl

Conversation

@s-poll

@s-poll s-poll commented Aug 18, 2026

Copy link
Copy Markdown
Member

Problem

In ParFlow-coupled simulations (soilwater_movement_method = 4, -DCOUP_OAS_PFL) the soil hydraulic conductivity hk_l_col stays at its cold-start value of 0._r8 for the whole run, and is written as zero into the restart file.

Because the soil-to-root conductance in the plant-hydraulic-stress scheme is derived from hk_l

! PhotosynthesisMod.F90:2841
soil_conductance = min(hksat(c,j),hk_l(c,j))/(1.e3*r_soil)

a zero hk_l makes the soil-to-root pathway infinitely resistive: roots cannot extract water, canopy transpiration collapses to almost zero over the whole domain and latent heat flux is strongly underestimated. hk_l is also used by the VIC-type drainage weighting in Drainage/LateralFlowPowerLaw and is the HK history field, so both are meaningless in coupled runs.

Root Cause

hk_l_col is only ever assigned in soilwater_zengdecker2009 and in compute_hydraulic_properties (called from soilwater_moisture_form), not in a coupled simulation: soilwater_parflow.

Solution

Recompute hk_l inside soilwater_parflow from the ParFlow water content using the same formulation as in the standalone model (compute_hydraulic_properties), so that the definitions of hydraulic conductivity in the coupled and standalone runs are the same.

In addition, ice fraction is refreshed from the capped h₂osoi_ice before the impedance is evaluated. ice_frac is last set in 'Infiltration', i.e. before the ice limiter that 'soilwater_parflow' applies when partitioning the ParFlow total water. This means that the impedance would otherwise be based on an outdated ice fraction.

Scope of the change:

  • Only soilwater_parflow is touched
  • smp_l handling is unchanged (still taken from the ParFlow pressure head).

Related Issues

s-poll added 5 commits August 12, 2026 07:43
avoid spamming in log file, thereby improve performance
- ParFlow has no ice phase, thus pfl_h2osoi_liq is the total soil water. Cap the diagnosed ice content and take the remaining as liquid.
…er content

- bugfix: before hk_l was never set for soil water movement method 4, value was the initial value =0 all time
- recompute hk_l from ParFlow water content similar to standalone eCLM
- see details in #128
- icefrac was last set in infiltration, so the ice impedance in hk_l used a stale value
- refresh icefrac from the capped h2osoi_ice, as in Infiltration
@s-poll s-poll added the coupled-parflow Issues related to eCLM-ParFlow coupling label Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

coupled-parflow Issues related to eCLM-ParFlow coupling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

eCLM-ParFlow: hk_l is never computed resulting in suppressed transpiration

1 participant