Changeset 4701 for palm/trunk/SOURCE/indoor_model_mod.f90
- Timestamp:
- Sep 27, 2020 11:02:15 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/indoor_model_mod.f90
r4698 r4701 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Heat transfer for wall and windows back to USM separated into q_wall and q_win (instead q_wall_win). 28 ! Heat flow direction revised (heat flow positive from outside to inside). 29 ! New variable indoor_wall_temperature (for q_wall). 30 ! Removed unused quantity q_trans. 31 ! 32 ! 4698 2020-09-25 08:37:55Z maronga 27 33 ! Fixed faulty characters 28 34 ! … … 308 314 REAL(wp) :: phi_sol !< [W] solar loads 309 315 REAL(wp) :: phi_st !< [W] mass specific thermal load implied non thermal mass 310 REAL(wp) :: q_wall_win !< [W/m2]heat flux from indoor into wall/window 316 REAL(wp) :: q_wall !< [W/m2]heat flux from indoor into wall 317 REAL(wp) :: q_win !< [W/m2]heat flux from indoor into window 311 318 REAL(wp) :: q_waste_heat !< [W/m2]waste heat, sum of waste heat over the roof to Palm 312 319 … … 317 324 REAL(wp) :: q_int !< [W] Energy of internal air load (for energy bilanz) 318 325 REAL(wp) :: q_sol !< [W] Energy of solar (for energy bilanz) 319 REAL(wp) :: q_trans !< [W] Energy of transmission (for energy bilanz)320 326 REAL(wp) :: q_vent !< [W] Energy of ventilation (for energy bilanz) 321 327 … … 457 463 !< Based on a Crank-Nicholson scheme with a timestep of a hour. 458 464 !--------------------------------------------------------------------------------------------------! 459 SUBROUTINE im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, 465 SUBROUTINE im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, indoor_wall_temperature, & 460 466 near_facade_temperature, phi_hc_nd_dummy, theta_m_t_prev ) 461 467 … … 465 471 466 472 REAL(wp) :: indoor_wall_window_temperature !< weighted temperature of innermost wall/window layer 473 REAL(wp) :: indoor_wall_temperature !< temperature of innermost wall layer evtl in im_calc_temperatures einfÃŒgen 467 474 REAL(wp) :: near_facade_temperature 468 475 REAL(wp) :: phi_hc_nd_dummy … … 470 477 ! 471 478 !-- Calculation of total mass specific thermal load (internal and external) 472 phi_mtot = ( phi_m + h_t_wm * indoor_wall_ window_temperature &479 phi_mtot = ( phi_m + h_t_wm * indoor_wall_temperature & 473 480 + h_t_3 * ( phi_st + h_t_es * pt(k,j,i) & 474 481 + h_t_1 * & … … 1195 1202 1196 1203 REAL(wp) :: indoor_wall_window_temperature !< weighted temperature of innermost wall/window layer 1204 1205 REAL(wp) :: indoor_wall_temperature !< temperature of innermost wall layer evtl in im_calc_temperatures einfÃŒgen 1206 1197 1207 REAL(wp) :: near_facade_temperature !< outside air temperature 10cm away from facade 1198 1208 REAL(wp) :: second_of_day !< second of the current day … … 1319 1329 surf_usm_h(l)%frac(m,ind_veg_wall) * t_wall_h(l)%val(nzt_wall,m) & 1320 1330 + surf_usm_h(l)%frac(m,ind_wat_win) * t_window_h(l)%val(nzt_wall,m) 1331 indoor_wall_temperature = surf_usm_h(l)%frac(m,ind_veg_wall) * t_wall_h(l)%val(nzt_wall,m) 1321 1332 ! 1322 1333 !-- Solar thermal gains. If net_sw_in larger than sun-protection threshold parameter … … 1356 1367 phi_hc_nd = 0.0_wp 1357 1368 1358 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, 1369 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, indoor_wall_temperature, & 1359 1370 near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_h(fa) ) 1360 1371 ! … … 1385 1396 phi_hc_nd = phi_hc_nd_10 1386 1397 1387 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, 1398 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, indoor_wall_temperature, & 1388 1399 near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_h(fa) ) 1389 1400 theta_air_10 = theta_air !< temperature with 10 W/m2 of heating … … 1414 1425 ! 1415 1426 !-- Calculate the temperature with phi_hc_nd_ac (new) 1416 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, 1427 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, indoor_wall_temperature, & 1417 1428 near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_h(fa) ) 1418 1429 theta_air_ac = theta_air … … 1435 1446 !-- calculate heat transfer through wall layers towards the facade 1436 1447 !-- (use c_p * rho_surface to convert [W/m2] into [K m/s]) 1437 q_wall _win = h_t_ms * ( theta_s - theta_m )&1448 q_wall = h_t_wm * ( indoor_wall_temperature - theta_m ) & 1438 1449 / ( facade_element_area - window_area_per_facade ) 1439 q_trans = q_wall_win * facade_element_area 1440 ! 1441 !-- Transfer q_wall_win back to USM (innermost wall/window layer) 1442 surf_usm_h(l)%iwghf_eb(m) = q_wall_win 1443 surf_usm_h(l)%iwghf_eb_window(m) = q_wall_win 1450 q_win = h_t_es * ( pt(k,j,i) - theta_s ) & 1451 / ( window_area_per_facade ) 1452 ! 1453 !-- Transfer q_wall & q_win back to USM (innermost wall/window layer) 1454 surf_usm_h(l)%iwghf_eb(m) = - q_wall 1455 surf_usm_h(l)%iwghf_eb_window(m) = - q_win 1444 1456 ! 1445 1457 !-- Sum up operational indoor temperature per kk-level. Further below, this temperature is … … 1549 1561 surf_usm_v(l)%frac(m,ind_veg_wall) * t_wall_v(l)%val(nzt_wall,m) & 1550 1562 + surf_usm_v(l)%frac(m,ind_wat_win) * t_window_v(l)%val(nzt_wall,m) 1563 indoor_wall_temperature = surf_usm_v(l)%frac(m,ind_veg_wall) * t_wall_v(l)%val(nzt_wall,m) 1551 1564 1552 1565 ! … … 1585 1598 !-- section C.4.1 Picture C.2 zone 3) 1586 1599 phi_hc_nd = 0.0_wp 1587 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, 1600 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, indoor_wall_temperature, & 1588 1601 near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_v(fa) ) 1589 1602 ! … … 1614 1627 phi_hc_nd = phi_hc_nd_10 1615 1628 1616 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, 1629 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, indoor_wall_temperature, & 1617 1630 near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_v(fa) ) 1618 1631 … … 1645 1658 ! 1646 1659 !-- Calculate the temperature with phi_hc_nd_ac (new) 1647 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &1660 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, indoor_wall_temperature, & 1648 1661 near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_v(fa) ) 1649 1662 theta_air_ac = theta_air … … 1664 1677 !-- Heat flux into the wall. Value needed in urban_surface_mod to 1665 1678 !-- calculate heat transfer through wall layers towards the facade 1666 q_wall _win = h_t_ms * ( theta_s - theta_m )&1679 q_wall = h_t_wm * ( indoor_wall_temperature - theta_m ) & 1667 1680 / ( facade_element_area - window_area_per_facade ) 1668 q_trans = q_wall_win * facade_element_area 1669 ! 1670 !-- Transfer q_wall_win back to USM (innermost wall/window layer) 1671 surf_usm_v(l)%iwghf_eb(m) = q_wall_win 1672 surf_usm_v(l)%iwghf_eb_window(m) = q_wall_win 1681 q_win = h_t_es * ( pt(k,j,i) - theta_s ) & 1682 / ( window_area_per_facade ) 1683 ! 1684 !-- Transfer q_wall & q_win back to USM (innermost wall/window layer) 1685 surf_usm_v(l)%iwghf_eb(m) = - q_wall 1686 surf_usm_v(l)%iwghf_eb_window(m) = - q_win 1673 1687 ! 1674 1688 !-- Sum up operational indoor temperature per kk-level. Further below, this temperature is … … 1794 1808 CASE ( 'im_t_indoor_wall_win' ) 1795 1809 unit = 'K' 1810 1811 CASE ( 'im_t_indoor_wall' ) 1812 unit = 'K' 1796 1813 1797 1814 CASE DEFAULT … … 1848 1865 grid_z = 'zu' 1849 1866 1850 CASE ( 'im_t_indoor_mean', 'im_t_indoor_roof', 'im_t_indoor_wall_win' )1867 CASE ( 'im_t_indoor_mean', 'im_t_indoor_roof', 'im_t_indoor_wall_win', 'indoor_wall' ) 1851 1868 grid_x = 'x' 1852 1869 grid_y = 'y'
Note: See TracChangeset
for help on using the changeset viewer.