Changeset 8423 for branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90
- Timestamp:
- 2024-02-13T13:45:31+01:00 (5 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90
r8418 r8423 415 415 REAL(r_std), ALLOCATABLE, SAVE, DIMENSION (:,:) :: soil_wet_litter !! Soil wetness aove mvw in the litter (0-1, unitless) 416 416 !$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)420 417 REAL(r_std), ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: qflux_ns !! Diffusive water fluxes between soil layers 421 418 !! (at lower interface) … … 575 572 & tot_melt, transpir, precip_rain, precip_snow, returnflow, reinfiltration, irrigation, & 576 573 & humrel, vegstress, drysoil_frac, evapot, evapot_penm, evap_bare_lim, evap_bare_lim_ns, & 577 & flood_frac, flood_res, shumdiagSAT,litterhumdiagSAT,&574 & flood_frac, flood_res, & 578 575 & shumdiag,shumdiag_perma, k_litt, litterhumdiag, soilcap, soiltile, fraclut, reinf_slope_soil, rest_id, hist_id, hist2_id,& 579 576 & contfrac, stempdiag, & … … 653 650 !! with respect to (mcfc-mcw) 654 651 !! (unitless; can be out of 0-1) 655 REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out):: shumdiagSAT !! Relative soil moisture in each soil layer656 !! with respect to (mcs-mcw)657 !! (unitless; can be out of 0-1)658 !! used in Stomate, for Moyano et al 2012 equation659 652 REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out):: shumdiag_perma !! Percent of porosity filled with water (mc/mcs) used for the thermal computations 660 653 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: k_litt !! litter approximate conductivity 661 654 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: litterhumdiag !! litter humidity 662 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: litterhumdiagSAT !!litter humidity663 !! with respect to(tmc_litter_sat-tmc_litter_wilt)664 655 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: tot_melt !! Total melt 665 656 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: floodout !! Flux out of floodplains … … 815 806 transpir, vevapnu, evapot, evapot_penm, runoff, drainage, & 816 807 returnflow, reinfiltration, irrigation, & 817 tot_melt,evap_bare_lim,evap_bare_lim_ns, shumdiagSAT,shumdiag, shumdiag_perma, &818 k_litt, litterhumdiagSAT,litterhumdiag, humrel, vegstress, drysoil_frac,&808 tot_melt,evap_bare_lim,evap_bare_lim_ns, shumdiag, shumdiag_perma, & 809 k_litt, litterhumdiag, humrel, vegstress, drysoil_frac,& 819 810 stempdiag,snow,snowdz, tot_bare_soil, u, v, tq_cdrag, & 820 811 mc_layh, mcl_layh, root_deficit, veget) … … 1781 1772 ALLOCATE (soil_wet_litter(kjpindex,nstm),stat=ier) 1782 1773 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','','')1786 1774 1787 1775 ALLOCATE (qflux_ns(kjpindex,nslm,nstm),stat=ier) … … 2403 2391 IF (ALLOCATED (soil_wet_ns)) DEALLOCATE (soil_wet_ns) 2404 2392 IF (ALLOCATED (soil_wet_litter)) DEALLOCATE (soil_wet_litter) 2405 IF (ALLOCATED (soil_wet_litterSAT)) DEALLOCATE (soil_wet_litterSAT)2406 2393 IF (ALLOCATED (qflux_ns)) DEALLOCATE (qflux_ns) 2407 2394 IF (ALLOCATED (tmat)) DEALLOCATE (tmat) … … 3674 3661 & transpir, vevapnu, evapot, evapot_penm, runoff, drainage, & 3675 3662 & returnflow, reinfiltration, irrigation, & 3676 & tot_melt, evap_bare_lim, evap_bare_lim_ns, shumdiagSAT,shumdiag, shumdiag_perma,&3677 & k_litt, litterhumdiagSAT,litterhumdiag, humrel,vegstress, drysoil_frac, &3663 & tot_melt, evap_bare_lim, evap_bare_lim_ns, shumdiag, shumdiag_perma,& 3664 & k_litt, litterhumdiag, humrel,vegstress, drysoil_frac, & 3678 3665 & stempdiag,snow, & 3679 3666 & snowdz, tot_bare_soil, u, v, tq_cdrag, mc_layh, mcl_layh, root_deficit, veget) … … 3737 3724 REAL(r_std), DIMENSION (kjpindex,nslm), INTENT (out) :: shumdiag !! Relative soil moisture in each diag soil layer 3738 3725 !! 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 layer3740 !! with respect to(mcs-mcw)(unitless,[0-1])3741 !! used in stomate for Moyano et al 2012 equation3742 3726 REAL(r_std), DIMENSION (kjpindex,nslm), INTENT (out) :: shumdiag_perma !! Percent of porosity filled with water (mc/mcs) 3743 3727 !! in each diag soil layer (for the thermal computations) … … 3747 3731 REAL(r_std), DIMENSION (kjpindex), INTENT (out) :: litterhumdiag !! Mean of soil_wet_litter across soil tiles 3748 3732 !! (unitless, [0-1]) 3749 REAL(r_std), DIMENSION (kjpindex), INTENT (out) ::litterhumdiagSAT !! Mean of soil_wet_litterSAT across soil tiles3750 !!(unitless, [0-1])3751 !! with respect to(tmc_litter_sat-tmc_litter_wilt)3752 3733 REAL(r_std), DIMENSION (kjpindex, nvm), INTENT(out) :: vegstress !! Veg. moisture stress (only for vegetation 3753 3734 !! growth) (unitless, [0-1]) … … 4423 4404 END DO 4424 4405 4425 ! Subsequent calculation of soil_wet_litterSAT (tmc-tmcw)/(tmcs-tmcw)4426 ! Based on liquid water content4427 DO ji=1,kjpindex4428 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 DO4432 4433 4434 4406 ! Preliminary calculation of various soil moistures (for each layer, in kg/m2) 4435 4407 sm(:,1) = dz(2) * (trois*mcl(:,1,jst) + mcl(:,2,jst))/huit … … 4652 4624 4653 4625 ! For consistency in stomate, we also set moderwilt and soil_wet_ns to zero in this case. 4654 ! They are used later for shumdiag , shumdiagSATand shumdiag_perma4626 ! They are used later for shumdiag and shumdiag_perma 4655 4627 DO jsl = 1,nslm 4656 4628 WHERE (is_under_mcr(:,jst)) … … 4699 4671 !! 7. Summing 3d variables into 2d variables 4700 4672 CALL hydrol_diag_soil (ks, nvan, avan, mcr, mcs, mcfc, mcw, kjpindex, veget_max, soiltile, njsc, runoff, drainage, & 4701 & evapot, vevapnu, returnflow, reinfiltration, irrigation, shumdiagSAT,&4702 & shumdiag,shumdiag_perma, k_litt, litterhumdiagSAT,litterhumdiag, humrel, vegstress, drysoil_frac,tot_melt)4673 & evapot, vevapnu, returnflow, reinfiltration, irrigation, & 4674 & shumdiag,shumdiag_perma, k_litt, litterhumdiag, humrel, vegstress, drysoil_frac,tot_melt) 4703 4675 4704 4676 ! Means of wtd, runoff and drainage corrections, across soiltiles … … 6443 6415 6444 6416 SUBROUTINE hydrol_diag_soil (ks, nvan, avan, mcr, mcs, mcfc, mcw, kjpindex, veget_max, soiltile, njsc, runoff, drainage, & 6445 & evapot, vevapnu, returnflow, reinfiltration, irrigation, shumdiagSAT,&6446 & shumdiag,shumdiag_perma, k_litt, litterhumdiagSAT,litterhumdiag, humrel, vegstress, drysoil_frac, tot_melt)6417 & evapot, vevapnu, returnflow, reinfiltration, irrigation, & 6418 & shumdiag,shumdiag_perma, k_litt, litterhumdiag, humrel, vegstress, drysoil_frac, tot_melt) 6447 6419 ! 6448 6420 ! interface description … … 6476 6448 REAL(r_std), DIMENSION (kjpindex), INTENT(out) :: drainage !! Drainage 6477 6449 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)6479 6450 REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out) :: shumdiag_perma !! Percent of porosity filled with water (mc/mcs) used for the thermal computations 6480 6451 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: k_litt !! litter cond. 6481 6452 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: litterhumdiag !! litter humidity 6482 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: litterhumdiagSAT!! litter humidity6483 !! with respect to(tmc_litter_sat-tmc_litter_wilt)6484 6453 REAL(r_std),DIMENSION (kjpindex,nvm), INTENT (out) :: humrel !! Relative humidity 6485 6454 REAL(r_std), DIMENSION (kjpindex, nvm), INTENT(out) :: vegstress !! Veg. moisture stress (only for vegetation growth) … … 6527 6496 humtot(:) = zero 6528 6497 shumdiag(:,:)= zero 6529 shumdiagSAT(:,:)= zero6530 6498 shumdiag_perma(:,:)=zero 6531 6499 k_litt(:) = zero 6532 6500 litterhumdiag(:) = zero 6533 litterhumdiagSAT(:) = zero6534 6501 tmc_litt_dry_mea(:) = zero 6535 6502 tmc_litt_wet_mea(:) = zero … … 6604 6571 ! BUT THIS IS NOT USED ANYMORE WITH THE NEW BACKGROUNG ALBEDO 6605 6572 !! k_litt is calculated here as a grid-cell average (for consistency with drainage) 6606 !! litterhumdiag, li tterhumdiagSAT, like shumdiag,shumdiagSATis averaged over the soiltiles for transmission to stomate6573 !! litterhumdiag, like shumdiag, is averaged over the soiltiles for transmission to stomate 6607 6574 DO jst=1,nstm 6608 6575 DO ji=1,kjpindex … … 6621 6588 litterhumdiag(ji) = litterhumdiag(ji) + & 6622 6589 & soil_wet_litter(ji,jst) * soiltile(ji,jst) 6623 6624 litterhumdiagSAT(ji) = litterhumdiagSAT(ji) + &6625 & soil_wet_litterSAT(ji,jst) * soiltile(ji,jst)6626 6590 6627 6591 tmc_litt_wet_mea(ji) = tmc_litt_wet_mea(ji) + & … … 6695 6659 ENDDO 6696 6660 ENDDO 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 6661 6709 6662 ! Shumdiag_perma is based on soilmoist / moisture at saturation in the layer 6710 6663 ! 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.