Opened 11 years ago

Closed 2 years ago

#35 closed enhancement (wontfix)

Do we apply irrigation water to soil moisture of forests?

Reported by: mguimberteau Owned by: aducharne
Priority: major Milestone: Not scheduled yet
Component: Physical processes Version: trunc
Keywords: irrigation Cc:


Version: Trunk

Water from irrigation (computed in routing.f90) is applied to soil moisture. In hydrolc.f90, irrigation water is applied to the vegetated fraction for the PFT 2 to 13 (jv > 1).
hydrolc_soil (line 2548):

              IF ( jv > 1 ) THEN

                 ! Only add the irrigation to the upper soil if there is a reservoir.
                 ! Without this the water evaporates right away.
                 IF ( gqsb(ji,jv) > zero ) THEN
                    gqsb(ji,jv) = gqsb(ji,jv) + irrigation(ji)/(vegtot(ji)-tot_bare_soil(ji))
                    bqsb(ji,jv) = bqsb(ji,jv) + irrigation(ji)/(vegtot(ji)-tot_bare_soil(ji))

Why do we apply the irrigation water for the forest (for fruit trees? => negligible)? In Guimberteau's phD version, only the PFTs 10 to 13 (ie grassland and crops) were irrigated.

For the 11-layer hydrology in hydrol.f90, irrigation is applied on the three tiles.
(Tile 1 = frac_nobio and desert, Tile 2 = forest, Tile 3 = grassland & crops).
Why do we apply irrigation to tiles 1 and 2?

Irrigation should be only applied to PFTs 10 to 13 (hydrolc.f90) or to tile 3 (hydrol.f90).
The results may be very different if we concentrate irrigation water only on selected PFTs than all the PFTs of the grid-cell (not tested).

Change History (14)

comment:1 Changed 11 years ago by mguimberteau

If we consider that it is coherent to spread the irrigation water only over the PFTs from 10 to 13, I propose the following modifications which occur in hydrolc and hydrol modules.


The modification is very simple.
The condition occuring just before adding irrigation to soil moisture (cf 1st message)

IF ( jv > 1 ) THEN

should be substituted by:

IF ( jv > 9 ) THEN


The changes in the code of hydrol.f90 requires more caution because we have to take into account the vegetation split in soil tiles.

If we want to put water from irrigation only on crops and pastures, we should add this water only on soil tile 3.
The easiest and coherent way is to build a new variable called "irrigation_ns" with the same approach than the split of other variables such as ae_ns (bare soil evaporation), tr_ns (transpiration)... in hydrol_split_soil. But we add a condition

IF (jst .EQ. 3) THEN

in order to put all the irrigation water into the tile containing the PFTs 10 to 13.

DO jst=1,nstm
  DO ji=1,kjpindex
    IF (jst .EQ. 3) THEN
      IF (vegtot(ji) .GT. min_sechiba) THEN
        irrigation_ns(ji,jst)=irrigation_ns(ji,jst)+ irrigation(ji)/vegtot(ji)

Then we check if the deconvolution is correct and conserves the fluxes:

    IF (check_cwrr) THEN


       DO jst=1,nstm
          DO ji=1,kjpindex
             tmp_check4(ji)=tmp_check4(ji) + &
                  & irrigation_ns(ji,jst)* &
                  & soiltile(ji,jst)*vegtot(ji)
          END DO
       END DO

       DO ji=1,kjpindex
             tmp_check5(ji)=tmp_check5(ji) + irrigation(ji)
       END DO

       DO ji=1,kjpindex   
          IF(ABS(tmp_check4(ji)- tmp_check5(ji)).GT.allowed_err) THEN
             WRITE(numout,*) 'IRRIGATION SPLIT FALSE:ji=',ji,tmp_check4(ji),tmp_check5(ji)
             WRITE(numout,*) 'err',ABS(tmp_check4(ji)- tmp_check5(ji))
             WRITE(numout,*) 'vegtot',vegtot(ji)

             DO jst=1,nstm
                WRITE(numout,*) 'jst,irrigation_ns',jst,irrigation_ns(ji,jst)
                WRITE(numout,*) 'soiltile', soiltile(ji,jst)
             END DO
             CALL ipslerr(3, 'hydrol_split_soil', 'We will STOP after hydrol_split_soil.',&
                  & 'check_CWRR','IRRIGATION SPLIT FALSE')

       END DO

Then, irrigation_ns is put into infiltration (water2infilt) in hydrol_soil:

       ! First we substract from the surface
       DO ji = 1, kjpindex
          water2infilt(ji,jst) = water2infilt(ji,jst) + irrigation_ns(ji,jst) + reinfiltration_soil(ji) - water2extract(ji)

comment:2 Changed 11 years ago by jpolcher

Copied from mail on 28th of November by Sebastiaan.Luyssaert@…

I haven't looked into this part of the code but does your solution account for the fact that ORCHIDEE moves the soils that is not covered by vegetation to PFT1? So if you irrigate 1m2 of crop but the crop only covers 0.8 of that hectare (due to the LAI at that point in time), 0.2 will be moved to PFT1 to calculate the evaporation of the crop. Part of PFT1 should thus be irrigated. Right?

comment:3 Changed 11 years ago by jpolcher


you cannot do conditions on jv or jst based on values of these indices.

I would use the new variables added by Didier for the externalisation. Create a variable in constantes_mtc named is_irrigated_mtc. This should be FALSE on all PFTs except those irrigated.

Then when you loop through the jsts you have to detect if there is is_irrigated_mtc=TRUE and computes the irrigation_ns which corresponds.

Also please use the ipslerr function when you want to warn the user about errors or problems. This allows to standardise this more easily.

Else I think your modifications make sense.

comment:4 Changed 11 years ago by peylin

  • Owner changed from somebody to aducharne
  • Status changed from new to assigned

comment:5 Changed 11 years ago by aducharne

  • Status changed from assigned to accepted

comment:6 Changed 10 years ago by aducharne

At the ticket meeting of January 28th 2014, we decided to manage the PFTs that are irrigated by introducing a new flag, "is_irrigated", defined as "is_tree" with the number of PFTs as dimension.
This will allow the users defining exactly the PFTs they want to be irrigated.

Matthieu Guimberteau and Pierre Malassène are in charge of proposing the code for this modification, and their proposition will then be discussed by the ORCHIDEE group before being committed.

Caution is particularly required on the following points:

  • transpot must only account for the irrigated PFTs
  • clarify the case when irrigation is supplied but no PFT demand for irrigation in the grid-cell
  • with CWRR, irrigation is applied to soiltiles and not to PFTs; thus, if one PFT in a soiltile is irrigated, all the PFTs of this soiltile will profit from irrigation, even if they are declared as NOT irrigated. It will distribute the enhancement of transpiration and photosynthesis to all the PFTs of the soiltile, but in terms of mass budget, the total transpiration increase of the soiltile will be be controlled by the water demand from the irrigated PFT(s) of the soiltile.
  • note that the same applies with the Choisnel hydrology if soil moisture redistribution is allowed between the PFTs (default case)

comment:7 Changed 8 years ago by mguimberteau

I think we should update our propositions for the irrigation code in the new hydrology with the Phd student Xuhui Wang. He is working on the irrigation in the ORCHIDEE-CROP version of the model.

comment:8 Changed 7 years ago by aducharne

  • Owner changed from aducharne to mguimberteau
  • Status changed from accepted to assigned

comment:9 Changed 6 years ago by mguimberteau

  • Milestone changed from ORCHIDEE 2.0 to ORCHIDEE 3.0

comment:10 Changed 5 years ago by mguimberteau

  • Milestone changed from ORCHIDEE 3.0 to ORCHIDEE 4.0
  • Type changed from defect to enhancement

comment:11 Changed 4 years ago by luyssaert

  • Milestone changed from ORCHIDEE 4.0 to Not scheduled yet
  • Version set to trunc

comment:12 Changed 2 years ago by jgipsl

  • Owner changed from mguimberteau to aducharne

We propose to close this ticket as "wont fix" due to the last comment done by Mathieu.
Philippe P., Josefine

comment:13 Changed 2 years ago by aducharne

Pedro Arboleda is developping a new routing parametrization which is easily compatible with branch 2.2. The first results are very promising. Irrigation is only applied in the "crop/grassalnd" soiltile for the moment (so irrigated orchards are not possible). We plan that the code can be committed in a few months. The transfer to the trunk should be straightforward.

comment:14 Changed 2 years ago by aducharne

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