SURFEX v7.3
General documentation of Surfex
|
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