Changeset 8320 for branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba
- Timestamp:
- 2023-11-27T11:40:01+01:00 (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/hydrol.f90
r7983 r8320 2750 2750 INTEGER(i_std) :: iiref !! To identify the mc_lins where k_lin and d_lin 2751 2751 !! need special treatment 2752 REAL(r_std) , DIMENSION (kjpindex,nvm) :: cum_nroot !! local variable to acummulate nroot2753 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 2754 2754 REAL(r_std), DIMENSION (kjpindex,nslm) :: smf !! Soil moisture of each layer at field capacity 2755 2755 !! @tex $(kg m^{-2})$ @endtex … … 2906 2906 !! 2 Compute the root density profile if not ok_dynroot 2907 2907 !! 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 2910 2909 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 2911 2919 IF (.NOT. ok_dynroot) THEN 2912 !! Calculation of nroot and of new nslm_root for irrigation2920 !! Calculation of nroot 2913 2921 !! The three following equations concerning nroot computation are derived from the integrals 2914 2922 !! of equations C9 to C11 of De Rosnay's (1999) PhD thesis (page 158). … … 2920 2928 DO jv = 1,nvm 2921 2929 DO ji=1, kjpindex 2922 2923 2924 2930 nroot(ji,jv,jsl) = (EXP(-humcste(jv)*zz(jsl)/mille)) * & 2925 2931 & (EXP(humcste(jv)*dz(jsl)/mille/deux) - & … … 2927 2933 & (EXP(-humcste(jv)*dz(2)/mille/deux) & 2928 2934 & -EXP(-humcste(jv)*zz(nslm)/mille)) 2929 !We acum. nroot, and change nslm_pft_root if necessary2930 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 ) THEN2933 nslm_pft_root(ji,jv) = jsl2934 ENDIF2935 2935 ENDDO 2936 2936 … … 2939 2939 ENDDO 2940 2940 !Last layer 2941 !No need to put and IF here, if it is the case, nslm_pft_root is already2942 ! equal to nslm,2943 2941 DO jv = 1,nvm 2944 2942 DO ji=1, kjpindex … … 2949 2947 ENDDO 2950 2948 ENDDO 2951 !New loop to compute min. soil layer per cell, using just PFT that2952 !are not natural and exist inside the cell2953 DO jv=1, nvm2954 IF(.NOT. natural(jv)) THEN2955 DO ji=1,kjpindex2956 IF(veget_max(ji, jv) > min_sechiba) THEN2957 nslm_root(ji) = MIN(nslm_root(ji), nslm_pft_root(ji,jv))2958 ENDIF2959 ENDDO2960 ENDIF2961 ENDDO2962 2949 2963 2950 END IF 2964 2951 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 2965 2958 ! Calculates field capacity soil moisture per soil layers 2966 2959 ! then calculate field capacity soil moisture over root zone
Note: See TracChangeset
for help on using the changeset viewer.