Ignore:
Timestamp:
2024-02-12T19:49:09+01:00 (5 months ago)
Author:
bertrand.guenet
Message:

The Moyano function describing the soil moisture effect on OM decomposition is added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90

    r8320 r8418  
    415415  REAL(r_std), ALLOCATABLE, SAVE, DIMENSION (:,:)    :: soil_wet_litter  !! Soil wetness aove mvw in the litter (0-1, unitless) 
    416416!$OMP THREADPRIVATE(soil_wet_litter) 
     417  REAL(r_std), ALLOCATABLE, SAVE, DIMENSION (:,:)    :: soil_wet_litterSAT!!Soil wetness above mvw in the litter (0-1, unitless) 
     418                                                                          !! with respect to(tmc_litter_sat-tmc_litter_wilt) 
     419!$OMP THREADPRIVATE(soil_wet_litterSAT) 
    417420  REAL(r_std), ALLOCATABLE, SAVE, DIMENSION (:,:,:)  :: qflux_ns         !! Diffusive water fluxes between soil layers 
    418421                                                                         !! (at lower interface) 
     
    572575       & tot_melt, transpir, precip_rain, precip_snow, returnflow, reinfiltration, irrigation, & 
    573576       & humrel, vegstress, drysoil_frac, evapot, evapot_penm, evap_bare_lim, evap_bare_lim_ns, & 
    574        & flood_frac, flood_res, & 
     577       & flood_frac, flood_res,shumdiagSAT,litterhumdiagSAT, & 
    575578       & shumdiag,shumdiag_perma, k_litt, litterhumdiag, soilcap, soiltile, fraclut, reinf_slope_soil, rest_id, hist_id, hist2_id,& 
    576579       & contfrac, stempdiag, & 
     
    650653                                                                           !! with respect to (mcfc-mcw) 
    651654                                                                           !! (unitless; can be out of 0-1) 
     655    REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out):: shumdiagSAT      !! Relative soil moisture in each soil layer  
     656                                                                           !! with respect to (mcs-mcw) 
     657                                                                           !! (unitless; can be out of 0-1) 
     658                                                                           !! used in Stomate, for Moyano et al 2012 equation 
    652659    REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out):: shumdiag_perma   !! Percent of porosity filled with water (mc/mcs) used for the thermal computations  
    653660    REAL(r_std),DIMENSION (kjpindex), INTENT (out)     :: k_litt           !! litter approximate conductivity 
    654661    REAL(r_std),DIMENSION (kjpindex), INTENT (out)     :: litterhumdiag    !! litter humidity 
     662    REAL(r_std),DIMENSION (kjpindex), INTENT (out)     :: litterhumdiagSAT !!litter humidity  
     663                                                                           !! with respect to(tmc_litter_sat-tmc_litter_wilt)  
    655664    REAL(r_std),DIMENSION (kjpindex), INTENT (out)     :: tot_melt         !! Total melt     
    656665    REAL(r_std),DIMENSION (kjpindex), INTENT (out)     :: floodout         !! Flux out of floodplains 
     
    806815         transpir, vevapnu, evapot, evapot_penm, runoff, drainage, &  
    807816         returnflow, reinfiltration, irrigation, & 
    808          tot_melt,evap_bare_lim,evap_bare_lim_ns, shumdiag, shumdiag_perma, & 
    809          k_litt, litterhumdiag, humrel, vegstress, drysoil_frac,& 
     817         tot_melt,evap_bare_lim,evap_bare_lim_ns,shumdiagSAT, shumdiag, shumdiag_perma, & 
     818         k_litt,litterhumdiagSAT, litterhumdiag, humrel, vegstress, drysoil_frac,& 
    810819         stempdiag,snow,snowdz, tot_bare_soil,  u, v, tq_cdrag, & 
    811820         mc_layh, mcl_layh, root_deficit, veget) 
     
    17721781    ALLOCATE (soil_wet_litter(kjpindex,nstm),stat=ier) 
    17731782    IF (ier /= 0) CALL ipslerr_p(3,'hydrol_init','Problem in allocate of variable soil_wet_litter','','') 
     1783 
     1784    ALLOCATE (soil_wet_litterSAT(kjpindex,nstm),stat=ier) 
     1785    IF (ier /= 0) CALL ipslerr_p(3,'hydrol_init','Problem in allocate of variable soil_wet_litterSAT','','')  
    17741786 
    17751787    ALLOCATE (qflux_ns(kjpindex,nslm,nstm),stat=ier)  
     
    23912403    IF (ALLOCATED  (soil_wet_ns)) DEALLOCATE (soil_wet_ns) 
    23922404    IF (ALLOCATED  (soil_wet_litter)) DEALLOCATE (soil_wet_litter) 
     2405    IF (ALLOCATED  (soil_wet_litterSAT)) DEALLOCATE (soil_wet_litterSAT) 
    23932406    IF (ALLOCATED  (qflux_ns)) DEALLOCATE (qflux_ns) 
    23942407    IF (ALLOCATED  (tmat)) DEALLOCATE (tmat) 
     
    36613674       & transpir, vevapnu, evapot, evapot_penm, runoff, drainage, & 
    36623675       & returnflow, reinfiltration, irrigation, & 
    3663        & tot_melt, evap_bare_lim, evap_bare_lim_ns, shumdiag, shumdiag_perma,& 
    3664        & k_litt, litterhumdiag, humrel,vegstress, drysoil_frac, & 
     3676       & tot_melt, evap_bare_lim, evap_bare_lim_ns,shumdiagSAT, shumdiag, shumdiag_perma,& 
     3677       & k_litt,litterhumdiagSAT, litterhumdiag, humrel,vegstress, drysoil_frac, & 
    36653678       & stempdiag,snow, & 
    36663679       & snowdz, tot_bare_soil, u, v, tq_cdrag, mc_layh, mcl_layh, root_deficit, veget) 
     
    37243737    REAL(r_std), DIMENSION (kjpindex,nslm), INTENT (out)     :: shumdiag         !! Relative soil moisture in each diag soil layer  
    37253738                                                                                 !! with respect to (mcfc-mcw) (unitless, [0-1]) 
     3739    REAL(r_std), DIMENSION (kjpindex,nslm), INTENT (out)     :: shumdiagSAT      !! Relative soil moisture in each diag soil layer  
     3740                                                                                 !! with respect to(mcs-mcw)(unitless,[0-1])  
     3741                                                                                 !! used in stomate for Moyano et al 2012 equation 
    37263742    REAL(r_std), DIMENSION (kjpindex,nslm), INTENT (out)     :: shumdiag_perma   !! Percent of porosity filled with water (mc/mcs) 
    37273743                                                                                 !! in each diag soil layer (for the thermal computations) 
     
    37313747    REAL(r_std), DIMENSION (kjpindex), INTENT (out)          :: litterhumdiag    !! Mean of soil_wet_litter across soil tiles 
    37323748                                                                                 !! (unitless, [0-1]) 
     3749    REAL(r_std), DIMENSION (kjpindex), INTENT (out)          ::litterhumdiagSAT  !! Mean of soil_wet_litterSAT across soil tiles 
     3750                                                                                 !!(unitless, [0-1]) 
     3751                                                                                 !! with respect to(tmc_litter_sat-tmc_litter_wilt)  
    37333752    REAL(r_std), DIMENSION (kjpindex, nvm), INTENT(out)      :: vegstress        !! Veg. moisture stress (only for vegetation  
    37343753                                                                                 !! growth) (unitless, [0-1]) 
     
    44044423       END DO 
    44054424 
     4425       ! Subsequent calculation of soil_wet_litterSAT (tmc-tmcw)/(tmcs-tmcw) 
     4426       ! Based on liquid water content 
     4427       DO ji=1,kjpindex 
     4428          soil_wet_litterSAT(ji,jst) = MIN(un, MAX(zero,& 
     4429               & (tmc_litter(ji,jst)-tmc_litter_wilt(ji,jst)) / & 
     4430               & (tmc_litter_sat(ji,jst)-tmc_litter_wilt(ji,jst)) )) 
     4431       END DO 
     4432 
     4433 
    44064434       ! Preliminary calculation of various soil moistures (for each layer, in kg/m2) 
    44074435       sm(:,1)  = dz(2) * (trois*mcl(:,1,jst) + mcl(:,2,jst))/huit 
     
    46244652        
    46254653       ! For consistency in stomate, we also set moderwilt and soil_wet_ns to zero in this case.  
    4626        ! They are used later for shumdiag and shumdiag_perma 
     4654       ! They are used later for shumdiag, shumdiagSAT and shumdiag_perma 
    46274655       DO jsl = 1,nslm 
    46284656          WHERE (is_under_mcr(:,jst)) 
     
    46714699    !! 7. Summing 3d variables into 2d variables  
    46724700    CALL hydrol_diag_soil (ks, nvan, avan, mcr, mcs, mcfc, mcw, kjpindex, veget_max, soiltile, njsc, runoff, drainage, & 
    4673          & evapot, vevapnu, returnflow, reinfiltration, irrigation, & 
    4674          & shumdiag,shumdiag_perma, k_litt, litterhumdiag, humrel, vegstress, drysoil_frac,tot_melt) 
     4701         & evapot, vevapnu, returnflow, reinfiltration, irrigation, shumdiagSAT,& 
     4702         & shumdiag,shumdiag_perma, k_litt,litterhumdiagSAT, litterhumdiag, humrel, vegstress, drysoil_frac,tot_melt) 
    46754703 
    46764704    ! Means of wtd, runoff and drainage corrections, across soiltiles     
     
    64156443 
    64166444  SUBROUTINE hydrol_diag_soil (ks, nvan, avan, mcr, mcs, mcfc, mcw, kjpindex, veget_max, soiltile, njsc, runoff, drainage, & 
    6417        & evapot, vevapnu, returnflow, reinfiltration, irrigation, & 
    6418        & shumdiag,shumdiag_perma, k_litt, litterhumdiag, humrel, vegstress, drysoil_frac, tot_melt) 
     6445       & evapot, vevapnu, returnflow, reinfiltration, irrigation,shumdiagSAT, & 
     6446       & shumdiag,shumdiag_perma, k_litt,litterhumdiagSAT, litterhumdiag, humrel, vegstress, drysoil_frac, tot_melt) 
    64196447    !  
    64206448    ! interface description 
     
    64486476    REAL(r_std), DIMENSION (kjpindex), INTENT(out)           :: drainage        !! Drainage 
    64496477    REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out)      :: shumdiag        !! relative soil moisture 
     6478    REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out)      :: shumdiagSAT     !! relative soil moisture with respect to (mcs-mcw) 
    64506479    REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out)      :: shumdiag_perma  !! Percent of porosity filled with water (mc/mcs) used for the thermal computations 
    64516480    REAL(r_std),DIMENSION (kjpindex), INTENT (out)           :: k_litt          !! litter cond. 
    64526481    REAL(r_std),DIMENSION (kjpindex), INTENT (out)           :: litterhumdiag   !! litter humidity 
     6482    REAL(r_std),DIMENSION (kjpindex), INTENT (out)           :: litterhumdiagSAT!! litter humidity 
     6483                                                                                !! with respect to(tmc_litter_sat-tmc_litter_wilt) 
    64536484    REAL(r_std),DIMENSION (kjpindex,nvm), INTENT (out)       :: humrel          !! Relative humidity 
    64546485    REAL(r_std), DIMENSION (kjpindex, nvm), INTENT(out)      :: vegstress       !! Veg. moisture stress (only for vegetation growth) 
     
    64966527    humtot(:) = zero 
    64976528    shumdiag(:,:)= zero 
     6529    shumdiagSAT(:,:)= zero 
    64986530    shumdiag_perma(:,:)=zero 
    64996531    k_litt(:) = zero 
    65006532    litterhumdiag(:) = zero 
     6533    litterhumdiagSAT(:) = zero 
    65016534    tmc_litt_dry_mea(:) = zero 
    65026535    tmc_litt_wet_mea(:) = zero 
     
    65716604    ! BUT THIS IS NOT USED ANYMORE WITH THE NEW BACKGROUNG ALBEDO 
    65726605    !! k_litt is calculated here as a grid-cell average (for consistency with drainage)    
    6573     !! litterhumdiag, like shumdiag, is averaged over the soiltiles for transmission to stomate 
     6606    !! litterhumdiag, litterhumdiagSAT, like shumdiag,shumdiagSAT is averaged over the soiltiles for transmission to stomate 
    65746607    DO jst=1,nstm        
    65756608       DO ji=1,kjpindex 
     
    65886621          litterhumdiag(ji) = litterhumdiag(ji) + & 
    65896622               & soil_wet_litter(ji,jst) * soiltile(ji,jst) 
     6623 
     6624          litterhumdiagSAT(ji) = litterhumdiagSAT(ji) + & 
     6625               & soil_wet_litterSAT(ji,jst) * soiltile(ji,jst) 
    65906626 
    65916627          tmc_litt_wet_mea(ji) =  tmc_litt_wet_mea(ji) + &  
     
    66596695       ENDDO 
    66606696    ENDDO 
    6661      
     6697 
     6698    ! ShumdiagSAT: we start from soil_wet_ns, 
     6699    !  do a spatial average, excluding the nobio fraction on which stomate doesn't act 
     6700    DO jst=1,nstm 
     6701       DO jsl=1,nslm 
     6702          DO ji=1,kjpindex 
     6703             shumdiagSAT(ji,jsl) = shumdiagSAT(ji,jsl) + soil_wet_ns(ji,jsl,jst) * soiltile(ji,jst)  
     6704             shumdiagSAT(ji,jsl) = MAX(MIN(shumdiagSAT(ji,jsl), un), zero) 
     6705          ENDDO 
     6706       ENDDO 
     6707    ENDDO 
     6708 
    66626709    ! Shumdiag_perma is based on soilmoist / moisture at saturation in the layer 
    66636710    ! Her we start from grid averages by hydrol soil layer and transform it to the diag levels 
Note: See TracChangeset for help on using the changeset viewer.