SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_data_tebn.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 ! ################
7 ! ################
8 !
9 !!**** *MODD_DATA_TEB_n - declaration of surface parameters for urban surface
10 !!
11 !! PURPOSE
12 !! -------
13 ! Declaration of surface parameters
14 !
15 !!
16 !!** IMPLICIT ARGUMENTS
17 !! ------------------
18 !! None
19 !!
20 !! REFERENCE
21 !! ---------
22 !!
23 !! AUTHOR
24 !! ------
25 !! V. Masson *Meteo France*
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 01/2004
30 !! Modified 08/2012 G. Pigeon ROUGH_WALL, ROUGH_ROOF
31 !
32 !* 0. DECLARATIONS
33 ! ------------
34 !
35 !
36 USE yomhook ,ONLY : lhook, dr_hook
37 USE parkind1 ,ONLY : jprb
38 !
39 IMPLICIT NONE
40 
42 !
43  LOGICAL :: LDATA_BLDTYPE
44  LOGICAL :: LDATA_BLD_AGE
45  LOGICAL :: LDATA_USETYPE
46  LOGICAL :: LDATA_GARDEN
47  LOGICAL :: LDATA_GREENROOF
48  LOGICAL :: LDATA_ROAD_DIR
49  LOGICAL :: LDATA_BLD
50  LOGICAL :: LDATA_BLD_HEIGHT
51  LOGICAL :: LDATA_WALL_O_HOR
52  LOGICAL :: LDATA_Z0_TOWN
53  LOGICAL :: LDATA_ALB_ROOF
54  LOGICAL :: LDATA_EMIS_ROOF
55  LOGICAL :: LDATA_HC_ROOF
56  LOGICAL :: LDATA_TC_ROOF
57  LOGICAL :: LDATA_D_ROOF
58  LOGICAL :: LDATA_ALB_ROAD
59  LOGICAL :: LDATA_EMIS_ROAD
60  LOGICAL :: LDATA_HC_ROAD
61  LOGICAL :: LDATA_TC_ROAD
62  LOGICAL :: LDATA_D_ROAD
63  LOGICAL :: LDATA_ALB_WALL
64  LOGICAL :: LDATA_EMIS_WALL
65  LOGICAL :: LDATA_HC_WALL
66  LOGICAL :: LDATA_TC_WALL
67  LOGICAL :: LDATA_D_WALL
68  LOGICAL :: LDATA_H_TRAFFIC
69  LOGICAL :: LDATA_LE_TRAFFIC
70  LOGICAL :: LDATA_LE_INDUSTRY
71  LOGICAL :: LDATA_H_INDUSTRY
72  LOGICAL :: LDATA_ROUGH_ROOF
73  LOGICAL :: LDATA_ROUGH_WALL
74  LOGICAL :: LDATA_RESIDENTIAL
75  LOGICAL :: LDATA_EMIS_PANEL
76  LOGICAL :: LDATA_ALB_PANEL
77  LOGICAL :: LDATA_EFF_PANEL
78  LOGICAL :: LDATA_FRAC_PANEL
79 !
80 ! Number of layers in the specification of thermal characteristics
81 !
82  INTEGER :: NPAR_ROOF_LAYER ! number of layers in roofs
83  INTEGER :: NPAR_ROAD_LAYER ! number of layers in roads
84  INTEGER :: NPAR_WALL_LAYER ! number of layers in walls
85 !
86 !
87 ! Geometric Parameters:
88 !
89  INTEGER, POINTER, DIMENSION(:):: NPAR_BLDTYPE ! type of buidlings
90  INTEGER, POINTER, DIMENSION(:):: NPAR_BLD_AGE ! date of construction of buildings
91  INTEGER, POINTER, DIMENSION(:):: NPAR_BLDCODE ! code for buildings (type+age)
92  INTEGER, POINTER, DIMENSION(:):: NPAR_USETYPE ! type of use in the buildings
93  REAL, POINTER, DIMENSION(:) :: XPAR_GARDEN ! fraction of veg in the streets (-)
94  REAL, POINTER, DIMENSION(:) :: XPAR_GREENROOF ! fraction of greenroofs on roofs (-)
95  REAL, POINTER, DIMENSION(:) :: XPAR_ROAD_DIR ! road direction (deg from North, clockwise)
96  REAL, POINTER, DIMENSION(:) :: XPAR_BLD ! fraction of buildings (-)
97  REAL, POINTER, DIMENSION(:) :: XPAR_BLD_HEIGHT ! buildings height 'h' (m)
98  REAL, POINTER, DIMENSION(:) :: XPAR_WALL_O_HOR ! wall surf. / hor. surf. (-)
99  REAL, POINTER, DIMENSION(:) :: XPAR_Z0_TOWN ! roughness length for momentum (m)
100 !
101 ! Roof parameters
102 !
103  REAL, POINTER, DIMENSION(:) :: XPAR_ALB_ROOF ! roof albedo (-)
104  REAL, POINTER, DIMENSION(:) :: XPAR_EMIS_ROOF ! roof emissivity (-)
105  REAL, POINTER, DIMENSION(:,:) :: XPAR_HC_ROOF ! roof layers heat capacity (J/K/m3)
106  REAL, POINTER, DIMENSION(:,:) :: XPAR_TC_ROOF ! roof layers thermal conductivity (W/K/m)
107  REAL, POINTER, DIMENSION(:,:) :: XPAR_D_ROOF ! depth of roof layers (m)
108  REAL, POINTER, DIMENSION(:) :: XPAR_ROUGH_ROOF ! outside roof roughness coef
109 !
110 !
111 ! Road parameters
112 !
113  REAL, POINTER, DIMENSION(:) :: XPAR_ALB_ROAD ! road albedo (-)
114  REAL, POINTER, DIMENSION(:) :: XPAR_EMIS_ROAD ! road emissivity (-)
115  REAL, POINTER, DIMENSION(:,:) :: XPAR_HC_ROAD ! road layers heat capacity (J/K/m3)
116  REAL, POINTER, DIMENSION(:,:) :: XPAR_TC_ROAD ! road layers thermal conductivity (W/K/m)
117  REAL, POINTER, DIMENSION(:,:) :: XPAR_D_ROAD ! depth of road layers (m)
118 !
119 ! Wall parameters
120 !
121  REAL, POINTER, DIMENSION(:) :: XPAR_ALB_WALL ! wall albedo (-)
122  REAL, POINTER, DIMENSION(:) :: XPAR_EMIS_WALL ! wall emissivity (-)
123  REAL, POINTER, DIMENSION(:,:) :: XPAR_HC_WALL ! wall layers heat capacity (J/K/m3)
124  REAL, POINTER, DIMENSION(:,:) :: XPAR_TC_WALL ! wall layers thermal conductivity (W/K/m)
125  REAL, POINTER, DIMENSION(:,:) :: XPAR_D_WALL ! depth of wall layers (m)
126  REAL, POINTER, DIMENSION(:) :: XPAR_ROUGH_WALL ! outside wall roughness coef
127 !
128 ! anthropogenic fluxes
129 !
130  REAL, POINTER, DIMENSION(:) :: XPAR_H_TRAFFIC ! anthropogenic sensible
131 ! ! heat fluxes due to traffic (W/m2)
132  REAL, POINTER, DIMENSION(:) :: XPAR_LE_TRAFFIC ! anthropogenic latent
133 ! ! heat fluxes due to traffic (W/m2)
134  REAL, POINTER, DIMENSION(:) :: XPAR_H_INDUSTRY ! anthropogenic sensible
135 ! ! heat fluxes due to factories (W/m2)
136  REAL, POINTER, DIMENSION(:) :: XPAR_LE_INDUSTRY ! anthropogenic latent
137 ! ! heat fluxes due to factories (W/m2)
138 ! solar panels
139 !
140  REAL, POINTER, DIMENSION(:) :: XPAR_EMIS_PANEL ! emissivity of solar panel (-)
141  REAL, POINTER, DIMENSION(:) :: XPAR_ALB_PANEL ! albedo of solar panel (-)
142  REAL, POINTER, DIMENSION(:) :: XPAR_EFF_PANEL ! efficiency of solar panel (-)
143  REAL, POINTER, DIMENSION(:) :: XPAR_FRAC_PANEL ! fraction of solar panel (-)
144 !
145 ! fraction of residential use
146 !
147  REAL, POINTER, DIMENSION(:) :: XPAR_RESIDENTIAL ! fraction of residential use (-)
148 !
149 END TYPE data_teb_t
150 
151 
152 
153  CONTAINS
154 
155 !
156 
157 
158 
159 
160 SUBROUTINE data_teb_init(YDATA_TEB)
161 TYPE(data_teb_t), INTENT(INOUT) :: ydata_teb
162 REAL(KIND=JPRB) :: zhook_handle
163 IF (lhook) CALL dr_hook("MODD_DATA_TEB_N:DATA_TEB_INIT",0,zhook_handle)
164  nullify(ydata_teb%NPAR_BLDTYPE)
165  nullify(ydata_teb%NPAR_BLD_AGE)
166  nullify(ydata_teb%NPAR_BLDCODE)
167  nullify(ydata_teb%NPAR_USETYPE)
168  nullify(ydata_teb%XPAR_GARDEN)
169  nullify(ydata_teb%XPAR_GREENROOF)
170  nullify(ydata_teb%XPAR_ROAD_DIR)
171  nullify(ydata_teb%XPAR_BLD)
172  nullify(ydata_teb%XPAR_BLD_HEIGHT)
173  nullify(ydata_teb%XPAR_WALL_O_HOR)
174  nullify(ydata_teb%XPAR_Z0_TOWN)
175  nullify(ydata_teb%XPAR_ALB_ROOF)
176  nullify(ydata_teb%XPAR_EMIS_ROOF)
177  nullify(ydata_teb%XPAR_HC_ROOF)
178  nullify(ydata_teb%XPAR_TC_ROOF)
179  nullify(ydata_teb%XPAR_D_ROOF)
180  nullify(ydata_teb%XPAR_ALB_ROAD)
181  nullify(ydata_teb%XPAR_EMIS_ROAD)
182  nullify(ydata_teb%XPAR_HC_ROAD)
183  nullify(ydata_teb%XPAR_TC_ROAD)
184  nullify(ydata_teb%XPAR_D_ROAD)
185  nullify(ydata_teb%XPAR_ALB_WALL)
186  nullify(ydata_teb%XPAR_EMIS_WALL)
187  nullify(ydata_teb%XPAR_HC_WALL)
188  nullify(ydata_teb%XPAR_TC_WALL)
189  nullify(ydata_teb%XPAR_D_WALL)
190  nullify(ydata_teb%XPAR_H_TRAFFIC)
191  nullify(ydata_teb%XPAR_LE_TRAFFIC)
192  nullify(ydata_teb%XPAR_H_INDUSTRY)
193  nullify(ydata_teb%XPAR_LE_INDUSTRY)
194  nullify(ydata_teb%XPAR_ROUGH_ROOF)
195  nullify(ydata_teb%XPAR_ROUGH_WALL)
196  nullify(ydata_teb%XPAR_RESIDENTIAL)
197  nullify(ydata_teb%XPAR_EMIS_PANEL)
198  nullify(ydata_teb%XPAR_ALB_PANEL)
199  nullify(ydata_teb%XPAR_EFF_PANEL)
200  nullify(ydata_teb%XPAR_EMIS_PANEL)
201 ydata_teb%LDATA_BLDTYPE=.false.
202 ydata_teb%LDATA_BLD_AGE=.false.
203 ydata_teb%LDATA_USETYPE=.false.
204 ydata_teb%LDATA_GARDEN=.false.
205 ydata_teb%LDATA_GREENROOF=.false.
206 ydata_teb%LDATA_ROAD_DIR=.false.
207 ydata_teb%LDATA_BLD=.false.
208 ydata_teb%LDATA_BLD_HEIGHT=.false.
209 ydata_teb%LDATA_WALL_O_HOR=.false.
210 ydata_teb%LDATA_Z0_TOWN=.false.
211 ydata_teb%LDATA_ALB_ROOF=.false.
212 ydata_teb%LDATA_EMIS_ROOF=.false.
213 ydata_teb%LDATA_HC_ROOF=.false.
214 ydata_teb%LDATA_TC_ROOF=.false.
215 ydata_teb%LDATA_D_ROOF=.false.
216 ydata_teb%LDATA_ALB_ROAD=.false.
217 ydata_teb%LDATA_EMIS_ROAD=.false.
218 ydata_teb%LDATA_HC_ROAD=.false.
219 ydata_teb%LDATA_TC_ROAD=.false.
220 ydata_teb%LDATA_D_ROAD=.false.
221 ydata_teb%LDATA_ALB_WALL=.false.
222 ydata_teb%LDATA_EMIS_WALL=.false.
223 ydata_teb%LDATA_HC_WALL=.false.
224 ydata_teb%LDATA_TC_WALL=.false.
225 ydata_teb%LDATA_D_WALL=.false.
226 ydata_teb%LDATA_H_TRAFFIC=.false.
227 ydata_teb%LDATA_LE_TRAFFIC=.false.
228 ydata_teb%LDATA_H_INDUSTRY=.false.
229 ydata_teb%LDATA_LE_INDUSTRY=.false.
230 ydata_teb%LDATA_ROUGH_ROOF=.false.
231 ydata_teb%LDATA_ROUGH_WALL=.false.
232 ydata_teb%LDATA_RESIDENTIAL=.false.
233 ydata_teb%LDATA_EMIS_PANEL=.false.
234 ydata_teb%LDATA_ALB_PANEL=.false.
235 ydata_teb%LDATA_EFF_PANEL=.false.
236 ydata_teb%LDATA_FRAC_PANEL=.false.
237 ydata_teb%NPAR_ROOF_LAYER=0
238 ydata_teb%NPAR_ROAD_LAYER=0
239 ydata_teb%NPAR_WALL_LAYER=0
240 IF (lhook) CALL dr_hook("MODD_DATA_TEB_N:DATA_TEB_INIT",1,zhook_handle)
241 END SUBROUTINE data_teb_init
242 
243 
244 END MODULE modd_data_teb_n
subroutine data_teb_init(YDATA_TEB)