Changeset 8320


Ignore:
Timestamp:
2023-11-27T11:40:01+01:00 (6 months ago)
Author:
josefine.ghattas
Message:

Integrated changes done in [8289] : New default Values for irrig param, root zone def based on user-def depth.

See also ticket #857

Location:
branches/ORCHIDEE_2_2/ORCHIDEE
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/ORCHIDEE_2_2/ORCHIDEE/src_parameters/constantes.f90

    r8273 r8320  
    894894    !Config Desc  = The maximum irrigation water injected per hour (kg.m^{-2}/hour) 
    895895    !Config If    = DO_IRRIGATION AND old_irrig_scheme = FALSE 
    896     !Config Def   = 1. 
     896    !Config Def   = 3. 
    897897    !Config Help  = 
    898898    !Config Units = [kg.m^{-2}/hour] 
    899899    CALL getin_p('IRRIG_DOSMAX',irrig_dosmax) 
    900900 
    901     !Config Key   = CUM_NROOT_THR 
    902     !Config Desc  = Cumulated nroot threshoold to define root zone, and calculate water deficit for irrigation 
    903     !Config If    = DO_IRRIGATION AND old_irrig_scheme = FALSE 
    904     !Config Def   = 0.90 
     901    !Config Key   = CUM_DH_THR 
     902    !Config Desc  = Threshold depth to define root zone, and calculate water deficit for irrigation 
     903    !Config If    = DO_IRRIGATION=y AND OLD_IRRIG_SCHEME=n 
     904    !Config Def   = 0.64 
    905905    !Config Help  = 
    906     !Config Units = [] 
    907     CALL getin_p('CUM_NROOT_THR',cum_nroot_thr) 
     906    !Config Units = [m] 
     907    CALL getin_p('CUM_DH_THR',cum_dh_thr) 
    908908 
    909909    !Crop irrigation 
     
    938938    !Config Desc  = Max. fraction of routing reservoir volume that can be used for irrigation 
    939939    !Config If    = DO_IRRIGATION and old_irrig_scheme = FALSE 
    940     !Config Def   = 0.9,0.0,0.9 
     940    !Config Def   = 0.9,0.9,0.9 
    941941    !Config Help  = 
    942942    !Config Units = [] 
     
    947947    !Config Desc  = Threshold multiplier of Target SM to calculate root deficit 
    948948    !Config If    = DO_IRRIGATION and old_irrig_scheme = FALSE 
    949     !Config Def   = 1. 
     949    !Config Def   = 0.9 
    950950    !Config Help  = 
    951951    !Config Units = [] 
     
    10011001    !Config Desc  = DO_IRRIGATION 
    10021002    !Config If    = DO_IRRIGATION = T 
    1003     !Config Def   = zero 
     1003    !Config Def   = 0.05  
    10041004    !Config Help  = 
    10051005    !Config Units = [FRACTION 0-1] 
  • branches/ORCHIDEE_2_2/ORCHIDEE/src_parameters/constantes_var.f90

    r8273 r8320  
    501501 ! Parameters for irrigation scheme 
    502502 ! 
    503   REAL(r_std), SAVE :: irrig_dosmax = 1.              !! The maximum irrigation water injected per hour (kg.m^{-2}/hour) 
     503  REAL(r_std), SAVE :: irrig_dosmax = 3.              !! The maximum irrigation water injected per hour (kg.m^{-2}/hour) 
    504504!$OMP THREADPRIVATE(irrig_dosmax) 
    505   REAL(r_std), SAVE :: cum_nroot_thr = 0.90           !! Cumulated nroot threshoold to define root zone, and calculate water deficit for irrigation (-) 
    506 !$OMP THREADPRIVATE(cum_nroot_thr) 
     505  REAL(r_std), SAVE :: cum_dh_thr = 0.64                !! Cumulated nroot threshoold to define root zone, and calculate water deficit for irrigation (-)  
     506!$OMP THREADPRIVATE(cum_dh_thr)  
    507507  LOGICAL, SAVE :: irrigated_soiltile = .FALSE.       !! Do we introduce a new soil tile for irrigated croplands? (true/false) 
    508508!$OMP THREADPRIVATE(irrigated_soiltile) 
     
    511511  INTEGER, SAVE :: irrig_st = 3                       !! Which is the soil tile with irrigation flux 
    512512!$OMP THREADPRIVATE(irrig_st) 
    513   REAL(r_std), SAVE, DIMENSION(3) :: avail_reserve = (/0.9,0.0,0.9/)     !! Available water from routing reservoirs, to withdraw for irrigation 
     513  REAL(r_std), SAVE, DIMENSION(3) :: avail_reserve = (/0.9,0.9,0.9/)     !! Available water from routing reservoirs, to withdraw for irrigation 
    514514                                                      !! IMPORTANT: As the routing model uses 3 reservoirs, dimension is set to 3 
    515515                                                      !! IMPORTANT: Order of available water must be in this order: streamflow, fast, and slow reservoir 
    516516!$OMP THREADPRIVATE(avail_reserve) 
    517   REAL(r_std), SAVE :: beta_irrig = 1.                !! Threshold multiplier of Target SM to calculate root deficit(unitless) 
     517  REAL(r_std), SAVE :: beta_irrig = 0.9               !! Threshold multiplier of Target SM to calculate root deficit(unitless) 
    518518!$OMP THREADPRIVATE(beta_irrig) 
    519519  REAL(r_std), SAVE :: lai_irrig_min = 0.1            !! Minimum LAI to trigger irrigation (kg.m^{-2}/hour) 
     
    528528                                                      !! Max value of reinf_slope in irrig_st   
    529529!$OMP THREADPRIVATE(reinf_slope_cropParam) 
    530   REAL, SAVE :: a_stream_adduction = zero             !! Externalized for available volume to adduction 
     530  REAL, SAVE :: a_stream_adduction = 0.05             !! Externalized for available volume to adduction 
    531531!$OMP THREADPRIVATE(a_stream_adduction) 
    532532 
  • branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90

    r7983 r8320  
    27502750    INTEGER(i_std)                                      :: iiref           !! To identify the mc_lins where k_lin and d_lin 
    27512751                                                                           !! need special treatment 
    2752     REAL(r_std), DIMENSION (kjpindex,nvm)               :: cum_nroot       !! local variable to acummulate nroot 
    2753     INTEGER(i_std), DIMENSION (kjpindex,nvm)            :: nslm_pft_root   !! Deeper layer with cum_nroot > cum_nroot_thr per PFT, 
     2752    REAL(r_std)                                         :: cum_dh          !! Depth to bottom layer  
     2753    INTEGER(i_std)                                      :: nslm_root_tmp   !! Temporal, deeper root zone soil layer  
    27542754    REAL(r_std), DIMENSION (kjpindex,nslm)              :: smf             !! Soil moisture of each layer at field capacity 
    27552755                                                                           !!  @tex $(kg m^{-2})$ @endtex 
     
    29062906    !! 2 Compute the root density profile if not ok_dynroot 
    29072907    !!   For the case with ok_dynroot, the calculations are done at each time step in hydrol_soil 
    2908     cum_nroot(:,:) = zero 
    2909     nslm_pft_root(:,:) = nslm 
     2908    cum_dh = zero 
    29102909    nslm_root(:) =  nslm 
     2910    nslm_root_tmp = nslm  
     2911    DO jsl =1, nslm  
     2912       IF( ( cum_dh ) < cum_dh_thr*mille) THEN   
     2913          cum_dh = cum_dh + dh(jsl)  
     2914          nslm_root_tmp = jsl  
     2915       ENDIF  
     2916    ENDDO  
     2917 
     2918 
    29112919    IF (.NOT. ok_dynroot) THEN 
    2912        !! Calculation of nroot and of new nslm_root for irrigation  
     2920       !! Calculation of nroot  
    29132921       !! The three following equations concerning nroot computation are derived from the integrals 
    29142922       !! of equations C9 to C11 of De Rosnay's (1999) PhD thesis (page 158). 
     
    29202928          DO jv = 1,nvm 
    29212929             DO ji=1, kjpindex 
    2922                  
    2923                  
    29242930                nroot(ji,jv,jsl) = (EXP(-humcste(jv)*zz(jsl)/mille)) * & 
    29252931                     & (EXP(humcste(jv)*dz(jsl)/mille/deux) - & 
     
    29272933                     & (EXP(-humcste(jv)*dz(2)/mille/deux) & 
    29282934                     & -EXP(-humcste(jv)*zz(nslm)/mille)) 
    2929                 !We acum. nroot, and change nslm_pft_root if necessary 
    2930                 cum_nroot(ji,jv) = cum_nroot(ji,jv) + nroot(ji,jv,jsl) ! 
    2931                  
    2932                 IF(cum_nroot(ji,jv) > cum_nroot_thr .AND. nslm_pft_root(ji,jv) .GE. jsl ) THEN 
    2933                    nslm_pft_root(ji,jv) =  jsl 
    2934                 ENDIF 
    29352935             ENDDO 
    29362936              
     
    29392939       ENDDO 
    29402940       !Last layer 
    2941        !No need to put and IF here, if it is the case, nslm_pft_root is already 
    2942        ! equal to nslm, 
    29432941       DO jv = 1,nvm 
    29442942          DO ji=1, kjpindex 
     
    29492947          ENDDO 
    29502948       ENDDO 
    2951        !New loop to compute min. soil layer per cell, using just PFT that 
    2952        !are not natural and exist inside the cell 
    2953        DO jv=1, nvm 
    2954           IF(.NOT. natural(jv)) THEN 
    2955              DO ji=1,kjpindex 
    2956                 IF(veget_max(ji, jv) > min_sechiba) THEN 
    2957                    nslm_root(ji) = MIN(nslm_root(ji), nslm_pft_root(ji,jv)) 
    2958                 ENDIF 
    2959              ENDDO 
    2960           ENDIF 
    2961        ENDDO 
    29622949        
    29632950    END IF 
    29642951 
     2952    DO ji=1,kjpindex  
     2953       IF ( SUM(veget_max(ji, : ), MASK= .NOT. (natural(:)) ) > min_sechiba) THEN  
     2954          nslm_root(ji) = nslm_root_tmp  
     2955       ENDIF  
     2956    ENDDO 
     2957  
    29652958    ! Calculates field capacity soil moisture per soil layers 
    29662959    ! then calculate field capacity soil moisture over root zone 
Note: See TracChangeset for help on using the changeset viewer.