SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_sso_canopy.F90
Go to the documentation of this file.
00001 !     #################################################################################
00002 SUBROUTINE PREP_SSO_CANOPY(KDIM)
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_SSO_CANOPY* - prepares SSO canopy fields
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!      
00016 !!
00017 !!    AUTHOR
00018 !!    ------
00019 !!     V. Masson 
00020 !!
00021 !!    MODIFICATIONS
00022 !!    -------------
00023 !!      Original    07/2006
00024 !!      S. Riette   06/2009 XT, XU, XQ, XTKE are set to XUNDEF
00025 !!                          No more argument needed
00026 !!      E. Martin   01/2012 XUNDEF fields are no more written in PREP file
00027 !!------------------------------------------------------------------
00028 !
00029 USE MODD_SSO_CANOPY_n,   ONLY : NLVL, XZ, XU, XTKE
00030 USE MODD_SURF_PAR,       ONLY : XUNDEF
00031 !
00032 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00033 USE PARKIND1  ,ONLY : JPRB
00034 !
00035 IMPLICIT NONE
00036 !
00037 !*      0.1    declarations of arguments
00038 !
00039 INTEGER, INTENT(IN) :: KDIM ! 1D physical dimension
00040 
00041 !
00042 !*      0.2    declarations of local variables
00043 !
00044 INTEGER :: JLAYER
00045 INTEGER :: ILU      ! number of points
00046 !
00047 REAL, DIMENSION(:,:), ALLOCATABLE :: ZZF    ! altitudes at half levels
00048 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00049 !
00050 !-------------------------------------------------------------------------------------
00051 !
00052 !*      1.    number of levels (MUST be at least equal to 2)
00053 !             ----------------
00054 !
00055 IF (LHOOK) CALL DR_HOOK('PREP_SSO_CANOPY',0,ZHOOK_HANDLE)
00056 NLVL = 6
00057 !
00058 !*      2.    height of half levels (where turbulent fluxes will be)
00059 !             ---------------------
00060 !
00061 !* Warning :   ZZF(:,1)   MUST BE ZERO
00062 ALLOCATE(ZZF(KDIM,NLVL))
00063 ZZF(:,1) = 0.
00064 ZZF(:,2) = 1
00065 ZZF(:,3) = 3.
00066 ZZF(:,4) = 5.
00067 ZZF(:,5) = 8.
00068 ZZF(:,6) = 12.
00069 
00070 ALLOCATE(XZ(KDIM,NLVL))
00071 DO JLAYER=1,NLVL-1
00072   XZ(:,JLAYER) = 0.5 * (ZZF(:,JLAYER)+ZZF(:,JLAYER+1))
00073 END DO
00074 XZ(:,NLVL) = 1.5 * ZZF(:,NLVL) - 0.5 * ZZF(:,NLVL-1)
00075 !
00076 DEALLOCATE(ZZF)
00077 !
00078 !*      3.    wind in canopy (m/s)
00079 !             --------------
00080 !
00081 ALLOCATE(XU(KDIM,NLVL))
00082 XU(:,:) = XUNDEF
00083 !
00084 !*      4.    Tke in canopy (m2/s2)
00085 !             -------------
00086 !
00087 ALLOCATE(XTKE(KDIM,NLVL))
00088 XTKE(:,:) = XUNDEF
00089 !
00090 IF (LHOOK) CALL DR_HOOK('PREP_SSO_CANOPY',1,ZHOOK_HANDLE)
00091 !
00092 !-------------------------------------------------------------------------------------
00093 !
00094 END SUBROUTINE PREP_SSO_CANOPY