SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PREP_TEB_CANOPY() 00003 ! ################################################################################# 00004 ! 00005 !!**** *PREP_TEB_CANOPY* - prepares TEB 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 ! 00030 USE MODD_TEB_GRID_n, ONLY : NDIM 00031 USE MODD_TEB_CANOPY_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 IF (LHOOK) CALL DR_HOOK('PREP_TEB_CANOPY',0,ZHOOK_HANDLE) 00051 ! 00052 !* 1. number of levels (MUST be at least equal to 2) 00053 ! ---------------- 00054 ! 00055 NLVL = 6 00056 ! 00057 !* 2. height of half levels (where turbulent fluxes will be) 00058 ! --------------------- 00059 ! 00060 !* Warning : ZZF(:,1) MUST BE ZERO 00061 ALLOCATE(ZZF(NDIM,NLVL)) 00062 ZZF(:,1) = 0. 00063 ZZF(:,2) = 1. 00064 ZZF(:,3) = 3. 00065 ZZF(:,4) = 5. 00066 ZZF(:,5) = 8. 00067 ZZF(:,6) = 12. 00068 00069 ALLOCATE(XZ(NDIM,NLVL)) 00070 DO JLAYER=1,NLVL-1 00071 XZ(:,JLAYER) = 0.5 * (ZZF(:,JLAYER)+ZZF(:,JLAYER+1)) 00072 END DO 00073 XZ(:,NLVL) = 1.5 * ZZF(:,NLVL) - 0.5 * ZZF(:,NLVL-1) 00074 ! 00075 DEALLOCATE(ZZF) 00076 ! 00077 IF (LHOOK) CALL DR_HOOK('PREP_TEB_CANOPY',1,ZHOOK_HANDLE) 00078 ! 00079 !------------------------------------------------------------------------------------- 00080 ! 00081 END SUBROUTINE PREP_TEB_CANOPY