Opened 2 years ago

Closed 17 months ago

#715 closed enhancement (fixed)

Use a consistent root profile across all subroutines

Reported by: luyssaert Owned by: luyssaert
Priority: minor Milestone: ORCHIDEE 4.1
Component: Physical processes Version: trunc
Keywords: Cc:

Description

For the moment a rootprofile is (re)calculated in several routines under different variable names, i.e., root_dens and nroot. Related variables/parameters are rpc, humcste, and rprof. All subroutines using humcste seems to make use of the same equations.

Problem: In hydraulic architecture the arbitrary exponential root profile is used to calculate the resistance between the soil and roots. It has been observed that ORCHIDEE experiences water stress because the roots are located in the top soil layers whereas the water is located in the bottom soil layers. Plant evolution dictates that if this is a stable conditions, successful plants will be able to access the deeper water. Therefore root profiles are expected to be partly driven by the soil water distribution.

Available solution
In hydrol.f90 an alternative root profile was code (ok_dynroot) by Dan Zhu (this seemed to improve some aspects of the models). The instantaneous vertical distribution of soil water determines the root profile (and vice versa due to transpiration). Although this approach is supported by literature (Fan et al. 2017 doi/10.1073/pnas.1712381114) and it is what we would need in hydraulic_arch, the instantaneous character of the profile makes it probably a bit too dynamic.

Considerations

  • An improvement could be to calculate and use the average 3-year root profile (exact length should be based on longivety_root) based on the vertical soil water distribution at t=48 for each day when plant_status = icanopy. Soil water is calculated every half hour, in theory we could update the root profile every half hour but that seems to be excessive.
  • The root profile could be calculated in a separate subroutine to avoid duplication of the code and the current diversity of variable names for the same information. This subroutine could allow two different ways to calculate the root profile: humcste (= exponential profile) and ok_dynroot (=Dan Zhu, MICT). The root profile could then be passed through the code to ensure the same profile is used throughout ORCHIDEE.
  • Ok_dynroot uses only liquid water, hydraulic_architecture uses liquid and frozen water. Given the focus on the growing season, liquid water seems the better choice.
  • Ok_dynroot makes use of sm and smw. These variables has been labelled soil moisture in kg/m2 and soil moisture at each layer at wilting point also in kg/m2. Hydraulic_architecture makes use of swc which leaves hydrol_main as mc_out and is calculated in hydrol.f90 based on mc (m3/m3). mc is used to calculate smt (total soil water thus liquid + ice) and mcl is used to calculate sm (liquid only). Given one variable can be calculated from the other this seems not very important.
  • The most important seems to be the difference in the dimensions of the variables: the dimensions of sm variables are kjpindex,nslm the dimension of the mc variables are kjpindex,nslm,nst. For the application we have in mind a different root profile for each soil tile (nst) seems desirable. Note that the difference in dimensions reflect the spatial scale of the model but it is not clear at which scale one approach (tile vs pixel) would be really prefered above another.

First task. A dynamic root profile will be added to evaluate its impact. Based on the impact it could be decided to go for a cleaner and more coherent implementation.

Possible subsequent tasks:

  • rewrite the current code with a subroutine that calculates the exponential root profile. Check whether the results change.
  • add an alternative way of calculating the root profile following ok_dynroot.
  • check whether the dynamic root profile is not in conflict with its individual applications. Current concern is its use in kfact_root where the equation has been tuned to reproduce the HAPEX results by making use of an exponential profile. If the profile changes a lot (more roots in deeper layers in for example the temperate zone) kfact_root could go crazy. This needs to be checked.
  • add the mean root profile to the restart files
  • test age class distribution and land cover change with a dynamic root profile.

Change History (3)

comment:1 Changed 2 years ago by luyssaert

First task: A dynamic root profile will be added to evaluate its impact. Based on the impact it could be decided to go for a cleaner and more coherent implementation. A dynamic root profile and an alternative way to calculate psi_soilroot were committed in r6824. The impact of these changes on water stress appeared rather small for a 30 year run over Europe and Africa. See here. Irrespective of whether a static or a dynamic root profile is to be used, the code would benefit from a consistent approach.

Rewrite the current code with a subroutine that calculates the exponential root profile. The static root profile calculated in hydrol.f90 set the share of roots in the top layer to zero. In the different stomate routines, the top layer contained some roots (very little because it is a very thin layer). The depth of the root profile was set in ok_soil_discretization but not in the calculation of kfact_root. When now using a single consistent root profile throughout ORCHIDEE, the results are therefore not identical but very similar to previous versions with some inconsistencies. A consistent root profile has been committed in r7149. Nevertheless, in ok_soil_carbon_discretization there are several options concerning how the depth of the soil processes is accounted. When using these options, the current root profile and rooting depth should be checked again.

Test age class distribution and land cover change with a static root profile. The root_profile and root_depth does not depend on variables that are affected by age classes and or land cover change. The current approach in which the profiles are calculated every half hour does not require additional code in sapiens_lcchange.

Add the root profile to the restart files. In r7149 the variable root_profile is read and written to the restart files. This is required because hydrol.f90 where the profile is calculated is called after hydraulic_architecture where the profile is used a first time. By adding root_profile to the restart files hydraulic architecture has a root_profile throughout a simulation. It is also necessary to ensure restartability (1+1=2).

Add an alternative way of calculating the root profile following ok_dynroot. The ok_dynroot flag was replaced by the idea that the model always calculates two profiles: a structural and a functional profile. These profiles are used in the calculation of different processes.

Check whether the dynamic root profile is not in conflict with other applications. Current concern is its use in kfact_root. This needs to be checked. the calculation of kfact_root assumed that roots were present down to 2 meters (the deepest layer for which hydrology is calculated). In r7149 kfact_root is adjusted only for the layers where roots are present.

Last edited 17 months ago by luyssaert (previous) (diff)

comment:2 Changed 17 months ago by luyssaert

  • Owner changed from somebody to luyssaert
  • Status changed from new to accepted

comment:3 Changed 17 months ago by luyssaert

  • Resolution set to fixed
  • Status changed from accepted to closed
Note: See TracTickets for help on using tickets.