SURFEX v7.3
General documentation of Surfex
|
00001 ! ########## 00002 SUBROUTINE EXP_DECAY_SOIL_FR (HISBA, PF, PC1SAT, PC2REF, PD_G, PD_ICE, & 00003 PC4REF, PC3, PCONDSAT, PKSAT_ICE ) 00004 ! ########################################################################## 00005 ! 00006 !!**** *EXP_DECAY_SOIL_FR* 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 ! 00011 ! We caculate the hydraulic coductivity decay factor for each FR-coefficients. 00012 ! Also, we redefine the surface hydraulic coductivity at saturation for 00013 ! convective precipitation parametrisation. 00014 ! 00015 !!** METHOD 00016 !! ------ 00017 ! 00018 ! Direct calculation 00019 ! 00020 !! EXTERNAL 00021 !! -------- 00022 ! 00023 ! None 00024 !! 00025 !! IMPLICIT ARGUMENTS 00026 !! ------------------ 00027 !! 00028 !! 00029 !! REFERENCE 00030 !! --------- 00031 !! 00032 !! AUTHOR 00033 !! ------ 00034 !! B. Decharme 00035 !! 00036 !! MODIFICATIONS 00037 !! ------------- 00038 !! Original 17/11/03 00039 !------------------------------------------------------------------------------- 00040 ! 00041 !* 0. DECLARATIONS 00042 ! ------------ 00043 ! 00044 USE MODD_SURF_PAR,ONLY : XUNDEF 00045 USE MODD_SGH_PAR, ONLY : X2 00046 USE MODD_CSTS, ONLY : XDAY 00047 USE MODD_DUMMY_EXP_PROFILE,ONLY : XC_DEPTH_RATIO 00048 ! 00049 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00050 USE PARKIND1 ,ONLY : JPRB 00051 ! 00052 IMPLICIT NONE 00053 ! 00054 !* 0.1 declarations of arguments 00055 ! 00056 CHARACTER(LEN=*) :: HISBA ! hydrology/soil: 00057 ! ! '2-L' = single column 00058 ! ! '3-L' = root zone/baseflow layer 00059 ! ! 'DIF' = N-layer diffusion: Richard's Eq. 00060 ! 00061 REAL, DIMENSION(:), INTENT(IN) :: PF 00062 ! PF = exponential decay factor (1/m) 00063 ! 00064 REAL, DIMENSION(:), INTENT(INOUT) :: PC2REF,PC1SAT 00065 ! PC1SAT = C1 at saturation 00066 ! PC2REF = reference value of C2 00067 ! 00068 REAL, DIMENSION(:,:),INTENT(INOUT):: PCONDSAT 00069 ! PCONDSAT = hydraulic conductivity at saturation (m s-1) 00070 ! 00071 REAL, DIMENSION(:,:), INTENT(IN) :: PD_G 00072 ! PD_G = Depth of bottom of Soil layers (m) 00073 ! 00074 REAL, DIMENSION(:), INTENT(IN) :: PD_ICE 00075 ! PD_ICE = depth of the soil column for 00076 ! fraction of frozen soil calculation (m) 00077 00078 REAL, DIMENSION(:,:),INTENT(INOUT):: PC3 00079 ! PC3 = C3 coef with exponential decay of hydraulic soil profil 00080 ! 00081 REAL, DIMENSION(:), INTENT(INOUT) :: PC4REF 00082 ! PC4REF = fiiting soil paramater for vertical diffusion (C4) 00083 ! with exponential decay of hydraulic soil profil 00084 ! 00085 REAL, DIMENSION(:), INTENT(OUT) :: PKSAT_ICE 00086 ! PKSAT_ICE = hydraulic conductivity at saturation (m s-1) 00087 ! on frozen soil depth (Horton calculation) 00088 ! 00089 !* 0.2 declarations of local variables 00090 ! 00091 REAL, DIMENSION(SIZE(PF)) :: ZD_G_TOT, ZC_DEPTH, ZKSAT_NOEXP, ZC_DEPTH_RATIO 00092 ! ZD_G_TOT = depth of the soil column (m) 00093 ! ZC_DEPTH = assumed as the depth where the vertical 00094 ! satured hydraulic conductivities reach 00095 ! the compacted value given in Clapp and 00096 ! Hornberger. (m) 00097 ! For ISBA-FR, we take the root depth. 00098 ! 00099 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00100 ! 00101 !------------------------------------------------------------------------------- 00102 ! 00103 IF (LHOOK) CALL DR_HOOK('EXP_DECAY_SOIL_FR',0,ZHOOK_HANDLE) 00104 ! 00105 ZD_G_TOT(:) = PD_G(:,2) 00106 IF(HISBA=='3-L')ZD_G_TOT(:) = PD_G(:,3) 00107 ! 00108 ZKSAT_NOEXP(:) = PCONDSAT(:,2) 00109 ! 00110 IF (ALLOCATED(XC_DEPTH_RATIO)) THEN 00111 ZC_DEPTH_RATIO(:) = XC_DEPTH_RATIO(:) 00112 ELSE 00113 ZC_DEPTH_RATIO(:) = 1. 00114 ENDIF 00115 ! 00116 WHERE(ZD_G_TOT(:)/=XUNDEF) 00117 ! 00118 !compacted depth 00119 ! 00120 ZC_DEPTH(:) = PD_G(:,2)*ZC_DEPTH_RATIO(:) 00121 !ZC_DEPTH(:) = PD_G(:,2) 00122 ! 00123 !surface hydraulic conductivity at saturation 00124 ! 00125 PCONDSAT(:,1) = PCONDSAT(:,1)*EXP(PF(:)*ZC_DEPTH(:)) 00126 ! 00127 !mean hydraulic conductivity at saturation over the root zone 00128 ! 00129 PCONDSAT(:,2) = ZKSAT_NOEXP(:)*( EXP(PF(:)*ZC_DEPTH)-EXP(PF(:)*(ZC_DEPTH(:)-PD_G(:,2))) ) & 00130 /(PF(:)*PD_G(:,2)) 00131 ! 00132 !mean hydraulic conductivity at saturation over the first soil centimeters 00133 ! 00134 PKSAT_ICE(:) = ZKSAT_NOEXP(:)*( EXP(PF(:)*ZC_DEPTH)-EXP(PF(:)*(ZC_DEPTH(:)-PD_ICE(:))) ) & 00135 /(PF(:)*PD_ICE(:)) 00136 ! 00137 !decay factor for C1 coef 00138 ! 00139 PC1SAT(:) = PC1SAT(:)*SQRT( EXP(-PF(:)*ZC_DEPTH(:)) ) 00140 ! 00141 !decay factor for C2 coef 00142 ! 00143 PC2REF(:)=PC2REF(:)+( PCONDSAT(:,2)-ZKSAT_NOEXP(:) ) * XDAY/PD_G(:,2) 00144 ! 00145 !C3 coef with exponential decay in root soil layer 00146 ! 00147 PC3(:,1)=PC3(:,1)*( EXP(PF(:)*ZC_DEPTH(:))-EXP(PF(:)*(ZC_DEPTH(:)-PD_G(:,2))) ) / (PF(:)*PD_G(:,2)) 00148 ! 00149 ENDWHERE 00150 ! 00151 IF(HISBA=='3-L')THEN 00152 ! 00153 WHERE(PD_G(:,2)< ZD_G_TOT(:).AND.PD_G(:,2)/=XUNDEF) 00154 ! 00155 ! C3 coef with exponential decay in deep soil layer 00156 ! 00157 PC3(:,2)=PC3(:,2)*( EXP(PF(:)*(ZC_DEPTH(:)-PD_G(:,2)))-EXP(PF(:)*(ZC_DEPTH(:)-ZD_G_TOT(:))) ) & 00158 / (PF(:)*(ZD_G_TOT(:)-PD_G(:,2))) 00159 ! 00160 ! decay factor for C4 coef 00161 ! 00162 PC4REF(:)=PC4REF(:)*( EXP(PF(:)*(ZC_DEPTH(:)-PD_G(:,2)/X2))-EXP(PF(:)*(ZC_DEPTH(:)& 00163 -((PD_G(:,2)+ZD_G_TOT(:))/2.))) ) * X2/(PF(:)*ZD_G_TOT(:)) 00164 ! 00165 ENDWHERE 00166 ! 00167 ENDIF 00168 ! 00169 IF (LHOOK) CALL DR_HOOK('EXP_DECAY_SOIL_FR',1,ZHOOK_HANDLE) 00170 ! 00171 END SUBROUTINE EXP_DECAY_SOIL_FR