Changeset 8320 for branches/ORCHIDEE_2_2
- Timestamp:
- 2023-11-27T11:40:01+01:00 (12 months ago)
- Location:
- branches/ORCHIDEE_2_2/ORCHIDEE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_2_2/ORCHIDEE/src_parameters/constantes.f90
r8273 r8320 894 894 !Config Desc = The maximum irrigation water injected per hour (kg.m^{-2}/hour) 895 895 !Config If = DO_IRRIGATION AND old_irrig_scheme = FALSE 896 !Config Def = 1.896 !Config Def = 3. 897 897 !Config Help = 898 898 !Config Units = [kg.m^{-2}/hour] 899 899 CALL getin_p('IRRIG_DOSMAX',irrig_dosmax) 900 900 901 !Config Key = CUM_ NROOT_THR902 !Config Desc = Cumulated nroot threshooldto define root zone, and calculate water deficit for irrigation903 !Config If = DO_IRRIGATION AND old_irrig_scheme = FALSE904 !Config Def = 0. 90901 !Config Key = CUM_DH_THR 902 !Config Desc = Threshold depth to define root zone, and calculate water deficit for irrigation 903 !Config If = DO_IRRIGATION=y AND OLD_IRRIG_SCHEME=n 904 !Config Def = 0.64 905 905 !Config Help = 906 !Config Units = [ ]907 CALL getin_p('CUM_ NROOT_THR',cum_nroot_thr)906 !Config Units = [m] 907 CALL getin_p('CUM_DH_THR',cum_dh_thr) 908 908 909 909 !Crop irrigation … … 938 938 !Config Desc = Max. fraction of routing reservoir volume that can be used for irrigation 939 939 !Config If = DO_IRRIGATION and old_irrig_scheme = FALSE 940 !Config Def = 0.9,0. 0,0.9940 !Config Def = 0.9,0.9,0.9 941 941 !Config Help = 942 942 !Config Units = [] … … 947 947 !Config Desc = Threshold multiplier of Target SM to calculate root deficit 948 948 !Config If = DO_IRRIGATION and old_irrig_scheme = FALSE 949 !Config Def = 1.949 !Config Def = 0.9 950 950 !Config Help = 951 951 !Config Units = [] … … 1001 1001 !Config Desc = DO_IRRIGATION 1002 1002 !Config If = DO_IRRIGATION = T 1003 !Config Def = zero1003 !Config Def = 0.05 1004 1004 !Config Help = 1005 1005 !Config Units = [FRACTION 0-1] -
branches/ORCHIDEE_2_2/ORCHIDEE/src_parameters/constantes_var.f90
r8273 r8320 501 501 ! Parameters for irrigation scheme 502 502 ! 503 REAL(r_std), SAVE :: irrig_dosmax = 1. !! The maximum irrigation water injected per hour (kg.m^{-2}/hour)503 REAL(r_std), SAVE :: irrig_dosmax = 3. !! The maximum irrigation water injected per hour (kg.m^{-2}/hour) 504 504 !$OMP THREADPRIVATE(irrig_dosmax) 505 REAL(r_std), SAVE :: cum_ nroot_thr = 0.90 !! Cumulated nroot threshoold to define root zone, and calculate water deficit for irrigation (-)506 !$OMP THREADPRIVATE(cum_ nroot_thr)505 REAL(r_std), SAVE :: cum_dh_thr = 0.64 !! Cumulated nroot threshoold to define root zone, and calculate water deficit for irrigation (-) 506 !$OMP THREADPRIVATE(cum_dh_thr) 507 507 LOGICAL, SAVE :: irrigated_soiltile = .FALSE. !! Do we introduce a new soil tile for irrigated croplands? (true/false) 508 508 !$OMP THREADPRIVATE(irrigated_soiltile) … … 511 511 INTEGER, SAVE :: irrig_st = 3 !! Which is the soil tile with irrigation flux 512 512 !$OMP THREADPRIVATE(irrig_st) 513 REAL(r_std), SAVE, DIMENSION(3) :: avail_reserve = (/0.9,0. 0,0.9/) !! Available water from routing reservoirs, to withdraw for irrigation513 REAL(r_std), SAVE, DIMENSION(3) :: avail_reserve = (/0.9,0.9,0.9/) !! Available water from routing reservoirs, to withdraw for irrigation 514 514 !! IMPORTANT: As the routing model uses 3 reservoirs, dimension is set to 3 515 515 !! IMPORTANT: Order of available water must be in this order: streamflow, fast, and slow reservoir 516 516 !$OMP THREADPRIVATE(avail_reserve) 517 REAL(r_std), SAVE :: beta_irrig = 1.!! Threshold multiplier of Target SM to calculate root deficit(unitless)517 REAL(r_std), SAVE :: beta_irrig = 0.9 !! Threshold multiplier of Target SM to calculate root deficit(unitless) 518 518 !$OMP THREADPRIVATE(beta_irrig) 519 519 REAL(r_std), SAVE :: lai_irrig_min = 0.1 !! Minimum LAI to trigger irrigation (kg.m^{-2}/hour) … … 528 528 !! Max value of reinf_slope in irrig_st 529 529 !$OMP THREADPRIVATE(reinf_slope_cropParam) 530 REAL, SAVE :: a_stream_adduction = zero!! Externalized for available volume to adduction530 REAL, SAVE :: a_stream_adduction = 0.05 !! Externalized for available volume to adduction 531 531 !$OMP THREADPRIVATE(a_stream_adduction) 532 532 -
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.