SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
diag_misc_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 ! #########
6  SUBROUTINE diag_misc_teb_n (DGCT, DGMT, DGMTO, TOP, &
7  ptstep, pdqs_town,pqf_bld,pqf_town, pflx_bld, &
8  prunoff_town, &
9  prn_road, ph_road, ple_road, pgflux_road, &
10  prunoff_road, pirrig_road, &
11  prn_wall_a, ph_wall_a, pgflux_wall_a, &
12  prn_wall_b, ph_wall_b, pgflux_wall_b, &
13  prn_roof, ph_roof, ple_roof, pgflux_roof, &
14  prunoff_roof, &
15  prn_strlroof, ph_strlroof, &
16  ple_strlroof, pgflux_strlroof, &
17  prunoff_strlroof, &
18  prn_greenroof, ph_greenroof, &
19  ple_greenroof, pgflux_greenroof, pg_greenroof_roof, &
20  prunoff_greenroof, pdrain_greenroof, pirrig_greenroof, &
21  prn_garden,ph_garden,ple_garden,pgflux_garden, &
22  prunoff_garden, pdrain_garden, pirrig_garden, &
23  prn_blt,ph_blt,ple_blt,pgflux_blt, &
24  pabs_sw_roof,pabs_lw_roof, &
25  pabs_sw_snow_roof,pabs_lw_snow_roof, &
26  pabs_sw_road,pabs_lw_road, &
27  pabs_sw_snow_road,pabs_lw_snow_road, &
28  pabs_sw_wall_a, pabs_lw_wall_a, &
29  pabs_sw_wall_b, pabs_lw_wall_b, &
30  pabs_sw_garden,pabs_lw_garden, &
31  pabs_sw_greenroof,pabs_lw_greenroof, &
32  ph_bld_cool, pt_bld_cool, &
33  ph_bld_heat, ple_bld_cool, ple_bld_heat, &
34  ph_waste, ple_waste, phvac_cool, &
35  phvac_heat, pcap_sys, pm_sys, pcop, &
36  pq_sys, pt_sys, ptr_sw_win, pfan_power, &
37  pabs_sw_win, pabs_lw_win, &
38  ptcool_target, ptheat_target, pqin, &
39  pabs_sw_panel, pabs_lw_panel, prn_panel, &
40  ph_panel, pther_prod_panel, pphot_prod_panel, &
41  pprod_panel, pther_prod_bld, pphot_prod_bld )
42 ! ###############################################################################
43 !
44 !!**** *DIAG_MISC-TEB_n * - additional diagnostics for TEB
45 !!
46 !! PURPOSE
47 !! -------
48 !
49 !!** METHOD
50 !! ------
51 !!
52 !! REFERENCE
53 !! ---------
54 !!
55 !!
56 !! AUTHOR
57 !! ------
58 !! P. Le Moigne
59 !!
60 !! MODIFICATIONS
61 !! -------------
62 !! Original 10/2005
63 !!------------------------------------------------------------------
64 !
65 !
66 !
67 !
68 !
69 !
74 !
75 USE modi_cumul_diag_teb_n
76 !
77 USE yomhook ,ONLY : lhook, dr_hook
78 USE parkind1 ,ONLY : jprb
79 !
80 IMPLICIT NONE
81 !
82 !* 0.1 declarations of arguments
83 !
84 !
85 TYPE(diag_cumul_teb_t), INTENT(INOUT) :: dgct
86 TYPE(diag_misc_teb_t), INTENT(INOUT) :: dgmt
87 TYPE(diag_misc_teb_options_t), INTENT(INOUT) :: dgmto
88 TYPE(teb_options_t), INTENT(INOUT) :: top
89 !
90  REAL, INTENT(IN) :: ptstep ! time step
91  REAL, DIMENSION(:), INTENT(IN) :: pqf_bld ! domestic heating
92  REAL, DIMENSION(:), INTENT(IN) :: pflx_bld ! heat flux from bld
93  REAL, DIMENSION(:), INTENT(IN) :: pqf_town ! total anthropogenic heat
94  REAL, DIMENSION(:), INTENT(IN) :: pdqs_town ! storage inside town mat.
95  REAL, DIMENSION(:), INTENT(IN) :: prn_road ! net radiation for roads
96  REAL, DIMENSION(:), INTENT(IN) :: ph_road ! sensible heat flux for roads
97  REAL, DIMENSION(:), INTENT(IN) :: ple_road ! latent heat flux for roads
98  REAL, DIMENSION(:), INTENT(IN) :: pgflux_road ! storage flux for roads
99  REAL, DIMENSION(:), INTENT(IN) :: prunoff_road ! runoff for roads
100  REAL, DIMENSION(:), INTENT(IN) :: pirrig_road ! water supply for watering of roads
101  REAL, DIMENSION(:), INTENT(IN) :: prn_wall_a ! net radiation for wall
102  REAL, DIMENSION(:), INTENT(IN) :: ph_wall_a ! sensible heat flux for walls
103  REAL, DIMENSION(:), INTENT(IN) :: pgflux_wall_a ! storage flux for walls
104  REAL, DIMENSION(:), INTENT(IN) :: prn_wall_b ! net radiation for wall
105  REAL, DIMENSION(:), INTENT(IN) :: ph_wall_b ! sensible heat flux for walls
106  REAL, DIMENSION(:), INTENT(IN) :: pgflux_wall_b ! storage flux for walls
107  REAL, DIMENSION(:), INTENT(IN) :: prn_roof ! net radiation for roofs
108  REAL, DIMENSION(:), INTENT(IN) :: ph_roof ! sensible heat flux for roofs
109  REAL, DIMENSION(:), INTENT(IN) :: ple_roof ! latent heat flux for roofs
110  REAL, DIMENSION(:), INTENT(IN) :: pgflux_roof ! storage flux for roofs
111  REAL, DIMENSION(:), INTENT(IN) :: prunoff_roof ! aggregated runoff for roof
112  REAL, DIMENSION(:), INTENT(IN) :: prunoff_town ! aggregated runoff for town
113  REAL, DIMENSION(:), INTENT(IN) :: prn_strlroof ! net radiation for structural roofs
114  REAL, DIMENSION(:), INTENT(IN) :: ph_strlroof ! sensible heat flux for structural roofs
115  REAL, DIMENSION(:), INTENT(IN) :: ple_strlroof ! latent heat flux for structural roofs
116  REAL, DIMENSION(:), INTENT(IN) :: pgflux_strlroof ! storage flux for structural roofs
117  REAL, DIMENSION(:), INTENT(IN) :: prunoff_strlroof ! runoff for structural roofs
118  REAL, DIMENSION(:), INTENT(IN) :: prn_greenroof ! net radiation for green roofs
119  REAL, DIMENSION(:), INTENT(IN) :: ph_greenroof ! sensible heat flux for green roofs
120  REAL, DIMENSION(:), INTENT(IN) :: ple_greenroof ! latent heat flux for green roofs
121  REAL, DIMENSION(:), INTENT(IN) :: pgflux_greenroof ! storage flux for green roofs
122  REAL, DIMENSION(:), INTENT(IN) :: pg_greenroof_roof ! heat flux between green/structural roofs
123  REAL, DIMENSION(:), INTENT(IN) :: prunoff_greenroof ! runoff for green roofs
124  REAL, DIMENSION(:), INTENT(IN) :: pdrain_greenroof ! total vertical drainage for green roofs
125  REAL, DIMENSION(:), INTENT(IN) :: pirrig_greenroof ! water supply from green roof ground irrigation
126  REAL, DIMENSION(:), INTENT(IN) :: prn_garden ! net radiation for GARDEN areas
127  REAL, DIMENSION(:), INTENT(IN) :: ph_garden ! sensible heat flux for GARDEN areas
128  REAL, DIMENSION(:), INTENT(IN) :: ple_garden ! latent heat flux for GARDEN areas
129  REAL, DIMENSION(:), INTENT(IN) :: pgflux_garden ! storage flux for GARDEN areas
130  REAL, DIMENSION(:), INTENT(IN) :: prunoff_garden ! runoff for green areas
131  REAL, DIMENSION(:), INTENT(IN) :: pdrain_garden ! drainage for green areas
132  REAL, DIMENSION(:), INTENT(IN) :: pirrig_garden ! water supply for irrigation for green areas
133  REAL, DIMENSION(:), INTENT(IN) :: prn_blt ! net radiation for built surf
134  REAL, DIMENSION(:), INTENT(IN) :: ph_blt ! sensible heat flux for built surf
135  REAL, DIMENSION(:), INTENT(IN) :: ple_blt ! latent heat flux for built surf
136  REAL, DIMENSION(:), INTENT(IN) :: pgflux_blt ! storage flux for built surf
137 !
138  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_roof ! Sdown absorbed by roofs
139  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_snow_roof ! Sdown absorbed by snow on roofs
140  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_roof ! Ldown absorbed by roofs
141  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_snow_roof ! Ldown absorbed by snow on roofs
142  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_road ! Sdown absorbed by roads
143  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_snow_road ! Sdown absorbed by snow on roads
144  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_road ! Ldown absorbed by roads
145  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_snow_road ! Ldown absorbed by snow on roads
146  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_wall_a ! Sdown absorbed by walls
147  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_wall_a ! Ldown absorbed by walls
148  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_wall_b ! Sdown absorbed by walls
149  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_wall_b ! Ldown absorbed by walls
150  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_garden ! Sdown absorbed by GARDEN areas
151  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_garden ! Ldown absorbed by GARDEN areas
152  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_greenroof ! Sdown absorbed by green roofs
153  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_greenroof ! Ldown absorbed by green roofs
154 ! new arguments after BEM
155  REAL, DIMENSION(:), INTENT(IN) :: ph_bld_cool ! Sensible cooling energy demand
156  ! of the building [W m-2(bld)]
157  REAL, DIMENSION(:), INTENT(IN) :: pt_bld_cool ! Total cooling energy demand
158  ! of the building [W m-2(bld)]
159  REAL, DIMENSION(:), INTENT(IN) :: ph_bld_heat ! Heating energy demand
160  ! of the building [W m-2(bld)]
161  REAL, DIMENSION(:), INTENT(IN) :: ple_bld_cool ! Latent cooling energy demand
162  ! of the building [W m-2(bld)]
163  REAL, DIMENSION(:), INTENT(IN) :: ple_bld_heat ! Latent heating energy demand
164  ! of the building [W m-2(bld)]
165  REAL, DIMENSION(:), INTENT(IN) :: ph_waste ! Sensible waste heat from HVAC system
166  ! [W m-2(bld)]
167  REAL, DIMENSION(:), INTENT(IN) :: ple_waste ! Latent waste heat from HVAC system
168  ! [W m-2(bld)]
169  REAL, DIMENSION(:), INTENT(IN) :: phvac_cool ! Energy consumption of the cooling system
170  ! [W m-2(bld)]
171  REAL, DIMENSION(:), INTENT(IN) :: phvac_heat ! Energy consumption of the heating system
172  ! [W m-2(bld)]
173  REAL, DIMENSION(:), INTENT(IN) :: pcap_sys ! Actual capacity of the cooling system
174  ! [W m-2(bld)]
175  REAL, DIMENSION(:), INTENT(IN) :: pm_sys ! Actual HVAC mass flow rate
176  ! [kg s-1 m-2(bld)]
177  REAL, DIMENSION(:), INTENT(IN) :: pcop ! COP of the cooling system
178  REAL, DIMENSION(:), INTENT(IN) :: pq_sys ! Supply air specific humidity [kg kg-1]
179  REAL, DIMENSION(:), INTENT(IN) :: pt_sys ! Supply air temperature [K]
180  REAL, DIMENSION(:), INTENT(IN) :: ptr_sw_win ! Solar radiation transmitted throught
181  ! windows [W m-2(bld)]
182  REAL, DIMENSION(:), INTENT(IN) :: pfan_power ! HVAC fan power
183  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_win ! window absorbed shortwave radiation [W m-2]
184  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_win ! absorbed infrared rad. [W m-2]
185  !
186  REAL, DIMENSION(:), INTENT(IN) :: ptcool_target ! Cooling system set point modulated by bld_occ_calendar [K]
187  REAL, DIMENSION(:), INTENT(IN) :: ptheat_target ! Heating system set point modulated by bld_occ_calendar [K]
188  REAL, DIMENSION(:), INTENT(IN) :: pqin ! Building interal heat load modulated by bld_occ_calendar [W m-2(floor)]
189 !
190  REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_panel ! absorbed solar energy by solar panels [W m-2(panel)]
191  REAL, DIMENSION(:), INTENT(IN) :: pabs_lw_panel ! absorbed longwave energy by solar panels [W m-2(panel)]
192  REAL, DIMENSION(:), INTENT(IN) :: prn_panel ! net radiation of solar panels [W m-2(panel)]
193  REAL, DIMENSION(:), INTENT(IN) :: ph_panel ! sensible heat flux of solar panels [W m-2(panel)]
194  REAL, DIMENSION(:), INTENT(IN) :: pther_prod_panel ! thermal production of solar panels [W m-2(panel)]
195  REAL, DIMENSION(:), INTENT(IN) :: pphot_prod_panel ! photovoltaic production of solar panels [W m-2(panel)]
196  REAL, DIMENSION(:), INTENT(IN) :: pprod_panel ! averaged production of solar panels [W m-2(panel)]
197  REAL, DIMENSION(:), INTENT(IN) :: pther_prod_bld ! thermal production of solar panels [W m-2(bld)]
198  REAL, DIMENSION(:), INTENT(IN) :: pphot_prod_bld ! photovoltaic production of solar panels [W m-2(bld)]
199 !
200 !* 0.2 declarations of local variables
201 !
202  REAL(KIND=JPRB) :: zhook_handle
203 !-------------------------------------------------------------------------------------
204 !
205 IF (lhook) CALL dr_hook('DIAG_MISC_TEB_N',0,zhook_handle)
206 IF (dgmto%LSURF_MISC_BUDGET) THEN
207  dgmt%CUR%XQF_BLD = pqf_bld
208  dgmt%CUR%XFLX_BLD = pflx_bld
209  dgmt%CUR%XQF_TOWN = pqf_town
210  dgmt%CUR%XDQS_TOWN = pdqs_town
211  dgmt%CUR%XRN_ROAD = prn_road
212  dgmt%CUR%XH_ROAD = ph_road
213  dgmt%CUR%XLE_ROAD = ple_road
214  dgmt%CUR%XGFLUX_ROAD = pgflux_road
215  dgmt%CUR%XRN_WALL_A = prn_wall_a
216  dgmt%CUR%XH_WALL_A = ph_wall_a
217  dgmt%CUR%XGFLUX_WALL_A = pgflux_wall_a
218  dgmt%CUR%XRN_WALL_B = prn_wall_b
219  dgmt%CUR%XH_WALL_B = ph_wall_b
220  dgmt%CUR%XGFLUX_WALL_B = pgflux_wall_b
221  dgmt%CUR%XRN_ROOF = prn_roof
222  dgmt%CUR%XH_ROOF = ph_roof
223  dgmt%CUR%XLE_ROOF = ple_roof
224  dgmt%CUR%XGFLUX_ROOF = pgflux_roof
225  dgmt%CUR%XRN_STRLROOF = prn_strlroof
226  dgmt%CUR%XH_STRLROOF = ph_strlroof
227  dgmt%CUR%XLE_STRLROOF = ple_strlroof
228  dgmt%CUR%XGFLUX_STRLROOF = pgflux_strlroof
229  dgmt%CUR%XRN_GREENROOF = prn_greenroof
230  dgmt%CUR%XH_GREENROOF = ph_greenroof
231  dgmt%CUR%XLE_GREENROOF = ple_greenroof
232  dgmt%CUR%XGFLUX_GREENROOF = pgflux_greenroof
233  dgmt%CUR%XG_GREENROOF_ROOF = pg_greenroof_roof
234  dgmt%CUR%XRUNOFF_TOWN = prunoff_town
235  dgmt%CUR%XRUNOFF_GARDEN = prunoff_garden
236  dgmt%CUR%XRUNOFF_ROAD = prunoff_road
237  dgmt%CUR%XRUNOFF_ROOF = prunoff_roof
238  dgmt%CUR%XRUNOFF_STRLROOF = prunoff_strlroof
239  dgmt%CUR%XRUNOFF_GREENROOF = prunoff_greenroof
240  dgmt%CUR%XDRAIN_GARDEN = pdrain_garden
241  dgmt%CUR%XDRAIN_GREENROOF = pdrain_greenroof
242  dgmt%CUR%XIRRIG_ROAD = pirrig_road
243  dgmt%CUR%XIRRIG_GARDEN = pirrig_garden
244  dgmt%CUR%XIRRIG_GREENROOF = pirrig_greenroof
245  dgmt%CUR%XRN_GARDEN = prn_garden
246  dgmt%CUR%XH_GARDEN = ph_garden
247  dgmt%CUR%XLE_GARDEN = ple_garden
248  dgmt%CUR%XGFLUX_GARDEN = pgflux_garden
249  dgmt%CUR%XRN_BLT = prn_blt
250  dgmt%CUR%XH_BLT = ph_blt
251  dgmt%CUR%XLE_BLT = ple_blt
252  dgmt%CUR%XGFLUX_BLT = pgflux_blt
253 !
254  dgmt%CUR%XABS_SW_ROOF = pabs_sw_roof
255  dgmt%CUR%XABS_LW_ROOF = pabs_lw_roof
256  dgmt%CUR%XABS_SW_SNOW_ROOF = pabs_sw_snow_roof
257  dgmt%CUR%XABS_LW_SNOW_ROOF = pabs_lw_snow_roof
258  dgmt%CUR%XABS_SW_ROAD = pabs_sw_road
259  dgmt%CUR%XABS_LW_ROAD = pabs_lw_road
260  dgmt%CUR%XABS_SW_SNOW_ROAD = pabs_sw_snow_road
261  dgmt%CUR%XABS_LW_SNOW_ROAD = pabs_lw_snow_road
262  dgmt%CUR%XABS_SW_WALL_A = pabs_sw_wall_a
263  dgmt%CUR%XABS_LW_WALL_A = pabs_lw_wall_a
264  dgmt%CUR%XABS_SW_WALL_B = pabs_sw_wall_b
265  dgmt%CUR%XABS_LW_WALL_B = pabs_lw_wall_b
266  dgmt%CUR%XABS_SW_GARDEN = pabs_sw_garden
267  dgmt%CUR%XABS_LW_GARDEN = pabs_lw_garden
268  dgmt%CUR%XABS_SW_GREENROOF = pabs_sw_greenroof
269  dgmt%CUR%XABS_LW_GREENROOF = pabs_lw_greenroof
270  !
271  IF (top%CBEM=='BEM') THEN
272  dgmt%CUR%XH_BLD_COOL = ph_bld_cool
273  dgmt%CUR%XT_BLD_COOL = pt_bld_cool
274  dgmt%CUR%XH_BLD_HEAT = ph_bld_heat
275  dgmt%CUR%XLE_BLD_COOL= ple_bld_cool
276  dgmt%CUR%XLE_BLD_HEAT= ple_bld_heat
277  dgmt%CUR%XH_WASTE = ph_waste
278  dgmt%CUR%XLE_WASTE = ple_waste
279  dgmt%CUR%XHVAC_COOL = phvac_cool
280  dgmt%CUR%XHVAC_HEAT = phvac_heat
281  dgmt%CUR%XCAP_SYS = pcap_sys
282  dgmt%CUR%XM_SYS = pm_sys
283  dgmt%CUR%XCOP = pcop
284  dgmt%CUR%XQ_SYS = pq_sys
285  dgmt%CUR%XT_SYS = pt_sys
286  dgmt%CUR%XTR_SW_WIN = ptr_sw_win
287  dgmt%CUR%XFAN_POWER = pfan_power
288  !
289  dgmt%CUR%XABS_SW_WIN = pabs_sw_win
290  dgmt%CUR%XABS_LW_WIN = pabs_lw_win
291  !
292  dgmt%CUR%XTCOOL_CUR_TARGET = ptcool_target
293  dgmt%CUR%XTHEAT_CUR_TARGET = ptheat_target
294  dgmt%CUR%XCUR_QIN = pqin
295  ENDIF
296  !
297  IF (top%LSOLAR_PANEL) THEN
298  dgmt%CUR%XABS_SW_PANEL = pabs_sw_panel
299  dgmt%CUR%XABS_LW_PANEL = pabs_lw_panel
300  dgmt%CUR%XRN_PANEL = prn_panel
301  dgmt%CUR%XH_PANEL = ph_panel
302  dgmt%CUR%XTHER_PROD_PANEL = pther_prod_panel
303  dgmt%CUR%XPHOT_PROD_PANEL = pphot_prod_panel
304  dgmt%CUR%XPROD_PANEL = pprod_panel
305  dgmt%CUR%XTHER_PROD_BLD = pther_prod_bld
306  dgmt%CUR%XPHOT_PROD_BLD = pphot_prod_bld
307  END IF
308  !
309  ! cumulated diagnostics
310  ! ---------------------
311  !
312  CALL cumul_diag_teb_n(dgct, dgmt, top, &
313  ptstep)
314  !
315 END IF
316 !
317 IF (lhook) CALL dr_hook('DIAG_MISC_TEB_N',1,zhook_handle)
318 !
319 !-------------------------------------------------------------------------------------
320 !
321 END SUBROUTINE diag_misc_teb_n
subroutine diag_misc_teb_n(DGCT, DGMT, DGMTO, TOP, PTSTEP, PDQS_TOWN, PQF_BLD, PQF_TOWN, PFLX_BLD, PRUNOFF_TOWN, PRN_ROAD, PH_ROAD, PLE_ROAD, PGFLUX_ROAD, PRUNOFF_ROAD, PIRRIG_ROAD, PRN_WALL_A, PH_WALL_A, PGFLUX_WALL_A, PRN_WALL_B, PH_WALL_B, PGFLUX_WALL_B, PRN_ROOF, PH_ROOF, PLE_ROOF, PGFLUX_ROOF, PRUNOFF_ROOF, PRN_STRLROOF, PH_STRLROOF, PLE_STRLROOF, PGFLUX_STRLROOF, PRUNOFF_STRLROOF, PRN_GREENROOF, PH_GREENROOF, PLE_GREENROOF, PGFLUX_GREENROOF, PG_GREENROOF_ROOF, PRUNOFF_GREENROOF, PDRAIN_GREENROOF, PIRRIG_GREENROOF, PRN_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN, PRUNOFF_GARDEN, PDRAIN_GARDEN, PIRRIG_GARDEN, PRN_BLT, PH_BLT, PLE_BLT, PGFLUX_BLT, PABS_SW_ROOF, PABS_LW_ROOF, PABS_SW_SNOW_ROOF, PABS_LW_SNOW_ROOF, PABS_SW_ROAD, PABS_LW_ROAD, PABS_SW_SNOW_ROAD, PABS_LW_SNOW_ROAD, PABS_SW_WALL_A, PABS_LW_WALL_A, PABS_SW_WALL_B, PABS_LW_WALL_B, PABS_SW_GARDEN, PABS_LW_GARDEN, PABS_SW_GREENROOF, PABS_LW_GREENROOF, PH_BLD_COOL, PT_BLD_COOL, PH_BLD_HEAT, PLE_BLD_COOL, PLE_BLD_HEAT, PH_WASTE, PLE_WASTE, PHVAC_COOL, PHVAC_HEAT, PCAP_SYS, PM_SYS, PCOP, PQ_SYS, PT_SYS, PTR_SW_WIN, PFAN_POWER, PABS_SW_WIN, PABS_LW_WIN, PTCOOL_TARGET, PTHEAT_TARGET, PQIN, PABS_SW_PANEL, PABS_LW_PANEL, PRN_PANEL, PH_PANEL, PTHER_PROD_PANEL, PPHOT_PROD_PANEL, PPROD_PANEL, PTHER_PROD_BLD, PPHOT_PROD_BLD)
subroutine cumul_diag_teb_n(DGCT, DGMT, TOP, PTSTEP)