Changeset 4148 for palm/trunk


Ignore:
Timestamp:
Aug 8, 2019 11:26:00 AM (5 years ago)
Author:
suehring
Message:

indoor_model_mod: Revision of indoor model; urban_surface_mod: parameters for waste heat from cooling and heating are introduced to building data base; initialization of building data base moved to an earlier point of time before indoor model will be initialized; radiation_model_mod: minor improvement in some comments; synthetic_turbulence_generator: unused variable removed

Location:
palm/trunk/SOURCE
Files:
4 edited

Legend:

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

    r4144 r4148  
    2525! Former revisions:
    2626! -----------------
    27 ! $Id$
    28 ! relational operators .EQ., .NE., etc. replaced by ==, /=, etc.
     27! $Id: indoor_model_mod.f90
     28! - change calculation of a_m and c_m
     29! - change calculation of u-values (use h_es in building array)
     30! - rename h_tr_... to  h_t_...
     31!          h_tr_em  to  h_t_wm
     32!          h_tr_op  to  h_t_wall
     33!          h_tr_w   to  h_t_es
     34! - rename h_ve     to  h_v
     35! - rename h_is     to  h_ms
     36! - inserted net_floor_area
     37! - inserted params_waste_heat_h, params_waste_heat_c from building database
     38!   in building array
     39! - change calculation of q_waste_heat
     40! - bugfix in averaging mean indoor temperature
    2941!
    30 ! 3885 2019-04-11 11:29:34Z kanani
    31 ! Changes related to global restructuring of location messages and introduction
    32 ! of additional debug messages
    3342!
    34 ! 3786 2019-03-06 16:58:03Z raasch
    35 ! unused variables removed
    36 !
    37 ! 3759 2019-02-21 15:53:45Z suehring
     43! 3759 2019-02-21 15:53:45Z suehring $
    3844! - Calculation of total building volume
    3945! - Several bugfixes
     
    8591!> @todo Replace window_area_per_facade by %frac(1,m) for window
    8692!> @todo emissivity change for window blinds if solar_protection_on=1
    87 !> @todo write datas in netcdf file as output data
    88 !> @todo reduce the building volume with netto ground surface to take respect costruction areas like walls and ceilings. Have effect on factor_a, factor_c, airchange and lambda_at
    89 !>
     93
    9094!> @note Do we allow use of integer flags, or only logical flags? (concerns e.g. cooling_on, heating_on)
    9195!> @note How to write indoor temperature output to pt array?
     
    96100
    97101    USE control_parameters,                                                    &
    98         ONLY:  debug_output, initializing_actions
     102        ONLY:  initializing_actions
    99103
    100104    USE kinds
     
    120124       INTEGER(iwp) ::  num_facades_per_building_v = 0    !< total number of vertical facades elements
    121125       INTEGER(iwp) ::  num_facades_per_building_v_l = 0  !< number of vertical facade elements on local subdomain
     126       INTEGER(iwp) ::  ventilation_int_loads             !< [-] allocation of activity in the building
    122127
    123128       INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  l_v            !< index array linking surface-element orientation index
     
    131136       INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  num_facade_v   !< number of vertical facades elements per buidling
    132137                                                                  !< and height level
    133                                                                  
    134        INTEGER(iwp) ::  ventilation_int_loads
     138                                                                 
    135139
    136140       LOGICAL ::  on_pe = .FALSE.   !< flag indicating whether a building with certain ID is on local subdomain
    137141       
    138        REAL(wp) ::  building_height   !< building height
    139        REAL(wp) ::  lambda_layer3     !< [W/(m*K)] Thermal conductivity of the inner layer 
    140        REAL(wp) ::  s_layer3          !< [m] half thickness of the inner layer (layer_3)
    141        REAL(wp) ::  f_c_win           !< [-] shading factor
    142        REAL(wp) ::  g_value_win       !< [-] SHGC factor
    143        REAL(wp) ::  u_value_win       !< [W/(m2*K)] transmittance
    144        REAL(wp) ::  air_change_low    !< [1/h] air changes per time_utc_hour
    145        REAL(wp) ::  air_change_high   !< [1/h] air changes per time_utc_hour
    146        REAL(wp) ::  eta_ve            !< [-] heat recovery efficiency
    147        REAL(wp) ::  factor_a          !< [-] Dynamic parameters specific effective surface according to Table 12; 2.5
    148                                       !< (very light, light and medium), 3.0 (heavy), 3.5 (very heavy)
    149        REAL(wp) ::  factor_c          !< [J/(m2 K)] Dynamic parameters inner heatstorage according to Table 12; 80000
    150                                       !< (very light), 110000 (light), 165000 (medium), 260000 (heavy), 370000 (very heavy)
    151        REAL(wp) ::  lambda_at         !< [-] ratio internal surface/floor area chap. 7.2.2.2.
    152        REAL(wp) ::  theta_int_h_set   !< [degree_C] Max. Setpoint temperature (winter)
    153        REAL(wp) ::  theta_int_c_set   !< [degree_C] Max. Setpoint temperature (summer)
    154        REAL(wp) ::  phi_h_max         !< [W] Max. Heating capacity (negative)
    155        REAL(wp) ::  phi_c_max         !< [W] Max. Cooling capacity (negative)
    156        REAL(wp) ::  qint_high         !< [W/m2] internal heat gains, option Database qint_0-23
    157        REAL(wp) ::  qint_low          !< [W/m2] internal heat gains, option Database qint_0-23
    158        REAL(wp) ::  height_storey     !< [m] storey heigth
    159        REAL(wp) ::  height_cei_con    !< [m] ceiling construction heigth
    160        REAL(wp) ::  vol_tot           !< total building volume
     142       REAL(wp) ::  air_change_high       !< [1/h] air changes per time_utc_hour
     143       REAL(wp) ::  air_change_low        !< [1/h] air changes per time_utc_hour
     144       REAL(wp) ::  area_facade           !< [m2] area of total facade
     145       REAL(wp) ::  building_height       !< building height
     146       REAL(wp) ::  eta_ve                !< [-] heat recovery efficiency
     147       REAL(wp) ::  factor_a              !< [-] Dynamic parameters specific effective surface according to Table 12; 2.5
     148                                          !< (very light, light and medium), 3.0 (heavy), 3.5 (very heavy)
     149       REAL(wp) ::  factor_c              !< [J/(m2 K)] Dynamic parameters inner heatstorage according to Table 12; 80000
     150                                          !< (very light), 110000 (light), 165000 (medium), 260000 (heavy), 370000 (very heavy)
     151       REAL(wp) ::  f_c_win               !< [-] shading factor
     152       REAL(wp) ::  g_value_win           !< [-] SHGC factor
     153       REAL(wp) ::  h_es                  !< [W/(m2 K)] surface-related heat transfer coefficient between extern and surface
     154       REAL(wp) ::  height_cei_con        !< [m] ceiling construction heigth
     155       REAL(wp) ::  height_storey         !< [m] storey heigth
     156       REAL(wp) ::  params_waste_heat_c   !< [-] anthropogenic heat outputs for cooling e.g. 1.33 for KKM with COP = 3
     157       REAL(wp) ::  params_waste_heat_h   !< [-] anthropogenic heat outputs for heating e.g. 1 - 0.9 = 0.1 for combustion with eta = 0.9 or -2 for WP with COP = 3
     158       REAL(wp) ::  phi_c_max             !< [W] Max. Cooling capacity (negative)
     159       REAL(wp) ::  phi_h_max             !< [W] Max. Heating capacity (positive)
     160       REAL(wp) ::  q_c_max               !< [W/m2] Max. Cooling heat flux per netto floor area (negative)
     161       REAL(wp) ::  q_h_max               !< [W/m2] Max. Heating heat flux per netto floor area (positive)
     162       REAL(wp) ::  qint_high             !< [W/m2] internal heat gains, option Database qint_0-23
     163       REAL(wp) ::  qint_low              !< [W/m2] internal heat gains, option Database qint_0-23
     164       REAL(wp) ::  lambda_at             !< [-] ratio internal surface/floor area chap. 7.2.2.2.
     165       REAL(wp) ::  lambda_layer3         !< [W/(m*K)] Thermal conductivity of the inner layer
     166       REAL(wp) ::  net_floor_area        !< [m2] netto ground area
     167       REAL(wp) ::  s_layer3              !< [m] half thickness of the inner layer (layer_3)
     168       REAL(wp) ::  theta_int_c_set       !< [degree_C] Max. Setpoint temperature (summer)
     169       REAL(wp) ::  theta_int_h_set       !< [degree_C] Max. Setpoint temperature (winter)
     170       REAL(wp) ::  u_value_win           !< [W/(m2*K)] transmittance
     171       REAL(wp) ::  vol_tot               !< [m3] total building volume
    161172
    162173       REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_in       !< mean building indoor temperature, height dependent
     
    171182
    172183    INTEGER(iwp) ::  num_build   !< total number of buildings in domain
    173 
    174184!
    175185!-- Declare all global variables within the module
     
    179189    INTEGER(iwp) ::  solar_protection_on     !< Solar protection on
    180190
    181     REAL(wp) ::  eff_mass_area               !< [m2] the effective mass-related area
    182     REAL(wp) ::  floor_area_per_facade       !< [m2] net floor area (Sum of all floors)
    183     REAL(wp) ::  total_area                  !<! [m2] area of all surfaces pointing to zone
    184     REAL(wp) ::  window_area_per_facade      !< [m2] window area per facade element
    185     REAL(wp) ::  air_change                  !< [1/h] Airflow
    186     REAL(wp) ::  facade_element_area         !< [m2_facade] building surface facade
    187     REAL(wp) ::  indoor_volume_per_facade    !< [m3] indoor air volume per facade element
    188     REAL(wp) ::  c_m                         !< [J/K] internal heat storage capacity
    189     REAL(wp) ::  dt_indoor = 3600.0_wp       !< [s] namelist parameter: time interval for indoor-model application
    190     REAL(wp) ::  h_tr_1                      !<! [W/K] Heat transfer coefficient auxiliary variable 1
    191     REAL(wp) ::  h_tr_2                      !<! [W/K] Heat transfer coefficient auxiliary variable 2
    192     REAL(wp) ::  h_tr_3                      !<! [W/K] Heat transfer coefficient auxiliary variable 3
    193     REAL(wp) ::  h_tr_em                     !<! [W/K] Heat transfer coefficient of the emmision (got with h_tr_ms the thermal mass)
    194     REAL(wp) ::  h_tr_is                     !<! [W/K] thermal coupling conductance (Thermischer Kopplungsleitwert)
    195     REAL(wp) ::  h_tr_ms                     !<! [W/K] Heat transfer conductance term (got with h_tr_em the thermal mass)
    196     REAL(wp) ::  h_tr_op                     !<! [W/K] heat transfer coefficient of opaque components (assumption: got all thermal mass) contains of h_tr_em and h_tr_ms
    197     REAL(wp) ::  h_tr_w                      !<! [W/K] heat transfer coefficient of doors, windows, curtain walls and glazed walls (assumption: thermal mass=0)
    198     REAL(wp) ::  h_ve                        !<! [W/K] heat transfer of ventilation
    199     REAL(wp) ::  initial_indoor_temperature  !< namelist parameter
    200     REAL(wp) ::  net_sw_in                   !< net short-wave radiation (in - out; was i_global --> CORRECT?)
    201     REAL(wp) ::  phi_hc_nd                   !<! [W] heating demand and/or cooling demand
    202     REAL(wp) ::  phi_hc_nd_10                !<! [W] heating demand and/or cooling demand for heating or cooling
    203     REAL(wp) ::  phi_hc_nd_ac                !<! [W] actual heating demand and/or cooling demand
    204     REAL(wp) ::  phi_hc_nd_un                !<! [W] unlimited heating demand and/or cooling demand which is necessary to reach the demanded required temperature (heating is positive, cooling is negative)
    205     REAL(wp) ::  phi_ia                      !< [W] internal air load = internal loads * 0.5, Eq. (C.1)
    206     REAL(wp) ::  phi_m                       !<! [W] mass specific thermal load (internal and external)
    207     REAL(wp) ::  phi_mtot                    !<! [W] total mass specific thermal load (internal and external)
    208     REAL(wp) ::  phi_sol                     !< [W] solar loads
    209     REAL(wp) ::  phi_st                      !<! [W] mass specific thermal load implied non thermal mass
    210 !    REAL(wp) ::  q_emission                  !< emissions, in first version = 0, option for second part of the project
    211     REAL(wp) ::  q_wall_win                  !< heat flux from indoor into wall/window
    212     REAL(wp) ::  q_waste_heat                !< waste heat, sum of waste heat over the roof to Palm
    213 !    REAL(wp) ::  q_waste_heat_bldg           !< [W/building] waste heat of the complete building, in Palm sum of all indoor_model-calculations
    214     REAL(wp) ::  schedule_d                  !< activation for internal loads (low or high + low)
     191    REAL(wp) ::  a_m                           !< [m2] the effective mass-related area
     192    REAL(wp) ::  air_change                    !< [1/h] Airflow
     193    REAL(wp) ::  c_m                           !< [J/K] internal heat storage capacity
     194    REAL(wp) ::  dt_indoor = 3600.0_wp         !< [s] namelist parameter: time interval for indoor-model application
     195    REAL(wp) ::  facade_element_area           !< [m2_facade] building surface facade
     196    REAL(wp) ::  floor_area_per_facade         !< [m2/m2] floor area per facade area
     197    REAL(wp) ::  h_t_1                         !< [W/K] Heat transfer coefficient auxiliary variable 1
     198    REAL(wp) ::  h_t_2                         !< [W/K] Heat transfer coefficient auxiliary variable 2
     199    REAL(wp) ::  h_t_3                         !< [W/K] Heat transfer coefficient auxiliary variable 3
     200    REAL(wp) ::  h_t_wm                        !< [W/K] Heat transfer coefficient of the emmision (got with h_t_ms the thermal mass)
     201    REAL(wp) ::  h_t_is                        !< [W/K] thermal coupling conductance (Thermischer Kopplungsleitwert)
     202    REAL(wp) ::  h_t_ms                        !< [W/K] Heat transfer conductance term (got with h_t_wm the thermal mass)
     203    REAL(wp) ::  h_t_wall                      !< [W/K] heat transfer coefficient of opaque components (assumption: got all thermal mass) contains of h_t_wm and h_t_ms
     204    REAL(wp) ::  h_t_es                        !< [W/K] heat transfer coefficient of doors, windows, curtain walls and glazed walls (assumption: thermal mass=0)
     205    REAL(wp) ::  h_v                           !< [W/K] heat transfer of ventilation
     206    REAL(wp) ::  indoor_volume_per_facade      !< [m3] indoor air volume per facade element
     207    REAL(wp) ::  initial_indoor_temperature    !< [K] initial indoor temperature (namelist parameter)
     208    REAL(wp) ::  net_sw_in                     !< [W/m2] net short-wave radiation
     209    REAL(wp) ::  phi_hc_nd                     !< [W] heating demand and/or cooling demand
     210    REAL(wp) ::  phi_hc_nd_10                  !< [W] heating demand and/or cooling demand for heating or cooling
     211    REAL(wp) ::  phi_hc_nd_ac                  !< [W] actual heating demand and/or cooling demand
     212    REAL(wp) ::  phi_hc_nd_un                  !< [W] unlimited heating demand and/or cooling demand which is necessary to reach the demanded required temperature (heating is positive, cooling is negative)
     213    REAL(wp) ::  phi_ia                        !< [W] internal air load = internal loads * 0.5, Eq. (C.1)
     214    REAL(wp) ::  phi_m                         !< [W] mass specific thermal load (internal and external)
     215    REAL(wp) ::  phi_mtot                      !< [W] total mass specific thermal load (internal and external)
     216    REAL(wp) ::  phi_sol                       !< [W] solar loads
     217    REAL(wp) ::  phi_st                        !< [W] mass specific thermal load implied non thermal mass
     218    REAL(wp) ::  q_wall_win                    !< [W/m2]heat flux from indoor into wall/window
     219    REAL(wp) ::  q_waste_heat                  !< [W/m2]waste heat, sum of waste heat over the roof to Palm
     220   
     221    REAL(wp) ::  q_c_m                         !< [W] Energy of thermal storage mass specific thermal load for internal and external heatsources (for energy bilanz)
     222    REAL(wp) ::  q_c_st                        !< [W] Energy of thermal storage mass specific thermal load implied non thermal mass (for energy bilanz)
     223    REAL(wp) ::  q_int                         !< [W] Energy of internal air load (for energy bilanz)
     224    REAL(wp) ::  q_sol                         !< [W] Energy of solar (for energy bilanz)
     225    REAL(wp) ::  q_trans                       !< [W] Energy of transmission (for energy bilanz)
     226    REAL(wp) ::  q_vent                        !< [W] Energy of ventilation (for energy bilanz)
     227   
     228    REAL(wp) ::  schedule_d                    !< [-] activation for internal loads (low or high + low)
    215229    REAL(wp) ::  skip_time_do_indoor = 0.0_wp  !< [s] Indoor model is not called before this time
    216     REAL(wp) ::  theta_air                   !<! [degree_C] air temperature of the RC-node
    217     REAL(wp) ::  theta_air_0                 !<! [degree_C] air temperature of the RC-node in equilibrium
    218     REAL(wp) ::  theta_air_10                !<! [degree_C] air temperature of the RC-node from a heating capacity of 10 W/m2
    219     REAL(wp) ::  theta_air_ac                !< [degree_C] actual room temperature after heating/cooling
    220     REAL(wp) ::  theta_air_set               !< [degree_C] Setpoint_temperature for the room
    221     REAL(wp) ::  theta_m                     !<! [degree_C} inner temperature of the RC-node
    222     REAL(wp) ::  theta_m_t                   !<! [degree_C] (Fictive) component temperature timestep
    223     REAL(wp) ::  theta_m_t_prev              !< [degree_C] (Fictive) component temperature previous timestep (do not change)
    224     REAL(wp) ::  theta_op                    !< [degree_C] operative temperature
    225     REAL(wp) ::  theta_s                     !<! [degree_C] surface temperature of the RC-node
    226     REAL(wp) ::  time_indoor = 0.0_wp        !< [s] time since last call of indoor model
    227 !    REAL(wp) ::  time_utc_hour               !< Time in hours per day (UTC)
    228    
    229     REAL(wp) ::  f_sr                        !< [-] factor surface reduction
    230     REAL(wp) ::  f_cei                       !< [-] ceiling reduction factor
    231     REAL(wp) ::  ngs                         !< [m2] netto ground surface
    232    
     230    REAL(wp) ::  theta_air                     !< [degree_C] air temperature of the RC-node
     231    REAL(wp) ::  theta_air_0                   !< [degree_C] air temperature of the RC-node in equilibrium
     232    REAL(wp) ::  theta_air_10                  !< [degree_C] air temperature of the RC-node from a heating capacity of 10 W/m2
     233    REAL(wp) ::  theta_air_ac                  !< [degree_C] actual room temperature after heating/cooling
     234    REAL(wp) ::  theta_air_set                 !< [degree_C] Setpoint_temperature for the room
     235    REAL(wp) ::  theta_m                       !< [degree_C} inner temperature of the RC-node
     236    REAL(wp) ::  theta_m_t                     !< [degree_C] (Fictive) component temperature timestep
     237    REAL(wp) ::  theta_m_t_prev                !< [degree_C] (Fictive) component temperature previous timestep (do not change)
     238    REAL(wp) ::  theta_op                      !< [degree_C] operative temperature
     239    REAL(wp) ::  theta_s                       !< [degree_C] surface temperature of the RC-node
     240    REAL(wp) ::  time_indoor = 0.0_wp          !< [s] time since last call of indoor model
     241    REAL(wp) ::  total_area                    !< [m2] area of all surfaces pointing to zone
     242    REAL(wp) ::  window_area_per_facade        !< [m2] window area per facade element
     243   
     244    REAL(wp), PARAMETER ::  h_is                     = 3.45_wp     !< [W/(m2 K)] surface-related heat transfer coefficient between surface and air (chap. 7.2.2.2)
     245    REAL(wp), PARAMETER ::  h_ms                     = 9.1_wp      !< [W/(m2 K)] surface-related heat transfer coefficient between component and surface (chap. 12.2.2)
    233246    REAL(wp), PARAMETER ::  params_f_f               = 0.3_wp      !< [-] frame ratio chap. 8.3.2.1.1 for buildings with mostly cooling 2.0_wp
    234247    REAL(wp), PARAMETER ::  params_f_w               = 0.9_wp      !< [-] correction factor (fuer nicht senkrechten Stahlungseinfall DIN 4108-2 chap.8, (hier konstant, keine WinkelabhÀngigkeit)
    235248    REAL(wp), PARAMETER ::  params_f_win             = 0.5_wp      !< [-] proportion of window area, Database A_win aus Datenbank 27 window_area_per_facade_percent
    236249    REAL(wp), PARAMETER ::  params_solar_protection  = 300.0_wp    !< [W/m2] chap. G.5.3.1 sun protection closed, if the radiation on facade exceeds this value
    237     REAL(wp), PARAMETER ::  params_waste_heat_c      = 4.0_wp      !< [-] anthropogenic heat outputs for cooling e.g. 4 for KKM with COP = 3
    238     REAL(wp), PARAMETER ::  params_waste_heat_h      = 1.111_wp    !< [-] anthropogenic heat outputs for heating e.g. 1 / 0.9 = 1.111111 for combustion with eta = 0.9 or -3 for WP with COP = 4
    239     REAL(wp), PARAMETER ::  h_is                     = 3.45_wp     !< [W/(m^2 K)]  h_is = 3.45 between surface and air (chap. 7.2.2.2)
    240     REAL(wp), PARAMETER ::  h_ms                     = 9.1_wp      !< [W/K] h_ms = 9.10 W / (m2 K) between component and surface (chap. 12.2.2)
    241 
    242    
     250
    243251   
    244252    SAVE
     
    332340    REAL(wp) ::  near_facade_temperature
    333341    REAL(wp) ::  phi_hc_nd_dummy
    334    
    335 
    336     !< Calculation of total mass specific thermal load (internal and external)
    337     phi_mtot = ( phi_m + h_tr_em * indoor_wall_window_temperature              &
    338                        + h_tr_3  * ( phi_st + h_tr_w * pt(k,j,i)               &
    339                                             + h_tr_1 *                         &
    340                                                ( ( ( phi_ia + phi_hc_nd_dummy ) / h_ve )  &
     342!
     343!-- Calculation of total mass specific thermal load (internal and external)
     344    phi_mtot = ( phi_m + h_t_wm * indoor_wall_window_temperature               &
     345                       + h_t_3  * ( phi_st + h_t_es * pt(k,j,i)                &
     346                                            + h_t_1 *                          &
     347                                    ( ( ( phi_ia + phi_hc_nd_dummy ) / h_v )   &
    341348                                                 + near_facade_temperature )   &
    342                                    ) / h_tr_2                                  &
     349                                   ) / h_t_2                                   &
    343350               )                                                                !< [degree_C] Eq. (C.5)
    344    
    345     !< Calculation of component temperature at factual timestep
    346     theta_m_t = ( ( theta_m_t_prev                                               &
    347                     * ( ( c_m / 3600.0_wp ) - 0.5_wp * ( h_tr_3 + h_tr_em ) ) + phi_mtot &
    348                   )                                                              &
    349                   /   ( ( c_m / 3600.0_wp ) + 0.5_wp * ( h_tr_3 + h_tr_em ) )            &
     351!
     352!-- Calculation of component temperature at factual timestep
     353    theta_m_t = ( ( theta_m_t_prev                                             &
     354                    * ( ( c_m / 3600.0_wp ) - 0.5_wp * ( h_t_3 + h_t_wm ) )    &
     355                     + phi_mtot                                                &
     356                  )                                                            &
     357                  /   ( ( c_m / 3600.0_wp ) + 0.5_wp * ( h_t_3 + h_t_wm ) )    &
    350358                )                                                               !< [degree_C] Eq. (C.4)
    351 
    352     !< Calculation of mean inner temperature for the RC-node in actual timestep
    353     theta_m = ( theta_m_t + theta_m_t_prev ) * 0.5_wp                              !< [degree_C] Eq. (C.9)
    354    
    355     !< Calculation of mean surface temperature of the RC-node in actual timestep
    356     theta_s = ( (   h_tr_ms * theta_m + phi_st + h_tr_w * pt(k,j,i)                         &
    357                   + h_tr_1  * ( near_facade_temperature + ( phi_ia + phi_hc_nd_dummy ) / h_ve ) &
    358                 )                                                                           &
    359                 / ( h_tr_ms + h_tr_w + h_tr_1 )                                             &
     359!
     360!-- Calculation of mean inner temperature for the RC-node in actual timestep
     361    theta_m = ( theta_m_t + theta_m_t_prev ) * 0.5_wp                           !< [degree_C] Eq. (C.9)
     362   
     363!
     364!-- Calculation of mean surface temperature of the RC-node in actual timestep
     365    theta_s = ( (   h_t_ms * theta_m + phi_st + h_t_es * pt(k,j,i)             &
     366                  + h_t_1  * ( near_facade_temperature                         &
     367                           + ( phi_ia + phi_hc_nd_dummy ) / h_v )              &
     368                )                                                              &
     369                / ( h_t_ms + h_t_es + h_t_1 )                                  &
    360370              )                                                                 !< [degree_C] Eq. (C.10)
    361371   
    362     !< Calculation of the air temperature of the RC-node
    363     theta_air = ( h_tr_is * theta_s + h_ve * near_facade_temperature         &
    364                                     + phi_ia + phi_hc_nd_dummy ) / ( h_tr_is + h_ve ) !< [degree_C] Eq. (C.11)
     372!
     373!-- Calculation of the air temperature of the RC-node
     374    theta_air = ( h_t_is * theta_s + h_v * near_facade_temperature             &
     375                + phi_ia + phi_hc_nd_dummy ) / ( h_t_is + h_v )                 !< [degree_C] Eq. (C.11)
    365376
    366377 END SUBROUTINE im_calc_temperatures
     
    375386!-- Input values
    376387!-- Input datas from Palm, M4
    377 !     i_global             -->  net_sw_in                         !global radiation [W/m2]
    378 !     theta_e              -->  pt(k,j,i)                         !undisturbed outside temperature, 1. PALM volume, for windows
     388!     i_global             -->  net_sw_in                         !< global radiation [W/m2]
     389!     theta_e              -->  pt(k,j,i)                         !< undisturbed outside temperature, 1. PALM volume, for windows
    379390!     theta_sup = theta_f  -->  surf_usm_h%pt_10cm(m)
    380 !                               surf_usm_v(l)%pt_10cm(m)   !Air temperature, facade near (10cm) air temperature from 1. Palm volume
     391!                               surf_usm_v(l)%pt_10cm(m)          !< Air temperature, facade near (10cm) air temperature from 1. Palm volume
    381392!     theta_node           -->  t_wall_h(nzt_wall,m)
    382 !                               t_wall_v(l)%t(nzt_wall,m)         !Temperature of innermost wall layer, for opaque wall
     393!                               t_wall_v(l)%t(nzt_wall,m)         !< Temperature of innermost wall layer, for opaque wall
    383394!------------------------------------------------------------------------------!
    384395 SUBROUTINE im_init
     
    431442    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  receive_dum_h       !< dummy array used for MPI_ALLREDUCE 
    432443    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  receive_dum_v       !< dummy array used for MPI_ALLREDUCE 
    433 
     444   
    434445    INTEGER(iwp), DIMENSION(0:numprocs-1) ::  num_buildings         !< number of buildings with different ID on entire model domain
    435446    INTEGER(iwp), DIMENSION(0:numprocs-1) ::  num_buildings_l       !< number of buildings with different ID on local subdomain
    436    
     447                                                             
     448    REAL(wp) ::  u_tmp                                     !< dummy for temporary calculation of u-value without h_is
     449    REAL(wp) ::  du_tmp                                    !< 1/u_tmp
     450    REAL(wp) ::  du_win_tmp                                !< 1/building(nb)%u_value_win
     451
    437452    REAL(wp), DIMENSION(:), ALLOCATABLE ::  volume         !< total building volume at each discrete height level
    438453    REAL(wp), DIMENSION(:), ALLOCATABLE ::  volume_l       !< total building volume at each discrete height level,
    439454                                                           !< on local subdomain
    440455
    441     IF ( debug_output )  CALL debug_message( 'im_init', 'start' )
    442 
     456    CALL location_message( 'initializing indoor model', .FALSE. )
    443457!
    444458!-- Initializing of indoor model is only possible if buildings can be
     
    457471          IF ( building_id_f%var(j,i) /= building_id_f%fill )  THEN
    458472             IF ( num_buildings_l(myid) > 0 )  THEN
    459                 IF ( ANY( building_id_f%var(j,i) ==  build_ids_l ) )  THEN
     473                IF ( ANY( building_id_f%var(j,i) .EQ.  build_ids_l ) )  THEN
    460474                   CYCLE
    461475                ELSE
     
    516530    build_ids = build_ids_l
    517531#endif
     532
    518533!
    519534!-- Note: in parallel mode, building IDs can occur mutliple times, as
     
    524539
    525540       IF ( ALLOCATED(build_ids_final) )  THEN
    526           IF ( ANY( build_ids(n) == build_ids_final ) )  THEN    !FK: Warum ANY?, Warum .EQ.? --> s.o
     541          IF ( ANY( build_ids(n) == build_ids_final ) )  THEN
    527542             CYCLE
    528543          ELSE
     
    623638!--    these building is present.
    624639       IF ( buildings(nb)%on_pe )  THEN
     640
    625641          ALLOCATE( buildings(nb)%volume(buildings(nb)%kb_min:buildings(nb)%kb_max)   )
    626642          ALLOCATE( buildings(nb)%vol_frac(buildings(nb)%kb_min:buildings(nb)%kb_max) )
     
    659675       IF ( ALLOCATED( buildings(nb)%volume ) )                                &
    660676          buildings(nb)%vol_tot = SUM( buildings(nb)%volume )
    661        
     677
    662678       DEALLOCATE( volume   )
    663679       DEALLOCATE( volume_l )
    664680
    665681    ENDDO
    666 
    667682!
    668683!-- Allocate arrays for indoor temperature. 
     
    716731    ENDDO
    717732!
    718 !-- Vertical facades
     733!-- Vertical facades!
    719734    buildings(:)%num_facades_per_building_v_l = 0
    720735    DO  l = 0, 3
     
    777792                           comm2d,                                             &
    778793                           ierr )
    779        IF ( ALLOCATED( buildings(nb)%num_facade_h ) )                          &  !FK: Was wenn not allocated? --> s.o.
     794       IF ( ALLOCATED( buildings(nb)%num_facade_h ) )                          &
    780795           buildings(nb)%num_facade_h = receive_dum_h
    781796       IF ( ALLOCATED( buildings(nb)%num_facade_v ) )                          &
     
    785800       buildings(nb)%num_facade_v = num_facades_v
    786801#endif
     802
    787803!
    788804!--    Deallocate dummy arrays
     
    812828       ENDIF
    813829!
    814 !--    Determine volume per facade element (vpf)
     830! --    Determine volume per facade element (vpf)
    815831       IF ( buildings(nb)%on_pe )  THEN
    816832          ALLOCATE( buildings(nb)%vpf(buildings(nb)%kb_min:buildings(nb)%kb_max) )
     
    818834          DO  k = buildings(nb)%kb_min, buildings(nb)%kb_max
    819835             buildings(nb)%vpf(k) = buildings(nb)%volume(k) /                  &
    820                                     ( buildings(nb)%num_facade_h(k) +          &
    821                                       buildings(nb)%num_facade_v(k) )
     836                                REAL( buildings(nb)%num_facade_h(k) +          &
     837                                      buildings(nb)%num_facade_v(k), KIND = wp )
    822838          ENDDO
     839       ENDIF
     840   
     841!
     842!--    Determine volume per total facade area (vpf). For the horizontal facade
     843!--    area num_facades_per_building_h can be taken, multiplied with dx*dy.
     844!--    However, due to grid stretching, vertical facade elements must be
     845!--    summed-up vertically. Please note, if dx /= dy, an error is made!
     846       IF ( buildings(nb)%on_pe )  THEN
     847         
     848          buildings(nb)%vpf = buildings(nb)%vol_tot /                          &
     849               ( buildings(nb)%num_facades_per_building_h * dx * dy +          &
     850                 SUM( buildings(nb)%num_facade_v(buildings(nb)%kb_min:         &
     851                                                 buildings(nb)%kb_max)         &
     852                    * dzw(buildings(nb)%kb_min:buildings(nb)%kb_max) ) * dx )
    823853       ENDIF
    824854    ENDDO
     
    863893!-- In a second step initialize with building tpyes from static input file,
    864894!-- where building types can be individual for each building.
    865     buildings(:)%lambda_layer3    = building_pars(63,building_type)
    866     buildings(:)%s_layer3         = building_pars(57,building_type)
    867     buildings(:)%f_c_win          = building_pars(119,building_type)
    868     buildings(:)%g_value_win      = building_pars(120,building_type)   
    869     buildings(:)%u_value_win      = building_pars(121,building_type)   
    870     buildings(:)%air_change_low   = building_pars(122,building_type)   
    871     buildings(:)%air_change_high  = building_pars(123,building_type)   
    872     buildings(:)%eta_ve           = building_pars(124,building_type)   
    873     buildings(:)%factor_a         = building_pars(125,building_type)   
    874     buildings(:)%factor_c         = building_pars(126,building_type)
    875     buildings(:)%lambda_at        = building_pars(127,building_type)   
    876     buildings(:)%theta_int_h_set  = building_pars(118,building_type)   
    877     buildings(:)%theta_int_c_set  = building_pars(117,building_type)
    878     buildings(:)%phi_h_max        = building_pars(128,building_type)   
    879     buildings(:)%phi_c_max        = building_pars(129,building_type)         
    880     buildings(:)%qint_high        = building_pars(130,building_type)
    881     buildings(:)%qint_low         = building_pars(131,building_type)
    882     buildings(:)%height_storey    = building_pars(132,building_type)
    883     buildings(:)%height_cei_con   = building_pars(133,building_type)
     895    buildings(:)%lambda_layer3       = building_pars(63,building_type)
     896    buildings(:)%s_layer3            = building_pars(57,building_type)
     897    buildings(:)%f_c_win             = building_pars(119,building_type)
     898    buildings(:)%g_value_win         = building_pars(120,building_type)   
     899    buildings(:)%u_value_win         = building_pars(121,building_type)   
     900    buildings(:)%air_change_low      = building_pars(122,building_type)   
     901    buildings(:)%air_change_high     = building_pars(123,building_type)   
     902    buildings(:)%eta_ve              = building_pars(124,building_type)   
     903    buildings(:)%factor_a            = building_pars(125,building_type)   
     904    buildings(:)%factor_c            = building_pars(126,building_type)
     905    buildings(:)%lambda_at           = building_pars(127,building_type)   
     906    buildings(:)%theta_int_h_set     = building_pars(118,building_type)   
     907    buildings(:)%theta_int_c_set     = building_pars(117,building_type)
     908    buildings(:)%q_h_max             = building_pars(128,building_type)   
     909    buildings(:)%q_c_max             = building_pars(129,building_type)         
     910    buildings(:)%qint_high           = building_pars(130,building_type)
     911    buildings(:)%qint_low            = building_pars(131,building_type)
     912    buildings(:)%height_storey       = building_pars(132,building_type)
     913    buildings(:)%height_cei_con      = building_pars(133,building_type)
     914    buildings(:)%params_waste_heat_h = building_pars(134,building_type)
     915    buildings(:)%params_waste_heat_c = building_pars(135,building_type)
    884916!
    885917!-- Initialize ventilaation load. Please note, building types > 7 are actually
     
    909941          DO  j = nys, nyn
    910942              IF ( building_id_f%var(j,i) /= building_id_f%fill )  THEN
    911                  nb = MINLOC( ABS( buildings(:)%id - building_id_f%var(j,i) ),    &
     943                 nb = MINLOC( ABS( buildings(:)%id - building_id_f%var(j,i) ), &
    912944                              DIM = 1 )
    913945                 bt = building_type_f%var(j,i)
    914946                 
    915                  buildings(nb)%lambda_layer3    = building_pars(63,bt)
    916                  buildings(nb)%s_layer3         = building_pars(57,bt)
    917                  buildings(nb)%f_c_win          = building_pars(119,bt)
    918                  buildings(nb)%g_value_win      = building_pars(120,bt)   
    919                  buildings(nb)%u_value_win      = building_pars(121,bt)   
    920                  buildings(nb)%air_change_low   = building_pars(122,bt)   
    921                  buildings(nb)%air_change_high  = building_pars(123,bt)   
    922                  buildings(nb)%eta_ve           = building_pars(124,bt)   
    923                  buildings(nb)%factor_a         = building_pars(125,bt)   
    924                  buildings(nb)%factor_c         = building_pars(126,bt)
    925                  buildings(nb)%lambda_at        = building_pars(127,bt)   
    926                  buildings(nb)%theta_int_h_set  = building_pars(118,bt)   
    927                  buildings(nb)%theta_int_c_set  = building_pars(117,bt)
    928                  buildings(nb)%phi_h_max        = building_pars(128,bt)   
    929                  buildings(nb)%phi_c_max        = building_pars(129,bt)         
    930                  buildings(nb)%qint_high        = building_pars(130,bt)
    931                  buildings(nb)%qint_low         = building_pars(131,bt)
    932                  buildings(nb)%height_storey    = building_pars(132,bt)
    933                  buildings(nb)%height_cei_con   = building_pars(133,bt)                 
     947                 buildings(nb)%lambda_layer3       = building_pars(63,bt)
     948                 buildings(nb)%s_layer3            = building_pars(57,bt)
     949                 buildings(nb)%f_c_win             = building_pars(119,bt)
     950                 buildings(nb)%g_value_win         = building_pars(120,bt)   
     951                 buildings(nb)%u_value_win         = building_pars(121,bt)   
     952                 buildings(nb)%air_change_low      = building_pars(122,bt)   
     953                 buildings(nb)%air_change_high     = building_pars(123,bt)   
     954                 buildings(nb)%eta_ve              = building_pars(124,bt)   
     955                 buildings(nb)%factor_a            = building_pars(125,bt)   
     956                 buildings(nb)%factor_c            = building_pars(126,bt)
     957                 buildings(nb)%lambda_at           = building_pars(127,bt)   
     958                 buildings(nb)%theta_int_h_set     = building_pars(118,bt)   
     959                 buildings(nb)%theta_int_c_set     = building_pars(117,bt)
     960                 buildings(nb)%q_h_max             = building_pars(128,bt)   
     961                 buildings(nb)%q_c_max             = building_pars(129,bt)         
     962                 buildings(nb)%qint_high           = building_pars(130,bt)
     963                 buildings(nb)%qint_low            = building_pars(131,bt)
     964                 buildings(nb)%height_storey       = building_pars(132,bt)
     965                 buildings(nb)%height_cei_con      = building_pars(133,bt)
     966                 buildings(nb)%params_waste_heat_h = building_pars(134,bt)
     967                 buildings(nb)%params_waste_heat_c = building_pars(135,bt)
    934968!
    935969!--              Initialize ventilaation load. Please note, building types > 7
     
    958992        ENDDO
    959993    ENDIF
     994
     995!
     996!-- Calculation of surface-related heat transfer coeffiecient
     997!-- out of standard u-values from building database
     998!-- only amount of extern and surface is used
     999!-- otherwise amount between air and surface taken account twice
     1000    DO nb = 1, num_build
     1001       IF ( buildings(nb)%on_pe ) THEN   
     1002          du_win_tmp = 1.0_wp / buildings(nb)%u_value_win
     1003          u_tmp = buildings(nb)%u_value_win * ( du_win_tmp / ( du_win_tmp -    &
     1004                  0.125_wp + ( 1.0_wp / h_is ) ) )
     1005                 
     1006          du_tmp = 1.0_wp / u_tmp
     1007         
     1008          buildings(nb)%h_es = ( du_tmp / ( du_tmp - ( 1.0_wp / h_is ) ) ) *   &
     1009                                 u_tmp   
     1010       ENDIF
     1011    ENDDO
    9601012!
    9611013!-- Initial room temperature [K]
     
    9681020    ENDDO
    9691021
    970     IF ( debug_output )  CALL debug_message( 'im_init', 'end' )
     1022    CALL location_message( 'finished', .TRUE. )
    9711023
    9721024 END SUBROUTINE im_init
     
    9831035    USE arrays_3d,                                                             &
    9841036        ONLY:  ddzw, dzw
     1037
     1038!     USE basic_constants_and_equations_mod,                                     &
     1039!         ONLY:  c_p
     1040
     1041!     USE control_parameters,                                                    &
     1042!         ONLY:  rho_surface
    9851043
    9861044    USE date_and_time_mod,                                                     &
     
    10711129!           
    10721130!--          Building geometries --> not time-dependent
    1073              facade_element_area      = dx * dy                             !< [m2] surface area per facade element   
    1074              floor_area_per_facade    = buildings(nb)%vpf(kk) * ddzw(kk)    !< [m2] net floor area per facade element       
    1075              indoor_volume_per_facade = buildings(nb)%vpf(kk)               !< [m3] indoor air volume per facade element           
    1076              window_area_per_facade   = surf_usm_h%frac(ind_wat_win,m)  * facade_element_area  !< [m2] window area per facade element
    1077              
    1078 ! print*, "building_height", building_height
    1079 ! print*, "num_facades_v_l", buildings(nb)%num_facades_per_building_v_l
    1080 ! print*, "num_facades_v", buildings(nb)%num_facades_per_building_v
    1081 ! print*, "kb_min_max", buildings(nb)%kb_min, buildings(nb)%kb_max
    1082 ! print*, "dzw kk", dzw(kk), kk
    1083 
    1084              f_cei                    = buildings(nb)%building_height /        &
    1085                                        (buildings(nb)%height_storey-buildings(nb)%height_cei_con) !< [-] factor for ceiling redcution
    1086              ngs                      = buildings(nb)%vpf(kk)/f_cei                    !< [m2] calculation of netto ground surface
    1087              f_sr                     = ngs/floor_area_per_facade                      !< [-] factor for surface reduction
    1088              eff_mass_area            = buildings(nb)%factor_a * ngs    !< [m2] standard values according to Table 12 section 12.3.1.2  (calculate over Eq. (65) according to section 12.3.1.2)
    1089              c_m                      = buildings(nb)%factor_c * ngs    !< [J/K] standard values according to table 12 section 12.3.1.2 (calculate over Eq. (66) according to section 12.3.1.2)
    1090              total_area               = buildings(nb)%lambda_at * floor_area_per_facade   !< [m2] area of all surfaces pointing to zone  Eq. (9) according to section 7.2.2.2
    1091 
     1131             facade_element_area          = dx * dy                                                   !< [m2] surface area per facade element   
     1132             floor_area_per_facade        = buildings(nb)%vpf(kk) * ddzw(kk)                          !< [m2/m2] floor area per facade area
     1133             indoor_volume_per_facade     = buildings(nb)%vpf(kk)                                     !< [m3/m2] indoor air volume per facade area
     1134             buildings(nb)%area_facade    = facade_element_area *                                   &
     1135                                          ( buildings(nb)%num_facades_per_building_h +              &
     1136                                            buildings(nb)%num_facades_per_building_v )                !< [m2] area of total facade
     1137             window_area_per_facade       = surf_usm_h%frac(ind_wat_win,m)  * facade_element_area     !< [m2] window area per facade element
     1138
     1139             buildings(nb)%net_floor_area = buildings(nb)%vol_tot / ( buildings(nb)%height_storey )
     1140             total_area                   = buildings(nb)%net_floor_area                              !< [m2] area of all surfaces pointing to zone  Eq. (9) according to section 7.2.2.2
     1141             a_m                          = buildings(nb)%factor_a * total_area *                   &
     1142                                          ( facade_element_area / buildings(nb)%area_facade ) *     &
     1143                                            buildings(nb)%lambda_at                                   !< [m2] standard values according to Table 12 section 12.3.1.2  (calculate over Eq. (65) according to section 12.3.1.2)
     1144             c_m                          = buildings(nb)%factor_c * total_area *                   &
     1145                                          ( facade_element_area / buildings(nb)%area_facade )         !< [J/K] standard values according to table 12 section 12.3.1.2 (calculate over Eq. (66) according to section 12.3.1.2)             
     1146!
    10921147!--          Calculation of heat transfer coefficient for transmission --> not time-dependent
    1093              h_tr_w   = window_area_per_facade * buildings(nb)%u_value_win   !< [W/K] only for windows
    1094              h_tr_is  = total_area * h_is                      !< [W/K] with h_is = 3.45 W / (m2 K) between surface and air, Eq. (9)
    1095              h_tr_ms  = eff_mass_area * h_ms                    !< [W/K] with h_ms = 9.10 W / (m2 K) between component and surface, Eq. (64)
    1096              h_tr_op  = 1.0_wp / ( 1.0_wp / ( ( facade_element_area - window_area_per_facade ) &
    1097                                     * buildings(nb)%lambda_layer3 / buildings(nb)%s_layer3 * 0.5_wp ) + 1.0_wp / h_tr_ms )
    1098              h_tr_em  = 1.0_wp / ( 1.0_wp / h_tr_op - 1.0_wp / h_tr_ms )      !< [W/K] Eq. (63), Section 12.2.2
     1148             h_t_es   = window_area_per_facade * buildings(nb)%h_es                                   !< [W/K] only for windows
     1149
     1150             h_t_is  = buildings(nb)%area_facade  * h_is                                                             !< [W/K] with h_is = 3.45 W / (m2 K) between surface and air, Eq. (9)
     1151             h_t_ms  = a_m * h_ms                                                                     !< [W/K] with h_ms = 9.10 W / (m2 K) between component and surface, Eq. (64)
     1152             h_t_wall  = 1.0_wp / ( 1.0_wp / ( ( facade_element_area - window_area_per_facade )     & !< [W/K]
     1153                                    * buildings(nb)%lambda_layer3 / buildings(nb)%s_layer3 * 0.5_wp &
     1154                                             ) + 1.0_wp / h_t_ms )                                    !< [W/K] opaque components
     1155             h_t_wm  = 1.0_wp / ( 1.0_wp / h_t_wall - 1.0_wp / h_t_ms )                               !< [W/K] emmision Eq. (63), Section 12.2.2
    10991156!
    11001157!--          internal air loads dependent on the occupacy of the room
    11011158!--          basical internal heat gains (qint_low) with additional internal heat gains by occupancy (qint_high) (0,5*phi_int)
    1102              phi_ia = 0.5_wp * ( ( buildings(nb)%qint_high * schedule_d + buildings(nb)%qint_low )            &
    1103                               * ngs )         !< [W] Eq. (C.1)
     1159             phi_ia = 0.5_wp * ( ( buildings(nb)%qint_high * schedule_d + buildings(nb)%qint_low )  &
     1160                              * floor_area_per_facade )
     1161             q_int = phi_ia / total_area
    11041162!
    11051163!--          Airflow dependent on the occupacy of the room
     
    11101168!--          not less than 0.01 W/K to provide division by 0 in further calculations
    11111169!--          with heat capacity of air 0.33 Wh/m2K
    1112              h_ve   = MAX( 0.01_wp , ( air_change * indoor_volume_per_facade *      &
     1170             h_v   = MAX( 0.01_wp , ( air_change * indoor_volume_per_facade *      &
    11131171                                    0.33_wp * (1.0_wp - buildings(nb)%eta_ve ) ) )    !< [W/K] from ISO 13789 Eq.(10)
    11141172
    11151173!--          Heat transfer coefficient auxiliary variables
    1116              h_tr_1 = 1.0_wp / ( ( 1.0_wp / h_ve )   + ( 1.0_wp / h_tr_is ) )  !< [W/K] Eq. (C.6)
    1117              h_tr_2 = h_tr_1 + h_tr_w                           !< [W/K] Eq. (C.7)
    1118              h_tr_3 = 1.0_wp / ( ( 1.0_wp / h_tr_2 ) + ( 1.0_wp / h_tr_ms ) )  !< [W/K] Eq. (C.8)
     1174             h_t_1 = 1.0_wp / ( ( 1.0_wp / h_v )   + ( 1.0_wp / h_t_is ) )  !< [W/K] Eq. (C.6)
     1175             h_t_2 = h_t_1 + h_t_es                                         !< [W/K] Eq. (C.7)
     1176             h_t_3 = 1.0_wp / ( ( 1.0_wp / h_t_2 ) + ( 1.0_wp / h_t_ms ) )  !< [W/K] Eq. (C.8)
    11191177!
    11201178!--          Net short-wave radiation through window area (was i_global)
     
    11291187                  surf_usm_h%frac(ind_veg_wall,m) * t_wall_h(nzt_wall,m)       &
    11301188                + surf_usm_h%frac(ind_wat_win,m)  * t_window_h(nzt_wall,m)
     1189!
     1190!--          Solar thermal gains. If net_sw_in larger than sun-protection
     1191!--          threshold parameter (params_solar_protection), sun protection will
     1192!--          be activated
     1193             IF ( net_sw_in <= params_solar_protection )  THEN
     1194                solar_protection_off = 1
     1195                solar_protection_on  = 0
     1196             ELSE
     1197                solar_protection_off = 0
     1198                solar_protection_on  = 1
     1199             ENDIF
     1200!
     1201!--          Calculation of total heat gains from net_sw_in through windows [W] in respect on automatic sun protection
     1202!--          DIN 4108 - 2 chap.8
     1203             phi_sol = (   window_area_per_facade * net_sw_in * solar_protection_off                           &
     1204                         + window_area_per_facade * net_sw_in * buildings(nb)%f_c_win * solar_protection_on )  &
     1205                       * buildings(nb)%g_value_win * ( 1.0_wp - params_f_f ) * params_f_w
     1206             q_sol = phi_sol           
     1207!
     1208!--          Calculation of the mass specific thermal load for internal and external heatsources of the inner node
     1209             phi_m   = (a_m / total_area) * ( phi_ia + phi_sol )                                    !< [W] Eq. (C.2) with phi_ia=0,5*phi_int
     1210             q_c_m = phi_m
     1211!
     1212!--          Calculation mass specific thermal load implied non thermal mass
     1213             phi_st  =   ( 1.0_wp - ( a_m / total_area ) - ( h_t_es / ( 9.1_wp * total_area ) ) ) &
     1214                       * ( phi_ia + phi_sol )                                                       !< [W] Eq. (C.3) with phi_ia=0,5*phi_int
     1215             q_c_st = phi_st           
     1216!
     1217!--          Calculations for deriving indoor temperature and heat flux into the wall
     1218!--          Step 1: Indoor temperature without heating and cooling
     1219!--          section C.4.1 Picture C.2 zone 3)
     1220             phi_hc_nd = 0.0_wp
     1221             
     1222             CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &
     1223                                         near_facade_temperature, phi_hc_nd )
     1224!
     1225!--          If air temperature between border temperatures of heating and cooling, assign output variable, then ready   
     1226             IF ( buildings(nb)%theta_int_h_set <= theta_air  .AND.  theta_air <= buildings(nb)%theta_int_c_set )  THEN
     1227                phi_hc_nd_ac = 0.0_wp
     1228                phi_hc_nd    = phi_hc_nd_ac           
     1229                theta_air_ac = theta_air
     1230!
     1231!--          Step 2: Else, apply 10 W/m2 heating/cooling power and calculate indoor temperature
     1232!--          again.
     1233             ELSE
     1234!
     1235!--             Temperature not correct, calculation method according to section C4.2
     1236                theta_air_0 = theta_air                                                  !< temperature without heating/cooling 
     1237!
     1238!--             Heating or cooling?
     1239                IF ( theta_air_0 > buildings(nb)%theta_int_c_set )  THEN
     1240                   theta_air_set = buildings(nb)%theta_int_c_set
     1241                ELSE
     1242                   theta_air_set = buildings(nb)%theta_int_h_set
     1243                ENDIF
     1244!
     1245!--             Calculate the temperature with phi_hc_nd_10
     1246                phi_hc_nd_10 = 10.0_wp * floor_area_per_facade
     1247                phi_hc_nd    = phi_hc_nd_10
     1248               
     1249                CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &
     1250                                            near_facade_temperature, phi_hc_nd )
     1251                theta_air_10 = theta_air                                                !< temperature with 10 W/m2 of heating
     1252                phi_hc_nd_un = phi_hc_nd_10 * (theta_air_set - theta_air_0)          &
     1253                                            / (theta_air_10  - theta_air_0)             !< Eq. (C.13)
     1254!
     1255!--             Step 3: With temperature ratio to determine the heating or cooling capacity   
     1256!--             If necessary, limit the power to maximum power
     1257!--             section C.4.1 Picture C.2 zone 2) and 4)
     1258                buildings(nb)%phi_c_max = buildings(nb)%q_c_max * floor_area_per_facade             
     1259                buildings(nb)%phi_h_max = buildings(nb)%q_h_max * floor_area_per_facade
     1260                IF ( buildings(nb)%phi_c_max < phi_hc_nd_un  .AND.  phi_hc_nd_un < buildings(nb)%phi_h_max )  THEN
     1261                   phi_hc_nd_ac = phi_hc_nd_un
     1262                   phi_hc_nd = phi_hc_nd_un 
     1263                ELSE
     1264!
     1265!--             Step 4: Inner temperature with maximum heating (phi_hc_nd_un positive) or cooling (phi_hc_nd_un negative)
     1266!--             section C.4.1 Picture C.2 zone 1) and 5)
     1267                   IF ( phi_hc_nd_un > 0.0_wp )  THEN
     1268                      phi_hc_nd_ac = buildings(nb)%phi_h_max                            !< Limit heating
     1269                   ELSE
     1270                      phi_hc_nd_ac = buildings(nb)%phi_c_max                            !< Limit cooling
     1271                   ENDIF
     1272                ENDIF
     1273                phi_hc_nd = phi_hc_nd_ac   
     1274!
     1275!--             Calculate the temperature with phi_hc_nd_ac (new)
     1276                CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &
     1277                                            near_facade_temperature, phi_hc_nd )
     1278                theta_air_ac = theta_air
     1279             ENDIF
     1280!
     1281!--          Update theta_m_t_prev
     1282             theta_m_t_prev = theta_m_t
     1283             
     1284             q_vent = h_v * ( theta_air - near_facade_temperature )
     1285!
     1286!--          Calculate the operating temperature with weighted mean temperature of air and mean solar temperature
     1287!--          Will be used for thermal comfort calculations
     1288             theta_op     = 0.3_wp * theta_air_ac + 0.7_wp * theta_s          !< [degree_C] operative Temperature Eq. (C.12)
     1289!              surf_usm_h%t_indoor(m) = theta_op                               !< not integrated now
     1290!
     1291!--          Heat flux into the wall. Value needed in urban_surface_mod to
     1292!--          calculate heat transfer through wall layers towards the facade
     1293!--          (use c_p * rho_surface to convert [W/m2] into [K m/s])
     1294             q_wall_win = h_t_ms * ( theta_s - theta_m )                       &
     1295                                    / (   facade_element_area                  &
     1296                                        - window_area_per_facade )
     1297             q_trans = q_wall_win * facade_element_area                                       
     1298!
     1299!--          Transfer q_wall_win back to USM (innermost wall/window layer)
     1300             surf_usm_h%iwghf_eb(m)        = q_wall_win
     1301             surf_usm_h%iwghf_eb_window(m) = q_wall_win
     1302!
     1303!--          Sum up operational indoor temperature per kk-level. Further below,
     1304!--          this temperature is reduced by MPI to one temperature per kk-level
     1305!--          and building (processor overlapping)
     1306             buildings(nb)%t_in_l(kk) = buildings(nb)%t_in_l(kk) + theta_op
     1307!
     1308!--          Calculation of waste heat
     1309!--          Anthropogenic heat output
     1310             IF ( phi_hc_nd_ac > 0.0_wp )  THEN
     1311                heating_on = 1
     1312                cooling_on = 0
     1313             ELSE
     1314                heating_on = 0
     1315                cooling_on = -1
     1316             ENDIF
     1317
     1318             q_waste_heat = ( phi_hc_nd * (                                    &
     1319                              buildings(nb)%params_waste_heat_h * heating_on + &
     1320                              buildings(nb)%params_waste_heat_c * cooling_on ) &
     1321                            ) / facade_element_area                                               !< [W/m2] , observe the directional convention in PALM!
     1322             surf_usm_h%waste_heat(m) = q_waste_heat
     1323          ENDDO !< Horizontal surfaces loop
     1324!
     1325!--       Vertical surfaces
     1326          DO  fa = 1, buildings(nb)%num_facades_per_building_v_l
     1327!
     1328!--          Determine indices where corresponding surface-type information
     1329!--          is stored.
     1330             l = buildings(nb)%l_v(fa)
     1331             m = buildings(nb)%m_v(fa)
     1332!
     1333!--          Determine building height level index.
     1334             kk = surf_usm_v(l)%k(m) + surf_usm_v(l)%koff
     1335!
     1336!--          (SOME OF THE FOLLOWING (not time-dependent COULD PROBABLY GO INTO A FUNCTION
     1337!--          EXCEPT facade_element_area, EVERYTHING IS CALCULATED EQUALLY)
     1338!--          Building geometries  --> not time-dependent
     1339             IF ( l == 0  .OR. l == 1 ) facade_element_area = dx * dzw(kk)                            !< [m2] surface area per facade element
     1340             IF ( l == 2  .OR. l == 3 ) facade_element_area = dy * dzw(kk)                            !< [m2] surface area per facade element
     1341             floor_area_per_facade        = buildings(nb)%vpf(kk) * ddzw(kk)                          !< [m2/m2] floor area per facade area
     1342             indoor_volume_per_facade     = buildings(nb)%vpf(kk)                                     !< [m3/m2] indoor air volume per facade area
     1343             buildings(nb)%area_facade    = facade_element_area *                                   &
     1344                                          ( buildings(nb)%num_facades_per_building_h +              &
     1345                                            buildings(nb)%num_facades_per_building_v )                !< [m2] area of total facade
     1346             window_area_per_facade       = surf_usm_v(l)%frac(ind_wat_win,m)  * facade_element_area     !< [m2] window area per facade element
     1347
     1348             buildings(nb)%net_floor_area = buildings(nb)%vol_tot / ( buildings(nb)%height_storey )
     1349             total_area                   = buildings(nb)%net_floor_area                              !< [m2] area of all surfaces pointing to zone  Eq. (9) according to section 7.2.2.2
     1350             a_m                          = buildings(nb)%factor_a * total_area *                   &
     1351                                          ( facade_element_area / buildings(nb)%area_facade ) *     &
     1352                                            buildings(nb)%lambda_at                                   !< [m2] standard values according to Table 12 section 12.3.1.2  (calculate over Eq. (65) according to section 12.3.1.2)
     1353             c_m                          = buildings(nb)%factor_c * total_area *                   &
     1354                                          ( facade_element_area / buildings(nb)%area_facade )         !< [J/K] standard values according to table 12 section 12.3.1.2 (calculate over Eq. (66) according to section 12.3.1.2)
     1355!
     1356!--          Calculation of heat transfer coefficient for transmission --> not time-dependent
     1357             h_t_es   = window_area_per_facade * buildings(nb)%h_es                                   !< [W/K] only for windows
     1358
     1359             h_t_is  = buildings(nb)%area_facade  * h_is                                                             !< [W/K] with h_is = 3.45 W / (m2 K) between surface and air, Eq. (9)
     1360             h_t_ms  = a_m * h_ms                                                                     !< [W/K] with h_ms = 9.10 W / (m2 K) between component and surface, Eq. (64)
     1361             h_t_wall  = 1.0_wp / ( 1.0_wp / ( ( facade_element_area - window_area_per_facade )     & !< [W/K]
     1362                                    * buildings(nb)%lambda_layer3 / buildings(nb)%s_layer3 * 0.5_wp &
     1363                                             ) + 1.0_wp / h_t_ms )                                    !< [W/K] opaque components
     1364             h_t_wm  = 1.0_wp / ( 1.0_wp / h_t_wall - 1.0_wp / h_t_ms )                               !< [W/K] emmision Eq. (63), Section 12.2.2
     1365!
     1366!--          internal air loads dependent on the occupacy of the room
     1367!--          basical internal heat gains (qint_low) with additional internal heat gains by occupancy (qint_high) (0,5*phi_int)
     1368             phi_ia = 0.5_wp * ( ( buildings(nb)%qint_high * schedule_d + buildings(nb)%qint_low )  &
     1369                              * floor_area_per_facade )
     1370             q_int = phi_ia
     1371
     1372!
     1373!--          Airflow dependent on the occupacy of the room
     1374!--          basical airflow (air_change_low) with additional airflow gains by occupancy (air_change_high)
     1375             air_change = ( buildings(nb)%air_change_high * schedule_d + buildings(nb)%air_change_low ) 
     1376!
     1377!--          Heat transfer of ventilation
     1378!--          not less than 0.01 W/K to provide division by 0 in further calculations
     1379!--          with heat capacity of air 0.33 Wh/m2K
     1380             h_v   = MAX( 0.01_wp , ( air_change * indoor_volume_per_facade *                       &
     1381                                    0.33_wp * (1.0_wp - buildings(nb)%eta_ve ) ) )                    !< [W/K] from ISO 13789 Eq.(10)
     1382                                   
     1383!--          Heat transfer coefficient auxiliary variables
     1384             h_t_1 = 1.0_wp / ( ( 1.0_wp / h_v )   + ( 1.0_wp / h_t_is ) )                            !< [W/K] Eq. (C.6)
     1385             h_t_2 = h_t_1 + h_t_es                                                                   !< [W/K] Eq. (C.7)
     1386             h_t_3 = 1.0_wp / ( ( 1.0_wp / h_t_2 ) + ( 1.0_wp / h_t_ms ) )                            !< [W/K] Eq. (C.8)
     1387!
     1388!--          Net short-wave radiation through window area (was i_global)
     1389             net_sw_in = surf_usm_v(l)%rad_sw_in(m) - surf_usm_v(l)%rad_sw_out(m)
     1390!
     1391!--          Quantities needed for im_calc_temperatures
     1392             i = surf_usm_v(l)%i(m)
     1393             j = surf_usm_v(l)%j(m)   
     1394             k = surf_usm_v(l)%k(m)
     1395             near_facade_temperature = surf_usm_v(l)%pt_10cm(m)
     1396             indoor_wall_window_temperature =                                                       &
     1397                  surf_usm_v(l)%frac(ind_veg_wall,m) * t_wall_v(l)%t(nzt_wall,m)                    &
     1398                + surf_usm_v(l)%frac(ind_wat_win,m)  * t_window_v(l)%t(nzt_wall,m)
    11311399!
    11321400!--          Solar thermal gains. If net_sw_in larger than sun-protection
     
    11411409             ENDIF
    11421410!
    1143 !--          Calculation of total heat gains from net_sw_in through windows [W] in respect on automatic sun protection 
     1411!--          Calculation of total heat gains from net_sw_in through windows [W] in respect on automatic sun protection
    11441412!--          DIN 4108 - 2 chap.8
    1145              phi_sol = (   window_area_per_facade * net_sw_in * solar_protection_off               &
     1413             phi_sol = (   window_area_per_facade * net_sw_in * solar_protection_off                             &
    11461414                         + window_area_per_facade * net_sw_in * buildings(nb)%f_c_win * solar_protection_on )    &
    1147                        * buildings(nb)%g_value_win * ( 1.0_wp - params_f_f ) * params_f_w              !< [W]
    1148 !
    1149 !--          Calculation of the mass specific thermal load for internal and external heatsources of the inner node
    1150              phi_m   = (eff_mass_area / total_area) * ( phi_ia + phi_sol )          !< [W] Eq. (C.2) with phi_ia=0,5*phi_int
     1415                       * buildings(nb)%g_value_win * ( 1.0_wp - params_f_f ) * params_f_w
     1416             q_sol = phi_sol
     1417!
     1418!--          Calculation of the mass specific thermal load for internal and external heatsources
     1419             phi_m   = (a_m / total_area) * ( phi_ia + phi_sol )          !< [W] Eq. (C.2) with phi_ia=0,5*phi_int
     1420             q_c_m = phi_m
    11511421!
    11521422!--          Calculation mass specific thermal load implied non thermal mass
    1153              phi_st  =   ( 1.0_wp - ( eff_mass_area / total_area ) - ( h_tr_w / ( 9.1_wp * total_area ) ) ) &
    1154                        * ( phi_ia + phi_sol )                                       !< [W] Eq. (C.3) with phi_ia=0,5*phi_int
     1423             phi_st  =   ( 1.0_wp - ( a_m / total_area ) - ( h_t_es / ( 9.1_wp * total_area ) ) )                &
     1424                       * ( phi_ia + phi_sol )                                                                       !< [W] Eq. (C.3) with phi_ia=0,5*phi_int
     1425             q_c_st = phi_st
    11551426!
    11561427!--          Calculations for deriving indoor temperature and heat flux into the wall
     
    11581429!--          section C.4.1 Picture C.2 zone 3)
    11591430             phi_hc_nd = 0.0_wp
    1160              
    11611431             CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &
    11621432                                         near_facade_temperature, phi_hc_nd )
    11631433!
    1164 !--          If air temperature between border temperatures of heating and cooling, assign output variable, then ready   
     1434!--          If air temperature between border temperatures of heating and cooling, assign output variable, then ready 
    11651435             IF ( buildings(nb)%theta_int_h_set <= theta_air  .AND.  theta_air <= buildings(nb)%theta_int_c_set )  THEN
    11661436                phi_hc_nd_ac = 0.0_wp
     
    11741444!--             Temperature not correct, calculation method according to section C4.2
    11751445                theta_air_0 = theta_air !< Note temperature without heating/cooling
    1176 
     1446!
    11771447!--             Heating or cooling?
    1178                 IF ( theta_air > buildings(nb)%theta_int_c_set )  THEN
     1448                IF ( theta_air_0 > buildings(nb)%theta_int_c_set )  THEN
    11791449                   theta_air_set = buildings(nb)%theta_int_c_set
    11801450                ELSE
     
    11821452                ENDIF
    11831453
    1184 !--             Calculate the temperature with phi_hc_nd_10 
     1454!--             Calculate the temperature with phi_hc_nd_10
    11851455                phi_hc_nd_10 = 10.0_wp * floor_area_per_facade
    11861456                phi_hc_nd    = phi_hc_nd_10
     
    11901460
    11911461                theta_air_10 = theta_air !< Note the temperature with 10 W/m2 of heating
    1192 !
    1193    
    1194                 phi_hc_nd_un = phi_hc_nd_10 * (theta_air_set - theta_air_0)                        &
    1195                                             / (theta_air_10  - theta_air_0)            !< Eq. (C.13)
    1196                                            
     1462
     1463                
     1464                phi_hc_nd_un = phi_hc_nd_10 * ( theta_air_set - theta_air_0 )  &
     1465                                            / ( theta_air_10  - theta_air_0 )            !< Eq. (C.13)
     1466!
    11971467!--             Step 3: With temperature ratio to determine the heating or cooling capacity   
    11981468!--             If necessary, limit the power to maximum power
    11991469!--             section C.4.1 Picture C.2 zone 2) and 4)
     1470                buildings(nb)%phi_c_max = buildings(nb)%q_c_max * floor_area_per_facade
     1471                buildings(nb)%phi_h_max = buildings(nb)%q_h_max * floor_area_per_facade
    12001472                IF ( buildings(nb)%phi_c_max < phi_hc_nd_un  .AND.  phi_hc_nd_un < buildings(nb)%phi_h_max )  THEN
    12011473                   phi_hc_nd_ac = phi_hc_nd_un
    1202                    phi_hc_nd = phi_hc_nd_un   
     1474                   phi_hc_nd = phi_hc_nd_un
    12031475                ELSE
     1476!
    12041477!--             Step 4: Inner temperature with maximum heating (phi_hc_nd_un positive) or cooling (phi_hc_nd_un negative)
    12051478!--             section C.4.1 Picture C.2 zone 1) and 5)
     
    12101483                   ENDIF
    12111484                ENDIF
    1212        
    1213                 phi_hc_nd = phi_hc_nd_ac   
     1485                phi_hc_nd = phi_hc_nd_ac 
    12141486!
    12151487!--             Calculate the temperature with phi_hc_nd_ac (new)
    12161488                CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &
    12171489                                            near_facade_temperature, phi_hc_nd )
    1218 
    12191490                theta_air_ac = theta_air
    1220        
    12211491             ENDIF
    12221492!
    12231493!--          Update theta_m_t_prev
    12241494             theta_m_t_prev = theta_m_t
    1225 !
    1226 !--          Calculate the operating temperature with weighted mean temperature of air and mean solar temperature
     1495             
     1496             q_vent = h_v * ( theta_air - near_facade_temperature )
     1497!
     1498!--          Calculate the operating temperature with weighted mean of temperature of air and mean
    12271499!--          Will be used for thermal comfort calculations
    1228              theta_op     = 0.3_wp * theta_air_ac + 0.7_wp * theta_s          !< [degree_C] operative Temperature Eq. (C.12)
     1500             theta_op     = 0.3_wp * theta_air_ac + 0.7_wp * theta_s
     1501!              surf_usm_v(l)%t_indoor(m) = theta_op                  !< not integrated yet
    12291502!
    12301503!--          Heat flux into the wall. Value needed in urban_surface_mod to
    12311504!--          calculate heat transfer through wall layers towards the facade
    1232 !--          (use c_p * rho_surface to convert [W/m2] into [K m/s])
    1233              q_wall_win = h_tr_ms * ( theta_s - theta_m )                    &
     1505             q_wall_win = h_t_ms * ( theta_s - theta_m )                       &
    12341506                                    / (   facade_element_area                  &
    12351507                                        - window_area_per_facade )
     1508             q_trans = q_wall_win * facade_element_area
    12361509!
    12371510!--          Transfer q_wall_win back to USM (innermost wall/window layer)
    1238              surf_usm_h%iwghf_eb(m)        = q_wall_win
    1239              surf_usm_h%iwghf_eb_window(m) = q_wall_win
     1511             surf_usm_v(l)%iwghf_eb(m)        = q_wall_win
     1512             surf_usm_v(l)%iwghf_eb_window(m) = q_wall_win
    12401513!
    12411514!--          Sum up operational indoor temperature per kk-level. Further below,
     
    12511524             ELSE
    12521525                heating_on = 0
    1253                 cooling_on = 1
     1526                cooling_on = -1
    12541527             ENDIF
    12551528
    1256              q_waste_heat = (phi_hc_nd * (params_waste_heat_h * heating_on + params_waste_heat_c * cooling_on))!< [W/GebÀudemodell] , observe the directional convention in PALM!
    1257              surf_usm_h%waste_heat(m) = q_waste_heat
     1529             q_waste_heat = ( phi_hc_nd * (                                    &
     1530                    buildings(nb)%params_waste_heat_h * heating_on +           &
     1531                    buildings(nb)%params_waste_heat_c * cooling_on )           &
     1532                            ) / facade_element_area !< [W/m2] , observe the directional convention in PALM!
     1533             surf_usm_v(l)%waste_heat(m) = q_waste_heat
    12581534             
    1259           ENDDO !< Horizontal surfaces loop
    1260 !
    1261 !--       Vertical surfaces
    1262           DO  fa = 1, buildings(nb)%num_facades_per_building_v_l
    1263 !
    1264 !--          Determine indices where corresponding surface-type information
    1265 !--          is stored.
    1266              l = buildings(nb)%l_v(fa)
    1267              m = buildings(nb)%m_v(fa)
    1268 !
    1269 !--          Determine building height level index.
    1270              kk = surf_usm_v(l)%k(m) + surf_usm_v(l)%koff
    1271 !
    1272 !--          (SOME OF THE FOLLOWING (not time-dependent COULD PROBABLY GO INTO A FUNCTION
    1273 !--          EXCEPT facade_element_area, EVERYTHING IS CALCULATED EQUALLY)
    1274 !--          Building geometries  --> not time-dependent
    1275              IF ( l == 0  .OR. l == 1 ) facade_element_area = dx * dzw(kk)  !< [m2] surface area per facade element
    1276              IF ( l == 2  .OR. l == 3 ) facade_element_area = dy * dzw(kk)  !< [m2] surface area per facade element
    1277              floor_area_per_facade    = buildings(nb)%vpf(kk) * ddzw(kk)    !< [m2] net floor area per facade element       
    1278              indoor_volume_per_facade = buildings(nb)%vpf(kk)               !< [m3] indoor air volume per facade element           
    1279              window_area_per_facade   = surf_usm_v(l)%frac(ind_wat_win,m)  * facade_element_area  !< [m2] window area per facade element
    1280 
    1281              f_cei                    = buildings(nb)%building_height /        &
    1282                                         (buildings(nb)%height_storey-buildings(nb)%height_cei_con) !< [-] factor for ceiling redcution
    1283              ngs                      = buildings(nb)%vpf(kk)/f_cei                    !< [m2] calculation of netto ground surface
    1284              f_sr                     = ngs/floor_area_per_facade                      !< [-] factor for surface reduction
    1285              eff_mass_area            = buildings(nb)%factor_a * ngs    !< [m2] standard values according to Table 12 section 12.3.1.2  (calculate over Eq. (65) according to section 12.3.1.2)
    1286              c_m                      = buildings(nb)%factor_c * ngs    !< [J/K] standard values according to table 12 section 12.3.1.2 (calculate over Eq. (66) according to section 12.3.1.2)
    1287              total_area               = buildings(nb)%lambda_at * floor_area_per_facade   !< [m2] area of all surfaces pointing to zone  Eq. (9) according to section 7.2.2.2
    1288 !
    1289 !--          Calculation of heat transfer coefficient for transmission --> not time-dependent
    1290              h_tr_w   = window_area_per_facade * buildings(nb)%u_value_win   !< [W/K] only for windows
    1291              h_tr_is  = total_area * h_is                      !< [W/K] with h_is = 3.45 W / (m2 K) between surface and air, Eq. (9)
    1292              h_tr_ms  = eff_mass_area * h_ms                   !< [W/K] with h_ms = 9.10 W / (m2 K) between component and surface, Eq. (64)
    1293              h_tr_op  = 1.0_wp / ( 1.0_wp / ( ( facade_element_area - window_area_per_facade ) &
    1294                                     * buildings(nb)%lambda_layer3 / buildings(nb)%s_layer3 * 0.5_wp ) + 1.0_wp / h_tr_ms )
    1295              h_tr_em  = 1.0_wp / ( 1.0_wp / h_tr_op - 1.0_wp / h_tr_ms )      !< [W/K] Eq. (63), Section 12.2.2
    1296 !
    1297 !--          internal air loads dependent on the occupacy of the room
    1298 !--          basical internal heat gains (qint_low) with additional internal heat gains by occupancy (qint_high) (0,5*phi_int)
    1299              phi_ia = 0.5_wp * ( ( buildings(nb)%qint_high * schedule_d + buildings(nb)%qint_low )            &
    1300                               * ngs )                      !< [W] Eq. (C.1)
    1301 !
    1302 !--          Airflow dependent on the occupacy of the room
    1303 !--          basical airflow (air_change_low) with additional airflow gains by occupancy (air_change_high)
    1304              air_change = ( buildings(nb)%air_change_high * schedule_d + buildings(nb)%air_change_low ) 
    1305 !
    1306 !--          Heat transfer of ventilation
    1307 !--          not less than 0.01 W/K to provide division by 0 in further calculations
    1308 !--          with heat capacity of air 0.33 Wh/m2K
    1309              h_ve   = MAX( 0.01_wp , ( air_change * indoor_volume_per_facade *      &
    1310                                     0.33_wp * (1 - buildings(nb)%eta_ve ) ) )                    !< [W/K] from ISO 13789 Eq.(10)
    1311                                    
    1312 !--          Heat transfer coefficient auxiliary variables
    1313              h_tr_1 = 1.0_wp / ( ( 1.0_wp / h_ve )   + ( 1.0_wp / h_tr_is ) )                  !< [W/K] Eq. (C.6)
    1314              h_tr_2 = h_tr_1 + h_tr_w                                           !< [W/K] Eq. (C.7)
    1315              h_tr_3 = 1.0_wp / ( ( 1.0_wp / h_tr_2 ) + ( 1.0_wp / h_tr_ms ) )                  !< [W/K] Eq. (C.8)
    1316 !
    1317 !--          Net short-wave radiation through window area (was i_global)
    1318              net_sw_in = surf_usm_v(l)%rad_sw_in(m) - surf_usm_v(l)%rad_sw_out(m)
    1319 !
    1320 !--          Quantities needed for im_calc_temperatures
    1321              i = surf_usm_v(l)%i(m)
    1322              j = surf_usm_v(l)%j(m)
    1323              k = surf_usm_v(l)%k(m)
    1324              near_facade_temperature = surf_usm_v(l)%pt_10cm(m)
    1325              indoor_wall_window_temperature =                                    &
    1326                   surf_usm_v(l)%frac(ind_veg_wall,m) * t_wall_v(l)%t(nzt_wall,m) &
    1327                 + surf_usm_v(l)%frac(ind_wat_win,m)  * t_window_v(l)%t(nzt_wall,m)
    1328 !
    1329 !--          Solar thermal gains. If net_sw_in larger than sun-protection
    1330 !--          threshold parameter (params_solar_protection), sun protection will
    1331 !--          be activated
    1332              IF ( net_sw_in <= params_solar_protection )  THEN
    1333                 solar_protection_off = 1
    1334                 solar_protection_on  = 0
    1335              ELSE
    1336                 solar_protection_off = 0
    1337                 solar_protection_on  = 1
    1338              ENDIF
    1339 !
    1340 !--          Calculation of total heat gains from net_sw_in through windows [W] in respect on automatic sun protection
    1341 !--          DIN 4108 - 2 chap.8
    1342              phi_sol = (   window_area_per_facade * net_sw_in * solar_protection_off               &
    1343                          + window_area_per_facade * net_sw_in * buildings(nb)%f_c_win * solar_protection_on )    &
    1344                        * buildings(nb)%g_value_win * ( 1.0_wp - params_f_f ) * params_f_w
    1345 !
    1346 !--          Calculation of the mass specific thermal load for internal and external heatsources
    1347              phi_m   = (eff_mass_area / total_area) * ( phi_ia + phi_sol )          !< [W] Eq. (C.2) with phi_ia=0,5*phi_int
    1348 !
    1349 !--          Calculation mass specific thermal load implied non thermal mass
    1350              phi_st  =   ( 1.0_wp - ( eff_mass_area / total_area ) - ( h_tr_w / ( 9.1_wp * total_area ) ) ) &
    1351                        * ( phi_ia + phi_sol )                                       !< [W] Eq. (C.3) with phi_ia=0,5*phi_int
    1352 !
    1353 !--          Calculations for deriving indoor temperature and heat flux into the wall
    1354 !--          Step 1: Indoor temperature without heating and cooling
    1355 !--          section C.4.1 Picture C.2 zone 3)
    1356              phi_hc_nd = 0.0_wp
    1357              CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &
    1358                                          near_facade_temperature, phi_hc_nd )
    1359 !
    1360 !--          If air temperature between border temperatures of heating and cooling, assign output variable, then ready 
    1361              IF ( buildings(nb)%theta_int_h_set <= theta_air  .AND.  theta_air <= buildings(nb)%theta_int_c_set )  THEN
    1362                 phi_hc_nd_ac = 0.0_wp
    1363                 phi_hc_nd    = phi_hc_nd_ac
    1364                 theta_air_ac = theta_air
    1365 !
    1366 !--          Step 2: Else, apply 10 W/m2 heating/cooling power and calculate indoor temperature
    1367 !--          again.
    1368              ELSE
    1369 !
    1370 !--             Temperature not correct, calculation method according to section C4.2
    1371                 theta_air_0 = theta_air !< Note temperature without heating/cooling
    1372 
    1373 !--             Heating or cooling?
    1374                 IF ( theta_air > buildings(nb)%theta_int_c_set )  THEN
    1375                    theta_air_set = buildings(nb)%theta_int_c_set
    1376                 ELSE
    1377                    theta_air_set = buildings(nb)%theta_int_h_set
    1378                 ENDIF
    1379 
    1380 !--             Calculate the temperature with phi_hc_nd_10
    1381                 phi_hc_nd_10 = 10.0_wp * floor_area_per_facade
    1382                 phi_hc_nd    = phi_hc_nd_10
    1383        
    1384                 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &
    1385                                             near_facade_temperature, phi_hc_nd )
    1386 
    1387                 theta_air_10 = theta_air !< Note the temperature with 10 W/m2 of heating
    1388 
    1389                
    1390                 phi_hc_nd_un = phi_hc_nd_10 * (theta_air_set - theta_air_0)                        &
    1391                                             / (theta_air_10  - theta_air_0)            !< Eq. (C.13)
    1392 !     
    1393 !--             Step 3: With temperature ratio to determine the heating or cooling capacity   
    1394 !--             If necessary, limit the power to maximum power
    1395 !--             section C.4.1 Picture C.2 zone 2) and 4)
    1396                 IF ( buildings(nb)%phi_c_max < phi_hc_nd_un  .AND.  phi_hc_nd_un < buildings(nb)%phi_h_max )  THEN
    1397                    phi_hc_nd_ac = phi_hc_nd_un
    1398                    phi_hc_nd = phi_hc_nd_un
    1399                 ELSE
    1400 !--             Step 4: Inner temperature with maximum heating (phi_hc_nd_un positive) or cooling (phi_hc_nd_un negative)
    1401 !--             section C.4.1 Picture C.2 zone 1) and 5)
    1402                    IF ( phi_hc_nd_un > 0.0_wp )  THEN
    1403                       phi_hc_nd_ac = buildings(nb)%phi_h_max                                         !< Limit heating
    1404                    ELSE
    1405                       phi_hc_nd_ac = buildings(nb)%phi_c_max                                         !< Limit cooling
    1406                    ENDIF
    1407                 ENDIF
    1408        
    1409                 phi_hc_nd = phi_hc_nd_ac   
    1410 !
    1411 !--             Calculate the temperature with phi_hc_nd_ac (new)
    1412                 CALL im_calc_temperatures ( i, j, k, indoor_wall_window_temperature, &
    1413                                             near_facade_temperature, phi_hc_nd )
    1414 
    1415                 theta_air_ac = theta_air
    1416        
    1417              ENDIF
    1418 !
    1419 !--          Update theta_m_t_prev
    1420              theta_m_t_prev = theta_m_t
    1421 !
    1422 !--          Calculate the operating temperature with weighted mean of temperature of air and mean
    1423 !--          Will be used for thermal comfort calculations
    1424              theta_op     = 0.3_wp * theta_air_ac + 0.7_wp * theta_s
    1425 !
    1426 !--          Heat flux into the wall. Value needed in urban_surface_mod to
    1427 !--          calculate heat transfer through wall layers towards the facade
    1428              q_wall_win = h_tr_ms * ( theta_s - theta_m )                    &
    1429                                     / (   facade_element_area                  &
    1430                                         - window_area_per_facade )
    1431 !
    1432 !--          Transfer q_wall_win back to USM (innermost wall/window layer)
    1433              surf_usm_v(l)%iwghf_eb(m)        = q_wall_win
    1434              surf_usm_v(l)%iwghf_eb_window(m) = q_wall_win
    1435 !
    1436 !--          Sum up operational indoor temperature per kk-level. Further below,
    1437 !--          this temperature is reduced by MPI to one temperature per kk-level
    1438 !--          and building (processor overlapping)
    1439              buildings(nb)%t_in_l(kk) = buildings(nb)%t_in_l(kk) + theta_op
    1440 
    1441 !
    1442 !--          Calculation of waste heat
    1443 !--          Anthropogenic heat output
    1444              IF ( phi_hc_nd_ac > 0.0_wp )  THEN
    1445                 heating_on = 1
    1446                 cooling_on = 0
    1447              ELSE
    1448                 heating_on = 0
    1449                 cooling_on = 1
    1450              ENDIF
    1451 
    1452              q_waste_heat = (phi_hc_nd * (params_waste_heat_h * heating_on + params_waste_heat_c * cooling_on))!< [W/GebÀudemodell] , observe the directional convention in PALM!
    1453              surf_usm_v(l)%waste_heat(m) = q_waste_heat
    1454 
    14551535          ENDDO !< Vertical surfaces loop
    14561536
     
    14731553          t_in_l_send = buildings(nb)%t_in_l
    14741554       ENDIF
     1555
    14751556
    14761557#if defined( __parallel )
     
    14891570          buildings(nb)%t_in = buildings(nb)%t_in_l
    14901571#endif
    1491        IF ( ALLOCATED( buildings(nb)%t_in ) )                                  &
    1492           buildings(nb)%t_in =   buildings(nb)%t_in /                          &
    1493                                ( buildings(nb)%num_facade_h +                  &
    1494                                  buildings(nb)%num_facade_v )
     1572
     1573       IF ( ALLOCATED( buildings(nb)%t_in ) )  THEN
     1574!
     1575!--       Average indoor temperature. Note, in case a building is completely
     1576!--       surrounded by higher buildings, it may have no facade elements
     1577!--       at some height levels, will will lead to a divide by zero. If this
     1578!--       is the case, indoor temperature will be set to -1.0.
     1579          DO  k = buildings(nb)%kb_min, buildings(nb)%kb_max
     1580             IF ( buildings(nb)%num_facade_h(k) +                              &
     1581                  buildings(nb)%num_facade_v(k) > 0 )  THEN
     1582                buildings(nb)%t_in(k) = buildings(nb)%t_in(k) /                &
     1583                               REAL( buildings(nb)%num_facade_h(k) +           &
     1584                                     buildings(nb)%num_facade_v(k), KIND = wp )
     1585             ELSE
     1586                buildings(nb)%t_in(k) = -1.0_wp
     1587             ENDIF
     1588          ENDDO
     1589       ENDIF
     1590       
     1591
    14951592!
    14961593!--    Deallocate dummy arrays
     
    14991596
    15001597    ENDDO
    1501 
    1502 
     1598   
    15031599 END SUBROUTINE im_main_heatcool
    15041600
     
    15301626           unit = 'W m-2'
    15311627       
    1532         CASE ( 'im_t_indoor' )
     1628        CASE ( 'im_t_indoor_mean' )
     1629           unit = 'K'
     1630           
     1631        CASE ( 'im_t_indoor_roof' )
     1632           unit = 'K'
     1633           
     1634        CASE ( 'im_t_indoor_wall_win' )
    15331635           unit = 'K'
    15341636       
     
    15481650 SUBROUTINE im_check_parameters
    15491651
    1550 !!!!   USE control_parameters,
    1551 !!!!       ONLY: message_string
     1652!   USE control_parameters,
     1653!       ONLY: message_string
    15521654       
    15531655   IMPLICIT NONE
     
    15871689          grid_y = 'y'
    15881690          grid_z = 'zu'
    1589          
    1590        CASE ( 'im_t_indoor' )
     1691
     1692       CASE ( 'im_t_indoor_mean', 'im_t_indoor_roof', 'im_t_indoor_wall_win')
    15911693          grid_x = 'x'
    15921694          grid_y = 'y'
     
    16271729    INTEGER(iwp) ::  nzb_do !< lower limit of the data output (usually 0)
    16281730    INTEGER(iwp) ::  nzt_do !< vertical upper limit of the data output (usually nz_do3d)
    1629 
    16301731   
    16311732    LOGICAL      ::  found !<
     
    16431744!--     Output of indoor temperature. All grid points within the building are
    16441745!--     filled with values, while atmospheric grid points are set to _FillValues.
    1645         CASE ( 'im_t_indoor' )
     1746        CASE ( 'im_t_indoor_mean' )
    16461747           IF ( av == 0 ) THEN
    16471748              DO  i = nxl, nxr
     
    16761777              ENDDO
    16771778           ENDIF
    1678    
     1779
    16791780        CASE ( 'im_hf_roof_waste' )
    16801781           IF ( av == 0 ) THEN
     
    16851786                 local_pf(i,j,k) = surf_usm_h%waste_heat(m)
    16861787              ENDDO
    1687            ENDIF                     
    1688        
     1788           ENDIF
     1789
    16891790       CASE ( 'im_hf_wall_win' )
    16901791           IF ( av == 0 ) THEN
     
    16981799              ENDDO
    16991800           ENDIF
    1700            
     1801
    17011802        CASE ( 'im_hf_wall_win_waste' )
    17021803           IF ( av == 0 ) THEN
     
    17091810                 ENDDO
    17101811              ENDDO
    1711            ENDIF     
    1712    
     1812           ENDIF
     1813
     1814!
     1815!< NOTE im_t_indoor_roof and im_t_indoor_wall_win not work yet
     1816
     1817!         CASE ( 'im_t_indoor_roof' )
     1818!            IF ( av == 0 ) THEN
     1819!               DO  m = 1, surf_usm_h%ns
     1820!                   i = surf_usm_h%i(m) !+ surf_usm_h%ioff
     1821!                   j = surf_usm_h%j(m) !+ surf_usm_h%joff
     1822!                   k = surf_usm_h%k(m) !+ surf_usm_h%koff
     1823!                   local_pf(i,j,k) = surf_usm_h%t_indoor(m)
     1824!               ENDDO
     1825!            ENDIF
     1826!
     1827!         CASE ( 'im_t_indoor_wall_win' )
     1828!            IF ( av == 0 ) THEN           
     1829!               DO l = 0, 3
     1830!                  DO m = 1, surf_usm_v(l)%ns
     1831!                     i = surf_usm_v(l)%i(m) !+ surf_usm_v(l)%ioff
     1832!                     j = surf_usm_v(l)%j(m) !+ surf_usm_v(l)%joff
     1833!                     k = surf_usm_v(l)%k(m) !+ surf_usm_v(l)%koff
     1834!                     local_pf(i,j,k) = surf_usm_v(l)%t_indoor(m)
     1835!                  ENDDO
     1836!               ENDDO
     1837!            ENDIF
     1838
    17131839        CASE DEFAULT
    17141840           found = .FALSE.
  • palm/trunk/SOURCE/radiation_model_mod.f90

    r4134 r4148  
    2828! -----------------
    2929! $Id$
     30! Comments added
     31!
     32! 4134 2019-08-02 18:39:57Z suehring
    3033! Bugfix in formatted write statement
    3134!
     
    35693572
    35703573       IF ( average_radiation ) THEN
    3571 
     3574!
     3575!--       Determine minimum topography top index.
    35723576          k_topo_l = MINVAL( get_topography_top_index( 's' ) )
    35733577#if defined( __parallel )
     
    37053709                             rrtm_lw_tauaer(0:0,k_topo+1:nzt_rad+1,1:nbndlw+1)
    37063710         
    3707 !              CALL rrtmg_lw( 1, nzt_rad      , rrtm_icld    , rrtm_idrv      ,&
    3708 !              rrtm_play       , rrtm_plev    , rrtm_tlay    , rrtm_tlev      ,&
    3709 !              rrtm_tsfc       , rrtm_h2ovmr  , rrtm_o3vmr   , rrtm_co2vmr    ,&
    3710 !              rrtm_ch4vmr     , rrtm_n2ovmr  , rrtm_o2vmr   , rrtm_cfc11vmr  ,&
    3711 !              rrtm_cfc12vmr   , rrtm_cfc22vmr, rrtm_ccl4vmr , rrtm_emis      ,&
    3712 !              rrtm_inflglw    , rrtm_iceflglw, rrtm_liqflglw, rrtm_cldfr     ,&
    3713 !              rrtm_lw_taucld  , rrtm_cicewp  , rrtm_cliqwp  , rrtm_reice     ,&
    3714 !              rrtm_reliq      , rrtm_lw_tauaer,                               &
    3715 !              rrtm_lwuflx     , rrtm_lwdflx  , rrtm_lwhr  ,                   &
    3716 !              rrtm_lwuflxc    , rrtm_lwdflxc , rrtm_lwhrc ,                   &
    3717 !              rrtm_lwuflx_dt  ,  rrtm_lwuflxc_dt )
    3718 
    37193711             CALL rrtmg_lw( 1,                                                 &                                       
    37203712                            nzt_rad-k_topo,                                    &
     
    38093801             rrtm_sw_asmaer_dum = rrtm_sw_asmaer(0:0,k_topo+1:nzt_rad+1,1:nbndsw+1)
    38103802             rrtm_sw_ecaer_dum  = rrtm_sw_ecaer(0:0,k_topo+1:nzt_rad+1,1:naerec+1)
    3811 !              CALL rrtmg_sw( 1, nzt_rad      , rrtm_icld     , rrtm_iaer      ,&
    3812 !              rrtm_play      , rrtm_plev     , rrtm_tlay     , rrtm_tlev      ,&
    3813 !              rrtm_tsfc      , rrtm_h2ovmr   , rrtm_o3vmr    , rrtm_co2vmr    ,&
    3814 !              rrtm_ch4vmr    , rrtm_n2ovmr   , rrtm_o2vmr    , rrtm_asdir     ,&
    3815 !              rrtm_asdif     , rrtm_aldir    , rrtm_aldif    , zenith         ,&
    3816 !              0.0_wp         , day_of_year   , solar_constant, rrtm_inflgsw   ,&
    3817 !              rrtm_iceflgsw  , rrtm_liqflgsw , rrtm_cldfr    , rrtm_sw_taucld ,&
    3818 !              rrtm_sw_ssacld , rrtm_sw_asmcld, rrtm_sw_fsfcld, rrtm_cicewp    ,&
    3819 !              rrtm_cliqwp    , rrtm_reice    , rrtm_reliq    , rrtm_sw_tauaer ,&
    3820 !              rrtm_sw_ssaaer , rrtm_sw_asmaer, rrtm_sw_ecaer , rrtm_swuflx    ,&
    3821 !              rrtm_swdflx    , rrtm_swhr     , rrtm_swuflxc  , rrtm_swdflxc   ,&
    3822 !              rrtm_swhrc     , rrtm_dirdflux , rrtm_difdflux )
     3803
    38233804             CALL rrtmg_sw( 1,                                                 &
    38243805                            nzt_rad-k_topo,                                    &
     
    38793860 
    38803861!
    3881 !--          Save fluxes:
    3882 !--          - whole domain
     3862!--          Save radiation fluxes for the entire depth of the model domain
    38833863             DO k = nzb, nzt+1
    38843864                rad_sw_in(k,:,:)  = rrtm_swdflx(0,k)
    38853865                rad_sw_out(k,:,:) = rrtm_swuflx(0,k)
    38863866             ENDDO
    3887 !--          - direct and diffuse SW at urban-surface-layer (required by RTM)
     3867!--          Save direct and diffuse SW radiation at the surface (required by RTM)
    38883868             rad_sw_in_dir(:,:) = rrtm_dirdflux(0,k_topo)
    38893869             rad_sw_in_diff(:,:) = rrtm_difdflux(0,k_topo)
  • palm/trunk/SOURCE/synthetic_turbulence_generator_mod.f90

    r4144 r4148  
    2525! -----------------
    2626! $Id$
     27! Remove unused variable
     28!
     29! 4144 2019-08-06 09:11:47Z raasch
    2730! relational operators .EQ., .NE., etc. replaced by ==, /=, etc.
    2831!
     
    22692272       
    22702273    USE surface_mod,                                                           &
    2271         ONLY:  get_topography_top_index_ji, surf_def_h, surf_lsm_h, surf_usm_h
     2274        ONLY:  surf_def_h, surf_lsm_h, surf_usm_h
    22722275
    22732276    IMPLICIT NONE
  • palm/trunk/SOURCE/urban_surface_mod.f90

    r4127 r4148  
    2828! -----------------
    2929! $Id$
     30! - Add anthropogenic heat output factors for heating and cooling to building
     31!   data base
     32! - Move definition of building_pars to usm_init_arrays since it is already
     33!   required in the indoor model
     34!
     35! 4127 2019-07-30 14:47:10Z suehring
    3036! Do not add anthopogenic energy during wall/soil spin-up
    3137! (merge from branch resler)
     
    781787!-- (>700), while intel and gfortran compiler have hard limit of continuation
    782788!-- lines of 511.
    783     REAL(wp), DIMENSION(0:133,1:7) ::  building_pars
     789    REAL(wp), DIMENSION(0:135,1:7) ::  building_pars
    784790!
    785791!-- Type for surface temperatures at vertical walls. Is not necessary for horizontal walls.
     
    14301436           IF ( ALLOCATED( surf_usm_v(l)%iwghf_eb_window ) )  surf_usm_v(l)%iwghf_eb_window = 0.0_wp
    14311437        ENDDO
    1432 
     1438!
     1439!--     Initialize building-surface properties, which are also required by other modules,
     1440!--     e.g. the indoor model.
     1441        CALL usm_define_pars
     1442       
    14331443        IF ( debug_output )  CALL debug_message( 'usm_init_arrays', 'end' )
    14341444       
     
    37783788
    37793789        CALL cpu_log( log_point_s(78), 'usm_init', 'start' )
    3780 !
    3781 !--     Initialize building-surface properties
    3782         CALL usm_define_pars
    37833790!
    37843791!--     surface forcing have to be disabled for LSF
     
    90689075           10.0_wp,        &  !< parameter 131 - basic internal heat gains without occupancy of the room
    90699076           3.0_wp,         &  !< parameter 132 - storey height
    9070            0.2_wp          &  !< parameter 133 - ceiling construction height
     9077           0.2_wp,         &  !< parameter 133 - ceiling construction height
     9078           0.1_wp,         &  !< parameter 134 - anthropogenic heat output for heating
     9079           1.333_wp        &  !< parameter 135 - anthropogenic heat output for cooling
    90719080                            /)
    90729081                           
     
    92059214           8.0_wp,         &  !< parameter 131 - basic internal heat gains without occupancy of the room
    92069215           3.0_wp,         &  !< parameter 132 - storey height
    9207            0.2_wp          &  !< parameter 133 - ceiling construction height
     9216           0.2_wp,         &  !< parameter 133 - ceiling construction height
     9217           0.1_wp,         &  !< parameter 134 - anthropogenic heat output for heating
     9218           1.333_wp        &  !< parameter 135 - anthropogenic heat output for cooling
    92089219                            /)
    92099220                           
     
    93429353           8.0_wp,         &  !< parameter 131 - basic internal heat gains without occupancy of the room
    93439354           3.0_wp,         &  !< parameter 132 - storey height
    9344            0.2_wp          &  !< parameter 133 - ceiling construction height
     9355           0.2_wp,         &  !< parameter 133 - ceiling construction height
     9356           0.1_wp,         &  !< parameter 134 - anthropogenic heat output for heating
     9357           1.333_wp        &  !< parameter 135 - anthropogenic heat output for cooling
    93459358                            /)   
    93469359                           
     
    94799492           10.0_wp,        &  !< parameter 131 - basic internal heat gains without occupancy of the room
    94809493           3.0_wp,         &  !< parameter 132 - storey height
    9481            0.2_wp          &  !< parameter 133 - ceiling construction height
     9494           0.2_wp,         &  !< parameter 133 - ceiling construction height
     9495           0.1_wp,         &  !< parameter 134 - anthropogenic heat output for heating
     9496           1.333_wp        &  !< parameter 135 - anthropogenic heat output for cooling
    94829497                            /)   
    94839498                           
     
    96169631           20.0_wp,        &  !< parameter 131 - basic internal heat gains without occupancy of the room
    96179632           3.0_wp,         &  !< parameter 132 - storey height
    9618            0.2_wp          &  !< parameter 133 - ceiling construction height
     9633           0.2_wp,         &  !< parameter 133 - ceiling construction height
     9634           0.0_wp,         &  !< parameter 134 - anthropogenic heat output for heating
     9635           2.54_wp         &  !< parameter 135 - anthropogenic heat output for cooling
    96199636                            /)
    96209637                           
     
    97539770           15.0_wp,        &  !< parameter 131 - basic internal heat gains without occupancy of the room
    97549771           3.0_wp,         &  !< parameter 132 - storey height
    9755            0.2_wp          &  !< parameter 133 - ceiling construction height
     9772           0.2_wp,         &  !< parameter 133 - ceiling construction height
     9773           -2.0_wp,        &  !< parameter 134 - anthropogenic heat output for heating
     9774           1.25_wp         &  !< parameter 135 - anthropogenic heat output for cooling
    97569775                            /)
    97579776                           
     
    98909909           0.0_wp,         &  !< parameter 131 - basic internal heat gains without occupancy of the room
    98919910           3.0_wp,         &  !< parameter 132 - storey height
    9892            0.2_wp          &  !< parameter 133 - ceiling construction height
     9911           0.2_wp,         &  !< parameter 133 - ceiling construction height
     9912           0.0_wp,         &  !< parameter 134 - anthropogenic heat output for heating
     9913           0.0_wp          &  !< parameter 135 - anthropogenic heat output for cooling
    98939914                        /)
    98949915                       
Note: See TracChangeset for help on using the changeset viewer.