48 USE modi_convert_patch_teb
50 USE modi_hvac_autosize
52 USE modi_stores_hvac_autosize
56 USE yomhook
,ONLY : lhook, dr_hook
57 USE parkind1
,ONLY : jprb
71 INTEGER,
INTENT(IN) :: kluout
80 REAL(KIND=JPRB) :: zhook_handle
86 IF (lhook) CALL dr_hook(
'INIT_BEM_N',0,zhook_handle)
92 ilu =
SIZE(tm%TOP%XCOVER,1)
93 IF (tm%TOP%CBEM==
'DEF') ilu=0
95 ALLOCATE(tm%B%CUR%XHC_FLOOR (ilu,tm%BOP%NFLOOR_LAYER))
96 ALLOCATE(tm%B%CUR%XTC_FLOOR (ilu,tm%BOP%NFLOOR_LAYER))
97 ALLOCATE(tm%B%CUR%XD_FLOOR (ilu,tm%BOP%NFLOOR_LAYER))
99 ALLOCATE(tm%B%CUR%XTCOOL_TARGET(ilu))
100 ALLOCATE(tm%B%CUR%XTHEAT_TARGET(ilu))
101 ALLOCATE(tm%B%CUR%XEFF_HEAT (ilu))
102 ALLOCATE(tm%B%CUR%XSHGC (ilu))
103 ALLOCATE(tm%B%CUR%XQIN (ilu))
104 ALLOCATE(tm%B%CUR%XQIN_FRAD (ilu))
105 ALLOCATE(tm%B%CUR%XSHGC_SH (ilu))
106 ALLOCATE(tm%B%CUR%XU_WIN (ilu))
107 ALLOCATE(tm%B%CUR%XTRAN_WIN (ilu))
108 ALLOCATE(tm%B%CUR%XFLOOR_HEIGHT(ilu))
109 ALLOCATE(tm%B%CUR%XINF (ilu))
111 ALLOCATE(tm%B%CUR%XQIN_FLAT (ilu))
112 ALLOCATE(tm%B%CUR%XHR_TARGET (ilu))
113 ALLOCATE(tm%B%CUR%XV_VENT (ilu))
114 ALLOCATE(tm%B%CUR%XCAP_SYS_HEAT(ilu))
115 ALLOCATE(tm%B%CUR%XCAP_SYS_RAT (ilu))
116 ALLOCATE(tm%B%CUR%XT_ADP (ilu))
117 ALLOCATE(tm%B%CUR%XM_SYS_RAT (ilu))
118 ALLOCATE(tm%B%CUR%XCOP_RAT (ilu))
119 ALLOCATE(tm%B%CUR%XT_SIZE_MAX (ilu))
120 ALLOCATE(tm%B%CUR%XT_SIZE_MIN (ilu))
121 ALLOCATE(tm%B%CUR%XF_WATER_COND(ilu))
122 ALLOCATE(tm%B%CUR%CNATVENT (ilu))
123 ALLOCATE(tm%B%CUR%XNATVENT (ilu))
125 ALLOCATE(tm%B%CUR%XABS_WIN (ilu))
126 ALLOCATE(tm%B%CUR%XUGG_WIN (ilu))
127 ALLOCATE(tm%B%CUR%LSHADE (ilu))
128 ALLOCATE(tm%B%CUR%XSHADE (ilu))
129 ALLOCATE(tm%B%CUR%LSHAD_DAY(ilu))
130 ALLOCATE(tm%B%CUR%LNATVENT_NIGHT(ilu))
131 ALLOCATE(tm%B%CUR%XAUX_MAX (ilu))
132 ALLOCATE(tm%B%CUR%XN_FLOOR(ilu))
133 ALLOCATE(tm%B%CUR%XGLAZ_O_BLD(ilu))
134 ALLOCATE(tm%B%CUR%XMASS_O_BLD(ilu))
135 ALLOCATE(tm%B%CUR%XFLOOR_HW_RATIO(ilu))
136 ALLOCATE(tm%B%CUR%XF_FLOOR_MASS(ilu))
137 ALLOCATE(tm%B%CUR%XF_FLOOR_WALL(ilu))
138 ALLOCATE(tm%B%CUR%XF_FLOOR_WIN(ilu))
139 ALLOCATE(tm%B%CUR%XF_FLOOR_ROOF(ilu))
140 ALLOCATE(tm%B%CUR%XF_WALL_FLOOR(ilu))
141 ALLOCATE(tm%B%CUR%XF_WALL_MASS(ilu))
142 ALLOCATE(tm%B%CUR%XF_WALL_WIN(ilu))
143 ALLOCATE(tm%B%CUR%XF_WIN_FLOOR(ilu))
144 ALLOCATE(tm%B%CUR%XF_WIN_MASS(ilu))
145 ALLOCATE(tm%B%CUR%XF_WIN_WALL(ilu))
146 ALLOCATE(tm%B%CUR%XF_WIN_WIN(ilu))
147 ALLOCATE(tm%B%CUR%XF_MASS_FLOOR(ilu))
148 ALLOCATE(tm%B%CUR%XF_MASS_WALL(ilu))
149 ALLOCATE(tm%B%CUR%XF_MASS_WIN(ilu))
151 SELECT CASE(tm%TOP%CBEM)
156 tm%B%CUR%XGR (:) = 0.
157 tm%B%CUR%XF_WASTE_CAN(:) = 0.
162 tm%B%CUR%XAUX_MAX(:) = 5.
164 tm%TOP%XCOVER,tm%TOP%LCOVER,0., &
165 phc_floor=tm%B%CUR%XHC_FLOOR, ptc_floor=tm%B%CUR%XTC_FLOOR, &
166 pd_floor=tm%B%CUR%XD_FLOOR, ptcool_target=tm%B%CUR%XTCOOL_TARGET, &
167 ptheat_target=tm%B%CUR%XTHEAT_TARGET, pf_waste_can=tm%B%CUR%XF_WASTE_CAN, &
168 peff_heat=tm%B%CUR%XEFF_HEAT, pqin=tm%B%CUR%XQIN, pqin_frad=tm%B%CUR%XQIN_FRAD, &
169 pshgc=tm%B%CUR%XSHGC, pu_win=tm%B%CUR%XU_WIN, pgr=tm%B%CUR%XGR, &
170 pshgc_sh=tm%B%CUR%XSHGC_SH, pfloor_height=tm%B%CUR%XFLOOR_HEIGHT, &
171 pinf=tm%B%CUR%XINF, pf_water_cond=tm%B%CUR%XF_WATER_COND, &
172 pqin_flat=tm%B%CUR%XQIN_FLAT, phr_target=tm%B%CUR%XHR_TARGET, &
173 pv_vent=tm%B%CUR%XV_VENT, pcap_sys_heat=tm%B%CUR%XCAP_SYS_HEAT, &
174 pcap_sys_rat=tm%B%CUR%XCAP_SYS_RAT, pt_adp=tm%B%CUR%XT_ADP, &
175 pm_sys_rat=tm%B%CUR%XM_SYS_RAT, pcop_rat=tm%B%CUR%XCOP_RAT, &
176 pt_size_max=tm%B%CUR%XT_SIZE_MAX, pt_size_min=tm%B%CUR%XT_SIZE_MIN, &
177 pshade=tm%B%CUR%XSHADE, pnatvent=tm%B%CUR%XNATVENT)
183 CALL
bem_morpho(tm%T%CUR%XBLD, tm%T%CUR%XWALL_O_HOR, tm%T%CUR%XBLD_HEIGHT, &
184 tm%B%CUR%XFLOOR_HEIGHT, tm%B%CUR%XGR, tm%B%CUR%XN_FLOOR, tm%T%CUR%XWALL_O_BLD, &
185 tm%B%CUR%XGLAZ_O_BLD, tm%B%CUR%XMASS_O_BLD, tm%B%CUR%XFLOOR_HW_RATIO, &
186 tm%B%CUR%XF_FLOOR_MASS, tm%B%CUR%XF_FLOOR_WALL, tm%B%CUR%XF_FLOOR_WIN, &
187 tm%B%CUR%XF_FLOOR_ROOF, tm%B%CUR%XF_WALL_FLOOR, tm%B%CUR%XF_WALL_MASS, &
188 tm%B%CUR%XF_WALL_WIN, tm%B%CUR%XF_WIN_FLOOR, tm%B%CUR%XF_WIN_MASS, &
189 tm%B%CUR%XF_WIN_WALL, tm%B%CUR%XF_MASS_FLOOR, tm%B%CUR%XF_MASS_WALL, &
190 tm%B%CUR%XF_MASS_WIN, tm%B%CUR%XF_WASTE_CAN, tm%B%CUR%XF_WIN_WIN )
195 CALL
window_data(ilu, tm%B%CUR%XSHGC, tm%B%CUR%XU_WIN, tm%B%CUR%XALB_WIN, &
196 tm%B%CUR%XABS_WIN, tm%B%CUR%XUGG_WIN, tm%B%CUR%XTRAN_WIN)
198 DO jj=1,
SIZE(tm%B%CUR%XSHADE)
199 IF (tm%B%CUR%XSHADE(jj) >= 0.0 .AND. tm%B%CUR%XSHADE(jj) < 0.5)
THEN
200 tm%B%CUR%LSHADE(jj) = .false.
201 ELSEIF (tm%B%CUR%XSHADE(jj) >= 0.5 .AND. tm%B%CUR%XSHADE(jj) <= 1.0)
THEN
202 tm%B%CUR%LSHADE(jj) = .true.
205 tm%B%CUR%LSHADE(jj) = .false.
208 IF (gprint)
WRITE(kluout,*) &
209 'TEB-BEM : Error in specifying shading devices for at least one point, no shading device for these points'
210 tm%B%CUR%LSHAD_DAY(:) = .false.
215 DO jj=1,
SIZE(tm%B%CUR%XNATVENT)
216 IF (tm%B%CUR%XNATVENT(jj) >= 0.0 .AND. tm%B%CUR%XNATVENT(jj) < 0.5)
THEN
217 tm%B%CUR%CNATVENT(jj) =
'NONE'
218 ELSEIF (tm%B%CUR%XNATVENT(jj) >= 0.5 .AND. tm%B%CUR%XNATVENT(jj) < 1.5)
THEN
219 tm%B%CUR%CNATVENT(jj) =
'MANU'
220 ELSEIF (tm%B%CUR%XNATVENT(jj) >= 1.5 .AND. tm%B%CUR%XNATVENT(jj) <= 2.5)
THEN
221 tm%B%CUR%CNATVENT(jj) =
'AUTO'
222 ELSEIF (tm%B%CUR%XNATVENT(jj) >= 2.5 .AND. tm%B%CUR%XNATVENT(jj) <= 3.5)
THEN
223 tm%B%CUR%CNATVENT(jj) =
'MECH'
226 tm%B%CUR%CNATVENT(jj) =
'NONE'
229 IF (gprint)
WRITE(kluout,*)
'TEB-BEM : Chosen option for surventilation is not yet implemented; None venting is kept instead'
231 tm%B%CUR%LNATVENT_NIGHT(:) = .false.
239 IF (tm%TOP%CBEM==
'BEM' .AND. tm%BOP%LAUTOSIZE)
THEN
240 CALL
hvac_autosize(tm%BDD, dtco, dgu, tm%B, tm%BOP, ug, u, tm%TG, tm%T, tm%TOP, &
250 IF (lhook) CALL dr_hook(
'INIT_BEM_N',1,zhook_handle)
subroutine stores_hvac_autosize(B, BOP, DTB)
subroutine bem_morpho(PBLD, PWALL_O_HOR, PBLD_HEIGHT, PFLOOR_HEIGHT, PGR, PN_FLOOR, PWALL_O_BLD, PGLAZ_O_BLD, PMASS_O_BLD, PFLOOR_HW_RATIO, PF_FLOOR_MASS, PF_FLOOR_WALL, PF_FLOOR_WIN, PF_FLOOR_ROOF, PF_WALL_FLOOR, PF_WALL_MASS, PF_WALL_WIN, PF_WIN_FLOOR, PF_WIN_MASS, PF_WIN_WALL, PF_MASS_FLOOR, PF_MASS_WALL, PF_MASS_WIN, PF_WASTE_CAN, PF_WIN_WIN)
subroutine hvac_autosize(BDD, DTCO, DGU, B, BOP, UG, U, TG, T, TOP, KI, KLUOUT)
subroutine convert_patch_teb(BDD, DTB, DTCO, DTT, TOP, PCOVER, OCOVER, PDEF_ROAD_DIR, PZ0_TOWN, PALB_ROOF, PEMIS_ROOF, PHC_ROOF, PTC_ROOF, PD_ROOF, PALB_ROAD, PEMIS_ROAD, PHC_ROAD, PTC_ROAD, PD_ROAD, PALB_WALL, PEMIS_WALL, PHC_WALL, PTC_WALL, PD_WALL, PBLD_HEIGHT, PWALL_O_HOR, PBLD, PGARDEN, PROAD_DIR, PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, PHC_FLOOR, PTC_FLOOR, PD_FLOOR, PTCOOL_TARGET, PTHEAT_TARGET, PF_WASTE_CAN, PEFF_HEAT, PQIN, PQIN_FRAD, PSHGC, PU_WIN, PGR, PSHGC_SH, PFLOOR_HEIGHT, PINF, PF_WATER_COND, PQIN_FLAT, PHR_TARGET, PV_VENT, PCAP_SYS_HEAT, PCAP_SYS_RAT, PT_ADP, PM_SYS_RAT, PCOP_RAT, PT_SIZE_MAX, PT_SIZE_MIN, PSHADE, PNATVENT, PROUGH_ROOF, PRESIDENTIAL, PROUGH_WALL, PGREENROOF, PEMIS_PANEL, PALB_PANEL, PEFF_PANEL, PFRAC_PANEL)
subroutine window_data(KI, PSHGC, PU_WIN, PALB_WIN, PABS_WIN, PUGG_WIN, PTRAN_WIN)
subroutine init_bem_n(DGU, DTCO, UG, U, TM, KLUOUT)