SURFEX v8.1
General documentation of Surfex
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
integer, parameter jprb
Definition: parkind1.F90:32
subroutine data_teb_init(YDATA_TEB)
logical lhook
Definition: yomhook.F90:15