Changeset 7476


Ignore:
Timestamp:
2022-02-16T11:31:52+01:00 (2 years ago)
Author:
josefine.ghattas
Message:

Moved getin KFACT_ROOT_TYPE from hydrol_main to hydrol_var_init and changed it to KFACT_ROOT_CONST (logical instead of character string). See ticket #817

Location:
branches/ORCHIDEE_2_2/ORCHIDEE
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/ORCHIDEE_2_2/ORCHIDEE/orchidee.default

    r7475 r7476  
    15641564SOIL_REFTEMP_FILE =  reftemp.nc  
    15651565 
    1566 # KFACT_ROOT_TYPE ([mm/d]) :  keyword added for spmip exp1 and exp4 to get a constant ks over soil depth and rootzone   {spmip exp1 or exp4} 
    1567 KFACT_ROOT_TYPE =  var  
    1568  
    15691566# DO_PONDS ([FLAG]) :  Should we include ponds          {} 
    15701567DO_PONDS =  n  
     
    16481645KFACT_MAX =  10.0  
    16491646 
     1647# KFACT_ROOT_CONST ([y/n]) :  Set constant kfact_root in every soil layer. Otherwise kfact_root increase over soil depth in the rootzone.       {} 
     1648KFACT_ROOT_CONST =  n  
     1649 
    16501650# DT_ROUTING  ([seconds]) :  Time step of the routing scheme    {RIVER_ROUTING} 
    16511651DT_ROUTING  =  86400.  
  • branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90

    r7444 r7476  
    2323!!                    Here, it leads to change dimensions and indices.  
    2424!!                    We can also impose kfact_root=1 in all soil layers to cancel the effect of 
    25 !!                    roots on ks profile (keyword KFACT_ROOT_TYPE). 
     25!!                    roots on ks profile (keyword KFACT_ROOT_CONST). 
    2626!!                  
    2727!! REFERENCE(S) : 
     
    9090                                                                               !! moisture usage, similar to Beer et al.2007 
    9191!$OMP THREADPRIVATE(ok_dynroot) 
     92  LOGICAL, SAVE                                   :: kfact_root_const          !! Control kfact_root calculation, set constant kfact_root=1 if kfact_root_const=true 
     93!$OMP THREADPRIVATE(kfact_root_const) 
    9294  CHARACTER(LEN=80) , SAVE                        :: var_name                  !! To store variables names for I/O 
    9395!$OMP THREADPRIVATE(var_name) 
     
    682684    INTEGER(i_std)                                     :: jsl              !! Index of soil layers (unitless) 
    683685    INTEGER(i_std)                                     :: ji, jv 
    684     CHARACTER(LEN=80)                                  :: kfact_root_type  !! read from run.def: when equal to 'cons', it indicates that 
    685                                                                            !! ks does not increase in the rootzone, ie, kfact_root=1;  
    686                                                                            !! else, kfact_root defined as usual 
    687686    REAL(r_std),DIMENSION (kjpindex)                   :: soilwet          !! A temporary diagnostic of soil wetness 
    688687    REAL(r_std),DIMENSION (kjpindex)                   :: snowdepth_diag   !! Depth of snow layer containing default values, only for diagnostics 
     
    754753    ! 
    755754    !! 3.2 computes vegetations reservoirs  ==>hydrol_vegupd 
    756 ! Modif temp vuichard 
    757755    CALL hydrol_vegupd(kjpindex, veget, veget_max, soiltile, qsintveg, frac_bare, drain_upd, runoff_upd) 
    758756 
     757 
     758     
    759759    !! Calculate kfact_root 
    760     !! An exponential factor is used to increase ks near the surface depending on the amount of roots in the soil  
    761     !! through a geometric average over the vegets 
    762     !! This comes from the PhD thesis of d'Orgeval, 2006, p82; d'Orgeval et al. 2008, Eqs. 3-4 
    763     !! (Calibrated against Hapex-Sahel measurements) 
    764     !! Since rev 2916: veget_max/2 is used instead of veget 
    765     kfact_root(:,:,:) = un 
    766     DO jsl = 1, nslm 
    767        DO jv = 2, nvm 
    768           jst = pref_soil_veg(jv) 
    769           DO ji = 1, kjpindex 
    770              IF(soiltile(ji,jst) .GT. min_sechiba) THEN 
    771                 kfact_root(ji,jsl,jst) = kfact_root(ji,jsl,jst) * & 
    772                      & MAX((MAXVAL(ks_usda)/ks(ji))**(- vegetmax_soil(ji,jv,jst)/2 * (humcste(jv)*zz(jsl)/mille - un)/deux), & 
    773                      un)  
    774              ENDIF 
     760    IF (kfact_root_const) THEN 
     761       ! Set kfact_root constant to 1 
     762       kfact_root(:,:,:) = un 
     763    ELSE 
     764       ! An exponential factor is used to increase ks near the surface depending on the amount of roots in the soil  
     765       ! through a geometric average over the vegets 
     766       ! This comes from the PhD thesis of d'Orgeval, 2006, p82; d'Orgeval et al. 2008, Eqs. 3-4 
     767       ! (Calibrated against Hapex-Sahel measurements) 
     768       ! Since rev 2916: veget_max/2 is used instead of veget 
     769       kfact_root(:,:,:) = un 
     770       DO jsl = 1, nslm 
     771          DO jv = 2, nvm 
     772             jst = pref_soil_veg(jv) 
     773             DO ji = 1, kjpindex 
     774                IF (soiltile(ji,jst) .GT. min_sechiba) THEN 
     775                   kfact_root(ji,jsl,jst) = kfact_root(ji,jsl,jst) * & 
     776                        MAX((MAXVAL(ks_usda)/ks(ji))**(- vegetmax_soil(ji,jv,jst)/2 * (humcste(jv)*zz(jsl)/mille - un)/deux), & 
     777                        un)  
     778                ENDIF 
     779             ENDDO 
    775780          ENDDO 
    776781       ENDDO 
    777     ENDDO 
    778  
    779     !! KFACT_ROOT_TYPE = cons is used to impose that kfact_root = 1 in every soil layer, 
    780     !! so that ks does not increase in the rootzone; else, kfact_root defined as usual 
    781     !Config Key   = KFACT_ROOT_TYPE 
    782     !Config Desc  = keyword added for spmip exp1 and exp4 to get a constant ks over soil depth and rootzone 
    783     !Config If    = spmip exp1 or exp4 
    784     !Config Def   = var 
    785     !Config Help  = can have two values: 'cons' or 'var'. If var then no changes, if cons then kfact_root=un 
    786     !Config Units = [mm/d] 
    787     kfact_root_type = 'var' 
    788     CALL getin_p("KFACT_ROOT_TYPE",kfact_root_type) 
    789  
    790     IF (kfact_root_type=='cons') THEN 
    791        kfact_root(:,:,:) = un 
    792     ENDIF 
     782    END IF 
     783 
    793784 
    794785    ! 
     
    28652856    END IF 
    28662857 
     2858 
     2859 
     2860    !Config Key   = KFACT_ROOT_CONST 
     2861    !Config Desc  = Set constant kfact_root in every soil layer. Otherwise kfact_root increase over soil depth in the rootzone.  
     2862    !Config If    =  
     2863    !Config Def   = n 
     2864    !Config Help  = Use KFACT_ROOT_CONST=true to impose kfact_root=1 in every soil layer. Otherwise kfact_root increase over soil depth in the rootzone.  
     2865    !Config Units = [y/n] 
     2866    kfact_root_const = .FALSE. 
     2867    CALL getin_p("KFACT_ROOT_CONST",kfact_root_const) 
     2868 
    28672869     
    28682870    !- 
Note: See TracChangeset for help on using the changeset viewer.