Opened 8 years ago

Closed 7 years ago

#191 closed enhancement (fixed)

Simplification of hydrol_soil

Reported by: aducharne Owned by: aducharne
Priority: major Milestone: IPSLCM6.v1
Component: Physical processes Version:
Keywords: Cc:


Working on water conservation issues this summer (see ticket, I've tested simplications of hydrol which do not seem to alter ORCHIDEE's behavior.

You can find these changes in the attached hydrol_simpler.f90, with important explanations in the attached README file.

-- Agnès

Attachments (6)

hydrol_simpler.f90 (309.4 KB) - added by aducharne 8 years ago.
README (3.0 KB) - added by aducharne 8 years ago.
Test_hsimple.pdf (903.1 KB) - added by aducharne 7 years ago.
Test_hsimple_v3.pdf (780.6 KB) - added by aducharne 7 years ago.
Test_hsimple_v4.pdf (230.6 KB) - added by aducharne 7 years ago.
FG2.hsv4.freeze.png (55.2 KB) - added by aducharne 7 years ago.

Change History (14)

Changed 8 years ago by aducharne

Changed 8 years ago by aducharne

comment:1 Changed 8 years ago by aducharne

All the code conditionned by check_cwrr in hydrol_soil will need to be verified if we apply the above changes, because the meaning of some variables is changed.

Most of check_waterbal can probably be replaced by test on twbr (see Ticket #188) + write(numout,*) and CALL ipslerr_p

comment:2 Changed 7 years ago by aducharne

Evolutions since September 2015:

  • taking into account the comments on hydrol_simple.f90 by P Maugis, C Ottlé, F. Maignan
  • merging to the trunk on December 17, 2015
  • further changes in January-Frebruary 2016, in tight link with FM, CO and I Gouttevin
    • further simplification of surface runoff calculation (direct calculation, not anymore defined as a water budget residu)
    • addition of water conservation checks at the main integration phases
    • water table depth features from IGEM
    • verification of everything related to ok_freeze (among other points, us_temp does not depend anaymore on mcl and profil_froz_hydro)
    • consistent comments (for Doxygen doc)

Merged to the trunk [r3297] on March 10, 2016 by JG and AD, in a dedicated branch, for tests:

  • the benchmarking by JG went OK
  • several 10-yr simulations were perfomed for test
  • see next comment for the analysis
Last edited 7 years ago by aducharne (previous) (diff)

Changed 7 years ago by aducharne

comment:3 Changed 7 years ago by aducharne

The results show that hydrol_simple has larger conservation problems than the present trunk, with and without ok_freeze. Apart from that, the results are very similar.
There are also pbs with ok_freeze (not caused by hydrol_simple, but inherited: larger water conservation pbs + weird bands on some water related variables, but not related to snow).
See analysis on

What is left to do:

  • solving the water conservation problem, and ok_freeze pbs
  • committing
  • closing tickets #195 and #164 on vertical discretization and remaining issues with diaglevs
Last edited 7 years ago by aducharne (previous) (diff)

Changed 7 years ago by aducharne

Changed 7 years ago by aducharne

comment:4 Changed 7 years ago by aducharne

After a careful check of hsimple against the trunk and my version for the IGEM project, I now think that :

  • the conservation problems of hsimple exist in the trunk, but are hidden by unconservative corrections
  • these problems come from numerical errors in the solution of the Richards equation (tridiag) when the soil is saturated or close
  • the simulations made for IGEM have a better conservation because they have a lower soil moisture (correction of oversaturation that removes the excess out of the soil; Van Genuchten parameters a and n that do not change with depth; different meteorological forcing; and maybe also owing to the 12 textures)

Details in

comment:5 Changed 7 years ago by aducharne

The latest tests have confirmed the above analysis:

  • the TWBR is decreased by a factor 3 if you eliminate the oversaturation from the soil column as runoff instead of keeping it with the "smooth" routine,
  • it is decreased by another factor 3 if you reduce the integration time step from 30 to 5 minutes.

Since establishing a rigourous and efficient solution to the above numerical errors is not straightforward, it was decided at the last ORCHIDEE meeting (12/04/2016) to correct them by transferring the error to the drainage flux. Since the errors occur when the drainage is very high (because the soil is close to saturation), it should not lead to further problems, but savegards will be implemented.

Changed 7 years ago by aducharne

comment:6 Changed 7 years ago by aducharne

The above solution has been coded and works.

Yet, we still have pbs if ok_freeze=y:
1) We keep a very high TWBR, which seems to be related to very high values of the snow mass (see If these areas contain nobio fractions, it may come from icemelt, which should be weighted by tot_fracnobio, and is not. But if we map nobio, we get zero everywhere...? Is there another pb related to explicit_snow?

2) There are horizontal bands (along the parallels) for soil moisture and evapnu. It might be due to a pb with the variable is_under_mcr, which is used to set evapnu to zero if the soil moisture is under the residual value, but with a pb of index when we calculate evap_bare_lim_ns, since the value of soiltile 3 is used for all 3 soiltiles... To be checked.

3) Another possibility of the bands might relate to mcl_lay, which in one instance receives mc instead of mcl (also true in the trunk).

Last edited 7 years ago by aducharne (previous) (diff)

comment:7 Changed 7 years ago by aducharne

With Josefine, we've checked the above corrections, including the addition of mcl in the restart file (restput/restget), after an update towards rev3348.

The results are very satisfying:

  • without ok_freeze, the water conservation is excellent and the differences with r3348 are much than 1% for the main water fluxes
  • with ok_freeze and ok_explicit_snow, the water conservation si excellent (-7e-6 mm/d on land average), including in the high latitudes; the differences with r3348 are very small (-0.33% for evap, -5% for surface runoff and humtot; -3% for drainage); and we don't see any bands in evapnu and humtot
  • with ok_freeze, and the "old" snow, there are huge water conservation pbs in areas with a lot of snow, and bands for evapnu and humtot

This version will be committed. As a brief reminder, it mostly includes changes to hydrol_soil:

  • many simplifications regarding the order of the processes
  • suppression of useless parts, and abusive water conservation patches
  • new diagnostics of water conservation for the main processes
  • the diffusion, as solved by tridiag, creates water conservation violations, that are diagnosed and reported to drainage
  • separation of hydrol_soil_smooth in two separate subroutines for over_saturation and under_residual
  • the case of over_saturation is no more treated with a smoothing that keeps the excess in the soil, but the corresponding excess is discarded as runoff (either surface runoff or drainage, depending on ok_freeze and free_drain_coef)
  • careful check of the diagnostic and use of mcl and mc when ok_freeze
Last edited 7 years ago by aducharne (previous) (diff)

comment:8 Changed 7 years ago by aducharne

  • Resolution set to fixed
  • Status changed from new to closed

Commit done in r3402.

Note: See TracTickets for help on using tickets.