SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/control_moist_func.F90
Go to the documentation of this file.
00001 !   #############
00002 FUNCTION CONTROL_MOIST_FUNC (PMOIST,PSAT) RESULT (PMOISTFUNC)
00003 
00004 !   ###############################################################
00005 !!**   CONTROL_MOIST_FUNC
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!     Moisture control factor for decomposition.
00013 !!
00014 !!    EXTERNAL
00015 !!    --------
00016 !!    none
00017 !!
00018 !!    IMPLICIT ARGUMENTS
00019 !!    ------------------
00020 !!      
00021 !!    none
00022 !!
00023 !!    REFERENCE
00024 !!    ---------
00025 !!
00026 !!      Krinner et al., Global Biochemical Cycles, 2005
00027 !!      Modified for Wfc < W < Wsat following Probert et al., Agricultural Systems, 1998
00028 !!      Gibelin et al. 2008, AFM
00029 !!      
00030 !!    AUTHOR
00031 !!    ------
00032 !!
00033 !!      A.-L. Gibelin           * Meteo-France *
00034 !!
00035 !!    MODIFICATIONS
00036 !!    -------------
00037 !!      Original    23/06/09
00038 !!      B. Decharme 05/2012 : Optimization and ISBA-DIF coupling
00039 !!      
00040 !-------------------------------------------------------------------------------
00041 !
00042 !*       0.     DECLARATIONS
00043 !               ------------
00044 !
00045 !
00046 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00047 USE PARKIND1  ,ONLY : JPRB
00048 !
00049 IMPLICIT NONE
00050 !
00051 !*      0.1    declarations of arguments
00052 !
00053 REAL, DIMENSION(:), INTENT(IN)   :: PMOIST ! soil moisture index (-)
00054 REAL, DIMENSION(:), INTENT(IN)   :: PSAT   ! soil saturated index (-)
00055 !
00056 !*      0.2    declarations of local variables
00057 !
00058 REAL, PARAMETER               :: ZMOIST_LIM = 0.05
00059 REAL, PARAMETER               :: ZSAT_LIM   = 0.5
00060 !
00061 REAL, PARAMETER               :: ZCOEF1 = 2.40
00062 REAL, PARAMETER               :: ZCOEF2 = 1.10
00063 REAL, PARAMETER               :: ZCOEF3 = 0.29
00064 !
00065 REAL, DIMENSION(SIZE(PMOIST)) :: PMOISTFUNC    ! moisture control factor
00066 !
00067 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00068 !
00069 !*      1.0    Calculates moisture control factor
00070 !
00071 IF (LHOOK) CALL DR_HOOK('CONTROL_MOIST_FUNC',0,ZHOOK_HANDLE)
00072 !
00073 WHERE(PMOIST(:)<=1.0)
00074       PMOISTFUNC(:)=MIN(1.0,ZCOEF1*PMOIST(:)-ZCOEF2*PMOIST(:)*PMOIST(:)-ZCOEF3)
00075       PMOISTFUNC(:)=MAX(ZMOIST_LIM,PMOISTFUNC(:))
00076 ELSEWHERE
00077       PMOISTFUNC(:)=MAX(ZSAT_LIM,1.0-0.5*PSAT(:))
00078 ENDWHERE
00079 !
00080 IF (LHOOK) CALL DR_HOOK('CONTROL_MOIST_FUNC',1,ZHOOK_HANDLE)
00081 
00082 END FUNCTION CONTROL_MOIST_FUNC