SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_flake_sbl.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_FLAKE_SBL()
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_FLAKE_SBL* - prepares FLAKE SBL 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 !
00030 USE MODD_FLAKE_GRID_n,     ONLY : NDIM
00031 USE MODD_FLAKE_SBL_n,   ONLY : NLVL, XZ
00032 !
00033 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00034 USE PARKIND1  ,ONLY : JPRB
00035 !
00036 IMPLICIT NONE
00037 !
00038 !*      0.1    declarations of arguments
00039 !
00040 !
00041 !*      0.2    declarations of local variables
00042 !
00043 INTEGER :: JLAYER
00044 !
00045 REAL, DIMENSION(:,:), ALLOCATABLE :: ZZF ! altitudes at half levels
00046 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00047 !
00048 !-------------------------------------------------------------------------------------
00049 !
00050 
00051 !
00052 !*      1.    number of levels (MUST be at least equal to 2)
00053 !             ----------------
00054 !
00055 IF (LHOOK) CALL DR_HOOK('PREP_FLAKE_SBL',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(NDIM,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(NDIM,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 IF (LHOOK) CALL DR_HOOK('PREP_FLAKE_SBL',1,ZHOOK_HANDLE)
00079 !
00080 !-------------------------------------------------------------------------------------
00081 !
00082 END SUBROUTINE PREP_FLAKE_SBL