Changeset 8418 for branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90
- Timestamp:
- 2024-02-12T19:49:09+01:00 (5 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90
r8320 r8418 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) 417 420 REAL(r_std), ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: qflux_ns !! Diffusive water fluxes between soil layers 418 421 !! (at lower interface) … … 572 575 & tot_melt, transpir, precip_rain, precip_snow, returnflow, reinfiltration, irrigation, & 573 576 & 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, & 575 578 & shumdiag,shumdiag_perma, k_litt, litterhumdiag, soilcap, soiltile, fraclut, reinf_slope_soil, rest_id, hist_id, hist2_id,& 576 579 & contfrac, stempdiag, & … … 650 653 !! with respect to (mcfc-mcw) 651 654 !! (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 652 659 REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out):: shumdiag_perma !! Percent of porosity filled with water (mc/mcs) used for the thermal computations 653 660 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: k_litt !! litter approximate conductivity 654 661 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) 655 664 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: tot_melt !! Total melt 656 665 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: floodout !! Flux out of floodplains … … 806 815 transpir, vevapnu, evapot, evapot_penm, runoff, drainage, & 807 816 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,& 810 819 stempdiag,snow,snowdz, tot_bare_soil, u, v, tq_cdrag, & 811 820 mc_layh, mcl_layh, root_deficit, veget) … … 1772 1781 ALLOCATE (soil_wet_litter(kjpindex,nstm),stat=ier) 1773 1782 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','','') 1774 1786 1775 1787 ALLOCATE (qflux_ns(kjpindex,nslm,nstm),stat=ier) … … 2391 2403 IF (ALLOCATED (soil_wet_ns)) DEALLOCATE (soil_wet_ns) 2392 2404 IF (ALLOCATED (soil_wet_litter)) DEALLOCATE (soil_wet_litter) 2405 IF (ALLOCATED (soil_wet_litterSAT)) DEALLOCATE (soil_wet_litterSAT) 2393 2406 IF (ALLOCATED (qflux_ns)) DEALLOCATE (qflux_ns) 2394 2407 IF (ALLOCATED (tmat)) DEALLOCATE (tmat) … … 3661 3674 & transpir, vevapnu, evapot, evapot_penm, runoff, drainage, & 3662 3675 & 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, & 3665 3678 & stempdiag,snow, & 3666 3679 & snowdz, tot_bare_soil, u, v, tq_cdrag, mc_layh, mcl_layh, root_deficit, veget) … … 3724 3737 REAL(r_std), DIMENSION (kjpindex,nslm), INTENT (out) :: shumdiag !! Relative soil moisture in each diag soil layer 3725 3738 !! 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 3726 3742 REAL(r_std), DIMENSION (kjpindex,nslm), INTENT (out) :: shumdiag_perma !! Percent of porosity filled with water (mc/mcs) 3727 3743 !! in each diag soil layer (for the thermal computations) … … 3731 3747 REAL(r_std), DIMENSION (kjpindex), INTENT (out) :: litterhumdiag !! Mean of soil_wet_litter across soil tiles 3732 3748 !! (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) 3733 3752 REAL(r_std), DIMENSION (kjpindex, nvm), INTENT(out) :: vegstress !! Veg. moisture stress (only for vegetation 3734 3753 !! growth) (unitless, [0-1]) … … 4404 4423 END DO 4405 4424 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 4406 4434 ! Preliminary calculation of various soil moistures (for each layer, in kg/m2) 4407 4435 sm(:,1) = dz(2) * (trois*mcl(:,1,jst) + mcl(:,2,jst))/huit … … 4624 4652 4625 4653 ! 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_perma4654 ! They are used later for shumdiag, shumdiagSAT and shumdiag_perma 4627 4655 DO jsl = 1,nslm 4628 4656 WHERE (is_under_mcr(:,jst)) … … 4671 4699 !! 7. Summing 3d variables into 2d variables 4672 4700 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) 4675 4703 4676 4704 ! Means of wtd, runoff and drainage corrections, across soiltiles … … 6415 6443 6416 6444 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) 6419 6447 ! 6420 6448 ! interface description … … 6448 6476 REAL(r_std), DIMENSION (kjpindex), INTENT(out) :: drainage !! Drainage 6449 6477 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) 6450 6479 REAL(r_std),DIMENSION (kjpindex,nslm), INTENT (out) :: shumdiag_perma !! Percent of porosity filled with water (mc/mcs) used for the thermal computations 6451 6480 REAL(r_std),DIMENSION (kjpindex), INTENT (out) :: k_litt !! litter cond. 6452 6481 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) 6453 6484 REAL(r_std),DIMENSION (kjpindex,nvm), INTENT (out) :: humrel !! Relative humidity 6454 6485 REAL(r_std), DIMENSION (kjpindex, nvm), INTENT(out) :: vegstress !! Veg. moisture stress (only for vegetation growth) … … 6496 6527 humtot(:) = zero 6497 6528 shumdiag(:,:)= zero 6529 shumdiagSAT(:,:)= zero 6498 6530 shumdiag_perma(:,:)=zero 6499 6531 k_litt(:) = zero 6500 6532 litterhumdiag(:) = zero 6533 litterhumdiagSAT(:) = zero 6501 6534 tmc_litt_dry_mea(:) = zero 6502 6535 tmc_litt_wet_mea(:) = zero … … 6571 6604 ! BUT THIS IS NOT USED ANYMORE WITH THE NEW BACKGROUNG ALBEDO 6572 6605 !! k_litt is calculated here as a grid-cell average (for consistency with drainage) 6573 !! litterhumdiag, li ke shumdiag,is averaged over the soiltiles for transmission to stomate6606 !! litterhumdiag, litterhumdiagSAT, like shumdiag,shumdiagSAT is averaged over the soiltiles for transmission to stomate 6574 6607 DO jst=1,nstm 6575 6608 DO ji=1,kjpindex … … 6588 6621 litterhumdiag(ji) = litterhumdiag(ji) + & 6589 6622 & soil_wet_litter(ji,jst) * soiltile(ji,jst) 6623 6624 litterhumdiagSAT(ji) = litterhumdiagSAT(ji) + & 6625 & soil_wet_litterSAT(ji,jst) * soiltile(ji,jst) 6590 6626 6591 6627 tmc_litt_wet_mea(ji) = tmc_litt_wet_mea(ji) + & … … 6659 6695 ENDDO 6660 6696 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 6662 6709 ! Shumdiag_perma is based on soilmoist / moisture at saturation in the layer 6663 6710 ! 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.