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