SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/control_temp_func.F90
Go to the documentation of this file.
00001 !   ################
00002 FUNCTION CONTROL_TEMP_FUNC (PTEMP_IN) RESULT (PTEMPFUNC_RESULT)
00003 
00004 !
00005 !   ###############################################################
00006 !!**   CONTROL_TEMP_FUNC
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!**  METHOD
00012 !!    ------
00013 !!     Temperature control factor of decomposition.
00014 !!
00015 !!    EXTERNAL
00016 !!    --------
00017 !!    none
00018 !!
00019 !!    IMPLICIT ARGUMENTS
00020 !!    ------------------
00021 !!      
00022 !!    none
00023 !!
00024 !!    REFERENCE
00025 !!    ---------
00026 !!
00027 !!      Krinner et al., Global Biochemical Cycles, 2005
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 !
00043 !*       0.     DECLARATIONS
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)  :: PTEMP_IN ! temperature (K)
00054 !
00055 !*      0.2    declarations of local variables
00056 !
00057 REAL                            :: ZCOEF1
00058 REAL, PARAMETER                 :: ZCOEF2 = 10.0
00059 REAL, PARAMETER                 :: ZCOEF3 = 30.0
00060 !
00061 REAL, DIMENSION(SIZE(PTEMP_IN)) :: PTEMPFUNC_RESULT ! temperature control factor
00062 !
00063 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00064 !
00065 !
00066 !*       1 Calculates temperature control factor
00067 !
00068 IF (LHOOK) CALL DR_HOOK('CONTROL_TEMP_FUNC',0,ZHOOK_HANDLE)
00069 !
00070 ZCOEF1 = LOG(2.0)
00071 !
00072 PTEMPFUNC_RESULT(:) = EXP( (ZCOEF1/ZCOEF2) * (PTEMP_IN(:)-ZCOEF3) )
00073 !
00074 PTEMPFUNC_RESULT(:) = MIN( 1., PTEMPFUNC_RESULT(:) )
00075 !
00076 IF (LHOOK) CALL DR_HOOK('CONTROL_TEMP_FUNC',1,ZHOOK_HANDLE)
00077 
00078 END FUNCTION CONTROL_TEMP_FUNC
00079 
00080