SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_isba_canopy.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_ISBA_CANOPY()
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_ISBA_CANOPY* - prepares ISBA 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_ISBA_GRID_n,     ONLY : NDIM
00030 USE MODD_ISBA_CANOPY_n,   ONLY : NLVL, XZ
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 !
00040 !*      0.2    declarations of local variables
00041 !
00042 INTEGER :: JLAYER
00043 !
00044 REAL, DIMENSION(:,:), ALLOCATABLE :: ZZF    ! altitudes at half levels
00045 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00046 !
00047 !-------------------------------------------------------------------------------------
00048 !
00049 !
00050 !*      1.    number of levels (MUST be at least equal to 2)
00051 !             ----------------
00052 !
00053 IF (LHOOK) CALL DR_HOOK('PREP_ISBA_CANOPY',0,ZHOOK_HANDLE)
00054 NLVL = 6
00055 !
00056 !*      2.    height of half levels (where turbulent fluxes will be)
00057 !             ---------------------
00058 !
00059 !* Warning :   ZZF(:,1)   MUST BE ZERO
00060 ALLOCATE(ZZF(NDIM,NLVL))
00061 ZZF(:,1) = 0.
00062 ZZF(:,2) = 1
00063 ZZF(:,3) = 3.
00064 ZZF(:,4) = 5.
00065 ZZF(:,5) = 8.
00066 ZZF(:,6) = 12.
00067 
00068 ALLOCATE(XZ(NDIM,NLVL))
00069 DO JLAYER=1,NLVL-1
00070   XZ(:,JLAYER) = 0.5 * (ZZF(:,JLAYER)+ZZF(:,JLAYER+1))
00071 END DO
00072 XZ(:,NLVL) = 1.5 * ZZF(:,NLVL) - 0.5 * ZZF(:,NLVL-1)
00073 !
00074 DEALLOCATE(ZZF)
00075 !
00076 IF (LHOOK) CALL DR_HOOK('PREP_ISBA_CANOPY',1,ZHOOK_HANDLE)
00077 !
00078 !-------------------------------------------------------------------------------------
00079 !
00080 END SUBROUTINE PREP_ISBA_CANOPY