SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/permafrost_depth.F90
Go to the documentation of this file.
00001 !     #########################
00002 SUBROUTINE PERMAFROST_DEPTH (KNI,KPATCH,PPERM,PSOILDEPTH)
00003 !     ###################################################
00004 !
00005 !!****  *PERMAFROST_DEPTH*  
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 ! 
00010 !     Extended  ground depth to 12m over permafrost area
00011 !
00012 !!**  METHOD
00013 !!    ------
00014 !
00015 !     Direct calculation
00016 !
00017 !!    EXTERNAL
00018 !!    --------
00019 !
00020 !     None
00021 !!
00022 !!    IMPLICIT ARGUMENTS
00023 !!    ------------------
00024 !!
00025 !!      
00026 !!    REFERENCE
00027 !!    ---------
00028 !!      
00029 !!    AUTHOR
00030 !!    ------
00031 !!      B. Decharme     
00032 !!
00033 !!    MODIFICATIONS
00034 !!    -------------
00035 !!      Original    30/08/12 
00036 !-------------------------------------------------------------------------------
00037 !
00038 USE MODD_SURF_PAR, ONLY : XUNDEF
00039 !
00040 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00041 USE PARKIND1  ,ONLY : JPRB
00042 !
00043 !*      0.1    declarations of arguments
00044 !
00045 IMPLICIT NONE
00046 !
00047 INTEGER,             INTENT(IN   ) :: KNI        ! number of point
00048 !
00049 INTEGER,             INTENT(IN   ) :: KPATCH     ! patch number
00050 !
00051 REAL, DIMENSION(:),  INTENT(IN   ) :: PPERM      ! permafrost area (fraction)
00052 !
00053 REAL, DIMENSION(:,:),INTENT(INOUT) :: PSOILDEPTH ! output soil depth distribution (m)
00054 !
00055 !*      0.2    declarations of local parameter
00056 !
00057 REAL, PARAMETER :: ZPERMFRAC  = 0.25   ! permafrost limit area (fraction)
00058 !
00059 REAL, PARAMETER :: ZPERMDEPTH = 12.0   ! permafrost depth (m)
00060 !
00061 !*      0.3    declarations of local variables
00062 !
00063 REAL, DIMENSION(KNI) :: ZPERM
00064 !
00065 INTEGER :: JJ, JPATCH
00066 !
00067 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00068 !
00069 !-------------------------------------------------------------------------------
00070 !
00071 IF (LHOOK) CALL DR_HOOK('PERMAFROST_DEPTH',0,ZHOOK_HANDLE)
00072 !
00073 ZPERM(:)=0.0
00074 WHERE(PPERM(:)/=XUNDEF)ZPERM(:)=PPERM(:)
00075 !
00076 DO JPATCH=1,KPATCH
00077    DO JJ=1,KNI
00078       IF(ZPERM(JJ)>=ZPERMFRAC.AND.PSOILDEPTH(JJ,JPATCH)/=XUNDEF)THEN
00079          PSOILDEPTH(JJ,JPATCH)=ZPERMDEPTH
00080        ENDIF
00081    ENDDO
00082 ENDDO
00083 
00084 !
00085 IF (LHOOK) CALL DR_HOOK('PERMAFROST_DEPTH',1,ZHOOK_HANDLE)
00086 !
00087 END SUBROUTINE PERMAFROST_DEPTH
00088 
00089 
00090 
00091 
00092