SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
prep_seaflux_sbl.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6 SUBROUTINE prep_seaflux_sbl (SG, SSB)
7 ! #################################################################################
8 !
9 !!**** *PREP_SEAFLUX_SBL* - prepares SEAFLUX SBL fields
10 !!
11 !! PURPOSE
12 !! -------
13 !
14 !!** METHOD
15 !! ------
16 !!
17 !! REFERENCE
18 !! ---------
19 !!
20 !!
21 !! AUTHOR
22 !! ------
23 !! V. Masson
24 !!
25 !! MODIFICATIONS
26 !! -------------
27 !! Original 07/2006
28 !! S. Riette 06/2009 XT, XU, XQ, XTKE are set to XUNDEF
29 !! No more argument needed
30 !! E. Martin 01/2012 XUNDEF fields are no more written in PREP file
31 !!------------------------------------------------------------------
32 !
33 !
34 !
37 !
38 USE yomhook ,ONLY : lhook, dr_hook
39 USE parkind1 ,ONLY : jprb
40 !
41 IMPLICIT NONE
42 !
43 !* 0.1 declarations of arguments
44 !
45 !
46 !* 0.2 declarations of local variables
47 !
48 !
49 TYPE(seaflux_grid_t), INTENT(INOUT) :: sg
50 TYPE(seaflux_sbl_t), INTENT(INOUT) :: ssb
51 !
52 INTEGER :: jlayer
53 !
54 REAL, DIMENSION(:,:), ALLOCATABLE :: zzf ! altitudes at half levels
55 REAL(KIND=JPRB) :: zhook_handle
56 !
57 !-------------------------------------------------------------------------------------
58 !
59 !* 1. number of levels (MUST be at least equal to 2)
60 ! ----------------
61 !
62 IF (lhook) CALL dr_hook('PREP_SEAFLUX_SBL',0,zhook_handle)
63 ssb%NLVL = 6
64 !
65 !* 2. height of half levels (where turbulent fluxes will be)
66 ! ---------------------
67 !
68 !* Warning : ZZF(:,1) MUST BE ZERO
69 ALLOCATE(zzf(sg%NDIM,ssb%NLVL))
70 zzf(:,1) = 0.
71 zzf(:,2) = 1
72 zzf(:,3) = 3.
73 zzf(:,4) = 5.
74 zzf(:,5) = 8.
75 zzf(:,6) = 12.
76 
77 ALLOCATE(ssb%XZ(sg%NDIM,ssb%NLVL))
78 DO jlayer=1,ssb%NLVL-1
79  ssb%XZ(:,jlayer) = 0.5 * (zzf(:,jlayer)+zzf(:,jlayer+1))
80 END DO
81 ssb%XZ(:,ssb%NLVL) = 1.5 * zzf(:,ssb%NLVL) - 0.5 * zzf(:,ssb%NLVL-1)
82 !
83 DEALLOCATE(zzf)
84 !
85 IF (lhook) CALL dr_hook('PREP_SEAFLUX_SBL',1,zhook_handle)
86 !
87 !-------------------------------------------------------------------------------------
88 !
89 END SUBROUTINE prep_seaflux_sbl
subroutine prep_seaflux_sbl(SG, SSB)