SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/heatcapz.F90
Go to the documentation of this file.
00001 !     #########
00002     SUBROUTINE HEATCAPZ(PSANDZ,PWSATZ,PHCAPSOIL)
00003 !   ###############################################################
00004 !!****  *HEATCAPZ*  
00005 !!
00006 !!    PURPOSE
00007 !!    -------
00008 !
00009 !     Calculates soil thermal conductivity components
00010 !     using sand fraction and model constants in
00011 !     order to calculate the thermal conductivity
00012 !     following the method of Johansen (1975) as recommended
00013 !     by Farouki (1986) parameterized for SVAT schemes
00014 !     following Peters-Lidard et al. 1998 (JAS). This is
00015 !     used in explicit calculation of CG (soil thermal
00016 !     inertia): it is an option. DEFAULT is method of
00017 !     Noilhan and Planton (1989) (see SOIL.F90).
00018 !              
00019 !!**  METHOD
00020 !!    ------
00021 !!
00022 !!    EXTERNAL
00023 !!    --------
00024 !!    none
00025 !!
00026 !!    IMPLICIT ARGUMENTS
00027 !!    ------------------
00028 !!      
00029 !!    none
00030 !!
00031 !!    REFERENCE
00032 !!    ---------
00033 !!
00034 !!    Peters-Lidard et al. 1998 (JAS)
00035 !!      
00036 !!    AUTHOR
00037 !!    ------
00038 !!
00039 !!      A. Boone           * Meteo-France *
00040 !!
00041 !!    MODIFICATIONS
00042 !!    -------------
00043 !!      Original    25/03/99
00044 !!                  18/02/00    2D for veritcal profiles
00045 !!                  2008/03     P. LeMoigne, ###it thrmconz subroutine
00046 !!
00047 !-------------------------------------------------------------------------------
00048 !
00049 !*       0.     DECLARATIONS
00050 !               ------------
00051 !
00052 USE MODD_SURF_PAR,   ONLY : XUNDEF
00053 USE MODD_ISBA_PAR,   ONLY : XDRYWGHT, XSPHSOIL
00054 !
00055 !
00056 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00057 USE PARKIND1  ,ONLY : JPRB
00058 !
00059 IMPLICIT NONE
00060 !
00061 !*      0.1    declarations of arguments
00062 !
00063 REAL,   DIMENSION(:,:), INTENT(IN) :: PSANDZ     ! soil sand fraction (-)
00064 REAL,   DIMENSION(:,:), INTENT(IN) :: PWSATZ     ! soil porosity (m3 m-3)
00065 !
00066 REAL,   DIMENSION(:,:), INTENT(OUT):: PHCAPSOIL ! soil heat capacity (J K-1 m-3) 
00067 !
00068 !*      0.2    declarations of local variables
00069 !
00070 REAL,    DIMENSION(SIZE(PSANDZ,1),SIZE(PSANDZ,2)) :: ZGAMMAD
00071 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00072 !
00073 !-----------------------------------------------------------------
00074 !
00075 IF (LHOOK) CALL DR_HOOK('HEATCAPZ',0,ZHOOK_HANDLE)
00076 ZGAMMAD(:,:)   = XUNDEF
00077 PHCAPSOIL(:,:) = XUNDEF
00078 !
00079 !
00080 ! Quartz content estimated from sand fraction:
00081 !
00082 WHERE(PSANDZ(:,:)/=XUNDEF)
00083 !
00084 ! Note, ZGAMMAD (soil dry density) can be supplied from obs, but
00085 ! for mesoscale modeling, we use the following approximation
00086 ! from Peters-Lidard et al. 1998:
00087 !
00088    ZGAMMAD(:,:)   = (1.0-PWSATZ(:,:))*XDRYWGHT
00089    PHCAPSOIL(:,:) = XSPHSOIL*ZGAMMAD(:,:)
00090 !
00091 END WHERE
00092 IF (LHOOK) CALL DR_HOOK('HEATCAPZ',1,ZHOOK_HANDLE)
00093 !
00094 END SUBROUTINE HEATCAPZ