SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/exp_decay_soil_fr.F90
Go to the documentation of this file.
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