Opened 4 years ago

Last modified 7 months ago

#416 new enhancement

Foreseen simplifications regarding the soil texture

Reported by: aducharne Owned by: aducharne
Priority: minor Milestone: ORCHIDEE_2_2
Component: Physical processes Version: trunc
Keywords: Cc:


In the present version of the code (CMIP6v1), soil texture is defined along two systems:

  • granolumetric composition (or particle size ditribution, PSD) = % of clay/sand/silt particles (related dimension = ntext = 3)
  • texture class, with either 3 textures if we read the Zobler map, or 12 if we read the USDA map (related dimension = nscm)

In many places, there is an amiguity between the three particle sizes (clay/sand/silt) and the three texture classes "of Zobler" (Clay/Sand/Loam?).

Since the 3 texture classes of Zobler are a sample of the 12 USDA classes, I propose the following simplifications:

  • remove the zobler parameters and replace them by a pointer from the 3 Zobler classes to the three corresponding USDA classes (1,2,3) => (3,6,9)
  • change the definition of soil texture by external keywords (if IMPVEG and IMPSOIL = TRUE): presently, the 3-element vector for SOIL_FRACTIONS must contain the areal fraction of the three texture classes "of Zobler" (Clay/Sand/Loam?) in the grid-mesh, and the largest areal fraction defines the dominant texture that is used over the whole domain. It is proposed to replace it by the granulometric composition, so we can force any USDA texture class. In addition, it permit to ensure that the clayfraction is always consistent with the soil texture.

These changes should be implemented when also preparing the model to use alternative soil maps for SP-MIP.

Change History (8)

comment:1 Changed 4 years ago by aducharne

  • Milestone changed from ORCHIDEE 3.0 to ORCHIDEE 4.0

comment:2 Changed 2 years ago by aducharne

Other improvements can also be proposed quite readily:
1) reading soil maps describing the texture based on the particle size ditribution (%clay, %sand, %silt). This is linked to the simplification of IMPSOIL, and would rely on a function that I have widely tested in other contexts;
2) calculate the field capacity and wilting point directly in ORCHIDEE, based on the other soil parameters (useful if you change these paarmeters, espcailly when doing automatic sensitivity tests or optimization)

comment:3 Changed 2 years ago by luyssaert

  • Milestone changed from ORCHIDEE 4.0 to Not scheduled yet

comment:4 Changed 8 months ago by aducharne

The first part is done in r7337 of branch 2.2: all the soil parameters (hydraulic and thermic) are now defined based on the 13-USDA vectors, and the link with the Coarse/Medium/Fine? values of the Zobler map is done by a new pointer fao2usda. Tests with 5d simulations show no change but over Greenland (class 6=ice in Zobler map, translated as "no data"). This has been corrected in r7338.

Further steps:

  1. Check behavior with xios_interpolation
  2. Calculate field capacity and wilting point (mcfc and mcw) instead of reading them (important for calibration)
  3. Suppress Impsoil (prescribing a uniform soil texture is already possible owing to Salma's developments finalized in r7239) but allow to redefine all soil parameters (5 VG hydraulic parameters + two thermal parameters qz and so_capa_dry_ns) in run.def by 13-value vectors
  4. We may also include a new way to read soil texture from maps of (%clay, %sand, %silt)
  5. Finally, should we keep the soil map processing by both XIOS and IOIPLS in slowproc_soilt, which makes the code quite heavy...
  6. Should we keep the "none" option, used as "zobler" in the soil texture map classification cases?
Last edited 8 months ago by aducharne (previous) (diff)

comment:5 Changed 8 months ago by aducharne

The calculation of field capacity and wilting point in slowproc_soilt (point 2 above) is effective in r7339 (branch 2_2).

comment:6 Changed 8 months ago by aducharne

  • Milestone changed from Not scheduled yet to ORCHIDEE_2_2

comment:7 Changed 7 months ago by aducharne

Revision r7339 crashes with option XIOS_INTERPOLATION = y (the default is n).
The problem happens in slowproc_xios_initialize, which asks to read
The corersponding part has been introduced by Salma, but a test is probably missing to prevent from asking this file when not needed.

comment:8 Changed 7 months ago by aducharne

With r7375, the model does not crash anymore if XIOS_INTERPOLATION = y.
In this case, however, it shows a weird behavior, but this dates back to before Salma's changes. See ticket #812.

Note: See TracTickets for help on using tickets.