Changeset 4701 for palm/trunk/SOURCE


Ignore:
Timestamp:
Sep 27, 2020 11:02:15 AM (4 years ago)
Author:
maronga
Message:

bugfix in indoor model regarding calculation of heat fluxes into the walls and windows (on behalf of Sascha Rissmann)

Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/indoor_model_mod.f90

    r4698 r4701  
    2525! -----------------
    2626! $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
    2733! Fixed faulty characters
    2834!
     
    308314    REAL(wp) ::  phi_sol                             !< [W] solar loads
    309315    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
    311318    REAL(wp) ::  q_waste_heat                        !< [W/m2]waste heat, sum of waste heat over the roof to Palm
    312319
     
    317324    REAL(wp) ::  q_int                               !< [W] Energy of internal air load (for energy bilanz)
    318325    REAL(wp) ::  q_sol                               !< [W] Energy of solar (for energy bilanz)
    319     REAL(wp) ::  q_trans                             !< [W] Energy of transmission (for energy bilanz)
    320326    REAL(wp) ::  q_vent                              !< [W] Energy of ventilation (for energy bilanz)
    321327
     
    457463!< Based on a Crank-Nicholson scheme with a timestep of a hour.
    458464!--------------------------------------------------------------------------------------------------!
    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,  &
    460466                                   near_facade_temperature, phi_hc_nd_dummy, theta_m_t_prev )
    461467
     
    465471
    466472    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
    467474    REAL(wp) ::  near_facade_temperature
    468475    REAL(wp) ::  phi_hc_nd_dummy
     
    470477!
    471478!-- 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                                   &
    473480                       + h_t_3  * ( phi_st + h_t_es * pt(k,j,i)                                    &
    474481                                            + h_t_1 *                                              &
     
    11951202
    11961203    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   
    11971207    REAL(wp) ::  near_facade_temperature          !< outside air temperature 10cm away from facade
    11981208    REAL(wp) ::  second_of_day                    !< second of the current day
     
    13191329                                            surf_usm_h(l)%frac(m,ind_veg_wall) * t_wall_h(l)%val(nzt_wall,m) &
    13201330                                          + 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)
    13211332!
    13221333!--          Solar thermal gains. If net_sw_in larger than sun-protection threshold parameter
     
    13561367             phi_hc_nd = 0.0_wp
    13571368
    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, &
    13591370                                          near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_h(fa) )
    13601371!
     
    13851396                phi_hc_nd    = phi_hc_nd_10
    13861397
    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, &
    13881399                                             near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_h(fa) )
    13891400                theta_air_10 = theta_air                                                !< temperature with 10 W/m2 of heating
     
    14141425!
    14151426!--             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, &
    14171428                                             near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_h(fa) )
    14181429                theta_air_ac = theta_air
     
    14351446!--          calculate heat transfer through wall layers towards the facade
    14361447!--          (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 )                               &
    14381449                                    / ( 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
    14441456!
    14451457!--          Sum up operational indoor temperature per kk-level. Further below, this temperature is
     
    15491561                                    surf_usm_v(l)%frac(m,ind_veg_wall) * t_wall_v(l)%val(nzt_wall,m)   &
    15501562                                  + 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)
    15511564
    15521565!
     
    15851598!--          section C.4.1 Picture C.2 zone 3)
    15861599             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, &
    15881601                                         near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_v(fa) )
    15891602!
     
    16141627                phi_hc_nd    = phi_hc_nd_10
    16151628
    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, &
    16171630                                             near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_v(fa) )
    16181631
     
    16451658!
    16461659!--             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, &
    16481661                                             near_facade_temperature, phi_hc_nd, buildings(nb)%theta_m_t_prev_v(fa) )
    16491662                theta_air_ac = theta_air
     
    16641677!--          Heat flux into the wall. Value needed in urban_surface_mod to
    16651678!--          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 )                               &
    16671680                                    / ( 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
    16731687!
    16741688!--          Sum up operational indoor temperature per kk-level. Further below, this temperature is
     
    17941808        CASE ( 'im_t_indoor_wall_win' )
    17951809           unit = 'K'
     1810           
     1811        CASE ( 'im_t_indoor_wall' )
     1812           unit = 'K'
    17961813
    17971814        CASE DEFAULT
     
    18481865          grid_z = 'zu'
    18491866
    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' )
    18511868          grid_x = 'x'
    18521869          grid_y = 'y'
  • palm/trunk/SOURCE/urban_surface_mod.f90

    r4698 r4701  
    2727! -----------------
    2828! $Id$
     29! Corrected parameter 33 for building_type 2 (ground floor window emissivity
     30!
     31! 4698 2020-09-25 08:37:55Z maronga
    2932! Bugfix in calculation of iwghf_eb and iwghf_eb_window (introduced in previous revisions)
    3033!
     
    76797682          0.04_wp,        &  !< parameter 31  - thermal conductivity 4th wall layer ground floor level
    76807683          0.92_wp,        &  !< parameter 32  - wall emissivity ground floor level
    7681           0.11_wp,        &  !< parameter 33  - window emissivity ground floor level
     7684          0.87_wp,        &  !< parameter 33  - window emissivity ground floor level
    76827685          0.86_wp,        &  !< parameter 34  - green emissivity ground floor level
    76837686          0.7_wp,         &  !< parameter 35  - window transmissivity ground floor level
Note: See TracChangeset for help on using the changeset viewer.