SURFEX v8.1
General documentation of Surfex
diag_misc_teb_initn.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 ! ######spl
6  SUBROUTINE diag_misc_teb_init_n (DMTC, DMT, DMTO, TOP, KLU, KSW)
7 ! #####################
8 !
9 !!**** *DIAG_MISC_TEB_INIT_n* - routine to initialize TEB diagnostic variables
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !!** METHOD
15 !! ------
16 !!
17 !! EXTERNAL
18 !! --------
19 !!
20 !!
21 !! IMPLICIT ARGUMENTS
22 !! ------------------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !!
28 !! AUTHOR
29 !! ------
30 !! V. Masson *Meteo France*
31 !!
32 !! MODIFICATIONS
33 !! -------------
34 !! Original 01/2004
35 !-------------------------------------------------------------------------------
36 !
37 !* 0. DECLARATIONS
38 ! ------------
39 !
40 !
44 !
45 USE modd_surf_par, ONLY : xundef
47 !
48 
49 
50 !
52 !
53 !
54 USE yomhook ,ONLY : lhook, dr_hook
55 USE parkind1 ,ONLY : jprb
56 !
57 IMPLICIT NONE
58 !
59 !* 0.1 Declarations of arguments
60 ! -------------------------
61 !
62 !
63 TYPE(diag_misc_teb_t), INTENT(INOUT) :: DMTC
64 TYPE(diag_misc_teb_t), INTENT(INOUT) :: DMT
65 TYPE(diag_misc_teb_options_t), INTENT(INOUT) :: DMTO
66 TYPE(teb_options_t), INTENT(INOUT) :: TOP
67 !
68 INTEGER, INTENT(IN) :: KLU ! size of arrays
69 INTEGER, INTENT(IN) :: KSW ! spectral bands
70 !
71 !* 0.2 Declarations of local variables
72 ! -------------------------------
73 !
74 INTEGER :: IRESP ! IRESP : return-code if a problem appears
75  CHARACTER(LEN=12) :: YREC ! Name of the article to be read
76 REAL(KIND=JPRB) :: ZHOOK_HANDLE
77 !
78 !-------------------------------------------------------------------------------
79 !
80 !* surface energy budget
81 !
82 IF (lhook) CALL dr_hook('DIAG_MISC_TEB_INIT_N',0,zhook_handle)
83 !
84 !* miscellaneous fields
85 !
86 !IF (DMTO%LSURF_MISC_BUDGET) THEN
87  ALLOCATE(dmt%XQF_BLD (klu))
88  ALLOCATE(dmt%XFLX_BLD (klu))
89  ALLOCATE(dmt%XQF_TOWN (klu))
90  ALLOCATE(dmt%XDQS_TOWN (klu))
91  ALLOCATE(dmt%XRN_ROAD (klu))
92  ALLOCATE(dmt%XH_ROAD (klu))
93  ALLOCATE(dmt%XLE_ROAD (klu))
94  ALLOCATE(dmt%XGFLUX_ROAD (klu))
95  ALLOCATE(dmt%XRN_WALL_A (klu))
96  ALLOCATE(dmt%XH_WALL_A (klu))
97  ALLOCATE(dmt%XGFLUX_WALL_A (klu))
98  ALLOCATE(dmt%XRN_WALL_B (klu))
99  ALLOCATE(dmt%XH_WALL_B (klu))
100  ALLOCATE(dmt%XGFLUX_WALL_B (klu))
101  ALLOCATE(dmt%XRN_ROOF (klu))
102  ALLOCATE(dmt%XH_ROOF (klu))
103  ALLOCATE(dmt%XLE_ROOF (klu))
104  ALLOCATE(dmt%XGFLUX_ROOF (klu))
105  ALLOCATE(dmt%XRN_BLT (klu))
106  ALLOCATE(dmt%XH_BLT (klu))
107  ALLOCATE(dmt%XLE_BLT (klu))
108  ALLOCATE(dmt%XGFLUX_BLT (klu))
109  ALLOCATE(dmt%XRN_STRLROOF (klu))
110  ALLOCATE(dmt%XH_STRLROOF (klu))
111  ALLOCATE(dmt%XLE_STRLROOF (klu))
112  ALLOCATE(dmt%XGFLUX_STRLROOF (klu))
113  ALLOCATE(dmt%XG_GREENROOF_ROOF (klu))
114  ALLOCATE(dmt%XRUNOFF_TOWN (klu))
115  ALLOCATE(dmt%XRUNOFF_ROAD (klu))
116  ALLOCATE(dmt%XRUNOFF_STRLROOF (klu))
117  ALLOCATE(dmt%XRUNOFF_ROOF (klu))
118  ALLOCATE(dmt%XIRRIG_GREENROOF (klu))
119  ALLOCATE(dmt%XIRRIG_GARDEN (klu))
120  ALLOCATE(dmt%XIRRIG_ROAD (klu))
121  !
122  ALLOCATE(dmt%XABS_SW_ROOF (klu))
123  ALLOCATE(dmt%XABS_SW_SNOW_ROOF (klu))
124  ALLOCATE(dmt%XABS_LW_ROOF (klu))
125  ALLOCATE(dmt%XABS_LW_SNOW_ROOF (klu))
126  ALLOCATE(dmt%XABS_SW_ROAD (klu))
127  ALLOCATE(dmt%XABS_SW_SNOW_ROAD (klu))
128  ALLOCATE(dmt%XABS_LW_ROAD (klu))
129  ALLOCATE(dmt%XABS_LW_SNOW_ROAD (klu))
130  ALLOCATE(dmt%XABS_SW_WALL_A (klu))
131  ALLOCATE(dmt%XABS_SW_WALL_B (klu))
132  ALLOCATE(dmt%XABS_LW_WALL_A (klu))
133  ALLOCATE(dmt%XABS_LW_WALL_B (klu))
134  ALLOCATE(dmt%XABS_SW_GARDEN (klu))
135  ALLOCATE(dmt%XABS_LW_GARDEN (klu))
136  ALLOCATE(dmt%XABS_SW_GREENROOF (klu))
137  ALLOCATE(dmt%XABS_LW_GREENROOF (klu))
138  !
139  ALLOCATE(dmt%XREF_SW_FAC (klu))
140  ALLOCATE(dmt%XREF_SW_GRND (klu))
141  !
142  ALLOCATE(dmt%XEMIT_LW_FAC (klu))
143  ALLOCATE(dmt%XEMIT_LW_GRND (klu))
144  !
145  ALLOCATE(dmt%XTCOOL_TARGET (klu))
146  ALLOCATE(dmt%XTHEAT_TARGET (klu))
147  ALLOCATE(dmt%XQIN (klu))
148  !
149  IF (top%CBEM=='BEM') THEN
150  ALLOCATE(dmt%XH_BLD_COOL (klu))
151  ALLOCATE(dmt%XT_BLD_COOL (klu))
152  ALLOCATE(dmt%XH_BLD_HEAT (klu))
153  ALLOCATE(dmt%XLE_BLD_COOL (klu))
154  ALLOCATE(dmt%XLE_BLD_HEAT (klu))
155  ALLOCATE(dmt%XH_WASTE (klu))
156  ALLOCATE(dmt%XLE_WASTE (klu))
157  ALLOCATE(dmt%XHVAC_COOL (klu))
158  ALLOCATE(dmt%XHVAC_HEAT (klu))
159  ALLOCATE(dmt%XCAP_SYS (klu))
160  ALLOCATE(dmt%XM_SYS (klu))
161  ALLOCATE(dmt%XCOP (klu))
162  ALLOCATE(dmt%XQ_SYS (klu))
163  ALLOCATE(dmt%XT_SYS (klu))
164  ALLOCATE(dmt%XTR_SW_WIN (klu))
165  ALLOCATE(dmt%XFAN_POWER (klu))
166  ALLOCATE(dmt%XT_RAD_IND (klu))
167  ALLOCATE(dmt%XHU_BLD (klu))
168  ALLOCATE(dmt%XABS_SW_WIN (klu))
169  ALLOCATE(dmt%XABS_LW_WIN (klu))
170  ENDIF
171  !
172  IF (top%LSOLAR_PANEL) THEN
173  ALLOCATE(dmt%XABS_SW_PANEL (klu))
174  ALLOCATE(dmt%XABS_LW_PANEL (klu))
175  ALLOCATE(dmt%XRN_PANEL (klu))
176  ALLOCATE(dmt%XH_PANEL (klu))
177  ALLOCATE(dmt%XTHER_PROD_PANEL(klu))
178  ALLOCATE(dmt%XPHOT_PROD_PANEL(klu))
179  ALLOCATE(dmt%XPROD_PANEL (klu))
180  ALLOCATE(dmt%XTHER_PROD_BLD (klu))
181  ALLOCATE(dmt%XPHOT_PROD_BLD (klu))
182  END IF
183  !
184  ALLOCATE(dmtc%XRUNOFF_TOWN (klu))
185  ALLOCATE(dmtc%XIRRIG_GARDEN (klu))
186  ALLOCATE(dmtc%XRUNOFF_ROAD (klu))
187  ALLOCATE(dmtc%XIRRIG_ROAD (klu))
188  ALLOCATE(dmtc%XRUNOFF_STRLROOF (klu))
189  ALLOCATE(dmtc%XRUNOFF_ROOF (klu))
190  ALLOCATE(dmtc%XIRRIG_GREENROOF (klu))
191  IF (top%CBEM=='BEM') THEN
192  ALLOCATE(dmtc%XHVAC_COOL (klu))
193  ALLOCATE(dmtc%XHVAC_HEAT (klu))
194  END IF
195  IF (top%LSOLAR_PANEL) THEN
196  ALLOCATE(dmtc%XTHER_PROD_BLD(klu))
197  ALLOCATE(dmtc%XPHOT_PROD_BLD(klu))
198  END IF
199  dmt%XQF_BLD = xundef
200  dmt%XFLX_BLD = xundef
201  dmt%XQF_TOWN = xundef
202  dmt%XDQS_TOWN = xundef
203  dmt%XRN_ROAD = xundef
204  dmt%XH_ROAD = xundef
205  dmt%XLE_ROAD = xundef
206  dmt%XGFLUX_ROAD = xundef
207  dmt%XRN_WALL_A = xundef
208  dmt%XH_WALL_A = xundef
209  dmt%XGFLUX_WALL_A = xundef
210  dmt%XRN_WALL_B = xundef
211  dmt%XH_WALL_B = xundef
212  dmt%XGFLUX_WALL_B = xundef
213  dmt%XRN_ROOF = xundef
214  dmt%XH_ROOF = xundef
215  dmt%XLE_ROOF = xundef
216  dmt%XGFLUX_ROOF = xundef
217  dmt%XRN_BLT = xundef
218  dmt%XH_BLT = xundef
219  dmt%XLE_BLT = xundef
220  dmt%XGFLUX_BLT = xundef
221  dmt%XRN_STRLROOF = xundef
222  dmt%XH_STRLROOF = xundef
223  dmt%XLE_STRLROOF = xundef
224  dmt%XGFLUX_STRLROOF = xundef
225  dmt%XG_GREENROOF_ROOF = xundef
226  dmt%XRUNOFF_TOWN = xundef
227  dmt%XRUNOFF_ROAD = xundef
228  dmt%XRUNOFF_ROOF = xundef
229  dmt%XRUNOFF_STRLROOF = xundef
230  dmt%XIRRIG_GREENROOF = xundef
231  dmt%XIRRIG_GARDEN = xundef
232  dmt%XIRRIG_ROAD = xundef
233 !
234  dmt%XABS_SW_ROOF = xundef
235  dmt%XABS_SW_SNOW_ROOF = xundef
236  dmt%XABS_LW_ROOF = xundef
237  dmt%XABS_LW_SNOW_ROOF = xundef
238  dmt%XABS_SW_ROAD = xundef
239  dmt%XABS_SW_SNOW_ROAD = xundef
240  dmt%XABS_LW_ROAD = xundef
241  dmt%XABS_LW_SNOW_ROAD = xundef
242  dmt%XABS_SW_WALL_A = xundef
243  dmt%XABS_SW_WALL_B = xundef
244  dmt%XABS_LW_WALL_A = xundef
245  dmt%XABS_LW_WALL_B = xundef
246  dmt%XABS_SW_GARDEN = xundef
247  dmt%XABS_LW_GARDEN = xundef
248  dmt%XABS_SW_GREENROOF = xundef
249  dmt%XABS_LW_GREENROOF = xundef
250  !
251  dmt%XREF_SW_FAC = xundef
252  dmt%XREF_SW_GRND = xundef
253  !
254  dmt%XEMIT_LW_FAC = xundef
255  dmt%XEMIT_LW_GRND = xundef
256  !
257  dmt%XTCOOL_TARGET = xundef
258  dmt%XTHEAT_TARGET = xundef
259  dmt%XQIN = xundef
260  !
261  IF (top%CBEM=='BEM') THEN
262  dmt%XH_BLD_COOL = xundef
263  dmt%XT_BLD_COOL = xundef
264  dmt%XH_BLD_HEAT = xundef
265  dmt%XLE_BLD_COOL = xundef
266  dmt%XLE_BLD_HEAT = xundef
267  dmt%XH_WASTE = xundef
268  dmt%XLE_WASTE = xundef
269  dmt%XHVAC_COOL = xundef
270  dmt%XHVAC_HEAT = xundef
271  dmt%XCAP_SYS = xundef
272  dmt%XM_SYS = xundef
273  dmt%XCOP = xundef
274  dmt%XQ_SYS = xundef
275  dmt%XT_SYS = xundef
276  dmt%XTR_SW_WIN = xundef
277  dmt%XFAN_POWER = xundef
278  dmt%XT_RAD_IND = xundef
279  dmt%XHU_BLD = xundef
280  dmt%XABS_SW_WIN = xundef
281  dmt%XABS_LW_WIN = xundef
282  ENDIF
283 
284  IF (top%LSOLAR_PANEL) THEN
285  dmt%XABS_SW_PANEL = xundef
286  dmt%XABS_LW_PANEL = xundef
287  dmt%XRN_PANEL = xundef
288  dmt%XH_PANEL = xundef
289  dmt%XTHER_PROD_PANEL= xundef
290  dmt%XPHOT_PROD_PANEL= xundef
291  dmt%XPROD_PANEL = xundef
292  dmt%XTHER_PROD_BLD = xundef
293  dmt%XPHOT_PROD_BLD = xundef
294  END IF
295 !
296  dmtc%XRUNOFF_TOWN = 0.0
297  dmtc%XRUNOFF_ROAD = 0.0
298  dmtc%XRUNOFF_ROOF = 0.0
299  dmtc%XRUNOFF_STRLROOF = 0.0
300  dmtc%XIRRIG_GREENROOF = 0.0
301  dmtc%XIRRIG_GARDEN = 0.0
302  dmtc%XIRRIG_ROAD = 0.0
303  IF (top%CBEM=='BEM') THEN
304  dmtc%XHVAC_COOL = 0.0
305  dmtc%XHVAC_HEAT = 0.0
306  END IF
307  IF (top%LSOLAR_PANEL) THEN
308  dmtc%XTHER_PROD_BLD = 0.
309  dmtc%XPHOT_PROD_BLD = 0.
310  END IF
311 !ENDIF
312 !
313 IF (lhook) CALL dr_hook('DIAG_MISC_TEB_INIT_N',1,zhook_handle)
314 !
315 !-------------------------------------------------------------------------------
316 !
317 END SUBROUTINE diag_misc_teb_init_n
subroutine diag_misc_teb_init_n(DMTC, DMT, DMTO, TOP, KLU, KSW)
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15