source: palm/trunk/SOURCE/urban_surface_mod.f90 @ 3881

Last change on this file since 3881 was 3881, checked in by suehring, 2 years ago

Make level 3 initialization of urban-surfaces consistent to input data standard; revise flagging of ground-floor level surfaces at buidlings; bugfixes in level 3 initialization of albedo; bugfix in OpenMP directive; check for zero output timestep in surface output; assure that Obukhov lenght does not become zero

  • Property svn:keywords set to Id
File size: 547.1 KB
Line 
1!> @file urban_surface_mod.f90
2!------------------------------------------------------------------------------!
3! This file is part of the PALM model system.
4!
5! PALM is free software: you can redistribute it and/or modify it under the
6! terms of the GNU General Public License as published by the Free Software
7! Foundation, either version 3 of the License, or (at your option) any later
8! version.
9!
10! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
11! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13!
14! You should have received a copy of the GNU General Public License along with
15! PALM. If not, see <http://www.gnu.org/licenses/>.
16!
17! Copyright 2015-2019 Czech Technical University in Prague
18! Copyright 2015-2019 Institute of Computer Science of the
19!                     Czech Academy of Sciences, Prague
20! Copyright 1997-2019 Leibniz Universitaet Hannover
21!------------------------------------------------------------------------------!
22!
23! Current revisions:
24! ------------------
25!
26!
27! Former revisions:
28! -----------------
29! $Id: urban_surface_mod.f90 3881 2019-04-10 09:31:22Z suehring $
30! Revise determination of local ground-floor level height.
31! Make level 3 initalization conform with Palm-input-data standard
32! Move output of albedo and emissivity to radiation module
33!
34! 3832 2019-03-28 13:16:58Z raasch
35! instrumented with openmp directives
36!
37! 3824 2019-03-27 15:56:16Z pavelkrc
38! Remove unused imports
39!
40!
41! 3814 2019-03-26 08:40:31Z pavelkrc
42! unused subroutine commented out
43!
44! 3769 2019-02-28 10:16:49Z moh.hefny
45! removed unused variables
46!
47! 3767 2019-02-27 08:18:02Z raasch
48! unused variables removed from rrd-subroutines parameter list
49!
50! 3748 2019-02-18 10:38:31Z suehring
51! Revise conversion of waste-heat flux (do not divide by air density, will
52! be done in diffusion_s)
53!
54! 3745 2019-02-15 18:57:56Z suehring
55! - Remove internal flag indoor_model (is a global control parameter)
56! - add waste heat from buildings to the kinmatic heat flux
57! - consider waste heat in restart data
58! - remove unused USE statements
59!
60! 3744 2019-02-15 18:38:58Z suehring
61! fixed surface heat capacity in the building parameters
62! convert the file back to unix format
63!
64! 3730 2019-02-11 11:26:47Z moh.hefny
65! Formatting and clean-up (rvtils)
66!
67! 3710 2019-01-30 18:11:19Z suehring
68! Check if building type is set within a valid range.
69!
70! 3705 2019-01-29 19:56:39Z suehring
71! make nzb_wall public, required for virtual-measurements
72!
73! 3704 2019-01-29 19:51:41Z suehring
74! Some interface calls moved to module_interface + cleanup
75!
76! 3655 2019-01-07 16:51:22Z knoop
77! Implementation of the PALM module interface
78!
79! 3636 2018-12-19 13:48:34Z raasch
80! nopointer option removed
81!
82! 3614 2018-12-10 07:05:46Z raasch
83! unused variables removed
84!
85! 3607 2018-12-07 11:56:58Z suehring
86! Output of radiation-related quantities migrated to radiation_model_mod.
87!
88! 3597 2018-12-04 08:40:18Z maronga
89! Fixed calculation method of near surface air potential temperature at 10 cm
90! and moved to surface_layer_fluxes. Removed unnecessary _eb strings.
91!
92! 3524 2018-11-14 13:36:44Z raasch
93! bugfix concerning allocation of t_surf_wall_v
94!
95! 3502 2018-11-07 14:45:23Z suehring
96! Disable initialization of building roofs with ground-floor-level properties,
97! since this causes strong oscillations of surface temperature during the
98! spinup.
99!
100! 3469 2018-10-30 20:05:07Z kanani
101! Add missing PUBLIC variables for new indoor model
102!
103! 3449 2018-10-29 19:36:56Z suehring
104! Bugfix: Fix average arrays allocations in usm_3d_data_averaging (J.Resler)
105! Bugfix: Fix reading wall temperatures (J.Resler)
106! Bugfix: Fix treating of outputs for wall temperature and sky view factors (J.Resler)
107!
108!
109! 3435 2018-10-26 18:25:44Z gronemeier
110! Bugfix: allocate gamma_w_green_sat until nzt_wall+1
111!
112! 3418 2018-10-24 16:07:39Z kanani
113! (rvtils, srissman)
114! -Updated building databse, two green roof types (ind_green_type_roof)
115! -Latent heat flux for green walls and roofs, new output of latent heatflux
116!  and soil water content of green roof substrate
117! -t_surf changed to t_surf_wall
118! -Added namelist parameter usm_wall_mod for lower wall tendency
119!  of first two wall layers during spinup
120! -Window calculations deactivated during spinup
121!
122! 3382 2018-10-19 13:10:32Z knoop
123! Bugix: made array declaration Fortran Standard conform
124!
125! 3378 2018-10-19 12:34:59Z kanani
126! merge from radiation branch (r3362) into trunk
127! (moh.hefny):
128! - check the requested output variables if they are correct
129! - added unscheduled_radiation_calls switch to control force_radiation_call
130! - minor formate changes
131!
132! 3371 2018-10-18 13:40:12Z knoop
133! Set flag indicating that albedo at urban surfaces is already initialized
134!
135! 3347 2018-10-15 14:21:08Z suehring
136! Enable USM initialization with default building parameters in case no static
137! input file exist.
138!
139! 3343 2018-10-15 10:38:52Z suehring
140! Add output variables usm_rad_pc_inlw, usm_rad_pc_insw*
141!
142! 3274 2018-09-24 15:42:55Z knoop
143! Modularization of all bulk cloud physics code components
144!
145! 3248 2018-09-14 09:42:06Z sward
146! Minor formating changes
147!
148! 3246 2018-09-13 15:14:50Z sward
149! Added error handling for input namelist via parin_fail_message
150!
151! 3241 2018-09-12 15:02:00Z raasch
152! unused variables removed
153!
154! 3223 2018-08-30 13:48:17Z suehring
155! Bugfix for commit 3222
156!
157! 3222 2018-08-30 13:35:35Z suehring
158! Introduction of surface array for type and its name
159!
160! 3203 2018-08-23 10:48:36Z suehring
161! Revise bulk parameter for emissivity at ground-floor level
162!
163! 3196 2018-08-13 12:26:14Z maronga
164! Added maximum aerodynamic resistance of 300 for horiztonal surfaces.
165!
166! 3176 2018-07-26 17:12:48Z suehring
167! Bugfix, update virtual potential surface temparture, else heat fluxes on
168! roofs might become unphysical
169!
170! 3152 2018-07-19 13:26:52Z suehring
171! Initialize q_surface, which might be used in surface_layer_fluxes
172!
173! 3151 2018-07-19 08:45:38Z raasch
174! remaining preprocessor define strings __check removed
175!
176! 3136 2018-07-16 14:48:21Z suehring
177! Limit also roughness length for heat and moisture where necessary
178!
179! 3123 2018-07-12 16:21:53Z suehring
180! Correct working precision for INTEGER number
181!
182! 3115 2018-07-10 12:49:26Z suehring
183! Additional building type to represent bridges
184!
185! 3091 2018-06-28 16:20:35Z suehring
186! - Limit aerodynamic resistance at vertical walls.
187! - Add check for local roughness length not exceeding surface-layer height and
188!   limit roughness length where necessary.
189!
190! 3065 2018-06-12 07:03:02Z Giersch
191! Unused array dxdir was removed, dz was replaced by dzu to consider vertical
192! grid stretching
193!
194! 3049 2018-05-29 13:52:36Z Giersch
195! Error messages revised
196!
197! 3045 2018-05-28 07:55:41Z Giersch
198! Error message added
199!
200! 3029 2018-05-23 12:19:17Z raasch
201! bugfix: close unit 151 instead of 90
202!
203! 3014 2018-05-09 08:42:38Z maronga
204! Added pc_transpiration_rate
205!
206! 2977 2018-04-17 10:27:57Z kanani
207! Implement changes from branch radiation (r2948-2971) with minor modifications.
208! (moh.hefny):
209! Extended exn for all model domain height to avoid the need to get nzut.
210!
211! 2963 2018-04-12 14:47:44Z suehring
212! Introduce index for vegetation/wall, pavement/green-wall and water/window
213! surfaces, for clearer access of surface fraction, albedo, emissivity, etc. .
214!
215! 2943 2018-04-03 16:17:10Z suehring
216! Calculate exner function at all height levels and remove some un-used
217! variables.
218!
219! 2932 2018-03-26 09:39:22Z maronga
220! renamed urban_surface_par to urban_surface_parameters
221!
222! 2921 2018-03-22 15:05:23Z Giersch
223! The activation of spinup has been moved to parin
224!
225! 2920 2018-03-22 11:22:01Z kanani
226! Remove unused pcbl, npcbl from ONLY list
227! moh.hefny:
228! Fixed bugs introduced by new structures and by moving radiation interaction
229! into radiation_model_mod.f90.
230! Bugfix: usm data output 3D didn't respect directions
231!
232! 2906 2018-03-19 08:56:40Z Giersch
233! Local variable ids has to be initialized with a value of -1 in
234! usm_3d_data_averaging
235!
236! 2894 2018-03-15 09:17:58Z Giersch
237! Calculations of the index range of the subdomain on file which overlaps with
238! the current subdomain are already done in read_restart_data_mod,
239! usm_read/write_restart_data have been renamed to usm_r/wrd_local, variable
240! named found has been introduced for checking if restart data was found,
241! reading of restart strings has been moved completely to
242! read_restart_data_mod, usm_rrd_local is already inside the overlap loop
243! programmed in read_restart_data_mod, SAVE attribute added where necessary,
244! deallocation and allocation of some arrays have been changed to take care of
245! different restart files that can be opened (index i), the marker *** end usm
246! *** is not necessary anymore, strings and their respective lengths are
247! written out and read now in case of restart runs to get rid of prescribed
248! character lengths
249!
250! 2805 2018-02-14 17:00:09Z suehring
251! Initialization of resistances.
252!
253! 2797 2018-02-08 13:24:35Z suehring
254! Comment concerning output of ground-heat flux added.
255!
256! 2766 2018-01-22 17:17:47Z kanani
257! Removed redundant commas, added some blanks
258!
259! 2765 2018-01-22 11:34:58Z maronga
260! Major bugfix in calculation of f_shf. Adjustment of roughness lengths in
261! building_pars
262!
263! 2750 2018-01-15 16:26:51Z knoop
264! Move flag plant canopy to modules
265!
266! 2737 2018-01-11 14:58:11Z kanani
267! Removed unused variables t_surf_whole...
268!
269! 2735 2018-01-11 12:01:27Z suehring
270! resistances are saved in surface attributes
271!
272! 2723 2018-01-05 09:27:03Z maronga
273! Bugfix for spinups (end_time was increased twice in case of LSM + USM runs)
274!
275! 2720 2018-01-02 16:27:15Z kanani
276! Correction of comment
277!
278! 2718 2018-01-02 08:49:38Z maronga
279! Corrected "Former revisions" section
280!
281! 2705 2017-12-18 11:26:23Z maronga
282! Changes from last commit documented
283!
284! 2703 2017-12-15 20:12:38Z maronga
285! Workaround for calculation of r_a
286!
287! 2696 2017-12-14 17:12:51Z kanani
288! - Change in file header (GPL part)
289! - Bugfix in calculation of pt_surface and related fluxes. (BM)
290! - Do not write surface temperatures onto pt array as this might cause
291!   problems with nesting. (MS)
292! - Revised calculation of pt1 (now done in surface_layer_fluxes).
293!   Bugfix, f_shf_window and f_shf_green were not set at vertical surface
294!   elements. (MS)
295! - merged with branch ebsolver
296!   green building surfaces do not evaporate yet
297!   properties of green wall layers and window layers are taken from wall layers
298!   this input data is missing. (RvT)
299! - Merged with branch radiation (developed by Mohamed Salim)
300! - Revised initialization. (MS)
301! - Rename emiss_surf into emissivity, roughness_wall into z0, albedo_surf into
302!   albedo. (MS)
303! - Move first call of usm_radiatin from usm_init to init_3d_model
304! - fixed problem with near surface temperature
305! - added near surface temperature pt_10cm_h(m), pt_10cm_v(l)%t(m)
306! - does not work with temp profile including stability, ol
307!   pt_10cm = pt1 now
308! - merged with 2357 bugfix, error message for nopointer version
309! - added indoor model coupling with wall heat flux
310! - added green substrate/ dry vegetation layer for buildings
311! - merged with 2232 new surface-type structure
312! - added transmissivity of window tiles
313! - added MOSAIK tile approach for 3 different surfaces (RvT)
314!
315! 2583 2017-10-26 13:58:38Z knoop
316! Bugfix: reverted MPI_Win_allocate_cptr introduction in last commit
317!
318! 2582 2017-10-26 13:19:46Z hellstea
319! Workaround for gnufortran compiler added in usm_calc_svf. CALL MPI_Win_allocate is
320! replaced by CALL MPI_Win_allocate_cptr if defined ( __gnufortran ).
321!
322! 2544 2017-10-13 18:09:32Z maronga
323! Date and time quantities are now read from date_and_time_mod. Solar constant is
324! read from radiation_model_mod
325!
326! 2516 2017-10-04 11:03:04Z suehring
327! Remove tabs
328!
329! 2514 2017-10-04 09:52:37Z suehring
330! upper bounds of 3d output changed from nx+1,ny+1 to nx,ny
331! no output of ghost layer data
332!
333! 2350 2017-08-15 11:48:26Z kanani
334! Bugfix and error message for nopointer version.
335! Additional "! defined(__nopointer)" as workaround to enable compilation of
336! nopointer version.
337!
338! 2318 2017-07-20 17:27:44Z suehring
339! Get topography top index via Function call
340!
341! 2317 2017-07-20 17:27:19Z suehring
342! Bugfix: adjust output of shf. Added support for spinups
343!
344! 2287 2017-06-15 16:46:30Z suehring
345! Bugfix in determination topography-top index
346!
347! 2269 2017-06-09 11:57:32Z suehring
348! Enable restart runs with different number of PEs
349! Bugfixes nopointer branch
350!
351! 2258 2017-06-08 07:55:13Z suehring
352! Bugfix, add pre-preprocessor directives to enable non-parrallel mode
353!
354! 2233 2017-05-30 18:08:54Z suehring
355!
356! 2232 2017-05-30 17:47:52Z suehring
357! Adjustments according to new surface-type structure. Remove usm_wall_heat_flux;
358! insteat, heat fluxes are directly applied in diffusion_s.
359!
360! 2213 2017-04-24 15:10:35Z kanani
361! Removal of output quantities usm_lad and usm_canopy_hr
362!
363! 2209 2017-04-19 09:34:46Z kanani
364! cpp switch __mpi3 removed,
365! minor formatting,
366! small bugfix for division by zero (Krc)
367!
368! 2113 2017-01-12 13:40:46Z kanani
369! cpp switch __mpi3 added for MPI-3 standard code (Ketelsen)
370!
371! 2071 2016-11-17 11:22:14Z maronga
372! Small bugfix (Resler)
373!
374! 2031 2016-10-21 15:11:58Z knoop
375! renamed variable rho to rho_ocean
376!
377! 2024 2016-10-12 16:42:37Z kanani
378! Bugfixes in deallocation of array plantt and reading of csf/csfsurf,
379! optimization of MPI-RMA operations,
380! declaration of pcbl as integer,
381! renamed usm_radnet -> usm_rad_net, usm_canopy_khf -> usm_canopy_hr,
382! splitted arrays svf -> svf & csf, svfsurf -> svfsurf & csfsurf,
383! use of new control parameter varnamelength,
384! added output variables usm_rad_ressw, usm_rad_reslw,
385! minor formatting changes,
386! minor optimizations.
387!
388! 2011 2016-09-19 17:29:57Z kanani
389! Major reformatting according to PALM coding standard (comments, blanks,
390! alphabetical ordering, etc.),
391! removed debug_prints,
392! removed auxiliary SUBROUTINE get_usm_info, instead, USM flag urban_surface is
393! defined in MODULE control_parameters (modules.f90) to avoid circular
394! dependencies,
395! renamed canopy_heat_flux to pc_heating_rate, as meaning of quantity changed.
396!
397! 2007 2016-08-24 15:47:17Z kanani
398! Initial revision
399!
400!
401! Description:
402! ------------
403! 2016/6/9 - Initial version of the USM (Urban Surface Model)
404!            authors: Jaroslav Resler, Pavel Krc
405!                     (Czech Technical University in Prague and Institute of
406!                      Computer Science of the Czech Academy of Sciences, Prague)
407!            with contributions: Michal Belda, Nina Benesova, Ondrej Vlcek
408!            partly inspired by PALM LSM (B. Maronga)
409!            parameterizations of Ra checked with TUF3D (E. S. Krayenhoff)
410!> Module for Urban Surface Model (USM)
411!> The module includes:
412!>    1. radiation model with direct/diffuse radiation, shading, reflections
413!>       and integration with plant canopy
414!>    2. wall and wall surface model
415!>    3. surface layer energy balance
416!>    4. anthropogenic heat (only from transportation so far)
417!>    5. necessary auxiliary subroutines (reading inputs, writing outputs,
418!>       restart simulations, ...)
419!> It also make use of standard radiation and integrates it into
420!> urban surface model.
421!>
422!> Further work:
423!> -------------
424!> 1. Remove global arrays surfouts, surfoutl and only keep track of radiosity
425!>    from surfaces that are visible from local surfaces (i.e. there is a SVF
426!>    where target is local). To do that, radiosity will be exchanged after each
427!>    reflection step using MPI_Alltoall instead of current MPI_Allgather.
428!>
429!> 2. Temporarily large values of surface heat flux can be observed, up to
430!>    1.2 Km/s, which seem to be not realistic.
431!>
432!> @todo Output of _av variables in case of restarts
433!> @todo Revise flux conversion in energy-balance solver
434!> @todo Check optimizations for RMA operations
435!> @todo Alternatives for MPI_WIN_ALLOCATE? (causes problems with openmpi)
436!> @todo Check for load imbalances in CPU measures, e.g. for exchange_horiz_prog
437!>       factor 3 between min and max time
438!> @todo Check divisions in wtend (etc.) calculations for possible division
439!>       by zero, e.g. in case fraq(0,m) + fraq(1,m) = 0?!
440!> @todo Use unit 90 for OPEN/CLOSE of input files (FK)
441!> @todo Move plant canopy stuff into plant canopy code
442!------------------------------------------------------------------------------!
443 MODULE urban_surface_mod
444
445    USE arrays_3d,                                                             &
446        ONLY:  hyp, zu, pt, p, u, v, w, tend, exner, hyrho, prr, q, ql, vpt
447
448    USE calc_mean_profile_mod,                                                 &
449        ONLY:  calc_mean_profile
450
451    USE basic_constants_and_equations_mod,                                     &
452        ONLY:  c_p, g, kappa, pi, r_d, rho_l, l_v, sigma_sb
453
454    USE control_parameters,                                                    &
455        ONLY:  coupling_start_time, topography, dt_3d, humidity, indoor_model, &
456               intermediate_timestep_count, initializing_actions,              &
457               intermediate_timestep_count_max, simulated_time, end_time,      &
458               timestep_scheme, tsc, coupling_char, io_blocks, io_group,       &
459               message_string, time_since_reference_point, surface_pressure,   &
460               pt_surface, large_scale_forcing, lsf_surf, spinup,              &
461               spinup_pt_mean, spinup_time, time_do3d, dt_do3d,                &
462               average_count_3d, varnamelength, urban_surface, dz
463
464    USE bulk_cloud_model_mod,                                                  &
465        ONLY: bulk_cloud_model, precipitation
466               
467    USE cpulog,                                                                &
468        ONLY:  cpu_log, log_point, log_point_s
469
470    USE date_and_time_mod,                                                     &
471        ONLY:  time_utc_init
472
473    USE grid_variables,                                                        &
474        ONLY:  dx, dy, ddx, ddy, ddx2, ddy2
475
476    USE indices,                                                               &
477        ONLY:  nx, ny, nnx, nny, nnz, nxl, nxlg, nxr, nxrg, nyn, nyng, nys,    &
478               nysg, nzb, nzt, nbgp, wall_flags_0
479
480    USE, INTRINSIC :: iso_c_binding
481
482    USE kinds
483             
484    USE pegrid
485       
486    USE radiation_model_mod,                                                   &
487        ONLY:  albedo_type, radiation_interaction,                             &
488               radiation, rad_sw_in, rad_lw_in, rad_sw_out, rad_lw_out,        &
489               force_radiation_call, iup_u, inorth_u, isouth_u, ieast_u,       &
490               iwest_u, iup_l, inorth_l, isouth_l, ieast_l, iwest_l, id,       &
491               iz, iy, ix,  nsurf, idsvf, ndsvf,                               &
492               idcsf, ndcsf, kdcsf, pct,                                       &
493               nz_urban_b, nz_urban_t, unscheduled_radiation_calls
494
495    USE statistics,                                                            &
496        ONLY:  hom, statistic_regions
497
498    USE surface_mod,                                                           &
499        ONLY:  get_topography_top_index_ji, get_topography_top_index,          &
500               ind_pav_green, ind_veg_wall, ind_wat_win, surf_usm_h,           &
501               surf_usm_v, surface_restore_elements
502
503
504    IMPLICIT NONE
505
506!
507!-- USM model constants
508
509    REAL(wp), PARAMETER ::                     &
510              b_ch               = 6.04_wp,    &  !< Clapp & Hornberger exponent
511              lambda_h_green_dry = 0.19_wp,    &  !< heat conductivity for dry soil   
512              lambda_h_green_sm  = 3.44_wp,    &  !< heat conductivity of the soil matrix
513              lambda_h_water     = 0.57_wp,    &  !< heat conductivity of water
514              psi_sat            = -0.388_wp,  &  !< soil matrix potential at saturation
515              rho_c_soil         = 2.19E6_wp,  &  !< volumetric heat capacity of soil
516              rho_c_water        = 4.20E6_wp      !< volumetric heat capacity of water
517!               m_max_depth        = 0.0002_wp     ! Maximum capacity of the water reservoir (m)
518
519!
520!-- Soil parameters I           alpha_vg,      l_vg_green,    n_vg, gamma_w_green_sat
521    REAL(wp), DIMENSION(0:3,1:7), PARAMETER :: soil_pars = RESHAPE( (/     &
522                                 3.83_wp,  1.250_wp, 1.38_wp,  6.94E-6_wp, &  !< soil 1
523                                 3.14_wp, -2.342_wp, 1.28_wp,  1.16E-6_wp, &  !< soil 2
524                                 0.83_wp, -0.588_wp, 1.25_wp,  0.26E-6_wp, &  !< soil 3
525                                 3.67_wp, -1.977_wp, 1.10_wp,  2.87E-6_wp, &  !< soil 4
526                                 2.65_wp,  2.500_wp, 1.10_wp,  1.74E-6_wp, &  !< soil 5
527                                 1.30_wp,  0.400_wp, 1.20_wp,  0.93E-6_wp, &  !< soil 6
528                                 0.00_wp,  0.00_wp,  0.00_wp,  0.57E-6_wp  &  !< soil 7
529                                 /), (/ 4, 7 /) )
530
531!
532!-- Soil parameters II              swc_sat,     fc,   wilt,    swc_res 
533    REAL(wp), DIMENSION(0:3,1:7), PARAMETER :: m_soil_pars = RESHAPE( (/ &
534                                 0.403_wp, 0.244_wp, 0.059_wp, 0.025_wp, &  !< soil 1
535                                 0.439_wp, 0.347_wp, 0.151_wp, 0.010_wp, &  !< soil 2
536                                 0.430_wp, 0.383_wp, 0.133_wp, 0.010_wp, &  !< soil 3
537                                 0.520_wp, 0.448_wp, 0.279_wp, 0.010_wp, &  !< soil 4
538                                 0.614_wp, 0.541_wp, 0.335_wp, 0.010_wp, &  !< soil 5
539                                 0.766_wp, 0.663_wp, 0.267_wp, 0.010_wp, &  !< soil 6
540                                 0.472_wp, 0.323_wp, 0.171_wp, 0.000_wp  &  !< soil 7
541                                 /), (/ 4, 7 /) )
542!
543!-- value 9999999.9_wp -> generic available or user-defined value must be set
544!-- otherwise -> no generic variable and user setting is optional
545    REAL(wp) :: alpha_vangenuchten = 9999999.9_wp,      &  !< NAMELIST alpha_vg
546                field_capacity = 9999999.9_wp,          &  !< NAMELIST fc
547                hydraulic_conductivity = 9999999.9_wp,  &  !< NAMELIST gamma_w_green_sat
548                l_vangenuchten = 9999999.9_wp,          &  !< NAMELIST l_vg
549                n_vangenuchten = 9999999.9_wp,          &  !< NAMELIST n_vg
550                residual_moisture = 9999999.9_wp,       &  !< NAMELIST m_res
551                saturation_moisture = 9999999.9_wp,     &  !< NAMELIST m_sat
552                wilting_point = 9999999.9_wp               !< NAMELIST m_wilt
553   
554!
555!-- configuration parameters (they can be setup in PALM config)
556    LOGICAL ::  usm_material_model = .TRUE.        !< flag parameter indicating wheather the  model of heat in materials is used
557    LOGICAL ::  usm_anthropogenic_heat = .FALSE.   !< flag parameter indicating wheather the anthropogenic heat sources
558                                                   !< (e.g.transportation) are used
559    LOGICAL ::  force_radiation_call_l = .FALSE.   !< flag parameter for unscheduled radiation model calls
560    LOGICAL ::  read_wall_temp_3d = .FALSE.
561    LOGICAL ::  usm_wall_mod = .FALSE.             !< reduces conductivity of the first 2 wall layers by factor 0.1
562
563
564    INTEGER(iwp) ::  building_type = 1               !< default building type (preleminary setting)
565    INTEGER(iwp) ::  land_category = 2               !< default category for land surface
566    INTEGER(iwp) ::  wall_category = 2               !< default category for wall surface over pedestrian zone
567    INTEGER(iwp) ::  pedestrian_category = 2         !< default category for wall surface in pedestrian zone
568    INTEGER(iwp) ::  roof_category = 2               !< default category for root surface
569    REAL(wp)     ::  roughness_concrete = 0.001_wp   !< roughness length of average concrete surface
570!
571!-- Indices of input attributes in building_pars for (above) ground floor level
572    INTEGER(iwp) ::  ind_alb_wall_agfl     = 38   !< index in input list for albedo_type of wall above ground floor level
573    INTEGER(iwp) ::  ind_alb_wall_gfl      = 66   !< index in input list for albedo_type of wall ground floor level
574    INTEGER(iwp) ::  ind_alb_wall_r        = 101  !< index in input list for albedo_type of wall roof
575    INTEGER(iwp) ::  ind_alb_green_agfl    = 39   !< index in input list for albedo_type of green above ground floor level
576    INTEGER(iwp) ::  ind_alb_green_gfl     = 78   !< index in input list for albedo_type of green ground floor level
577    INTEGER(iwp) ::  ind_alb_green_r       = 117  !< index in input list for albedo_type of green roof
578    INTEGER(iwp) ::  ind_alb_win_agfl      = 40   !< index in input list for albedo_type of window fraction above ground floor level
579    INTEGER(iwp) ::  ind_alb_win_gfl       = 77   !< index in input list for albedo_type of window fraction ground floor level
580    INTEGER(iwp) ::  ind_alb_win_r         = 115  !< index in input list for albedo_type of window fraction roof
581    INTEGER(iwp) ::  ind_c_surface         = 45   !< index in input list for heat capacity wall surface
582    INTEGER(iwp) ::  ind_c_surface_green   = 48   !< index in input list for heat capacity green surface
583    INTEGER(iwp) ::  ind_c_surface_win     = 47   !< index in input list for heat capacity window surface
584    INTEGER(iwp) ::  ind_emis_wall_agfl    = 14   !< index in input list for wall emissivity, above ground floor level
585    INTEGER(iwp) ::  ind_emis_wall_gfl     = 32   !< index in input list for wall emissivity, ground floor level
586    INTEGER(iwp) ::  ind_emis_wall_r       = 100  !< index in input list for wall emissivity, roof
587    INTEGER(iwp) ::  ind_emis_green_agfl   = 15   !< index in input list for green emissivity, above ground floor level
588    INTEGER(iwp) ::  ind_emis_green_gfl    = 34   !< index in input list for green emissivity, ground floor level
589    INTEGER(iwp) ::  ind_emis_green_r      = 116  !< index in input list for green emissivity, roof
590    INTEGER(iwp) ::  ind_emis_win_agfl     = 16   !< index in input list for window emissivity, above ground floor level
591    INTEGER(iwp) ::  ind_emis_win_gfl      = 33   !< index in input list for window emissivity, ground floor level
592    INTEGER(iwp) ::  ind_emis_win_r        = 113  !< index in input list for window emissivity, roof
593    INTEGER(iwp) ::  ind_gflh              = 20   !< index in input list for ground floor level height
594    INTEGER(iwp) ::  ind_green_frac_w_agfl = 2    !< index in input list for green fraction on wall, above ground floor level
595    INTEGER(iwp) ::  ind_green_frac_w_gfl  = 23   !< index in input list for green fraction on wall, ground floor level
596    INTEGER(iwp) ::  ind_green_frac_r_agfl = 3    !< index in input list for green fraction on roof, above ground floor level
597    INTEGER(iwp) ::  ind_green_frac_r_gfl  = 24   !< index in input list for green fraction on roof, ground floor level
598    INTEGER(iwp) ::  ind_hc1_agfl          = 6    !< index in input list for heat capacity at first wall layer,
599                                                  !< above ground floor level
600    INTEGER(iwp) ::  ind_hc1_gfl           = 26   !< index in input list for heat capacity at first wall layer, ground floor level
601    INTEGER(iwp) ::  ind_hc1_wall_r        = 94   !< index in input list for heat capacity at first wall layer, roof
602    INTEGER(iwp) ::  ind_hc1_win_agfl      = 83   !< index in input list for heat capacity at first window layer,
603                                                  !< above ground floor level
604    INTEGER(iwp) ::  ind_hc1_win_gfl       = 71   !< index in input list for heat capacity at first window layer,
605                                                  !< ground floor level
606    INTEGER(iwp) ::  ind_hc1_win_r         = 107  !< index in input list for heat capacity at first window layer, roof
607    INTEGER(iwp) ::  ind_hc2_agfl          = 7    !< index in input list for heat capacity at second wall layer,
608                                                  !< above ground floor level
609    INTEGER(iwp) ::  ind_hc2_gfl           = 27   !< index in input list for heat capacity at second wall layer, ground floor level
610    INTEGER(iwp) ::  ind_hc2_wall_r        = 95   !< index in input list for heat capacity at second wall layer, roof
611    INTEGER(iwp) ::  ind_hc2_win_agfl      = 84   !< index in input list for heat capacity at second window layer,
612                                                  !< above ground floor level
613    INTEGER(iwp) ::  ind_hc2_win_gfl       = 72   !< index in input list for heat capacity at second window layer,
614                                                  !< ground floor level
615    INTEGER(iwp) ::  ind_hc2_win_r         = 108  !< index in input list for heat capacity at second window layer, roof
616    INTEGER(iwp) ::  ind_hc3_agfl          = 8    !< index in input list for heat capacity at third wall layer,
617                                                  !< above ground floor level
618    INTEGER(iwp) ::  ind_hc3_gfl           = 28   !< index in input list for heat capacity at third wall layer, ground floor level
619    INTEGER(iwp) ::  ind_hc3_wall_r        = 96   !< index in input list for heat capacity at third wall layer, roof
620    INTEGER(iwp) ::  ind_hc3_win_agfl      = 85   !< index in input list for heat capacity at third window layer,
621                                                  !< above ground floor level
622    INTEGER(iwp) ::  ind_hc3_win_gfl       = 73   !< index in input list for heat capacity at third window layer,
623                                                  !< ground floor level
624    INTEGER(iwp) ::  ind_hc3_win_r         = 109  !< index in input list for heat capacity at third window layer, roof
625    INTEGER(iwp) ::  ind_indoor_target_temp_summer = 12
626    INTEGER(iwp) ::  ind_indoor_target_temp_winter = 13
627    INTEGER(iwp) ::  ind_lai_r_agfl        = 4    !< index in input list for LAI on roof, above ground floor level
628    INTEGER(iwp) ::  ind_lai_r_gfl         = 4  !< index in input list for LAI on roof, ground floor level
629    INTEGER(iwp) ::  ind_lai_w_agfl        = 5    !< index in input list for LAI on wall, above ground floor level
630    INTEGER(iwp) ::  ind_lai_w_gfl         = 25   !< index in input list for LAI on wall, ground floor level
631    INTEGER(iwp) ::  ind_lambda_surf       = 46   !< index in input list for thermal conductivity of wall surface
632    INTEGER(iwp) ::  ind_lambda_surf_green = 50   !< index in input list for thermal conductivity of green surface
633    INTEGER(iwp) ::  ind_lambda_surf_win   = 49   !< index in input list for thermal conductivity of window surface
634    INTEGER(iwp) ::  ind_tc1_agfl          = 9    !< index in input list for thermal conductivity at first wall layer,
635                                                  !< above ground floor level
636    INTEGER(iwp) ::  ind_tc1_gfl           = 29   !< index in input list for thermal conductivity at first wall layer,
637                                                  !< ground floor level
638    INTEGER(iwp) ::  ind_tc1_wall_r        = 97   !< index in input list for thermal conductivity at first wall layer, roof
639    INTEGER(iwp) ::  ind_tc1_win_agfl      = 86   !< index in input list for thermal conductivity at first window layer,
640                                                  !< above ground floor level
641    INTEGER(iwp) ::  ind_tc1_win_gfl       = 74   !< index in input list for thermal conductivity at first window layer,
642                                                  !< ground floor level
643    INTEGER(iwp) ::  ind_tc1_win_r         = 110  !< index in input list for thermal conductivity at first window layer, roof
644    INTEGER(iwp) ::  ind_tc2_agfl          = 10   !< index in input list for thermal conductivity at second wall layer,
645                                                  !< above ground floor level
646    INTEGER(iwp) ::  ind_tc2_gfl           = 30   !< index in input list for thermal conductivity at second wall layer,
647                                                  !< ground floor level
648    INTEGER(iwp) ::  ind_tc2_wall_r        = 98   !< index in input list for thermal conductivity at second wall layer, roof
649    INTEGER(iwp) ::  ind_tc2_win_agfl      = 87   !< index in input list for thermal conductivity at second window layer,
650                                                  !< above ground floor level
651    INTEGER(iwp) ::  ind_tc2_win_gfl       = 75   !< index in input list for thermal conductivity at second window layer,
652                                                  !< ground floor level
653    INTEGER(iwp) ::  ind_tc2_win_r         = 111  !< index in input list for thermal conductivity at second window layer,
654                                                  !< ground floor level
655    INTEGER(iwp) ::  ind_tc3_agfl          = 11   !< index in input list for thermal conductivity at third wall layer,
656                                                  !< above ground floor level
657    INTEGER(iwp) ::  ind_tc3_gfl           = 31   !< index in input list for thermal conductivity at third wall layer,
658                                                  !< ground floor level
659    INTEGER(iwp) ::  ind_tc3_wall_r        = 99   !< index in input list for thermal conductivity at third wall layer, roof
660    INTEGER(iwp) ::  ind_tc3_win_agfl      = 88   !< index in input list for thermal conductivity at third window layer,
661                                                  !< above ground floor level
662    INTEGER(iwp) ::  ind_tc3_win_gfl       = 76   !< index in input list for thermal conductivity at third window layer,
663                                                  !< ground floor level
664    INTEGER(iwp) ::  ind_tc3_win_r         = 112  !< index in input list for thermal conductivity at third window layer, roof
665    INTEGER(iwp) ::  ind_thick_1_agfl      = 41   !< index for wall layer thickness - 1st layer above ground floor level
666    INTEGER(iwp) ::  ind_thick_1_gfl       = 62   !< index for wall layer thickness - 1st layer ground floor level
667    INTEGER(iwp) ::  ind_thick_1_wall_r    = 90   !< index for wall layer thickness - 1st layer roof
668    INTEGER(iwp) ::  ind_thick_1_win_agfl  = 79   !< index for window layer thickness - 1st layer above ground floor level
669    INTEGER(iwp) ::  ind_thick_1_win_gfl   = 67   !< index for window layer thickness - 1st layer ground floor level
670    INTEGER(iwp) ::  ind_thick_1_win_r     = 103  !< index for window layer thickness - 1st layer roof
671    INTEGER(iwp) ::  ind_thick_2_agfl      = 42   !< index for wall layer thickness - 2nd layer above ground floor level
672    INTEGER(iwp) ::  ind_thick_2_gfl       = 63   !< index for wall layer thickness - 2nd layer ground floor level
673    INTEGER(iwp) ::  ind_thick_2_wall_r    = 91   !< index for wall layer thickness - 2nd layer roof
674    INTEGER(iwp) ::  ind_thick_2_win_agfl  = 80   !< index for window layer thickness - 2nd layer above ground floor level
675    INTEGER(iwp) ::  ind_thick_2_win_gfl   = 68   !< index for window layer thickness - 2nd layer ground floor level
676    INTEGER(iwp) ::  ind_thick_2_win_r     = 104  !< index for window layer thickness - 2nd layer roof
677    INTEGER(iwp) ::  ind_thick_3_agfl      = 43   !< index for wall layer thickness - 3rd layer above ground floor level
678    INTEGER(iwp) ::  ind_thick_3_gfl       = 64   !< index for wall layer thickness - 3rd layer ground floor level
679    INTEGER(iwp) ::  ind_thick_3_wall_r    = 92   !< index for wall layer thickness - 3rd layer roof
680    INTEGER(iwp) ::  ind_thick_3_win_agfl  = 81   !< index for window layer thickness - 3rd layer above ground floor level
681    INTEGER(iwp) ::  ind_thick_3_win_gfl   = 69   !< index for window layer thickness - 3rd layer ground floor level 
682    INTEGER(iwp) ::  ind_thick_3_win_r     = 105  !< index for window layer thickness - 3rd layer roof
683    INTEGER(iwp) ::  ind_thick_4_agfl      = 44   !< index for wall layer thickness - 4th layer above ground floor level
684    INTEGER(iwp) ::  ind_thick_4_gfl       = 65   !< index for wall layer thickness - 4th layer ground floor level
685    INTEGER(iwp) ::  ind_thick_4_wall_r    = 93   !< index for wall layer thickness - 4st layer roof
686    INTEGER(iwp) ::  ind_thick_4_win_agfl  = 82   !< index for window layer thickness - 4th layer above ground floor level
687    INTEGER(iwp) ::  ind_thick_4_win_gfl   = 70   !< index for window layer thickness - 4th layer ground floor level
688    INTEGER(iwp) ::  ind_thick_4_win_r     = 106  !< index for window layer thickness - 4th layer roof
689    INTEGER(iwp) ::  ind_trans_agfl        = 17   !< index in input list for window transmissivity, above ground floor level
690    INTEGER(iwp) ::  ind_trans_gfl         = 35   !< index in input list for window transmissivity, ground floor level
691    INTEGER(iwp) ::  ind_trans_r           = 114  !< index in input list for window transmissivity, roof
692    INTEGER(iwp) ::  ind_wall_frac_agfl    = 0    !< index in input list for wall fraction, above ground floor level
693    INTEGER(iwp) ::  ind_wall_frac_gfl     = 21   !< index in input list for wall fraction, ground floor level
694    INTEGER(iwp) ::  ind_wall_frac_r       = 89   !< index in input list for wall fraction, roof
695    INTEGER(iwp) ::  ind_win_frac_agfl     = 1    !< index in input list for window fraction, above ground floor level
696    INTEGER(iwp) ::  ind_win_frac_gfl      = 22   !< index in input list for window fraction, ground floor level
697    INTEGER(iwp) ::  ind_win_frac_r        = 102  !< index in input list for window fraction, roof
698    INTEGER(iwp) ::  ind_z0_agfl           = 18   !< index in input list for z0, above ground floor level
699    INTEGER(iwp) ::  ind_z0_gfl            = 36   !< index in input list for z0, ground floor level
700    INTEGER(iwp) ::  ind_z0qh_agfl         = 19   !< index in input list for z0h / z0q, above ground floor level
701    INTEGER(iwp) ::  ind_z0qh_gfl          = 37   !< index in input list for z0h / z0q, ground floor level
702    INTEGER(iwp) ::  ind_green_type_roof   = 118  !< index in input list for type of green roof
703
704
705    REAL(wp)  ::  roof_height_limit = 4.0_wp         !< height for distinguish between land surfaces and roofs
706    REAL(wp)  ::  ground_floor_level = 4.0_wp        !< default ground floor level
707
708
709    CHARACTER(37), DIMENSION(0:7), PARAMETER :: building_type_name = (/     &
710                                   'user-defined                         ', &  !< type 0
711                                   'residential - 1950                   ', &  !< type  1
712                                   'residential 1951 - 2000              ', &  !< type  2
713                                   'residential 2001 -                   ', &  !< type  3
714                                   'office - 1950                        ', &  !< type  4
715                                   'office 1951 - 2000                   ', &  !< type  5
716                                   'office 2001 -                        ', &  !< type  6
717                                   'bridges                              '  &  !< type  7
718                                                                     /)
719
720
721!
722!-- Building facade/wall/green/window properties (partly according to PIDS)
723    REAL(wp), DIMENSION(0:133,1:7), PARAMETER :: building_pars = RESHAPE( (/   &
724       0.7_wp,         &  !< parameter 0   - wall fraction above ground floor level
725       0.3_wp,         &  !< parameter 1   - window fraction above ground floor level
726       0.0_wp,         &  !< parameter 2   - green fraction above ground floor level
727       0.0_wp,         &  !< parameter 3   - green fraction roof above ground floor level
728       1.5_wp,         &  !< parameter 4   - LAI roof
729       1.5_wp,         &  !< parameter 5   - LAI on wall above ground floor level
730       2200000.0_wp,   &  !< parameter 6   - heat capacity 1st/2nd wall layer above ground floor level
731       1400000.0_wp,   &  !< parameter 7   - heat capacity 3rd wall layer above ground floor level
732       1300000.0_wp,   &  !< parameter 8   - heat capacity 4th wall layer above ground floor level
733       0.35_wp,        &  !< parameter 9   - thermal conductivity 1st/2nd wall layer above ground floor level
734       0.8_wp,         &  !< parameter 10  - thermal conductivity 3rd wall layer above ground floor level
735       2.1_wp,         &  !< parameter 11  - thermal conductivity 4th wall layer above ground floor level
736       299.15_wp,      &  !< parameter 12  - indoor target summer temperature
737       293.15_wp,      &  !< parameter 13  - indoor target winter temperature
738       0.93_wp,        &  !< parameter 14  - wall emissivity above ground floor level
739       0.86_wp,        &  !< parameter 15  - green emissivity above ground floor level
740       0.91_wp,        &  !< parameter 16  - window emissivity above ground floor level
741       0.75_wp,        &  !< parameter 17  - window transmissivity above ground floor level
742       0.001_wp,       &  !< parameter 18  - z0 roughness above ground floor level
743       0.0001_wp,      &  !< parameter 19  - z0h/z0g roughness heat/humidity above ground floor level
744       4.0_wp,         &  !< parameter 20  - ground floor level height
745       0.75_wp,        &  !< parameter 21  - wall fraction ground floor level
746       0.25_wp,        &  !< parameter 22  - window fraction ground floor level
747       0.0_wp,         &  !< parameter 23  - green fraction ground floor level
748       0.0_wp,         &  !< parameter 24  - green fraction roof ground floor level
749       1.5_wp,         &  !< parameter 25  - LAI on wall ground floor level
750       2200000.0_wp,   &  !< parameter 26  - heat capacity 1st/2nd wall layer ground floor level
751       1400000.0_wp,   &  !< parameter 27  - heat capacity 3rd wall layer ground floor level
752       1300000.0_wp,   &  !< parameter 28  - heat capacity 4th wall layer ground floor level
753       0.35_wp,        &  !< parameter 29  - thermal conductivity 1st/2nd wall layer ground floor level
754       0.8_wp,         &  !< parameter 30  - thermal conductivity 3rd wall layer ground floor level
755       2.1_wp,         &  !< parameter 31  - thermal conductivity 4th wall layer ground floor level
756       0.93_wp,        &  !< parameter 32  - wall emissivity ground floor level
757       0.91_wp,        &  !< parameter 33  - window emissivity ground floor level
758       0.86_wp,        &  !< parameter 34  - green emissivity ground floor level
759       0.75_wp,        &  !< parameter 35  - window transmissivity ground floor level
760       0.01_wp,        &  !< parameter 36  - z0 roughness ground floor level
761       0.001_wp,       &  !< parameter 37  - z0h/z0q roughness heat/humidity
762       27.0_wp,        &  !< parameter 38  - wall albedo above ground floor level
763       5.0_wp,         &  !< parameter 39  - green albedo above ground floor level
764       27.0_wp,        &  !< parameter 40  - window albedo above ground floor level
765       0.005_wp,       &  !< parameter 41  - 1st wall layer thickness above ground floor level
766       0.01_wp,        &  !< parameter 42  - 2nd wall layer thickness above ground floor level
767       0.39_wp,        &  !< parameter 43  - 3rd wall layer thickness above ground floor level
768       0.63_wp,        &  !< parameter 44  - 4th wall layer thickness above ground floor level
769       20000.0_wp,     &  !< parameter 45  - heat capacity wall surface
770       23.0_wp,        &  !< parameter 46  - thermal conductivity of wall surface
771       20000.0_wp,     &  !< parameter 47  - heat capacity of window surface
772       20000.0_wp,     &  !< parameter 48  - heat capacity of green surface
773       23.0_wp,        &  !< parameter 49  - thermal conductivity of window surface
774       10.0_wp,        &  !< parameter 50  - thermal conductivty of green surface
775       1.0_wp,         &  !< parameter 51  - wall fraction ground plate
776       0.005_wp,       &  !< parameter 52  - 1st wall layer thickness ground plate
777       0.01_wp,        &  !< parameter 53  - 2nd wall layer thickness ground plate
778       0.39_wp,        &  !< parameter 54  - 3rd wall layer thickness ground plate
779       0.63_wp,        &  !< parameter 55  - 4th wall layer thickness ground plate
780       2200000.0_wp,   &  !< parameter 56  - heat capacity 1st/2nd wall layer ground plate
781       1400000.0_wp,   &  !< parameter 57  - heat capacity 3rd wall layer ground plate
782       1300000.0_wp,   &  !< parameter 58  - heat capacity 4th wall layer ground plate
783       0.35_wp,        &  !< parameter 59  - thermal conductivity 1st/2nd wall layer ground plate
784       0.8_wp,         &  !< parameter 60  - thermal conductivity 3rd wall layer ground plate
785       2.1_wp,         &  !< parameter 61  - thermal conductivity 4th wall layer ground plate
786       0.005_wp,       &  !< parameter 62  - 1st wall layer thickness ground floor level
787       0.01_wp,        &  !< parameter 63  - 2nd wall layer thickness ground floor level
788       0.39_wp,        &  !< parameter 64  - 3rd wall layer thickness ground floor level
789       0.63_wp,        &  !< parameter 65  - 4th wall layer thickness ground floor level
790       27.0_wp,        &  !< parameter 66  - wall albedo ground floor level
791       0.003_wp,       &  !< parameter 67  - 1st window layer thickness ground floor level
792       0.006_wp,       &  !< parameter 68  - 2nd window layer thickness ground floor level
793       0.012_wp,       &  !< parameter 69  - 3rd window layer thickness ground floor level
794       0.018_wp,       &  !< parameter 70  - 4th window layer thickness ground floor level
795       1736000.0_wp,   &  !< parameter 71  - heat capacity 1st/2nd window layer ground floor level
796       1736000.0_wp,   &  !< parameter 72  - heat capacity 3rd window layer ground floor level
797       1736000.0_wp,   &  !< parameter 73  - heat capacity 4th window layer ground floor level
798       0.57_wp,        &  !< parameter 74  - thermal conductivity 1st/2nd window layer ground floor level
799       0.57_wp,        &  !< parameter 75  - thermal conductivity 3rd window layer ground floor level
800       0.57_wp,        &  !< parameter 76  - thermal conductivity 4th window layer ground floor level
801       27.0_wp,        &  !< parameter 77  - window albedo ground floor level
802       5.0_wp,         &  !< parameter 78  - green albedo ground floor level
803       0.003_wp,       &  !< parameter 79  - 1st window layer thickness above ground floor level
804       0.006_wp,       &  !< parameter 80  - 2nd thickness window layer above ground floor level
805       0.012_wp,       &  !< parameter 81  - 3rd window layer thickness above ground floor level
806       0.018_wp,       &  !< parameter 82  - 4th window layer thickness above ground floor level
807       1736000.0_wp,   &  !< parameter 83  - heat capacity 1st/2nd window layer above ground floor level
808       1736000.0_wp,   &  !< parameter 84  - heat capacity 3rd window layer above ground floor level
809       1736000.0_wp,   &  !< parameter 85  - heat capacity 4th window layer above ground floor level
810       0.57_wp,        &  !< parameter 86  - thermal conductivity 1st/2nd window layer above ground floor level
811       0.57_wp,        &  !< parameter 87  - thermal conductivity 3rd window layer above ground floor level
812       0.57_wp,        &  !< parameter 88  - thermal conductivity 4th window layer above ground floor level
813       1.0_wp,         &  !< parameter 89  - wall fraction roof
814       0.005_wp,       &  !< parameter 90  - 1st wall layer thickness roof
815       0.01_wp,        &  !< parameter 91  - 2nd wall layer thickness roof
816       0.31_wp,        &  !< parameter 92  - 3rd wall layer thickness roof
817       0.63_wp,        &  !< parameter 93  - 4th wall layer thickness roof
818       2200000.0_wp,   &  !< parameter 94  - heat capacity 1st/2nd wall layer roof
819       1400000.0_wp,   &  !< parameter 95  - heat capacity 3rd wall layer roof
820       1300000.0_wp,   &  !< parameter 96  - heat capacity 4th wall layer roof
821       0.35_wp,        &  !< parameter 97  - thermal conductivity 1st/2nd wall layer roof
822       0.8_wp,         &  !< parameter 98  - thermal conductivity 3rd wall layer roof
823       2.1_wp,         &  !< parameter 99  - thermal conductivity 4th wall layer roof
824       0.93_wp,        &  !< parameter 100 - wall emissivity roof
825       27.0_wp,        &  !< parameter 101 - wall albedo roof
826       0.0_wp,         &  !< parameter 102 - window fraction roof
827       0.003_wp,       &  !< parameter 103 - window 1st layer thickness roof
828       0.006_wp,       &  !< parameter 104 - window 2nd layer thickness roof
829       0.012_wp,       &  !< parameter 105 - window 3rd layer thickness roof
830       0.018_wp,       &  !< parameter 106 - window 4th layer thickness roof
831       1736000.0_wp,   &  !< parameter 107 - heat capacity 1st/2nd window layer roof
832       1736000.0_wp,   &  !< parameter 108 - heat capacity 3rd window layer roof
833       1736000.0_wp,   &  !< parameter 109 - heat capacity 4th window layer roof
834       0.57_wp,        &  !< parameter 110 - thermal conductivity 1st/2nd window layer roof
835       0.57_wp,        &  !< parameter 111 - thermal conductivity 3rd window layer roof
836       0.57_wp,        &  !< parameter 112 - thermal conductivity 4th window layer roof
837       0.91_wp,        &  !< parameter 113 - window emissivity roof
838       0.75_wp,        &  !< parameter 114 - window transmissivity roof
839       27.0_wp,        &  !< parameter 115 - window albedo roof
840       0.86_wp,        &  !< parameter 116 - green emissivity roof
841       5.0_wp,         &  !< parameter 117 - green albedo roof
842       0.0_wp,         &  !< parameter 118 - green type roof
843       0.8_wp,         &  !< parameter 119 - shading factor
844       0.76_wp,        &  !< parameter 120 - g-value windows
845       5.0_wp,         &  !< parameter 121 - u-value windows
846       0.1_wp,         &  !< parameter 122 - basical airflow without occupancy of the room
847       0.5_wp,         &  !< parameter 123 - additional airflow depend of occupancy of the room
848       0.0_wp,         &  !< parameter 124 - heat recovery efficiency
849       3.5_wp,         &  !< parameter 125 - dynamic parameter specific effective surface
850       370000.0_wp,    &  !< parameter 126 - dynamic parameter innner heatstorage
851       4.5_wp,         &  !< parameter 127 - ratio internal surface/floor area
852       100000.0_wp,    &  !< parameter 128 - maximal heating capacity
853       0.0_wp,         &  !< parameter 129 - maximal cooling capacity
854       3.0_wp,         &  !< parameter 130 - additional internal heat gains dependent on occupancy of the room
855       10.0_wp,        &  !< parameter 131 - basic internal heat gains without occupancy of the room
856       3.0_wp,         &  !< parameter 132 - storey height
857       0.2_wp,         &  !< parameter 133 - ceiling construction height
858       0.73_wp,        &  !< parameter 0   - wall fraction above ground floor level
859       0.27_wp,        &  !< parameter 1   - window fraction above ground floor level
860       0.0_wp,         &  !< parameter 2   - green fraction above ground floor level
861       0.0_wp,         &  !< parameter 3   - green fraction roof above ground floor level
862       1.5_wp,         &  !< parameter 4   - LAI roof
863       1.5_wp,         &  !< parameter 5   - LAI on wall above ground floor level
864       2000000.0_wp,   &  !< parameter 6   - heat capacity 1st/2nd wall layer above ground floor level
865       103000.0_wp,    &  !< parameter 7   - heat capacity 3rd wall layer above ground floor level
866       900000.0_wp,    &  !< parameter 8   - heat capacity 4th wall layer above ground floor level
867       0.35_wp,        &  !< parameter 9   - thermal conductivity 1st/2nd wall layer above ground floor level
868       0.38_wp,        &  !< parameter 10  - thermal conductivity 3rd wall layer above ground floor level
869       0.04_wp,        &  !< parameter 11  - thermal conductivity 4th wall layer above ground floor level
870       299.15_wp,      &  !< parameter 12  - indoor target summer temperature
871       293.15_wp,      &  !< parameter 13  - indoor target winter temperature
872       0.92_wp,        &  !< parameter 14  - wall emissivity above ground floor level
873       0.86_wp,        &  !< parameter 15  - green emissivity above ground floor level
874       0.87_wp,        &  !< parameter 16  - window emissivity above ground floor level
875       0.7_wp,         &  !< parameter 17  - window transmissivity above ground floor level
876       0.001_wp,       &  !< parameter 18  - z0 roughness above ground floor level
877       0.0001_wp,      &  !< parameter 19  - z0h/z0g roughness heat/humidity above ground floor level
878       4.0_wp,         &  !< parameter 20  - ground floor level height
879       0.78_wp,        &  !< parameter 21  - wall fraction ground floor level
880       0.22_wp,        &  !< parameter 22  - window fraction ground floor level
881       0.0_wp,         &  !< parameter 23  - green fraction ground floor level
882       0.0_wp,         &  !< parameter 24  - green fraction roof ground floor level
883       1.5_wp,         &  !< parameter 25  - LAI on wall ground floor level
884       2000000.0_wp,   &  !< parameter 26  - heat capacity 1st/2nd wall layer ground floor level
885       103000.0_wp,    &  !< parameter 27  - heat capacity 3rd wall layer ground floor level
886       900000.0_wp,    &  !< parameter 28  - heat capacity 4th wall layer ground floor level
887       0.35_wp,        &  !< parameter 29  - thermal conductivity 1st/2nd wall layer ground floor level
888       0.38_wp,        &  !< parameter 30  - thermal conductivity 3rd wall layer ground floor level
889       0.04_wp,        &  !< parameter 31  - thermal conductivity 4th wall layer ground floor level
890       0.92_wp,        &  !< parameter 32  - wall emissivity ground floor level
891       0.11_wp,        &  !< parameter 33  - window emissivity ground floor level
892       0.86_wp,        &  !< parameter 34  - green emissivity ground floor level
893       0.7_wp,         &  !< parameter 35  - window transmissivity ground floor level
894       0.01_wp,        &  !< parameter 36  - z0 roughness ground floor level
895       0.001_wp,       &  !< parameter 37  - z0h/z0q roughness heat/humidity
896       27.0_wp,        &  !< parameter 38  - wall albedo above ground floor level
897       5.0_wp,         &  !< parameter 39  - green albedo above ground floor level
898       27.0_wp,        &  !< parameter 40  - window albedo above ground floor level
899       0.005_wp,       &  !< parameter 41  - 1st wall layer thickness above ground floor level
900       0.01_wp,        &  !< parameter 42  - 2nd wall layer thickness above ground floor level
901       0.31_wp,        &  !< parameter 43  - 3rd wall layer thickness above ground floor level
902       0.43_wp,        &  !< parameter 44  - 4th wall layer thickness above ground floor level
903       20000.0_wp,     &  !< parameter 45  - heat capacity wall surface
904       23.0_wp,        &  !< parameter 46  - thermal conductivity of wall surface
905       20000.0_wp,     &  !< parameter 47  - heat capacity of window surface
906       20000.0_wp,     &  !< parameter 48  - heat capacity of green surface
907       23.0_wp,        &  !< parameter 49  - thermal conductivity of window surface
908       10.0_wp,        &  !< parameter 50  - thermal conductivty of green surface
909       1.0_wp,         &  !< parameter 51  - wall fraction ground plate
910       0.005_wp,       &  !< parameter 52  - 1st wall layer thickness ground plate
911       0.01_wp,        &  !< parameter 53  - 2nd wall layer thickness ground plate
912       0.31_wp,        &  !< parameter 54  - 3rd wall layer thickness ground plate
913       0.42_wp,        &  !< parameter 55  - 4th wall layer thickness ground plate
914       2000000.0_wp,   &  !< parameter 56  - heat capacity 1st/2nd wall layer ground plate
915       103000.0_wp,    &  !< parameter 57  - heat capacity 3rd wall layer ground plate
916       900000.0_wp,    &  !< parameter 58  - heat capacity 4th wall layer ground plate
917       0.35_wp,        &  !< parameter 59  - thermal conductivity 1st/2nd wall layer ground plate
918       0.38_wp,        &  !< parameter 60  - thermal conductivity 3rd wall layer ground plate
919       0.04_wp,        &  !< parameter 61  - thermal conductivity 4th wall layer ground plate
920       0.005_wp,       &  !< parameter 62  - 1st wall layer thickness ground floor level
921       0.01_wp,        &  !< parameter 63  - 2nd wall layer thickness ground floor level
922       0.31_wp,        &  !< parameter 64  - 3rd wall layer thickness ground floor level
923       0.43_wp,        &  !< parameter 65  - 4th wall layer thickness ground floor level
924       27.0_wp,        &  !< parameter 66  - wall albedo ground floor level
925       0.003_wp,       &  !< parameter 67  - 1st window layer thickness ground floor level
926       0.006_wp,       &  !< parameter 68  - 2nd window layer thickness ground floor level
927       0.012_wp,       &  !< parameter 69  - 3rd window layer thickness ground floor level
928       0.018_wp,       &  !< parameter 70  - 4th window layer thickness ground floor level
929       1736000.0_wp,   &  !< parameter 71  - heat capacity 1st/2nd window layer ground floor level
930       1736000.0_wp,   &  !< parameter 72  - heat capacity 3rd window layer ground floor level
931       1736000.0_wp,   &  !< parameter 73  - heat capacity 4th window layer ground floor level
932       0.11_wp,        &  !< parameter 74  - thermal conductivity 1st/2nd window layer ground floor level
933       0.11_wp,        &  !< parameter 75  - thermal conductivity 3rd window layer ground floor level
934       0.11_wp,        &  !< parameter 76  - thermal conductivity 4th window layer ground floor level
935       27.0_wp,        &  !< parameter 77  - window albedo ground floor level
936       5.0_wp,         &  !< parameter 78  - green albedo ground floor level
937       0.003_wp,       &  !< parameter 79  - 1st window layer thickness above ground floor level
938       0.006_wp,       &  !< parameter 80  - 2nd thickness window layer above ground floor level
939       0.012_wp,       &  !< parameter 81  - 3rd window layer thickness above ground floor level
940       0.018_wp,       &  !< parameter 82  - 4th window layer thickness above ground floor level
941       1736000.0_wp,   &  !< parameter 83  - heat capacity 1st/2nd window layer above ground floor level
942       1736000.0_wp,   &  !< parameter 84  - heat capacity 3rd window layer above ground floor level
943       1736000.0_wp,   &  !< parameter 85  - heat capacity 4th window layer above ground floor level
944       0.11_wp,        &  !< parameter 86  - thermal conductivity 1st/2nd window layer above ground floor level
945       0.11_wp,        &  !< parameter 87  - thermal conductivity 3rd window layer above ground floor level
946       0.11_wp,        &  !< parameter 88  - thermal conductivity 4th window layer above ground floor level
947       1.0_wp,         &  !< parameter 89  - wall fraction roof
948       0.005_wp,       &  !< parameter 90  - 1st wall layer thickness roof
949       0.01_wp,        &  !< parameter 91  - 2nd wall layer thickness roof
950       0.5_wp,         &  !< parameter 92  - 3rd wall layer thickness roof
951       0.79_wp,        &  !< parameter 93  - 4th wall layer thickness roof
952       2000000.0_wp,   &  !< parameter 94  - heat capacity 1st/2nd wall layer roof
953       103000.0_wp,    &  !< parameter 95  - heat capacity 3rd wall layer roof
954       900000.0_wp,    &  !< parameter 96  - heat capacity 4th wall layer roof
955       0.35_wp,        &  !< parameter 97  - thermal conductivity 1st/2nd wall layer roof
956       0.38_wp,        &  !< parameter 98  - thermal conductivity 3rd wall layer roof
957       0.04_wp,        &  !< parameter 99  - thermal conductivity 4th wall layer roof
958       0.93_wp,        &  !< parameter 100 - wall emissivity roof
959       27.0_wp,        &  !< parameter 101 - wall albedo roof
960       0.0_wp,         &  !< parameter 102 - window fraction roof
961       0.003_wp,       &  !< parameter 103 - window 1st layer thickness roof
962       0.006_wp,       &  !< parameter 104 - window 2nd layer thickness roof
963       0.012_wp,       &  !< parameter 105 - window 3rd layer thickness roof
964       0.018_wp,       &  !< parameter 106 - window 4th layer thickness roof
965       1736000.0_wp,   &  !< parameter 107 - heat capacity 1st/2nd window layer roof
966       1736000.0_wp,   &  !< parameter 108 - heat capacity 3rd window layer roof
967       1736000.0_wp,   &  !< parameter 109 - heat capacity 4th window layer roof
968       0.11_wp,        &  !< parameter 110 - thermal conductivity 1st/2nd window layer roof
969       0.11_wp,        &  !< parameter 111 - thermal conductivity 3rd window layer roof
970       0.11_wp,        &  !< parameter 112 - thermal conductivity 4th window layer roof
971       0.87_wp,        &  !< parameter 113 - window emissivity roof
972       0.7_wp,         &  !< parameter 114 - window transmissivity roof
973       27.0_wp,        &  !< parameter 115 - window albedo roof
974       0.86_wp,        &  !< parameter 116 - green emissivity roof
975       5.0_wp,         &  !< parameter 117 - green albedo roof
976       0.0_wp,         &  !< parameter 118 - green type roof
977       0.8_wp,         &  !< parameter 119 - shading factor
978       0.6_wp,         &  !< parameter 120 - g-value windows
979       3.0_wp,         &  !< parameter 121 - u-value windows
980       0.1_wp,         &  !< parameter 122 - basical airflow without occupancy of the room
981       0.5_wp,         &  !< parameter 123 - additional airflow depend of occupancy of the room
982       0.0_wp,         &  !< parameter 124 - heat recovery efficiency
983       2.5_wp,         &  !< parameter 125 - dynamic parameter specific effective surface
984       165000.0_wp,    &  !< parameter 126 - dynamic parameter innner heatstorage
985       4.5_wp,         &  !< parameter 127 - ratio internal surface/floor area
986       100000.0_wp,    &  !< parameter 128 - maximal heating capacity
987       0.0_wp,         &  !< parameter 129 - maximal cooling capacity
988       4.0_wp,         &  !< parameter 130 - additional internal heat gains dependent on occupancy of the room
989       8.0_wp,         &  !< parameter 131 - basic internal heat gains without occupancy of the room
990       3.0_wp,         &  !< parameter 132 - storey height
991       0.2_wp,         &  !< parameter 133 - ceiling construction height
992       0.7_wp,         &  !< parameter 0   - wall fraction above ground floor level
993       0.3_wp,         &  !< parameter 1   - window fraction above ground floor level
994       0.0_wp,         &  !< parameter 2   - green fraction above ground floor level
995       0.0_wp,         &  !< parameter 3   - green fraction roof above ground floor level
996       1.5_wp,         &  !< parameter 4   - LAI roof
997       1.5_wp,         &  !< parameter 5   - LAI on wall above ground floor level
998       2000000.0_wp,   &  !< parameter 6   - heat capacity 1st/2nd wall layer above ground floor level
999       103000.0_wp,    &  !< parameter 7   - heat capacity 3rd wall layer above ground floor level
1000       900000.0_wp,    &  !< parameter 8   - heat capacity 4th wall layer above ground floor level
1001       0.35_wp,        &  !< parameter 9   - thermal conductivity 1st/2nd wall layer above ground floor level
1002       0.14_wp,        &  !< parameter 10  - thermal conductivity 3rd wall layer above ground floor level
1003       0.035_wp,       &  !< parameter 11  - thermal conductivity 4th wall layer above ground floor level
1004       299.15_wp,      &  !< parameter 12  - indoor target summer temperature
1005       293.15_wp,      &  !< parameter 13  - indoor target winter temperature
1006       0.92_wp,        &  !< parameter 14  - wall emissivity above ground floor level
1007       0.86_wp,        &  !< parameter 15  - green emissivity above ground floor level
1008       0.8_wp,         &  !< parameter 16  - window emissivity above ground floor level
1009       0.6_wp,         &  !< parameter 17  - window transmissivity above ground floor level
1010       0.001_wp,       &  !< parameter 18  - z0 roughness above ground floor level
1011       0.0001_wp,      &  !< parameter 19  - z0h/z0g roughness heat/humidity above ground floor level
1012       4.0_wp,         &  !< parameter 20  - ground floor level height
1013       0.75_wp,        &  !< parameter 21  - wall fraction ground floor level
1014       0.25_wp,        &  !< parameter 22  - window fraction ground floor level
1015       0.0_wp,         &  !< parameter 23  - green fraction ground floor level
1016       0.0_wp,         &  !< parameter 24  - green fraction roof ground floor level
1017       1.5_wp,         &  !< parameter 25  - LAI on wall ground floor level
1018       2000000.0_wp,   &  !< parameter 26  - heat capacity 1st/2nd wall layer ground floor level
1019       103000.0_wp,    &  !< parameter 27  - heat capacity 3rd wall layer ground floor level
1020       900000.0_wp,    &  !< parameter 28  - heat capacity 4th wall layer ground floor level
1021       0.35_wp,        &  !< parameter 29  - thermal conductivity 1st/2nd wall layer ground floor level
1022       0.14_wp,        &  !< parameter 30  - thermal conductivity 3rd wall layer ground floor level
1023       0.035_wp,       &  !< parameter 31  - thermal conductivity 4th wall layer ground floor level
1024       0.92_wp,        &  !< parameter 32  - wall emissivity ground floor level
1025       0.8_wp,         &  !< parameter 33  - window emissivity ground floor level
1026       0.86_wp,        &  !< parameter 34  - green emissivity ground floor level
1027       0.6_wp,         &  !< parameter 35  - window transmissivity ground floor level
1028       0.01_wp,        &  !< parameter 36  - z0 roughness ground floor level
1029       0.001_wp,       &  !< parameter 37  - z0h/z0q roughness heat/humidity
1030       27.0_wp,        &  !< parameter 38  - wall albedo above ground floor level
1031       5.0_wp,         &  !< parameter 39  - green albedo above ground floor level
1032       27.0_wp,        &  !< parameter 40  - window albedo above ground floor level
1033       0.005_wp,       &  !< parameter 41  - 1st wall layer thickness above ground floor level
1034       0.01_wp,        &  !< parameter 42  - 2nd wall layer thickness above ground floor level
1035       0.41_wp,        &  !< parameter 43  - 3rd wall layer thickness above ground floor level
1036       0.7_wp,         &  !< parameter 44  - 4th wall layer thickness above ground floor level
1037       20000.0_wp,     &  !< parameter 45  - heat capacity wall surface
1038       23.0_wp,        &  !< parameter 46  - thermal conductivity of wall surface
1039       20000.0_wp,     &  !< parameter 47  - heat capacity of window surface
1040       20000.0_wp,     &  !< parameter 48  - heat capacity of green surface
1041       23.0_wp,        &  !< parameter 49  - thermal conductivity of window surface
1042       10.0_wp,        &  !< parameter 50  - thermal conductivty of green surface
1043       1.0_wp,         &  !< parameter 51  - wall fraction ground plate
1044       0.005_wp,       &  !< parameter 52  - 1st wall layer thickness ground plate
1045       0.01_wp,        &  !< parameter 53  - 2nd wall layer thickness ground plate
1046       0.41_wp,        &  !< parameter 54  - 3rd wall layer thickness ground plate
1047       0.7_wp,         &  !< parameter 55  - 4th wall layer thickness ground plate
1048       2000000.0_wp,   &  !< parameter 56  - heat capacity 1st/2nd wall layer ground plate
1049       103000.0_wp,    &  !< parameter 57  - heat capacity 3rd wall layer ground plate
1050       900000.0_wp,    &  !< parameter 58  - heat capacity 4th wall layer ground plate
1051       0.35_wp,        &  !< parameter 59  - thermal conductivity 1st/2nd wall layer ground plate
1052       0.14_wp,        &  !< parameter 60  - thermal conductivity 3rd wall layer ground plate
1053       0.035_wp,       &  !< parameter 61  - thermal conductivity 4th wall layer ground plate
1054       0.005_wp,       &  !< parameter 62  - 1st wall layer thickness ground floor level
1055       0.01_wp,        &  !< parameter 63  - 2nd wall layer thickness ground floor level
1056       0.41_wp,        &  !< parameter 64  - 3rd wall layer thickness ground floor level
1057       0.7_wp,         &  !< parameter 65  - 4th wall layer thickness ground floor level
1058       27.0_wp,        &  !< parameter 66  - wall albedo ground floor level
1059       0.003_wp,       &  !< parameter 67  - 1st window layer thickness ground floor level
1060       0.006_wp,       &  !< parameter 68  - 2nd window layer thickness ground floor level
1061       0.012_wp,       &  !< parameter 69  - 3rd window layer thickness ground floor level
1062       0.018_wp,       &  !< parameter 70  - 4th window layer thickness ground floor level
1063       1736000.0_wp,   &  !< parameter 71  - heat capacity 1st/2nd window layer ground floor level
1064       1736000.0_wp,   &  !< parameter 72  - heat capacity 3rd window layer ground floor level
1065       1736000.0_wp,   &  !< parameter 73  - heat capacity 4th window layer ground floor level
1066       0.037_wp,       &  !< parameter 74  - thermal conductivity 1st/2nd window layer ground floor level
1067       0.037_wp,       &  !< parameter 75  - thermal conductivity 3rd window layer ground floor level
1068       0.037_wp,       &  !< parameter 76  - thermal conductivity 4th window layer ground floor level
1069       27.0_wp,        &  !< parameter 77  - window albedo ground floor level
1070       5.0_wp,         &  !< parameter 78  - green albedo ground floor level
1071       0.003_wp,       &  !< parameter 79  - 1st window layer thickness above ground floor level
1072       0.006_wp,       &  !< parameter 80  - 2nd thickness window layer above ground floor level
1073       0.012_wp,       &  !< parameter 81  - 3rd window layer thickness above ground floor level
1074       0.018_wp,       &  !< parameter 82  - 4th window layer thickness above ground floor level
1075       1736000.0_wp,   &  !< parameter 83  - heat capacity 1st/2nd window layer above ground floor level
1076       1736000.0_wp,   &  !< parameter 84  - heat capacity 3rd window layer above ground floor level
1077       1736000.0_wp,   &  !< parameter 85  - heat capacity 4th window layer above ground floor level
1078       0.037_wp,       &  !< parameter 86  - thermal conductivity 1st/2nd window layer above ground floor level
1079       0.037_wp,       &  !< parameter 87  - thermal conductivity 3rd window layer above ground floor level
1080       0.037_wp,       &  !< parameter 88  - thermal conductivity 4th window layer above ground floor level
1081       1.0_wp,         &  !< parameter 89  - wall fraction roof
1082       0.005_wp,       &  !< parameter 90  - 1st wall layer thickness roof
1083       0.01_wp,        &  !< parameter 91  - 2nd wall layer thickness roof
1084       0.41_wp,        &  !< parameter 92  - 3rd wall layer thickness roof
1085       0.7_wp,         &  !< parameter 93  - 4th wall layer thickness roof
1086       2000000.0_wp,   &  !< parameter 94  - heat capacity 1st/2nd wall layer roof
1087       103000.0_wp,    &  !< parameter 95  - heat capacity 3rd wall layer roof
1088       900000.0_wp,    &  !< parameter 96  - heat capacity 4th wall layer roof
1089       0.35_wp,        &  !< parameter 97  - thermal conductivity 1st/2nd wall layer roof
1090       0.14_wp,        &  !< parameter 98  - thermal conductivity 3rd wall layer roof
1091       0.035_wp,       &  !< parameter 99  - thermal conductivity 4th wall layer roof
1092       0.93_wp,        &  !< parameter 100 - wall emissivity roof
1093       27.0_wp,        &  !< parameter 101 - wall albedo roof
1094       0.0_wp,         &  !< parameter 102 - window fraction roof
1095       0.003_wp,       &  !< parameter 103 - window 1st layer thickness roof
1096       0.006_wp,       &  !< parameter 104 - window 2nd layer thickness roof
1097       0.012_wp,       &  !< parameter 105 - window 3rd layer thickness roof
1098       0.018_wp,       &  !< parameter 106 - window 4th layer thickness roof
1099       1736000.0_wp,   &  !< parameter 107 - heat capacity 1st/2nd window layer roof
1100       1736000.0_wp,   &  !< parameter 108 - heat capacity 3rd window layer roof
1101       1736000.0_wp,   &  !< parameter 109 - heat capacity 4th window layer roof
1102       0.037_wp,       &  !< parameter 110 - thermal conductivity 1st/2nd window layer roof
1103       0.037_wp,       &  !< parameter 111 - thermal conductivity 3rd window layer roof
1104       0.037_wp,       &  !< parameter 112 - thermal conductivity 4th window layer roof
1105       0.8_wp,         &  !< parameter 113 - window emissivity roof
1106       0.6_wp,         &  !< parameter 114 - window transmissivity roof
1107       27.0_wp,        &  !< parameter 115 - window albedo roof
1108       0.86_wp,        &  !< parameter 116 - green emissivity roof
1109       5.0_wp,         &  !< parameter 117 - green albedo roof
1110       0.0_wp,         &  !< parameter 118 - green type roof
1111       0.8_wp,         &  !< parameter 119 - shading factor
1112       0.5_wp,         &  !< parameter 120 - g-value windows
1113       0.6_wp,         &  !< parameter 121 - u-value windows
1114       0.1_wp,         &  !< parameter 122 - basical airflow without occupancy of the room
1115       0.5_wp,         &  !< parameter 123 - additional airflow depend of occupancy of the room
1116       0.8_wp,         &  !< parameter 124 - heat recovery efficiency
1117       2.5_wp,         &  !< parameter 125 - dynamic parameter specific effective surface
1118       80000.0_wp,     &  !< parameter 126 - dynamic parameter innner heatstorage
1119       4.5_wp,         &  !< parameter 127 - ratio internal surface/floor area
1120       100000.0_wp,    &  !< parameter 128 - maximal heating capacity
1121       0.0_wp,         &  !< parameter 129 - maximal cooling capacity
1122       3.0_wp,         &  !< parameter 130 - additional internal heat gains dependent on occupancy of the room
1123       8.0_wp,         &  !< parameter 131 - basic internal heat gains without occupancy of the room
1124       3.0_wp,         &  !< parameter 132 - storey height
1125       0.2_wp,         &  !< parameter 133 - ceiling construction height
1126       0.5_wp,         &  !< parameter 0   - wall fraction above ground floor level
1127       0.5_wp,         &  !< parameter 1   - window fraction above ground floor level
1128       0.0_wp,         &  !< parameter 2   - green fraction above ground floor level
1129       0.0_wp,         &  !< parameter 3   - green fraction roof above ground floor level
1130       1.5_wp,         &  !< parameter 4   - LAI roof
1131       1.5_wp,         &  !< parameter 5   - LAI on wall above ground floor level
1132       2200000.0_wp,   &  !< parameter 6   - heat capacity 1st/2nd wall layer above ground floor level
1133       1400000.0_wp,   &  !< parameter 7   - heat capacity 3rd wall layer above ground floor level
1134       1300000.0_wp,   &  !< parameter 8   - heat capacity 4th wall layer above ground floor level
1135       0.35_wp,        &  !< parameter 9   - thermal conductivity 1st/2nd wall layer above ground floor level
1136       0.8_wp,         &  !< parameter 10  - thermal conductivity 3rd wall layer above ground floor level
1137       2.1_wp,         &  !< parameter 11  - thermal conductivity 4th wall layer above ground floor level
1138       299.15_wp,      &  !< parameter 12  - indoor target summer temperature
1139       293.15_wp,      &  !< parameter 13  - indoor target winter temperature
1140       0.93_wp,        &  !< parameter 14  - wall emissivity above ground floor level
1141       0.86_wp,        &  !< parameter 15  - green emissivity above ground floor level
1142       0.91_wp,        &  !< parameter 16  - window emissivity above ground floor level
1143       0.75_wp,        &  !< parameter 17  - window transmissivity above ground floor level
1144       0.001_wp,       &  !< parameter 18  - z0 roughness above ground floor level
1145       0.0001_wp,      &  !< parameter 19  - z0h/z0g roughness heat/humidity above ground floor level
1146       4.0_wp,         &  !< parameter 20  - ground floor level height
1147       0.55_wp,        &  !< parameter 21  - wall fraction ground floor level
1148       0.45_wp,        &  !< parameter 22  - window fraction ground floor level
1149       0.0_wp,         &  !< parameter 23  - green fraction ground floor level
1150       0.0_wp,         &  !< parameter 24  - green fraction roof ground floor level
1151       1.5_wp,         &  !< parameter 25  - LAI on wall ground floor level
1152       2200000.0_wp,   &  !< parameter 26  - heat capacity 1st/2nd wall layer ground floor level
1153       1400000.0_wp,   &  !< parameter 27  - heat capacity 3rd wall layer ground floor level
1154       1300000.0_wp,   &  !< parameter 28  - heat capacity 4th wall layer ground floor level
1155       0.35_wp,        &  !< parameter 29  - thermal conductivity 1st/2nd wall layer ground floor level
1156       0.8_wp,         &  !< parameter 30  - thermal conductivity 3rd wall layer ground floor level
1157       2.1_wp,         &  !< parameter 31  - thermal conductivity 4th wall layer ground floor level
1158       0.93_wp,        &  !< parameter 32  - wall emissivity ground floor level
1159       0.91_wp,        &  !< parameter 33  - window emissivity ground floor level
1160       0.86_wp,        &  !< parameter 34  - green emissivity ground floor level
1161       0.75_wp,        &  !< parameter 35  - window transmissivity ground floor level
1162       0.01_wp,        &  !< parameter 36  - z0 roughness ground floor level
1163       0.001_wp,       &  !< parameter 37  - z0h/z0q roughness heat/humidity
1164       27.0_wp,        &  !< parameter 38  - wall albedo above ground floor level
1165       5.0_wp,         &  !< parameter 39  - green albedo above ground floor level
1166       27.0_wp,        &  !< parameter 40  - window albedo above ground floor level
1167       0.005_wp,       &  !< parameter 41  - 1st wall layer thickness above ground floor level
1168       0.01_wp,        &  !< parameter 42  - 2nd wall layer thickness above ground floor level
1169       0.39_wp,        &  !< parameter 43  - 3rd wall layer thickness above ground floor level
1170       0.63_wp,        &  !< parameter 44  - 4th wall layer thickness above ground floor level
1171       20000.0_wp,     &  !< parameter 45  - heat capacity wall surface
1172       23.0_wp,        &  !< parameter 46  - thermal conductivity of wall surface
1173       20000.0_wp,     &  !< parameter 47  - heat capacity of window surface
1174       20000.0_wp,     &  !< parameter 48  - heat capacity of green surface
1175       23.0_wp,        &  !< parameter 49  - thermal conductivity of window surface
1176       10.0_wp,        &  !< parameter 50  - thermal conductivty of green surface
1177       1.0_wp,         &  !< parameter 51  - wall fraction ground plate
1178       0.005_wp,       &  !< parameter 52  - 1st wall layer thickness ground plate
1179       0.01_wp,        &  !< parameter 53  - 2nd wall layer thickness ground plate
1180       0.39_wp,        &  !< parameter 54  - 3rd wall layer thickness ground plate
1181       0.63_wp,        &  !< parameter 55  - 4th wall layer thickness ground plate
1182       2200000.0_wp,   &  !< parameter 56  - heat capacity 1st/2nd wall layer ground plate
1183       1400000.0_wp,   &  !< parameter 57  - heat capacity 3rd wall layer ground plate
1184       1300000.0_wp,   &  !< parameter 58  - heat capacity 4th wall layer ground plate
1185       0.35_wp,        &  !< parameter 59  - thermal conductivity 1st/2nd wall layer ground plate
1186       0.8_wp,         &  !< parameter 60  - thermal conductivity 3rd wall layer ground plate
1187       2.1_wp,         &  !< parameter 61  - thermal conductivity 4th wall layer ground plate
1188       0.005_wp,       &  !< parameter 62  - 1st wall layer thickness ground floor level
1189       0.01_wp,        &  !< parameter 63  - 2nd wall layer thickness ground floor level
1190       0.39_wp,        &  !< parameter 64  - 3rd wall layer thickness ground floor level
1191       0.63_wp,        &  !< parameter 65  - 4th wall layer thickness ground floor level
1192       27.0_wp,        &  !< parameter 66  - wall albedo ground floor level
1193       0.003_wp,       &  !< parameter 67  - 1st window layer thickness ground floor level
1194       0.006_wp,       &  !< parameter 68  - 2nd window layer thickness ground floor level
1195       0.012_wp,       &  !< parameter 69  - 3rd window layer thickness ground floor level
1196       0.018_wp,       &  !< parameter 70  - 4th window layer thickness ground floor level
1197       1736000.0_wp,   &  !< parameter 71  - heat capacity 1st/2nd window layer ground floor level
1198       1736000.0_wp,   &  !< parameter 72  - heat capacity 3rd window layer ground floor level
1199       1736000.0_wp,   &  !< parameter 73  - heat capacity 4th window layer ground floor level
1200       0.57_wp,        &  !< parameter 74  - thermal conductivity 1st/2nd window layer ground floor level
1201       0.57_wp,        &  !< parameter 75  - thermal conductivity 3rd window layer ground floor level
1202       0.57_wp,        &  !< parameter 76  - thermal conductivity 4th window layer ground floor level
1203       27.0_wp,        &  !< parameter 77  - window albedo ground floor level
1204       5.0_wp,         &  !< parameter 78  - green albedo ground floor level
1205       0.003_wp,       &  !< parameter 79  - 1st window layer thickness above ground floor level
1206       0.006_wp,       &  !< parameter 80  - 2nd thickness window layer above ground floor level
1207       0.012_wp,       &  !< parameter 81  - 3rd window layer thickness above ground floor level
1208       0.018_wp,       &  !< parameter 82  - 4th window layer thickness above ground floor level
1209       1736000.0_wp,   &  !< parameter 83  - heat capacity 1st/2nd window layer above ground floor level
1210       1736000.0_wp,   &  !< parameter 84  - heat capacity 3rd window layer above ground floor level
1211       1736000.0_wp,   &  !< parameter 85  - heat capacity 4th window layer above ground floor level
1212       0.57_wp,        &  !< parameter 86  - thermal conductivity 1st/2nd window layer above ground floor level
1213       0.57_wp,        &  !< parameter 87  - thermal conductivity 3rd window layer above ground floor level
1214       0.57_wp,        &  !< parameter 88  - thermal conductivity 4th window layer above ground floor level
1215       1.0_wp,         &  !< parameter 89  - wall fraction roof
1216       0.005_wp,       &  !< parameter 90  - 1st wall layer thickness roof
1217       0.01_wp,        &  !< parameter 91  - 2nd wall layer thickness roof
1218       0.39_wp,        &  !< parameter 92  - 3rd wall layer thickness roof
1219       0.63_wp,        &  !< parameter 93  - 4th wall layer thickness roof
1220       2200000.0_wp,   &  !< parameter 94  - heat capacity 1st/2nd wall layer roof
1221       1400000.0_wp,   &  !< parameter 95  - heat capacity 3rd wall layer roof
1222       1300000.0_wp,   &  !< parameter 96  - heat capacity 4th wall layer roof
1223       0.35_wp,        &  !< parameter 97  - thermal conductivity 1st/2nd wall layer roof
1224       0.8_wp,         &  !< parameter 98  - thermal conductivity 3rd wall layer roof
1225       2.1_wp,         &  !< parameter 99  - thermal conductivity 4th wall layer roof
1226       0.93_wp,        &  !< parameter 100 - wall emissivity roof
1227       27.0_wp,        &  !< parameter 101 - wall albedo roof
1228       0.0_wp,         &  !< parameter 102 - window fraction roof
1229       0.003_wp,       &  !< parameter 103 - window 1st layer thickness roof
1230       0.006_wp,       &  !< parameter 104 - window 2nd layer thickness roof
1231       0.012_wp,       &  !< parameter 105 - window 3rd layer thickness roof
1232       0.018_wp,       &  !< parameter 106 - window 4th layer thickness roof
1233       1736000.0_wp,   &  !< parameter 107 - heat capacity 1st/2nd window layer roof
1234       1736000.0_wp,   &  !< parameter 108 - heat capacity 3rd window layer roof
1235       1736000.0_wp,   &  !< parameter 109 - heat capacity 4th window layer roof
1236       0.57_wp,        &  !< parameter 110 - thermal conductivity 1st/2nd window layer roof
1237       0.57_wp,        &  !< parameter 111 - thermal conductivity 3rd window layer roof
1238       0.57_wp,        &  !< parameter 112 - thermal conductivity 4th window layer roof
1239       0.91_wp,        &  !< parameter 113 - window emissivity roof
1240       0.75_wp,        &  !< parameter 114 - window transmissivity roof
1241       27.0_wp,        &  !< parameter 115 - window albedo roof
1242       0.86_wp,        &  !< parameter 116 - green emissivity roof
1243       5.0_wp,         &  !< parameter 117 - green albedo roof
1244       0.0_wp,         &  !< parameter 118 - green type roof
1245       0.8_wp,         &  !< parameter 119 - shading factor
1246       0.76_wp,        &  !< parameter 120 - g-value windows
1247       5.0_wp,         &  !< parameter 121 - u-value windows
1248       0.1_wp,         &  !< parameter 122 - basical airflow without occupancy of the room
1249       1.5_wp,         &  !< parameter 123 - additional airflow depend of occupancy of the room
1250       0.0_wp,         &  !< parameter 124 - heat recovery efficiency
1251       3.5_wp,         &  !< parameter 125 - dynamic parameter specific effective surface
1252       370000.0_wp,    &  !< parameter 126 - dynamic parameter innner heatstorage
1253       4.5_wp,         &  !< parameter 127 - ratio internal surface/floor area
1254       100000.0_wp,    &  !< parameter 128 - maximal heating capacity
1255       0.0_wp,         &  !< parameter 129 - maximal cooling capacity
1256       3.0_wp,         &  !< parameter 130 - additional internal heat gains dependent on occupancy of the room
1257       10.0_wp,        &  !< parameter 131 - basic internal heat gains without occupancy of the room
1258       3.0_wp,         &  !< parameter 132 - storey height
1259       0.2_wp,         &  !< parameter 133 - ceiling construction height
1260       0.5_wp,         &  !< parameter 0   - wall fraction above ground floor level
1261       0.5_wp,         &  !< parameter 1   - window fraction above ground floor level
1262       0.0_wp,         &  !< parameter 2   - green fraction above ground floor level
1263       0.0_wp,         &  !< parameter 3   - green fraction roof above ground floor level
1264       1.5_wp,         &  !< parameter 4   - LAI roof
1265       1.5_wp,         &  !< parameter 5   - LAI on wall above ground floor level
1266       2000000.0_wp,   &  !< parameter 6   - heat capacity 1st/2nd wall layer above ground floor level
1267       103000.0_wp,    &  !< parameter 7   - heat capacity 3rd wall layer above ground floor level
1268       900000.0_wp,    &  !< parameter 8   - heat capacity 4th wall layer above ground floor level
1269       0.35_wp,        &  !< parameter 9   - thermal conductivity 1st/2nd wall layer above ground floor level
1270       0.38_wp,        &  !< parameter 10  - thermal conductivity 3rd wall layer above ground floor level
1271       0.04_wp,        &  !< parameter 11  - thermal conductivity 4th wall layer above ground floor level
1272       299.15_wp,      &  !< parameter 12  - indoor target summer temperature
1273       293.15_wp,      &  !< parameter 13  - indoor target winter temperature
1274       0.92_wp,        &  !< parameter 14  - wall emissivity above ground floor level
1275       0.86_wp,        &  !< parameter 15  - green emissivity above ground floor level
1276       0.87_wp,        &  !< parameter 16  - window emissivity above ground floor level
1277       0.7_wp,         &  !< parameter 17  - window transmissivity above ground floor level
1278       0.001_wp,       &  !< parameter 18  - z0 roughness above ground floor level
1279       0.0001_wp,      &  !< parameter 19  - z0h/z0g roughness heat/humidity above ground floor level
1280       4.0_wp,         &  !< parameter 20  - ground floor level height
1281       0.55_wp,        &  !< parameter 21  - wall fraction ground floor level
1282       0.45_wp,        &  !< parameter 22  - window fraction ground floor level
1283       0.0_wp,         &  !< parameter 23  - green fraction ground floor level
1284       0.0_wp,         &  !< parameter 24  - green fraction roof ground floor level
1285       1.5_wp,         &  !< parameter 25  - LAI on wall ground floor level
1286       2000000.0_wp,   &  !< parameter 26  - heat capacity 1st/2nd wall layer ground floor level
1287       103000.0_wp,    &  !< parameter 27  - heat capacity 3rd wall layer ground floor level
1288       900000.0_wp,    &  !< parameter 28  - heat capacity 4th wall layer ground floor level
1289       0.35_wp,        &  !< parameter 29  - thermal conductivity 1st/2nd wall layer ground floor level
1290       0.38_wp,        &  !< parameter 30  - thermal conductivity 3rd wall layer ground floor level
1291       0.04_wp,        &  !< parameter 31  - thermal conductivity 4th wall layer ground floor level
1292       0.92_wp,        &  !< parameter 32  - wall emissivity ground floor level
1293       0.87_wp,        &  !< parameter 33  - window emissivity ground floor level
1294       0.86_wp,        &  !< parameter 34  - green emissivity ground floor level
1295       0.7_wp,         &  !< parameter 35  - window transmissivity ground floor level
1296       0.01_wp,        &  !< parameter 36  - z0 roughness ground floor level
1297       0.001_wp,       &  !< parameter 37  - z0h/z0q roughness heat/humidity
1298       27.0_wp,        &  !< parameter 38  - wall albedo above ground floor level
1299       5.0_wp,         &  !< parameter 39  - green albedo above ground floor level
1300       27.0_wp,        &  !< parameter 40  - window albedo above ground floor level
1301       0.005_wp,       &  !< parameter 41  - 1st wall layer thickness above ground floor level
1302       0.01_wp,        &  !< parameter 42  - 2nd wall layer thickness above ground floor level
1303       0.31_wp,        &  !< parameter 43  - 3rd wall layer thickness above ground floor level
1304       0.43_wp,        &  !< parameter 44  - 4th wall layer thickness above ground floor level
1305       20000.0_wp,     &  !< parameter 45  - heat capacity wall surface
1306       23.0_wp,        &  !< parameter 46  - thermal conductivity of wall surface
1307       20000.0_wp,     &  !< parameter 47  - heat capacity of window surface
1308       20000.0_wp,     &  !< parameter 48  - heat capacity of green surface
1309       23.0_wp,        &  !< parameter 49  - thermal conductivity of window surface
1310       10.0_wp,        &  !< parameter 50  - thermal conductivty of green surface
1311       1.0_wp,         &  !< parameter 51  - wall fraction ground plate
1312       0.005_wp,       &  !< parameter 52  - 1st wall layer thickness ground plate
1313       0.01_wp,        &  !< parameter 53  - 2nd wall layer thickness ground plate
1314       0.31_wp,        &  !< parameter 54  - 3rd wall layer thickness ground plate
1315       0.43_wp,        &  !< parameter 55  - 4th wall layer thickness ground plate
1316       2000000.0_wp,   &  !< parameter 56  - heat capacity 1st/2nd wall layer ground plate
1317       103000.0_wp,    &  !< parameter 57  - heat capacity 3rd wall layer ground plate
1318       900000.0_wp,    &  !< parameter 58  - heat capacity 4th wall layer ground plate
1319       0.35_wp,        &  !< parameter 59  - thermal conductivity 1st/2nd wall layer ground plate
1320       0.38_wp,        &  !< parameter 60  - thermal conductivity 3rd wall layer ground plate
1321       0.04_wp,        &  !< parameter 61  - thermal conductivity 4th wall layer ground plate
1322       0.005_wp,       &  !< parameter 62  - 1st wall layer thickness ground floor level
1323       0.01_wp,        &  !< parameter 63  - 2nd wall layer thickness ground floor level
1324       0.31_wp,        &  !< parameter 64  - 3rd wall layer thickness ground floor level
1325       0.43_wp,        &  !< parameter 65  - 4th wall layer thickness ground floor level
1326       27.0_wp,        &  !< parameter 66  - wall albedo ground floor level
1327       0.003_wp,       &  !< parameter 67  - 1st window layer thickness ground floor level
1328       0.006_wp,       &  !< parameter 68  - 2nd window layer thickness ground floor level
1329       0.012_wp,       &  !< parameter 69  - 3rd window layer thickness ground floor level
1330       0.018_wp,       &  !< parameter 70  - 4th window layer thickness ground floor level
1331       1736000.0_wp,   &  !< parameter 71  - heat capacity 1st/2nd window layer ground floor level
1332       1736000.0_wp,   &  !< parameter 72  - heat capacity 3rd window layer ground floor level
1333       1736000.0_wp,   &  !< parameter 73  - heat capacity 4th window layer ground floor level
1334       0.11_wp,        &  !< parameter 74  - thermal conductivity 1st/2nd window layer ground floor level
1335       0.11_wp,        &  !< parameter 75  - thermal conductivity 3rd window layer ground floor level
1336       0.11_wp,        &  !< parameter 76  - thermal conductivity 4th window layer ground floor level
1337       27.0_wp,        &  !< parameter 77  - window albedo ground floor level
1338       5.0_wp,         &  !< parameter 78  - green albedo ground floor level
1339       0.003_wp,       &  !< parameter 79  - 1st window layer thickness above ground floor level
1340       0.006_wp,       &  !< parameter 80  - 2nd thickness window layer above ground floor level
1341       0.012_wp,       &  !< parameter 81  - 3rd window layer thickness above ground floor level
1342       0.018_wp,       &  !< parameter 82  - 4th window layer thickness above ground floor level
1343       1736000.0_wp,   &  !< parameter 83  - heat capacity 1st/2nd window layer above ground floor level
1344       1736000.0_wp,   &  !< parameter 84  - heat capacity 3rd window layer above ground floor level
1345       1736000.0_wp,   &  !< parameter 85  - heat capacity 4th window layer above ground floor level
1346       0.11_wp,        &  !< parameter 86  - thermal conductivity 1st/2nd window layer above ground floor level
1347       0.11_wp,        &  !< parameter 87  - thermal conductivity 3rd window layer above ground floor level
1348       0.11_wp,        &  !< parameter 88  - thermal conductivity 4th window layer above ground floor level
1349       1.0_wp,         &  !< parameter 89  - wall fraction roof
1350       0.005_wp,       &  !< parameter 90  - 1st wall layer thickness roof
1351       0.01_wp,        &  !< parameter 91  - 2nd wall layer thickness roof
1352       0.31_wp,        &  !< parameter 92  - 3rd wall layer thickness roof
1353       0.43_wp,        &  !< parameter 93  - 4th wall layer thickness roof
1354       2000000.0_wp,   &  !< parameter 94  - heat capacity 1st/2nd wall layer roof
1355       103000.0_wp,    &  !< parameter 95  - heat capacity 3rd wall layer roof
1356       900000.0_wp,    &  !< parameter 96  - heat capacity 4th wall layer roof
1357       0.35_wp,        &  !< parameter 97  - thermal conductivity 1st/2nd wall layer roof
1358       0.38_wp,        &  !< parameter 98  - thermal conductivity 3rd wall layer roof
1359       0.04_wp,        &  !< parameter 99  - thermal conductivity 4th wall layer roof
1360       0.91_wp,        &  !< parameter 100 - wall emissivity roof
1361       27.0_wp,        &  !< parameter 101 - wall albedo roof
1362       0.0_wp,         &  !< parameter 102 - window fraction roof
1363       0.003_wp,       &  !< parameter 103 - window 1st layer thickness roof
1364       0.006_wp,       &  !< parameter 104 - window 2nd layer thickness roof
1365       0.012_wp,       &  !< parameter 105 - window 3rd layer thickness roof
1366       0.018_wp,       &  !< parameter 106 - window 4th layer thickness roof
1367       1736000.0_wp,   &  !< parameter 107 - heat capacity 1st/2nd window layer roof
1368       1736000.0_wp,   &  !< parameter 108 - heat capacity 3rd window layer roof
1369       1736000.0_wp,   &  !< parameter 109 - heat capacity 4th window layer roof
1370       0.11_wp,        &  !< parameter 110 - thermal conductivity 1st/2nd window layer roof
1371       0.11_wp,        &  !< parameter 111 - thermal conductivity 3rd window layer roof
1372       0.11_wp,        &  !< parameter 112 - thermal conductivity 4th window layer roof
1373       0.87_wp,        &  !< parameter 113 - window emissivity roof
1374       0.7_wp,         &  !< parameter 114 - window transmissivity roof
1375       27.0_wp,        &  !< parameter 115 - window albedo roof
1376       0.86_wp,        &  !< parameter 116 - green emissivity roof
1377       5.0_wp,         &  !< parameter 117 - green albedo roof
1378       0.0_wp,         &  !< parameter 118 - green type roof
1379       0.8_wp,         &  !< parameter 119 - shading factor
1380       0.6_wp,         &  !< parameter 120 - g-value windows
1381       3.0_wp,         &  !< parameter 121 - u-value windows
1382       0.1_wp,         &  !< parameter 122 - basical airflow without occupancy of the room
1383       1.5_wp,         &  !< parameter 123 - additional airflow depend of occupancy of the room
1384       0.65_wp,        &  !< parameter 124 - heat recovery efficiency
1385       2.5_wp,         &  !< parameter 125 - dynamic parameter specific effective surface
1386       165000.0_wp,    &  !< parameter 126 - dynamic parameter innner heatstorage
1387       4.5_wp,         &  !< parameter 127 - ratio internal surface/floor area
1388       100000.0_wp,    &  !< parameter 128 - maximal heating capacity
1389       0.0_wp,         &  !< parameter 129 - maximal cooling capacity
1390       7.0_wp,         &  !< parameter 130 - additional internal heat gains dependent on occupancy of the room
1391       20.0_wp,        &  !< parameter 131 - basic internal heat gains without occupancy of the room
1392       3.0_wp,         &  !< parameter 132 - storey height
1393       0.2_wp,         &  !< parameter 133 - ceiling construction height
1394       0.425_wp,       &  !< parameter 0   - wall fraction above ground floor level
1395       0.575_wp,       &  !< parameter 1   - window fraction above ground floor level
1396       0.0_wp,         &  !< parameter 2   - green fraction above ground floor level
1397       0.0_wp,         &  !< parameter 3   - green fraction roof above ground floor level
1398       1.5_wp,         &  !< parameter 4   - LAI roof
1399       1.5_wp,         &  !< parameter 5   - LAI on wall above ground floor level
1400       2000000.0_wp,   &  !< parameter 6   - heat capacity 1st/2nd wall layer above ground floor level
1401       103000.0_wp,    &  !< parameter 7   - heat capacity 3rd wall layer above ground floor level
1402       900000.0_wp,    &  !< parameter 8   - heat capacity 4th wall layer above ground floor level
1403       0.35_wp,        &  !< parameter 9   - thermal conductivity 1st/2nd wall layer above ground floor level
1404       0.14_wp,        &  !< parameter 10  - thermal conductivity 3rd wall layer above ground floor level
1405       0.035_wp,       &  !< parameter 11  - thermal conductivity 4th wall layer above ground floor level
1406       299.15_wp,      &  !< parameter 12  - indoor target summer temperature
1407       293.15_wp,      &  !< parameter 13  - indoor target winter temperature
1408       0.92_wp,        &  !< parameter 14  - wall emissivity above ground floor level
1409       0.86_wp,        &  !< parameter 15  - green emissivity above ground floor level
1410       0.8_wp,         &  !< parameter 16  - window emissivity above ground floor level
1411       0.6_wp,         &  !< parameter 17  - window transmissivity above ground floor level
1412       0.001_wp,       &  !< parameter 18  - z0 roughness above ground floor level
1413       0.0001_wp,      &  !< parameter 19  - z0h/z0g roughness heat/humidity above ground floor level
1414       4.0_wp,         &  !< parameter 20  - ground floor level height
1415       0.475_wp,       &  !< parameter 21  - wall fraction ground floor level
1416       0.525_wp,       &  !< parameter 22  - window fraction ground floor level
1417       0.0_wp,         &  !< parameter 23  - green fraction ground floor level
1418       0.0_wp,         &  !< parameter 24  - green fraction roof ground floor level
1419       1.5_wp,         &  !< parameter 25  - LAI on wall ground floor level
1420       2000000.0_wp,   &  !< parameter 26  - heat capacity 1st/2nd wall layer ground floor level
1421       103000.0_wp,    &  !< parameter 27  - heat capacity 3rd wall layer ground floor level
1422       900000.0_wp,    &  !< parameter 28  - heat capacity 4th wall layer ground floor level
1423       0.35_wp,        &  !< parameter 29  - thermal conductivity 1st/2nd wall layer ground floor level
1424       0.14_wp,        &  !< parameter 30  - thermal conductivity 3rd wall layer ground floor level
1425       0.035_wp,       &  !< parameter 31  - thermal conductivity 4th wall layer ground floor level
1426       0.92_wp,        &  !< parameter 32  - wall emissivity ground floor level
1427       0.8_wp,         &  !< parameter 33  - window emissivity ground floor level
1428       0.86_wp,        &  !< parameter 34  - green emissivity ground floor level
1429       0.6_wp,         &  !< parameter 35  - window transmissivity ground floor level
1430       0.01_wp,        &  !< parameter 36  - z0 roughness ground floor level
1431       0.001_wp,       &  !< parameter 37  - z0h/z0q roughness heat/humidity
1432       27.0_wp,        &  !< parameter 38  - wall albedo above ground floor level
1433       5.0_wp,         &  !< parameter 39  - green albedo above ground floor level
1434       27.0_wp,        &  !< parameter 40  - window albedo above ground floor level
1435       0.005_wp,       &  !< parameter 41  - 1st wall layer thickness above ground floor level
1436       0.01_wp,        &  !< parameter 42  - 2nd wall layer thickness above ground floor level
1437       0.41_wp,        &  !< parameter 43  - 3rd wall layer thickness above ground floor level
1438       0.7_wp,         &  !< parameter 44  - 4th wall layer thickness above ground floor level
1439       20000.0_wp,     &  !< parameter 45  - heat capacity wall surface
1440       23.0_wp,        &  !< parameter 46  - thermal conductivity of wall surface
1441       20000.0_wp,     &  !< parameter 47  - heat capacity of window surface
1442       20000.0_wp,     &  !< parameter 48  - heat capacity of green surface
1443       23.0_wp,        &  !< parameter 49  - thermal conductivity of window surface
1444       10.0_wp,        &  !< parameter 50  - thermal conductivty of green surface
1445       1.0_wp,         &  !< parameter 51  - wall fraction ground plate
1446       0.005_wp,       &  !< parameter 52  - 1st wall layer thickness ground plate
1447       0.01_wp,        &  !< parameter 53  - 2nd wall layer thickness ground plate
1448       0.41_wp,        &  !< parameter 54  - 3rd wall layer thickness ground plate
1449       0.7_wp,         &  !< parameter 55  - 4th wall layer thickness ground plate
1450       2000000.0_wp,   &  !< parameter 56  - heat capacity 1st/2nd wall layer ground plate
1451       103000.0_wp,    &  !< parameter 57  - heat capacity 3rd wall layer ground plate
1452       900000.0_wp,    &  !< parameter 58  - heat capacity 4th wall layer ground plate
1453       0.35_wp,        &  !< parameter 59  - thermal conductivity 1st/2nd wall layer ground plate
1454       0.14_wp,        &  !< parameter 60  - thermal conductivity 3rd wall layer ground plate
1455       0.035_wp,       &  !< parameter 61  - thermal conductivity 4th wall layer ground plate
1456       0.005_wp,       &  !< parameter 62  - 1st wall layer thickness ground floor level
1457       0.01_wp,        &  !< parameter 63  - 2nd wall layer thickness ground floor level
1458       0.41_wp,        &  !< parameter 64  - 3rd wall layer thickness ground floor level
1459       0.7_wp,         &  !< parameter 65  - 4th wall layer thickness ground floor level
1460       27.0_wp,        &  !< parameter 66  - wall albedo ground floor level
1461       0.003_wp,       &  !< parameter 67  - 1st window layer thickness ground floor level
1462       0.006_wp,       &  !< parameter 68  - 2nd window layer thickness ground floor level
1463       0.012_wp,       &  !< parameter 69  - 3rd window layer thickness ground floor level
1464       0.018_wp,       &  !< parameter 70  - 4th window layer thickness ground floor level
1465       1736000.0_wp,   &  !< parameter 71  - heat capacity 1st/2nd window layer ground floor level
1466       1736000.0_wp,   &  !< parameter 72  - heat capacity 3rd window layer ground floor level
1467       1736000.0_wp,   &  !< parameter 73  - heat capacity 4th window layer ground floor level
1468       0.037_wp,       &  !< parameter 74  - thermal conductivity 1st/2nd window layer ground floor level
1469       0.037_wp,       &  !< parameter 75  - thermal conductivity 3rd window layer ground floor level
1470       0.037_wp,       &  !< parameter 76  - thermal conductivity 4th window layer ground floor level
1471       27.0_wp,        &  !< parameter 77  - window albedo ground floor level
1472       5.0_wp,         &  !< parameter 78  - green albedo ground floor level
1473       0.003_wp,       &  !< parameter 79  - 1st window layer thickness above ground floor level
1474       0.006_wp,       &  !< parameter 80  - 2nd thickness window layer above ground floor level
1475       0.012_wp,       &  !< parameter 81  - 3rd window layer thickness above ground floor level
1476       0.018_wp,       &  !< parameter 82  - 4th window layer thickness above ground floor level
1477       1736000.0_wp,   &  !< parameter 83  - heat capacity 1st/2nd window layer above ground floor level
1478       1736000.0_wp,   &  !< parameter 84  - heat capacity 3rd window layer above ground floor level
1479       1736000.0_wp,   &  !< parameter 85  - heat capacity 4th window layer above ground floor level
1480       0.037_wp,       &  !< parameter 86  - thermal conductivity 1st/2nd window layer above ground floor level
1481       0.037_wp,       &  !< parameter 87  - thermal conductivity 3rd window layer above ground floor level
1482       0.037_wp,       &  !< parameter 88  - thermal conductivity 4th window layer above ground floor level
1483       1.0_wp,         &  !< parameter 89  - wall fraction roof
1484       0.005_wp,       &  !< parameter 90  - 1st wall layer thickness roof
1485       0.01_wp,        &  !< parameter 91  - 2nd wall layer thickness roof
1486       0.41_wp,        &  !< parameter 92  - 3rd wall layer thickness roof
1487       0.7_wp,         &  !< parameter 93  - 4th wall layer thickness roof
1488       2000000.0_wp,   &  !< parameter 94  - heat capacity 1st/2nd wall layer roof
1489       103000.0_wp,    &  !< parameter 95  - heat capacity 3rd wall layer roof
1490       900000.0_wp,    &  !< parameter 96  - heat capacity 4th wall layer roof
1491       0.35_wp,        &  !< parameter 97  - thermal conductivity 1st/2nd wall layer roof
1492       0.14_wp,        &  !< parameter 98  - thermal conductivity 3rd wall layer roof
1493       0.035_wp,       &  !< parameter 99  - thermal conductivity 4th wall layer roof
1494       0.91_wp,        &  !< parameter 100 - wall emissivity roof
1495       27.0_wp,        &  !< parameter 101 - wall albedo roof
1496       0.0_wp,         &  !< parameter 102 - window fraction roof
1497       0.003_wp,       &  !< parameter 103 - window 1st layer thickness roof
1498       0.006_wp,       &  !< parameter 104 - window 2nd layer thickness roof
1499       0.012_wp,       &  !< parameter 105 - window 3rd layer thickness roof
1500       0.018_wp,       &  !< parameter 106 - window 4th layer thickness roof
1501       1736000.0_wp,   &  !< parameter 107 - heat capacity 1st/2nd window layer roof
1502       1736000.0_wp,   &  !< parameter 108 - heat capacity 3rd window layer roof
1503       1736000.0_wp,   &  !< parameter 109 - heat capacity 4th window layer roof
1504       0.037_wp,       &  !< parameter 110 - thermal conductivity 1st/2nd window layer roof
1505       0.037_wp,       &  !< parameter 111 - thermal conductivity 3rd window layer roof
1506       0.037_wp,       &  !< parameter 112 - thermal conductivity 4th window layer roof
1507       0.8_wp,         &  !< parameter 113 - window emissivity roof
1508       0.6_wp,         &  !< parameter 114 - window transmissivity roof
1509       27.0_wp,        &  !< parameter 115 - window albedo roof
1510       0.86_wp,        &  !< parameter 116 - green emissivity roof
1511       5.0_wp,         &  !< parameter 117 - green albedo roof
1512       0.0_wp,         &  !< parameter 118 - green type roof
1513       0.8_wp,         &  !< parameter 119 - shading factor
1514       0.5_wp,         &  !< parameter 120 - g-value windows
1515       0.6_wp,         &  !< parameter 121 - u-value windows
1516       0.1_wp,         &  !< parameter 122 - basical airflow without occupancy of the room
1517       1.5_wp,         &  !< parameter 123 - additional airflow depend of occupancy of the room
1518       0.9_wp,         &  !< parameter 124 - heat recovery efficiency
1519       2.5_wp,         &  !< parameter 125 - dynamic parameter specific effective surface
1520       80000.0_wp,     &  !< parameter 126 - dynamic parameter innner heatstorage
1521       4.5_wp,         &  !< parameter 127 - ratio internal surface/floor area
1522       100000.0_wp,    &  !< parameter 128 - maximal heating capacity
1523       0.0_wp,         &  !< parameter 129 - maximal cooling capacity
1524       5.0_wp,         &  !< parameter 130 - additional internal heat gains dependent on occupancy of the room
1525       15.0_wp,        &  !< parameter 131 - basic internal heat gains without occupancy of the room
1526       3.0_wp,         &  !< parameter 132 - storey height
1527       0.2_wp,         &  !< parameter 133 - ceiling construction height
1528       1.0_wp,         &  !< parameter 0   - wall fraction above ground floor level
1529       0.0_wp,         &  !< parameter 1   - window fraction above ground floor level
1530       0.0_wp,         &  !< parameter 2   - green fraction above ground floor level
1531       0.0_wp,         &  !< parameter 3   - green fraction roof above ground floor level
1532       1.5_wp,         &  !< parameter 4   - LAI roof
1533       1.5_wp,         &  !< parameter 5   - LAI on wall above ground floor level
1534       1950400.0_wp,   &  !< parameter 6   - heat capacity 1st/2nd wall layer above ground floor level
1535       1848000.0_wp,   &  !< parameter 7   - heat capacity 3rd wall layer above ground floor level
1536       1848000.0_wp,   &  !< parameter 8   - heat capacity 4th wall layer above ground floor level
1537       0.7_wp,         &  !< parameter 9   - thermal conductivity 1st/2nd wall layer above ground floor level
1538       1.0_wp,         &  !< parameter 10  - thermal conductivity 3rd wall layer above ground floor level
1539       1.0_wp,         &  !< parameter 11  - thermal conductivity 4th wall layer above ground floor level
1540       299.15_wp,      &  !< parameter 12  - indoor target summer temperature
1541       293.15_wp,      &  !< parameter 13  - indoor target winter temperature
1542       0.9_wp,         &  !< parameter 14  - wall emissivity above ground floor level
1543       0.86_wp,        &  !< parameter 15  - green emissivity above ground floor level
1544       0.8_wp,         &  !< parameter 16  - window emissivity above ground floor level
1545       0.6_wp,         &  !< parameter 17  - window transmissivity above ground floor level
1546       0.001_wp,       &  !< parameter 18  - z0 roughness above ground floor level
1547       0.0001_wp,      &  !< parameter 19  - z0h/z0g roughness heat/humidity above ground floor level
1548       4.0_wp,         &  !< parameter 20  - ground floor level height
1549       1.0_wp,         &  !< parameter 21  - wall fraction ground floor level
1550       0.0_wp,         &  !< parameter 22  - window fraction ground floor level
1551       0.0_wp,         &  !< parameter 23  - green fraction ground floor level
1552       0.0_wp,         &  !< parameter 24  - green fraction roof ground floor level
1553       1.5_wp,         &  !< parameter 25  - LAI on wall ground floor level
1554       1950400.0_wp,   &  !< parameter 26  - heat capacity 1st/2nd wall layer ground floor level
1555       1848000.0_wp,   &  !< parameter 27  - heat capacity 3rd wall layer ground floor level
1556       1848000.0_wp,   &  !< parameter 28  - heat capacity 4th wall layer ground floor level
1557       0.7_wp,         &  !< parameter 29  - thermal conductivity 1st/2nd wall layer ground floor level
1558       1.0_wp,         &  !< parameter 30  - thermal conductivity 3rd wall layer ground floor level
1559       1.0_wp,         &  !< parameter 31  - thermal conductivity 4th wall layer ground floor level
1560       0.9_wp,         &  !< parameter 32  - wall emissivity ground floor level
1561       0.8_wp,         &  !< parameter 33  - window emissivity ground floor level
1562       0.86_wp,        &  !< parameter 34  - green emissivity ground floor level
1563       0.6_wp,         &  !< parameter 35  - window transmissivity ground floor level
1564       0.01_wp,        &  !< parameter 36  - z0 roughness ground floor level
1565       0.001_wp,       &  !< parameter 37  - z0h/z0q roughness heat/humidity
1566       27.0_wp,        &  !< parameter 38  - wall albedo above ground floor level
1567       5.0_wp,         &  !< parameter 39  - green albedo above ground floor level
1568       27.0_wp,        &  !< parameter 40  - window albedo above ground floor level
1569       0.29_wp,        &  !< parameter 41  - 1st wall layer thickness above ground floor level
1570       0.295_wp,       &  !< parameter 42  - 2nd wall layer thickness above ground floor level
1571       0.695_wp,       &  !< parameter 43  - 3rd wall layer thickness above ground floor level
1572       0.985_wp,       &  !< parameter 44  - 4th wall layer thickness above ground floor level
1573       20000.0_wp,     &  !< parameter 45  - heat capacity wall surface
1574       23.0_wp,        &  !< parameter 46  - thermal conductivity of wall surface
1575       20000.0_wp,     &  !< parameter 47  - heat capacity of window surface
1576       20000.0_wp,     &  !< parameter 48  - heat capacity of green surface
1577       23.0_wp,        &  !< parameter 49  - thermal conductivity of window surface
1578       10.0_wp,        &  !< parameter 50  - thermal conductivty of green surface
1579       1.0_wp,         &  !< parameter 51  - wall fraction ground plate
1580       0.29_wp,        &  !< parameter 52  - 1st wall layer thickness ground plate
1581       0.295_wp,       &  !< parameter 53  - 2nd wall layer thickness ground plate
1582       0.695_wp,       &  !< parameter 54  - 3rd wall layer thickness ground plate
1583       0.985_wp,       &  !< parameter 55  - 4th wall layer thickness ground plate
1584       1950400.0_wp,   &  !< parameter 56  - heat capacity 1st/2nd wall layer ground plate
1585       1848000.0_wp,   &  !< parameter 57  - heat capacity 3rd wall layer ground plate
1586       1848000.0_wp,   &  !< parameter 58  - heat capacity 4th wall layer ground plate
1587       0.7_wp,         &  !< parameter 59  - thermal conductivity 1st/2nd wall layer ground plate
1588       1.0_wp,         &  !< parameter 60  - thermal conductivity 3rd wall layer ground plate
1589       1.0_wp,         &  !< parameter 61  - thermal conductivity 4th wall layer ground plate
1590       0.29_wp,        &  !< parameter 62  - 1st wall layer thickness ground floor level
1591       0.295_wp,       &  !< parameter 63  - 2nd wall layer thickness ground floor level
1592       0.695_wp,       &  !< parameter 64  - 3rd wall layer thickness ground floor level
1593       0.985_wp,       &  !< parameter 65  - 4th wall layer thickness ground floor level
1594       27.0_wp,        &  !< parameter 66  - wall albedo ground floor level
1595       0.003_wp,       &  !< parameter 67  - 1st window layer thickness ground floor level
1596       0.006_wp,       &  !< parameter 68  - 2nd window layer thickness ground floor level
1597       0.012_wp,       &  !< parameter 69  - 3rd window layer thickness ground floor level
1598       0.018_wp,       &  !< parameter 70  - 4th window layer thickness ground floor level
1599       1736000.0_wp,   &  !< parameter 71  - heat capacity 1st/2nd window layer ground floor level
1600       1736000.0_wp,   &  !< parameter 72  - heat capacity 3rd window layer ground floor level
1601       1736000.0_wp,   &  !< parameter 73  - heat capacity 4th window layer ground floor level
1602       0.57_wp,        &  !< parameter 74  - thermal conductivity 1st/2nd window layer ground floor level
1603       0.57_wp,        &  !< parameter 75  - thermal conductivity 3rd window layer ground floor level
1604       0.57_wp,        &  !< parameter 76  - thermal conductivity 4th window layer ground floor level
1605       27.0_wp,        &  !< parameter 77  - window albedo ground floor level
1606       5.0_wp,         &  !< parameter 78  - green albedo ground floor level
1607       0.003_wp,       &  !< parameter 79  - 1st window layer thickness above ground floor level
1608       0.006_wp,       &  !< parameter 80  - 2nd thickness window layer above ground floor level
1609       0.012_wp,       &  !< parameter 81  - 3rd window layer thickness above ground floor level
1610       0.018_wp,       &  !< parameter 82  - 4th window layer thickness above ground floor level
1611       1736000.0_wp,   &  !< parameter 83  - heat capacity 1st/2nd window layer above ground floor level
1612       1736000.0_wp,   &  !< parameter 84  - heat capacity 3rd window layer above ground floor level
1613       1736000.0_wp,   &  !< parameter 85  - heat capacity 4th window layer above ground floor level
1614       0.57_wp,        &  !< parameter 86  - thermal conductivity 1st/2nd window layer above ground floor level
1615       0.57_wp,        &  !< parameter 87  - thermal conductivity 3rd window layer above ground floor level
1616       0.57_wp,        &  !< parameter 88  - thermal conductivity 4th window layer above ground floor level
1617       1.0_wp,         &  !< parameter 89  - wall fraction roof
1618       0.29_wp,        &  !< parameter 90  - 1st wall layer thickness roof
1619       0.295_wp,       &  !< parameter 91  - 2nd wall layer thickness roof
1620       0.695_wp,       &  !< parameter 92  - 3rd wall layer thickness roof
1621       0.985_wp,       &  !< parameter 93  - 4th wall layer thickness roof
1622       1950400.0_wp,   &  !< parameter 94  - heat capacity 1st/2nd wall layer roof
1623       1848000.0_wp,   &  !< parameter 95  - heat capacity 3rd wall layer roof
1624       1848000.0_wp,   &  !< parameter 96  - heat capacity 4th wall layer roof
1625       0.7_wp,         &  !< parameter 97  - thermal conductivity 1st/2nd wall layer roof
1626       1.0_wp,         &  !< parameter 98  - thermal conductivity 3rd wall layer roof
1627       1.0_wp,         &  !< parameter 99  - thermal conductivity 4th wall layer roof
1628       0.9_wp,         &  !< parameter 100 - wall emissivity roof
1629       27.0_wp,        &  !< parameter 101 - wall albedo roof
1630       0.0_wp,         &  !< parameter 102 - window fraction roof
1631       0.003_wp,       &  !< parameter 103 - window 1st layer thickness roof
1632       0.006_wp,       &  !< parameter 104 - window 2nd layer thickness roof
1633       0.012_wp,       &  !< parameter 105 - window 3rd layer thickness roof
1634       0.018_wp,       &  !< parameter 106 - window 4th layer thickness roof
1635       1736000.0_wp,   &  !< parameter 107 - heat capacity 1st/2nd window layer roof
1636       1736000.0_wp,   &  !< parameter 108 - heat capacity 3rd window layer roof
1637       1736000.0_wp,   &  !< parameter 109 - heat capacity 4th window layer roof
1638       0.57_wp,        &  !< parameter 110 - thermal conductivity 1st/2nd window layer roof
1639       0.57_wp,        &  !< parameter 111 - thermal conductivity 3rd window layer roof
1640       0.57_wp,        &  !< parameter 112 - thermal conductivity 4th window layer roof
1641       0.8_wp,         &  !< parameter 113 - window emissivity roof
1642       0.6_wp,         &  !< parameter 114 - window transmissivity roof
1643       27.0_wp,        &  !< parameter 115 - window albedo roof
1644       0.86_wp,        &  !< parameter 116 - green emissivity roof
1645       5.0_wp,         &  !< parameter 117 - green albedo roof
1646       0.0_wp,         &  !< parameter 118 - green type roof
1647       0.8_wp,         &  !< parameter 119 - shading factor
1648       100.0_wp,       &  !< parameter 120 - g-value windows
1649       100.0_wp,       &  !< parameter 121 - u-value windows
1650       20.0_wp,        &  !< parameter 122 - basical airflow without occupancy of the room
1651       20.0_wp,        &  !< parameter 123 - additional airflow depend of occupancy of the room
1652       0.0_wp,         &  !< parameter 124 - heat recovery efficiency
1653       1.0_wp,         &  !< parameter 125 - dynamic parameter specific effective surface
1654       1.0_wp,         &  !< parameter 126 - dynamic parameter innner heatstorage
1655       4.5_wp,         &  !< parameter 127 - ratio internal surface/floor area
1656       100000.0_wp,    &  !< parameter 128 - maximal heating capacity
1657       0.0_wp,         &  !< parameter 129 - maximal cooling capacity
1658       0.0_wp,         &  !< parameter 130 - additional internal heat gains dependent on occupancy of the room
1659       0.0_wp,         &  !< parameter 131 - basic internal heat gains without occupancy of the room
1660       3.0_wp,         &  !< parameter 132 - storey height
1661       0.2_wp          &  !< parameter 133 - ceiling construction height
1662       /),             &
1663       (/134, 7/) )
1664
1665!
1666!-- Type for surface temperatures at vertical walls. Is not necessary for horizontal walls.
1667    TYPE t_surf_vertical
1668       REAL(wp), DIMENSION(:), ALLOCATABLE         :: t
1669    END TYPE t_surf_vertical
1670!
1671!-- Type for wall temperatures at vertical walls. Is not necessary for horizontal walls.
1672    TYPE t_wall_vertical
1673       REAL(wp), DIMENSION(:,:), ALLOCATABLE       :: t
1674    END TYPE t_wall_vertical
1675
1676    TYPE surf_type_usm
1677       REAL(wp), DIMENSION(:),   ALLOCATABLE ::  var_usm_1d  !< 1D prognostic variable
1678       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  var_usm_2d  !< 2D prognostic variable
1679    END TYPE surf_type_usm
1680   
1681    TYPE(surf_type_usm), POINTER  ::  m_liq_usm_h,        &  !< liquid water reservoir (m), horizontal surface elements
1682                                      m_liq_usm_h_p          !< progn. liquid water reservoir (m), horizontal surface elements
1683
1684    TYPE(surf_type_usm), TARGET   ::  m_liq_usm_h_1,      &  !<
1685                                      m_liq_usm_h_2          !<
1686
1687    TYPE(surf_type_usm), DIMENSION(:), POINTER  ::        &
1688                                      m_liq_usm_v,        &  !< liquid water reservoir (m), vertical surface elements
1689                                      m_liq_usm_v_p          !< progn. liquid water reservoir (m), vertical surface elements
1690
1691    TYPE(surf_type_usm), DIMENSION(0:3), TARGET   ::      &
1692                                      m_liq_usm_v_1,      &  !<
1693                                      m_liq_usm_v_2          !<
1694
1695    TYPE(surf_type_usm), TARGET ::  tm_liq_usm_h_m      !< liquid water reservoir tendency (m), horizontal surface elements
1696    TYPE(surf_type_usm), DIMENSION(0:3), TARGET ::  tm_liq_usm_v_m      !< liquid water reservoir tendency (m),
1697                                                                        !< vertical surface elements
1698
1699!
1700!-- anthropogenic heat sources
1701    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE        ::  aheat             !< daily average of anthropogenic heat (W/m2)
1702    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  aheatprof         !< diurnal profiles of anthropogenic heat
1703                                                                         !< for particular layers
1704    INTEGER(iwp)                                   ::  naheatlayers = 1  !< number of layers of anthropogenic heat
1705
1706!
1707!-- wall surface model
1708!-- wall surface model constants
1709    INTEGER(iwp), PARAMETER                        :: nzb_wall = 0       !< inner side of the wall model (to be switched)
1710    INTEGER(iwp), PARAMETER                        :: nzt_wall = 3       !< outer side of the wall model (to be switched)
1711    INTEGER(iwp), PARAMETER                        :: nzw = 4            !< number of wall layers (fixed for now)
1712
1713    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default        = (/0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp /)
1714    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default_window = (/0.25_wp,   0.5_wp,    0.75_wp,  1.0_wp /)
1715    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default_green  = (/0.25_wp,   0.5_wp,    0.75_wp,  1.0_wp /)
1716                                                                         !< normalized soil, wall and roof, window and
1717                                                                         !<green layer depths (m/m)
1718
1719    REAL(wp)                                       :: wall_inner_temperature   = 295.0_wp    !< temperature of the inner wall
1720                                                                                             !< surface (~22 degrees C) (K)
1721    REAL(wp)                                       :: roof_inner_temperature   = 295.0_wp    !< temperature of the inner roof
1722                                                                                             !< surface (~22 degrees C) (K)
1723    REAL(wp)                                       :: soil_inner_temperature   = 288.0_wp    !< temperature of the deep soil
1724                                                                                             !< (~15 degrees C) (K)
1725    REAL(wp)                                       :: window_inner_temperature = 295.0_wp    !< temperature of the inner window
1726                                                                                             !< surface (~22 degrees C) (K)
1727
1728    REAL(wp)                                       :: m_total = 0.0_wp  !< weighted total water content of the soil (m3/m3)
1729    INTEGER(iwp)                                   :: soil_type
1730
1731!
1732!-- surface and material model variables for walls, ground, roofs
1733    REAL(wp), DIMENSION(:), ALLOCATABLE            :: zwn                !< normalized wall layer depths (m)
1734    REAL(wp), DIMENSION(:), ALLOCATABLE            :: zwn_window         !< normalized window layer depths (m)
1735    REAL(wp), DIMENSION(:), ALLOCATABLE            :: zwn_green          !< normalized green layer depths (m)
1736
1737    REAL(wp), DIMENSION(:), POINTER                :: t_surf_wall_h
1738    REAL(wp), DIMENSION(:), POINTER                :: t_surf_wall_h_p
1739    REAL(wp), DIMENSION(:), POINTER                :: t_surf_window_h
1740    REAL(wp), DIMENSION(:), POINTER                :: t_surf_window_h_p
1741    REAL(wp), DIMENSION(:), POINTER                :: t_surf_green_h
1742    REAL(wp), DIMENSION(:), POINTER                :: t_surf_green_h_p
1743
1744    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_wall_h_1
1745    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_wall_h_2
1746    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_window_h_1
1747    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_window_h_2
1748    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_green_h_1
1749    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_green_h_2
1750
1751    TYPE(t_surf_vertical), DIMENSION(:), POINTER   ::  t_surf_wall_v
1752    TYPE(t_surf_vertical), DIMENSION(:), POINTER   ::  t_surf_wall_v_p
1753    TYPE(t_surf_vertical), DIMENSION(:), POINTER   ::  t_surf_window_v
1754    TYPE(t_surf_vertical), DIMENSION(:), POINTER   ::  t_surf_window_v_p
1755    TYPE(t_surf_vertical), DIMENSION(:), POINTER   ::  t_surf_green_v
1756    TYPE(t_surf_vertical), DIMENSION(:), POINTER   ::  t_surf_green_v_p
1757
1758    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_wall_v_1
1759    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_wall_v_2
1760    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_window_v_1
1761    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_window_v_2
1762    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_green_v_1
1763    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_green_v_2
1764
1765!
1766!-- Energy balance variables
1767!-- parameters of the land, roof and wall surfaces
1768
1769    REAL(wp), DIMENSION(:,:), POINTER                :: t_wall_h, t_wall_h_p
1770    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_wall_h_1, t_wall_h_2
1771    REAL(wp), DIMENSION(:,:), POINTER                :: t_window_h, t_window_h_p
1772    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_window_h_1, t_window_h_2
1773    REAL(wp), DIMENSION(:,:), POINTER                :: t_green_h, t_green_h_p
1774    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_green_h_1, t_green_h_2
1775    REAL(wp), DIMENSION(:,:), POINTER                :: swc_h, rootfr_h, wilt_h, fc_h, swc_sat_h, swc_h_p, swc_res_h
1776    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: swc_h_1, rootfr_h_1, &
1777                                                        wilt_h_1, fc_h_1, swc_sat_h_1, swc_h_2, swc_res_h_1
1778   
1779
1780    TYPE(t_wall_vertical), DIMENSION(:), POINTER   :: t_wall_v, t_wall_v_p
1781    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_wall_v_1, t_wall_v_2
1782    TYPE(t_wall_vertical), DIMENSION(:), POINTER   :: t_window_v, t_window_v_p
1783    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_window_v_1, t_window_v_2
1784    TYPE(t_wall_vertical), DIMENSION(:), POINTER   :: t_green_v, t_green_v_p
1785    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_green_v_1, t_green_v_2
1786    TYPE(t_wall_vertical), DIMENSION(:), POINTER   :: swc_v, swc_v_p
1787    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: swc_v_1, swc_v_2
1788
1789!
1790!-- Surface and material parameters classes (surface_type)
1791!-- albedo, emissivity, lambda_surf, roughness, thickness, volumetric heat capacity, thermal conductivity
1792    INTEGER(iwp)                                   :: n_surface_types       !< number of the wall type categories
1793    INTEGER(iwp), PARAMETER                        :: n_surface_params = 9  !< number of parameters for each type of the wall
1794    INTEGER(iwp), PARAMETER                        :: ialbedo  = 1          !< albedo of the surface
1795    INTEGER(iwp), PARAMETER                        :: iemiss   = 2          !< emissivity of the surface
1796    INTEGER(iwp), PARAMETER                        :: ilambdas = 3          !< heat conductivity lambda S between surface
1797                                                                            !< and material ( W m-2 K-1 )
1798    INTEGER(iwp), PARAMETER                        :: irough   = 4          !< roughness length z0 for movements
1799    INTEGER(iwp), PARAMETER                        :: iroughh  = 5          !< roughness length z0h for scalars
1800                                                                            !< (heat, humidity,...)
1801    INTEGER(iwp), PARAMETER                        :: icsurf   = 6          !< Surface skin layer heat capacity (J m-2 K-1 )
1802    INTEGER(iwp), PARAMETER                        :: ithick   = 7          !< thickness of the surface (wall, roof, land)  ( m )
1803    INTEGER(iwp), PARAMETER                        :: irhoC    = 8          !< volumetric heat capacity rho*C of
1804                                                                            !< the material ( J m-3 K-1 )
1805    INTEGER(iwp), PARAMETER                        :: ilambdah = 9          !< thermal conductivity lambda H
1806                                                                            !< of the wall (W m-1 K-1 )
1807    CHARACTER(12), DIMENSION(:), ALLOCATABLE       :: surface_type_names    !< names of wall types (used only for reports)
1808    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        :: surface_type_codes    !< codes of wall types
1809    REAL(wp), DIMENSION(:,:), ALLOCATABLE          :: surface_params        !< parameters of wall types
1810
1811!
1812!-- interfaces of subroutines accessed from outside of this module
1813    INTERFACE usm_3d_data_averaging
1814       MODULE PROCEDURE usm_3d_data_averaging
1815    END INTERFACE usm_3d_data_averaging
1816
1817    INTERFACE usm_boundary_condition
1818       MODULE PROCEDURE usm_boundary_condition
1819    END INTERFACE usm_boundary_condition
1820
1821    INTERFACE usm_check_data_output
1822       MODULE PROCEDURE usm_check_data_output
1823    END INTERFACE usm_check_data_output
1824   
1825    INTERFACE usm_check_parameters
1826       MODULE PROCEDURE usm_check_parameters
1827    END INTERFACE usm_check_parameters
1828   
1829    INTERFACE usm_data_output_3d
1830       MODULE PROCEDURE usm_data_output_3d
1831    END INTERFACE usm_data_output_3d
1832   
1833    INTERFACE usm_define_netcdf_grid
1834       MODULE PROCEDURE usm_define_netcdf_grid
1835    END INTERFACE usm_define_netcdf_grid
1836
1837    INTERFACE usm_init
1838       MODULE PROCEDURE usm_init
1839    END INTERFACE usm_init
1840
1841    INTERFACE usm_init_arrays
1842       MODULE PROCEDURE usm_init_arrays
1843    END INTERFACE usm_init_arrays
1844
1845    INTERFACE usm_material_heat_model
1846       MODULE PROCEDURE usm_material_heat_model
1847    END INTERFACE usm_material_heat_model
1848   
1849    INTERFACE usm_green_heat_model
1850       MODULE PROCEDURE usm_green_heat_model
1851    END INTERFACE usm_green_heat_model
1852   
1853    INTERFACE usm_parin
1854       MODULE PROCEDURE usm_parin
1855    END INTERFACE usm_parin
1856
1857    INTERFACE usm_rrd_local
1858       MODULE PROCEDURE usm_rrd_local
1859    END INTERFACE usm_rrd_local
1860
1861    INTERFACE usm_surface_energy_balance
1862       MODULE PROCEDURE usm_surface_energy_balance
1863    END INTERFACE usm_surface_energy_balance
1864   
1865    INTERFACE usm_swap_timelevel
1866       MODULE PROCEDURE usm_swap_timelevel
1867    END INTERFACE usm_swap_timelevel
1868       
1869    INTERFACE usm_wrd_local
1870       MODULE PROCEDURE usm_wrd_local
1871    END INTERFACE usm_wrd_local
1872
1873   
1874    SAVE
1875
1876    PRIVATE 
1877
1878!
1879!-- Public functions
1880    PUBLIC usm_boundary_condition, usm_check_parameters, usm_init,               &
1881           usm_rrd_local,                                                        & 
1882           usm_surface_energy_balance, usm_material_heat_model,                  &
1883           usm_swap_timelevel, usm_check_data_output, usm_3d_data_averaging,     &
1884           usm_data_output_3d, usm_define_netcdf_grid, usm_parin,                &
1885           usm_wrd_local, usm_init_arrays
1886
1887!
1888!-- Public parameters, constants and initial values
1889    PUBLIC usm_anthropogenic_heat, usm_material_model, usm_wall_mod, &
1890           usm_green_heat_model, building_pars,                      &
1891           nzb_wall, nzt_wall, t_wall_h, t_wall_v,                   &
1892           t_window_h, t_window_v, building_type
1893
1894
1895
1896 CONTAINS
1897
1898!------------------------------------------------------------------------------!
1899! Description:
1900! ------------
1901!> This subroutine creates the necessary indices of the urban surfaces
1902!> and plant canopy and it allocates the needed arrays for USM
1903!------------------------------------------------------------------------------!
1904    SUBROUTINE usm_init_arrays
1905   
1906        IMPLICIT NONE
1907       
1908        INTEGER(iwp) ::  l
1909
1910        CALL location_message( 'initializing and allocating urban surfaces', .FALSE. )
1911
1912!
1913!--     Allocate radiation arrays which are part of the new data type.
1914!--     For horizontal surfaces.
1915        ALLOCATE ( surf_usm_h%surfhf(1:surf_usm_h%ns)    )
1916        ALLOCATE ( surf_usm_h%rad_net_l(1:surf_usm_h%ns) )
1917!
1918!--     For vertical surfaces
1919        DO  l = 0, 3
1920           ALLOCATE ( surf_usm_v(l)%surfhf(1:surf_usm_v(l)%ns)    )
1921           ALLOCATE ( surf_usm_v(l)%rad_net_l(1:surf_usm_v(l)%ns) )
1922        ENDDO
1923
1924!
1925!--     Wall surface model
1926!--     allocate arrays for wall surface model and define pointers
1927!--     allocate array of wall types and wall parameters
1928        ALLOCATE ( surf_usm_h%surface_types(1:surf_usm_h%ns)      )
1929        ALLOCATE ( surf_usm_h%building_type(1:surf_usm_h%ns)      )
1930        ALLOCATE ( surf_usm_h%building_type_name(1:surf_usm_h%ns) )
1931        surf_usm_h%building_type      = 0
1932        surf_usm_h%building_type_name = 'none'
1933        DO  l = 0, 3
1934           ALLOCATE ( surf_usm_v(l)%surface_types(1:surf_usm_v(l)%ns)      )
1935           ALLOCATE ( surf_usm_v(l)%building_type(1:surf_usm_v(l)%ns)      )
1936           ALLOCATE ( surf_usm_v(l)%building_type_name(1:surf_usm_v(l)%ns) )
1937           surf_usm_v(l)%building_type      = 0
1938           surf_usm_v(l)%building_type_name = 'none'
1939        ENDDO
1940!
1941!--     Allocate albedo_type and albedo. Each surface element
1942!--     has 3 values, 0: wall fraction, 1: green fraction, 2: window fraction.
1943        ALLOCATE ( surf_usm_h%albedo_type(0:2,1:surf_usm_h%ns) )
1944        ALLOCATE ( surf_usm_h%albedo(0:2,1:surf_usm_h%ns)      )
1945        surf_usm_h%albedo_type = albedo_type
1946        DO  l = 0, 3
1947           ALLOCATE ( surf_usm_v(l)%albedo_type(0:2,1:surf_usm_v(l)%ns) )
1948           ALLOCATE ( surf_usm_v(l)%albedo(0:2,1:surf_usm_v(l)%ns)      )
1949           surf_usm_v(l)%albedo_type = albedo_type
1950        ENDDO       
1951
1952!
1953!--     Allocate indoor target temperature for summer and winter
1954        ALLOCATE ( surf_usm_h%target_temp_summer(1:surf_usm_h%ns) )
1955        ALLOCATE ( surf_usm_h%target_temp_winter(1:surf_usm_h%ns) )
1956        DO  l = 0, 3
1957           ALLOCATE ( surf_usm_v(l)%target_temp_summer(1:surf_usm_v(l)%ns) )
1958           ALLOCATE ( surf_usm_v(l)%target_temp_winter(1:surf_usm_v(l)%ns) )
1959        ENDDO
1960!
1961!--     In case the indoor model is applied, allocate memory for waste heat
1962!--     and indoor temperature.
1963        IF ( indoor_model )  THEN
1964           ALLOCATE ( surf_usm_h%waste_heat(1:surf_usm_h%ns) )
1965           surf_usm_h%waste_heat = 0.0_wp
1966           DO  l = 0, 3
1967              ALLOCATE ( surf_usm_v(l)%waste_heat(1:surf_usm_v(l)%ns) )
1968              surf_usm_v(l)%waste_heat = 0.0_wp
1969           ENDDO
1970        ENDIF
1971!
1972!--     Allocate flag indicating ground floor level surface elements
1973        ALLOCATE ( surf_usm_h%ground_level(1:surf_usm_h%ns) ) 
1974        DO  l = 0, 3
1975           ALLOCATE ( surf_usm_v(l)%ground_level(1:surf_usm_v(l)%ns) )
1976        ENDDO   
1977!
1978!--      Allocate arrays for relative surface fraction.
1979!--      0 - wall fraction, 1 - green fraction, 2 - window fraction
1980         ALLOCATE ( surf_usm_h%frac(0:2,1:surf_usm_h%ns) )
1981         surf_usm_h%frac = 0.0_wp
1982         DO  l = 0, 3
1983            ALLOCATE ( surf_usm_v(l)%frac(0:2,1:surf_usm_v(l)%ns) )
1984            surf_usm_v(l)%frac = 0.0_wp
1985         ENDDO
1986
1987!
1988!--     wall and roof surface parameters. First for horizontal surfaces
1989        ALLOCATE ( surf_usm_h%isroof_surf(1:surf_usm_h%ns)        )
1990        ALLOCATE ( surf_usm_h%lambda_surf(1:surf_usm_h%ns)        )
1991        ALLOCATE ( surf_usm_h%lambda_surf_window(1:surf_usm_h%ns) )
1992        ALLOCATE ( surf_usm_h%lambda_surf_green(1:surf_usm_h%ns)  )
1993        ALLOCATE ( surf_usm_h%c_surface(1:surf_usm_h%ns)          )
1994        ALLOCATE ( surf_usm_h%c_surface_window(1:surf_usm_h%ns)   )
1995        ALLOCATE ( surf_usm_h%c_surface_green(1:surf_usm_h%ns)    )
1996        ALLOCATE ( surf_usm_h%transmissivity(1:surf_usm_h%ns)     )
1997        ALLOCATE ( surf_usm_h%lai(1:surf_usm_h%ns)                )
1998        ALLOCATE ( surf_usm_h%emissivity(0:2,1:surf_usm_h%ns)     )
1999        ALLOCATE ( surf_usm_h%r_a(1:surf_usm_h%ns)                )
2000        ALLOCATE ( surf_usm_h%r_a_green(1:surf_usm_h%ns)          )
2001        ALLOCATE ( surf_usm_h%r_a_window(1:surf_usm_h%ns)         )
2002        ALLOCATE ( surf_usm_h%green_type_roof(1:surf_usm_h%ns)    )
2003        ALLOCATE ( surf_usm_h%r_s(1:surf_usm_h%ns)                )
2004       
2005!
2006!--     For vertical surfaces.
2007        DO  l = 0, 3
2008           ALLOCATE ( surf_usm_v(l)%lambda_surf(1:surf_usm_v(l)%ns)        )
2009           ALLOCATE ( surf_usm_v(l)%c_surface(1:surf_usm_v(l)%ns)          )
2010           ALLOCATE ( surf_usm_v(l)%lambda_surf_window(1:surf_usm_v(l)%ns) )
2011           ALLOCATE ( surf_usm_v(l)%c_surface_window(1:surf_usm_v(l)%ns)   )
2012           ALLOCATE ( surf_usm_v(l)%lambda_surf_green(1:surf_usm_v(l)%ns)  )
2013           ALLOCATE ( surf_usm_v(l)%c_surface_green(1:surf_usm_v(l)%ns)    )
2014           ALLOCATE ( surf_usm_v(l)%transmissivity(1:surf_usm_v(l)%ns)     )
2015           ALLOCATE ( surf_usm_v(l)%lai(1:surf_usm_v(l)%ns)                )
2016           ALLOCATE ( surf_usm_v(l)%emissivity(0:2,1:surf_usm_v(l)%ns)     )
2017           ALLOCATE ( surf_usm_v(l)%r_a(1:surf_usm_v(l)%ns)                )
2018           ALLOCATE ( surf_usm_v(l)%r_a_green(1:surf_usm_v(l)%ns)          )
2019           ALLOCATE ( surf_usm_v(l)%r_a_window(1:surf_usm_v(l)%ns)         )           
2020           ALLOCATE ( surf_usm_v(l)%r_s(1:surf_usm_v(l)%ns)                )
2021        ENDDO
2022
2023!       
2024!--     allocate wall and roof material parameters. First for horizontal surfaces
2025        ALLOCATE ( surf_usm_h%thickness_wall(1:surf_usm_h%ns)                    )
2026        ALLOCATE ( surf_usm_h%thickness_window(1:surf_usm_h%ns)                  )
2027        ALLOCATE ( surf_usm_h%thickness_green(1:surf_usm_h%ns)                   )
2028        ALLOCATE ( surf_usm_h%lambda_h(nzb_wall:nzt_wall,1:surf_usm_h%ns)        )
2029        ALLOCATE ( surf_usm_h%rho_c_wall(nzb_wall:nzt_wall,1:surf_usm_h%ns)      )
2030        ALLOCATE ( surf_usm_h%lambda_h_window(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
2031        ALLOCATE ( surf_usm_h%rho_c_window(nzb_wall:nzt_wall,1:surf_usm_h%ns)    )
2032        ALLOCATE ( surf_usm_h%lambda_h_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)  )
2033        ALLOCATE ( surf_usm_h%rho_c_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)     )
2034
2035        ALLOCATE ( surf_usm_h%rho_c_total_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)    )
2036        ALLOCATE ( surf_usm_h%n_vg_green(1:surf_usm_h%ns)                             )
2037        ALLOCATE ( surf_usm_h%alpha_vg_green(1:surf_usm_h%ns)                         )
2038        ALLOCATE ( surf_usm_h%l_vg_green(1:surf_usm_h%ns)                             )
2039        ALLOCATE ( surf_usm_h%gamma_w_green_sat(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)  )
2040        ALLOCATE ( surf_usm_h%lambda_w_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)       )
2041        ALLOCATE ( surf_usm_h%gamma_w_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)        )
2042        ALLOCATE ( surf_usm_h%tswc_h_m(nzb_wall:nzt_wall,1:surf_usm_h%ns)             )
2043
2044!
2045!--     For vertical surfaces.
2046        DO  l = 0, 3
2047           ALLOCATE ( surf_usm_v(l)%thickness_wall(1:surf_usm_v(l)%ns)                    )
2048           ALLOCATE ( surf_usm_v(l)%thickness_window(1:surf_usm_v(l)%ns)                  )
2049           ALLOCATE ( surf_usm_v(l)%thickness_green(1:surf_usm_v(l)%ns)                   )
2050           ALLOCATE ( surf_usm_v(l)%lambda_h(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)        )
2051           ALLOCATE ( surf_usm_v(l)%rho_c_wall(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)      )
2052           ALLOCATE ( surf_usm_v(l)%lambda_h_window(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
2053           ALLOCATE ( surf_usm_v(l)%rho_c_window(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)    )
2054           ALLOCATE ( surf_usm_v(l)%lambda_h_green(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)  )
2055           ALLOCATE ( surf_usm_v(l)%rho_c_green(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)     )
2056        ENDDO
2057
2058!
2059!--     allocate green wall and roof vegetation and soil parameters. First horizontal surfaces
2060        ALLOCATE ( surf_usm_h%g_d(1:surf_usm_h%ns)              )
2061        ALLOCATE ( surf_usm_h%c_liq(1:surf_usm_h%ns)            )
2062        ALLOCATE ( surf_usm_h%qsws_liq(1:surf_usm_h%ns)         )
2063        ALLOCATE ( surf_usm_h%qsws_veg(1:surf_usm_h%ns)         )
2064        ALLOCATE ( surf_usm_h%r_canopy(1:surf_usm_h%ns)         )
2065        ALLOCATE ( surf_usm_h%r_canopy_min(1:surf_usm_h%ns)     )
2066        ALLOCATE ( surf_usm_h%qsws_eb(1:surf_usm_h%ns)          )
2067        ALLOCATE ( surf_usm_h%pt_10cm(1:surf_usm_h%ns)          ) 
2068        ALLOCATE ( surf_usm_h%pt_2m(1:surf_usm_h%ns)            ) 
2069
2070!
2071!--     For vertical surfaces.
2072        DO  l = 0, 3
2073          ALLOCATE ( surf_usm_v(l)%g_d(1:surf_usm_v(l)%ns)              )
2074          ALLOCATE ( surf_usm_v(l)%c_liq(1:surf_usm_v(l)%ns)            )
2075          ALLOCATE ( surf_usm_v(l)%qsws_liq(1:surf_usm_v(l)%ns)         )
2076          ALLOCATE ( surf_usm_v(l)%qsws_veg(1:surf_usm_v(l)%ns)         )
2077          ALLOCATE ( surf_usm_v(l)%qsws_eb(1:surf_usm_v(l)%ns)          )
2078          ALLOCATE ( surf_usm_v(l)%r_canopy(1:surf_usm_v(l)%ns)         )
2079          ALLOCATE ( surf_usm_v(l)%r_canopy_min(1:surf_usm_v(l)%ns)     )
2080          ALLOCATE ( surf_usm_v(l)%pt_10cm(1:surf_usm_v(l)%ns)          )
2081        ENDDO
2082
2083!
2084!--     allocate wall and roof layers sizes. For horizontal surfaces.
2085        ALLOCATE ( zwn(nzb_wall:nzt_wall)                                        )
2086        ALLOCATE ( surf_usm_h%dz_wall(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)       )
2087        ALLOCATE ( zwn_window(nzb_wall:nzt_wall)                                 )
2088        ALLOCATE ( surf_usm_h%dz_window(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)     )
2089        ALLOCATE ( zwn_green(nzb_wall:nzt_wall)                                  )
2090        ALLOCATE ( surf_usm_h%dz_green(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)      )
2091        ALLOCATE ( surf_usm_h%ddz_wall(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)      )
2092        ALLOCATE ( surf_usm_h%dz_wall_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)    )
2093        ALLOCATE ( surf_usm_h%ddz_wall_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)   )
2094        ALLOCATE ( surf_usm_h%zw(nzb_wall:nzt_wall,1:surf_usm_h%ns)              )
2095        ALLOCATE ( surf_usm_h%ddz_window(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)    )
2096        ALLOCATE ( surf_usm_h%dz_window_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)  )
2097        ALLOCATE ( surf_usm_h%ddz_window_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
2098        ALLOCATE ( surf_usm_h%zw_window(nzb_wall:nzt_wall,1:surf_usm_h%ns)       )
2099        ALLOCATE ( surf_usm_h%ddz_green(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)     )
2100        ALLOCATE ( surf_usm_h%dz_green_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)   )
2101        ALLOCATE ( surf_usm_h%ddz_green_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)  )
2102        ALLOCATE ( surf_usm_h%zw_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)        )
2103
2104!
2105!--     For vertical surfaces.
2106        DO  l = 0, 3
2107           ALLOCATE ( surf_usm_v(l)%dz_wall(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)       )
2108           ALLOCATE ( surf_usm_v(l)%dz_window(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)     )
2109           ALLOCATE ( surf_usm_v(l)%dz_green(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)      )
2110           ALLOCATE ( surf_usm_v(l)%ddz_wall(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)      )
2111           ALLOCATE ( surf_usm_v(l)%dz_wall_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)    )
2112           ALLOCATE ( surf_usm_v(l)%ddz_wall_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)   )
2113           ALLOCATE ( surf_usm_v(l)%zw(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)              )
2114           ALLOCATE ( surf_usm_v(l)%ddz_window(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)    )
2115           ALLOCATE ( surf_usm_v(l)%dz_window_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)  )
2116           ALLOCATE ( surf_usm_v(l)%ddz_window_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
2117           ALLOCATE ( surf_usm_v(l)%zw_window(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)       )
2118           ALLOCATE ( surf_usm_v(l)%ddz_green(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)     )
2119           ALLOCATE ( surf_usm_v(l)%dz_green_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)   )
2120           ALLOCATE ( surf_usm_v(l)%ddz_green_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)  )
2121           ALLOCATE ( surf_usm_v(l)%zw_green(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)        )
2122        ENDDO
2123
2124!
2125!--     allocate wall and roof temperature arrays, for horizontal walls
2126!
2127!--     Allocate if required. Note, in case of restarts, some of these arrays
2128!--     might be already allocated.
2129        IF ( .NOT. ALLOCATED( t_surf_wall_h_1 ) )                              &
2130           ALLOCATE ( t_surf_wall_h_1(1:surf_usm_h%ns) )
2131        IF ( .NOT. ALLOCATED( t_surf_wall_h_2 ) )                              &
2132           ALLOCATE ( t_surf_wall_h_2(1:surf_usm_h%ns) )
2133        IF ( .NOT. ALLOCATED( t_wall_h_1 ) )                                   &           
2134           ALLOCATE ( t_wall_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2135        IF ( .NOT. ALLOCATED( t_wall_h_2 ) )                                   &           
2136           ALLOCATE ( t_wall_h_2(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )         
2137        IF ( .NOT. ALLOCATED( t_surf_window_h_1 ) )                            &
2138           ALLOCATE ( t_surf_window_h_1(1:surf_usm_h%ns) )
2139        IF ( .NOT. ALLOCATED( t_surf_window_h_2 ) )                            &
2140           ALLOCATE ( t_surf_window_h_2(1:surf_usm_h%ns) )
2141        IF ( .NOT. ALLOCATED( t_window_h_1 ) )                                 &           
2142           ALLOCATE ( t_window_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2143        IF ( .NOT. ALLOCATED( t_window_h_2 ) )                                 &           
2144           ALLOCATE ( t_window_h_2(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )         
2145        IF ( .NOT. ALLOCATED( t_surf_green_h_1 ) )                             &
2146           ALLOCATE ( t_surf_green_h_1(1:surf_usm_h%ns) )
2147        IF ( .NOT. ALLOCATED( t_surf_green_h_2 ) )                             &
2148           ALLOCATE ( t_surf_green_h_2(1:surf_usm_h%ns) )
2149        IF ( .NOT. ALLOCATED( t_green_h_1 ) )                                  &           
2150           ALLOCATE ( t_green_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2151        IF ( .NOT. ALLOCATED( t_green_h_2 ) )                                  &           
2152           ALLOCATE ( t_green_h_2(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )         
2153        IF ( .NOT. ALLOCATED( swc_h_1 ) )                                      &           
2154           ALLOCATE ( swc_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2155        IF ( .NOT. ALLOCATED( swc_sat_h_1 ) )                                  &           
2156           ALLOCATE ( swc_sat_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2157        IF ( .NOT. ALLOCATED( swc_res_h_1 ) )                                  &           
2158           ALLOCATE ( swc_res_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2159        IF ( .NOT. ALLOCATED( swc_h_2 ) )                                      &           
2160           ALLOCATE ( swc_h_2(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )
2161        IF ( .NOT. ALLOCATED( rootfr_h_1 ) )                                   &           
2162           ALLOCATE ( rootfr_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2163        IF ( .NOT. ALLOCATED( wilt_h_1 ) )                                     &           
2164           ALLOCATE ( wilt_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2165        IF ( .NOT. ALLOCATED( fc_h_1 ) )                                       &           
2166           ALLOCATE ( fc_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
2167
2168        IF ( .NOT. ALLOCATED( m_liq_usm_h_1%var_usm_1d ) )                     &
2169           ALLOCATE ( m_liq_usm_h_1%var_usm_1d(1:surf_usm_h%ns) )
2170        IF ( .NOT. ALLOCATED( m_liq_usm_h_2%var_usm_1d ) )                     &
2171           ALLOCATE ( m_liq_usm_h_2%var_usm_1d(1:surf_usm_h%ns) )
2172           
2173!           
2174!--     initial assignment of the pointers
2175        t_wall_h    => t_wall_h_1;   t_wall_h_p   => t_wall_h_2
2176        t_window_h  => t_window_h_1; t_window_h_p => t_window_h_2
2177        t_green_h   => t_green_h_1;  t_green_h_p  => t_green_h_2
2178        t_surf_wall_h   => t_surf_wall_h_1;   t_surf_wall_h_p   => t_surf_wall_h_2           
2179        t_surf_window_h => t_surf_window_h_1; t_surf_window_h_p => t_surf_window_h_2 
2180        t_surf_green_h  => t_surf_green_h_1;  t_surf_green_h_p  => t_surf_green_h_2           
2181        m_liq_usm_h     => m_liq_usm_h_1;     m_liq_usm_h_p     => m_liq_usm_h_2
2182        swc_h     => swc_h_1; swc_h_p => swc_h_2
2183        swc_sat_h => swc_sat_h_1
2184        swc_res_h => swc_res_h_1
2185        rootfr_h  => rootfr_h_1
2186        wilt_h    => wilt_h_1
2187        fc_h      => fc_h_1
2188
2189!
2190!--     allocate wall and roof temperature arrays, for vertical walls if required
2191!
2192!--     Allocate if required. Note, in case of restarts, some of these arrays
2193!--     might be already allocated.
2194        DO  l = 0, 3
2195           IF ( .NOT. ALLOCATED( t_surf_wall_v_1(l)%t ) )                      &
2196              ALLOCATE ( t_surf_wall_v_1(l)%t(1:surf_usm_v(l)%ns) )
2197           IF ( .NOT. ALLOCATED( t_surf_wall_v_2(l)%t ) )                      &
2198              ALLOCATE ( t_surf_wall_v_2(l)%t(1:surf_usm_v(l)%ns) )
2199           IF ( .NOT. ALLOCATED( t_wall_v_1(l)%t ) )                           &           
2200              ALLOCATE ( t_wall_v_1(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
2201           IF ( .NOT. ALLOCATED( t_wall_v_2(l)%t ) )                           &           
2202              ALLOCATE ( t_wall_v_2(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
2203           IF ( .NOT. ALLOCATED( t_surf_window_v_1(l)%t ) )                    &
2204              ALLOCATE ( t_surf_window_v_1(l)%t(1:surf_usm_v(l)%ns) )
2205           IF ( .NOT. ALLOCATED( t_surf_window_v_2(l)%t ) )                    &
2206              ALLOCATE ( t_surf_window_v_2(l)%t(1:surf_usm_v(l)%ns) )
2207           IF ( .NOT. ALLOCATED( t_window_v_1(l)%t ) )                         &           
2208              ALLOCATE ( t_window_v_1(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
2209           IF ( .NOT. ALLOCATED( t_window_v_2(l)%t ) )                         &           
2210              ALLOCATE ( t_window_v_2(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
2211           IF ( .NOT. ALLOCATED( t_surf_green_v_1(l)%t ) )                     &
2212              ALLOCATE ( t_surf_green_v_1(l)%t(1:surf_usm_v(l)%ns) )
2213           IF ( .NOT. ALLOCATED( t_surf_green_v_2(l)%t ) )                     &
2214              ALLOCATE ( t_surf_green_v_2(l)%t(1:surf_usm_v(l)%ns) )
2215           IF ( .NOT. ALLOCATED( t_green_v_1(l)%t ) )                          &           
2216              ALLOCATE ( t_green_v_1(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
2217           IF ( .NOT. ALLOCATED( t_green_v_2(l)%t ) )                          &           
2218              ALLOCATE ( t_green_v_2(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
2219           IF ( .NOT. ALLOCATED( m_liq_usm_v_1(l)%var_usm_1d ) )               &
2220              ALLOCATE ( m_liq_usm_v_1(l)%var_usm_1d(1:surf_usm_v(l)%ns) )
2221           IF ( .NOT. ALLOCATED( m_liq_usm_v_2(l)%var_usm_1d ) )               &
2222              ALLOCATE ( m_liq_usm_v_2(l)%var_usm_1d(1:surf_usm_v(l)%ns) )
2223           IF ( .NOT. ALLOCATED( swc_v_1(l)%t ) )                              &           
2224              ALLOCATE ( swc_v_1(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
2225           IF ( .NOT. ALLOCATED( swc_v_2(l)%t ) )                              &           
2226              ALLOCATE ( swc_v_2(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
2227        ENDDO
2228!
2229!--     initial assignment of the pointers
2230        t_wall_v        => t_wall_v_1;        t_wall_v_p        => t_wall_v_2
2231        t_surf_wall_v   => t_surf_wall_v_1;   t_surf_wall_v_p   => t_surf_wall_v_2
2232        t_window_v      => t_window_v_1;      t_window_v_p      => t_window_v_2
2233        t_green_v       => t_green_v_1;       t_green_v_p       => t_green_v_2
2234        t_surf_window_v => t_surf_window_v_1; t_surf_window_v_p => t_surf_window_v_2
2235        t_surf_green_v  => t_surf_green_v_1;  t_surf_green_v_p  => t_surf_green_v_2
2236        m_liq_usm_v     => m_liq_usm_v_1;     m_liq_usm_v_p     => m_liq_usm_v_2
2237        swc_v           => swc_v_1;           swc_v_p           => swc_v_2
2238
2239!
2240!--     Allocate intermediate timestep arrays. For horizontal surfaces.
2241        ALLOCATE ( surf_usm_h%tt_surface_wall_m(1:surf_usm_h%ns)               )
2242        ALLOCATE ( surf_usm_h%tt_wall_m(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)   )
2243        ALLOCATE ( surf_usm_h%tt_surface_window_m(1:surf_usm_h%ns)             )
2244        ALLOCATE ( surf_usm_h%tt_window_m(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )
2245        ALLOCATE ( surf_usm_h%tt_green_m(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)  )
2246        ALLOCATE ( surf_usm_h%tt_surface_green_m(1:surf_usm_h%ns)              )
2247
2248!
2249!--    Allocate intermediate timestep arrays
2250!--    Horizontal surfaces
2251       ALLOCATE ( tm_liq_usm_h_m%var_usm_1d(1:surf_usm_h%ns)                   )
2252!
2253!--    Horizontal surfaces
2254       DO  l = 0, 3
2255          ALLOCATE ( tm_liq_usm_v_m(l)%var_usm_1d(1:surf_usm_v(l)%ns)          )
2256       ENDDO
2257       
2258!
2259!--     Set inital values for prognostic quantities
2260        IF ( ALLOCATED( surf_usm_h%tt_surface_wall_m )   )  surf_usm_h%tt_surface_wall_m   = 0.0_wp
2261        IF ( ALLOCATED( surf_usm_h%tt_wall_m )           )  surf_usm_h%tt_wall_m           = 0.0_wp
2262        IF ( ALLOCATED( surf_usm_h%tt_surface_window_m ) )  surf_usm_h%tt_surface_window_m = 0.0_wp
2263        IF ( ALLOCATED( surf_usm_h%tt_window_m    )      )  surf_usm_h%tt_window_m         = 0.0_wp
2264        IF ( ALLOCATED( surf_usm_h%tt_green_m    )       )  surf_usm_h%tt_green_m          = 0.0_wp
2265        IF ( ALLOCATED( surf_usm_h%tt_surface_green_m )  )  surf_usm_h%tt_surface_green_m  = 0.0_wp
2266!
2267!--     Now, for vertical surfaces
2268        DO  l = 0, 3
2269           ALLOCATE ( surf_usm_v(l)%tt_surface_wall_m(1:surf_usm_v(l)%ns)               )
2270           ALLOCATE ( surf_usm_v(l)%tt_wall_m(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)   )
2271           IF ( ALLOCATED( surf_usm_v(l)%tt_surface_wall_m ) )  surf_usm_v(l)%tt_surface_wall_m = 0.0_wp
2272           IF ( ALLOCATED( surf_usm_v(l)%tt_wall_m    ) )  surf_usm_v(l)%tt_wall_m    = 0.0_wp
2273           ALLOCATE ( surf_usm_v(l)%tt_surface_window_m(1:surf_usm_v(l)%ns)             )
2274           ALLOCATE ( surf_usm_v(l)%tt_window_m(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )
2275           IF ( ALLOCATED( surf_usm_v(l)%tt_surface_window_m ) )  surf_usm_v(l)%tt_surface_window_m = 0.0_wp
2276           IF ( ALLOCATED( surf_usm_v(l)%tt_window_m  ) )  surf_usm_v(l)%tt_window_m    = 0.0_wp
2277           ALLOCATE ( surf_usm_v(l)%tt_surface_green_m(1:surf_usm_v(l)%ns)              )
2278           IF ( ALLOCATED( surf_usm_v(l)%tt_surface_green_m ) )  surf_usm_v(l)%tt_surface_green_m = 0.0_wp
2279           ALLOCATE ( surf_usm_v(l)%tt_green_m(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)  )
2280           IF ( ALLOCATED( surf_usm_v(l)%tt_green_m   ) )  surf_usm_v(l)%tt_green_m    = 0.0_wp
2281        ENDDO
2282!
2283!--     allocate wall heat flux output array and set initial values. For horizontal surfaces
2284!        ALLOCATE ( surf_usm_h%wshf(1:surf_usm_h%ns)    )  !can be removed
2285        ALLOCATE ( surf_usm_h%wshf_eb(1:surf_usm_h%ns) )
2286        ALLOCATE ( surf_usm_h%wghf_eb(1:surf_usm_h%ns) )
2287        ALLOCATE ( surf_usm_h%wghf_eb_window(1:surf_usm_h%ns) )
2288        ALLOCATE ( surf_usm_h%wghf_eb_green(1:surf_usm_h%ns) )
2289        ALLOCATE ( surf_usm_h%iwghf_eb(1:surf_usm_h%ns) )
2290        ALLOCATE ( surf_usm_h%iwghf_eb_window(1:surf_usm_h%ns) )
2291        IF ( ALLOCATED( surf_usm_h%wshf    ) )  surf_usm_h%wshf    = 0.0_wp
2292        IF ( ALLOCATED( surf_usm_h%wshf_eb ) )  surf_usm_h%wshf_eb = 0.0_wp
2293        IF ( ALLOCATED( surf_usm_h%wghf_eb ) )  surf_usm_h%wghf_eb = 0.0_wp
2294        IF ( ALLOCATED( surf_usm_h%wghf_eb_window ) )  surf_usm_h%wghf_eb_window = 0.0_wp
2295        IF ( ALLOCATED( surf_usm_h%wghf_eb_green ) )  surf_usm_h%wghf_eb_green = 0.0_wp
2296        IF ( ALLOCATED( surf_usm_h%iwghf_eb ) )  surf_usm_h%iwghf_eb = 0.0_wp
2297        IF ( ALLOCATED( surf_usm_h%iwghf_eb_window ) )  surf_usm_h%iwghf_eb_window = 0.0_wp
2298!
2299!--     Now, for vertical surfaces
2300        DO  l = 0, 3
2301!           ALLOCATE ( surf_usm_v(l)%wshf(1:surf_usm_v(l)%ns)    )    ! can be removed
2302           ALLOCATE ( surf_usm_v(l)%wshf_eb(1:surf_usm_v(l)%ns) )
2303           ALLOCATE ( surf_usm_v(l)%wghf_eb(1:surf_usm_v(l)%ns) )
2304           ALLOCATE ( surf_usm_v(l)%wghf_eb_window(1:surf_usm_v(l)%ns) )
2305           ALLOCATE ( surf_usm_v(l)%wghf_eb_green(1:surf_usm_v(l)%ns) )
2306           ALLOCATE ( surf_usm_v(l)%iwghf_eb(1:surf_usm_v(l)%ns) )
2307           ALLOCATE ( surf_usm_v(l)%iwghf_eb_window(1:surf_usm_v(l)%ns) )
2308           IF ( ALLOCATED( surf_usm_v(l)%wshf    ) )  surf_usm_v(l)%wshf    = 0.0_wp
2309           IF ( ALLOCATED( surf_usm_v(l)%wshf_eb ) )  surf_usm_v(l)%wshf_eb = 0.0_wp
2310           IF ( ALLOCATED( surf_usm_v(l)%wghf_eb ) )  surf_usm_v(l)%wghf_eb = 0.0_wp
2311           IF ( ALLOCATED( surf_usm_v(l)%wghf_eb_window ) )  surf_usm_v(l)%wghf_eb_window = 0.0_wp
2312           IF ( ALLOCATED( surf_usm_v(l)%wghf_eb_green ) )  surf_usm_v(l)%wghf_eb_green = 0.0_wp
2313           IF ( ALLOCATED( surf_usm_v(l)%iwghf_eb ) )  surf_usm_v(l)%iwghf_eb = 0.0_wp
2314           IF ( ALLOCATED( surf_usm_v(l)%iwghf_eb_window ) )  surf_usm_v(l)%iwghf_eb_window = 0.0_wp
2315        ENDDO
2316
2317        CALL location_message( 'finished', .TRUE. )
2318       
2319    END SUBROUTINE usm_init_arrays
2320
2321
2322!------------------------------------------------------------------------------!
2323! Description:
2324! ------------
2325!> Sum up and time-average urban surface output quantities as well as allocate
2326!> the array necessary for storing the average.
2327!------------------------------------------------------------------------------!
2328    SUBROUTINE usm_3d_data_averaging( mode, variable )
2329
2330        IMPLICIT NONE
2331
2332        CHARACTER(LEN=*), INTENT(IN) ::  mode
2333        CHARACTER(LEN=*), INTENT(IN) :: variable
2334 
2335        INTEGER(iwp)                                       :: i, j, k, l, m, ids, idsint, iwl, istat  !< runnin indices
2336        CHARACTER(LEN=varnamelength)                       :: var                                     !< trimmed variable
2337        INTEGER(iwp), PARAMETER                            :: nd = 5                                  !< number of directions
2338        CHARACTER(LEN=6), DIMENSION(0:nd-1), PARAMETER     :: dirname = (/ '_roof ', '_south', '_north', '_west ', '_east ' /)
2339        INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER         :: dirint = (/ iup_u, isouth_u, inorth_u, iwest_u, ieast_u /)
2340
2341        IF ( variable(1:4) == 'usm_' )  THEN  ! is such a check really rquired?
2342
2343!
2344!--     find the real name of the variable
2345        ids = -1
2346        l = -1
2347        var = TRIM(variable)
2348        DO i = 0, nd-1
2349            k = len(TRIM(var))
2350            j = len(TRIM(dirname(i)))
2351            IF ( TRIM(var(k-j+1:k)) == TRIM(dirname(i)) )  THEN
2352                ids = i
2353                idsint = dirint(ids)
2354                var = var(:k-j)
2355                EXIT
2356            ENDIF
2357        ENDDO
2358        l = idsint - 2  ! horisontal direction index - terible hack !
2359        IF ( l < 0 .OR. l > 3 ) THEN
2360           l = -1
2361        END IF
2362        IF ( ids == -1 )  THEN
2363            var = TRIM(variable)
2364        ENDIF
2365        IF ( var(1:11) == 'usm_t_wall_'  .AND.  len(TRIM(var)) >= 12 )  THEN
2366!
2367!--          wall layers
2368            READ(var(12:12), '(I1)', iostat=istat ) iwl
2369            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
2370                var = var(1:10)
2371            ELSE
2372!
2373!--             wrong wall layer index
2374                RETURN
2375            ENDIF
2376        ENDIF
2377        IF ( var(1:13) == 'usm_t_window_'  .AND.  len(TRIM(var)) >= 14 )  THEN
2378!
2379!--          wall layers
2380            READ(var(14:14), '(I1)', iostat=istat ) iwl
2381            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
2382                var = var(1:12)
2383            ELSE
2384!
2385!--             wrong window layer index
2386                RETURN
2387            ENDIF
2388        ENDIF
2389        IF ( var(1:12) == 'usm_t_green_'  .AND.  len(TRIM(var)) >= 13 )  THEN
2390!
2391!--          wall layers
2392            READ(var(13:13), '(I1)', iostat=istat ) iwl
2393            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
2394                var = var(1:11)
2395            ELSE
2396!
2397!--             wrong green layer index
2398                RETURN
2399            ENDIF
2400        ENDIF
2401        IF ( var(1:8) == 'usm_swc_'  .AND.  len(TRIM(var)) >= 9 )  THEN
2402!
2403!--          swc layers
2404            READ(var(9:9), '(I1)', iostat=istat ) iwl
2405            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
2406                var = var(1:7)
2407            ELSE
2408!
2409!--             wrong swc layer index
2410                RETURN
2411            ENDIF
2412        ENDIF
2413
2414        IF ( mode == 'allocate' )  THEN
2415           
2416           SELECT CASE ( TRIM( var ) )
2417
2418                CASE ( 'usm_wshf' )
2419!
2420!--                 array of sensible heat flux from surfaces
2421!--                 land surfaces
2422                    IF ( l == -1 ) THEN
2423                       IF ( .NOT.  ALLOCATED(surf_usm_h%wshf_eb_av) )  THEN
2424                          ALLOCATE ( surf_usm_h%wshf_eb_av(1:surf_usm_h%ns) )
2425                          surf_usm_h%wshf_eb_av = 0.0_wp
2426                       ENDIF
2427                    ELSE
2428                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%wshf_eb_av) )  THEN
2429                           ALLOCATE ( surf_usm_v(l)%wshf_eb_av(1:surf_usm_v(l)%ns) )
2430                           surf_usm_v(l)%wshf_eb_av = 0.0_wp
2431                       ENDIF
2432                    ENDIF
2433                   
2434                CASE ( 'usm_qsws' )
2435!
2436!--                 array of latent heat flux from surfaces
2437!--                 land surfaces
2438                    IF ( l == -1 .AND. .NOT.  ALLOCATED(surf_usm_h%qsws_eb_av) )  THEN
2439                        ALLOCATE ( surf_usm_h%qsws_eb_av(1:surf_usm_h%ns) )
2440                        surf_usm_h%qsws_eb_av = 0.0_wp
2441                    ELSE
2442                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%qsws_eb_av) )  THEN
2443                           ALLOCATE ( surf_usm_v(l)%qsws_eb_av(1:surf_usm_v(l)%ns) )
2444                           surf_usm_v(l)%qsws_eb_av = 0.0_wp
2445                       ENDIF
2446                    ENDIF
2447                   
2448                CASE ( 'usm_qsws_veg' )
2449!
2450!--                 array of latent heat flux from vegetation surfaces
2451!--                 land surfaces
2452                    IF ( l == -1 .AND. .NOT.  ALLOCATED(surf_usm_h%qsws_veg_av) )  THEN
2453                        ALLOCATE ( surf_usm_h%qsws_veg_av(1:surf_usm_h%ns) )
2454                        surf_usm_h%qsws_veg_av = 0.0_wp
2455                    ELSE
2456                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%qsws_veg_av) )  THEN
2457                           ALLOCATE ( surf_usm_v(l)%qsws_veg_av(1:surf_usm_v(l)%ns) )
2458                           surf_usm_v(l)%qsws_veg_av = 0.0_wp
2459                       ENDIF
2460                    ENDIF
2461                   
2462                CASE ( 'usm_qsws_liq' )
2463!
2464!--                 array of latent heat flux from surfaces with liquid
2465!--                 land surfaces
2466                    IF ( l == -1 .AND. .NOT.  ALLOCATED(surf_usm_h%qsws_liq_av) )  THEN
2467                        ALLOCATE ( surf_usm_h%qsws_liq_av(1:surf_usm_h%ns) )
2468                        surf_usm_h%qsws_liq_av = 0.0_wp
2469                    ELSE
2470                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%qsws_liq_av) )  THEN
2471                           ALLOCATE ( surf_usm_v(l)%qsws_liq_av(1:surf_usm_v(l)%ns) )
2472                           surf_usm_v(l)%qsws_liq_av = 0.0_wp
2473                       ENDIF
2474                    ENDIF
2475!
2476!--             Please note, the following output quantities belongs to the
2477!--             individual tile fractions - ground heat flux at wall-, window-,
2478!--             and green fraction. Aggregated ground-heat flux is treated
2479!--             accordingly in average_3d_data, sum_up_3d_data, etc..
2480                CASE ( 'usm_wghf' )
2481!
2482!--                 array of heat flux from ground (wall, roof, land)
2483                    IF ( l == -1 ) THEN
2484                       IF ( .NOT.  ALLOCATED(surf_usm_h%wghf_eb_av) )  THEN
2485                           ALLOCATE ( surf_usm_h%wghf_eb_av(1:surf_usm_h%ns) )
2486                           surf_usm_h%wghf_eb_av = 0.0_wp
2487                       ENDIF
2488                    ELSE
2489                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%wghf_eb_av) )  THEN
2490                           ALLOCATE ( surf_usm_v(l)%wghf_eb_av(1:surf_usm_v(l)%ns) )
2491                           surf_usm_v(l)%wghf_eb_av = 0.0_wp
2492                       ENDIF
2493                    ENDIF
2494
2495                CASE ( 'usm_wghf_window' )
2496!
2497!--                 array of heat flux from window ground (wall, roof, land)
2498                    IF ( l == -1 ) THEN
2499                       IF ( .NOT.  ALLOCATED(surf_usm_h%wghf_eb_window_av) )  THEN
2500                           ALLOCATE ( surf_usm_h%wghf_eb_window_av(1:surf_usm_h%ns) )
2501                           surf_usm_h%wghf_eb_window_av = 0.0_wp
2502                       ENDIF
2503                    ELSE
2504                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%wghf_eb_window_av) )  THEN
2505                           ALLOCATE ( surf_usm_v(l)%wghf_eb_window_av(1:surf_usm_v(l)%ns) )
2506                           surf_usm_v(l)%wghf_eb_window_av = 0.0_wp
2507                       ENDIF
2508                    ENDIF
2509
2510                CASE ( 'usm_wghf_green' )
2511!
2512!--                 array of heat flux from green ground (wall, roof, land)
2513                    IF ( l == -1 ) THEN
2514                       IF ( .NOT.  ALLOCATED(surf_usm_h%wghf_eb_green_av) )  THEN
2515                           ALLOCATE ( surf_usm_h%wghf_eb_green_av(1:surf_usm_h%ns) )
2516                           surf_usm_h%wghf_eb_green_av = 0.0_wp
2517                       ENDIF
2518                    ELSE
2519                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%wghf_eb_green_av) )  THEN
2520                           ALLOCATE ( surf_usm_v(l)%wghf_eb_green_av(1:surf_usm_v(l)%ns) )
2521                           surf_usm_v(l)%wghf_eb_green_av = 0.0_wp
2522                       ENDIF
2523                    ENDIF
2524
2525                CASE ( 'usm_iwghf' )
2526!
2527!--                 array of heat flux from indoor ground (wall, roof, land)
2528                    IF ( l == -1 ) THEN
2529                       IF ( .NOT.  ALLOCATED(surf_usm_h%iwghf_eb_av) )  THEN
2530                           ALLOCATE ( surf_usm_h%iwghf_eb_av(1:surf_usm_h%ns) )
2531                           surf_usm_h%iwghf_eb_av = 0.0_wp
2532                       ENDIF
2533                    ELSE
2534                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%iwghf_eb_av) )  THEN
2535                           ALLOCATE ( surf_usm_v(l)%iwghf_eb_av(1:surf_usm_v(l)%ns) )
2536                           surf_usm_v(l)%iwghf_eb_av = 0.0_wp
2537                       ENDIF
2538                    ENDIF
2539
2540                CASE ( 'usm_iwghf_window' )
2541!
2542!--                 array of heat flux from indoor window ground (wall, roof, land)
2543                    IF ( l == -1 ) THEN
2544                       IF ( .NOT.  ALLOCATED(surf_usm_h%iwghf_eb_window_av) )  THEN
2545                           ALLOCATE ( surf_usm_h%iwghf_eb_window_av(1:surf_usm_h%ns) )
2546                           surf_usm_h%iwghf_eb_window_av = 0.0_wp
2547                       ENDIF
2548                    ELSE
2549                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%iwghf_eb_window_av) )  THEN
2550                           ALLOCATE ( surf_usm_v(l)%iwghf_eb_window_av(1:surf_usm_v(l)%ns) )
2551                           surf_usm_v(l)%iwghf_eb_window_av = 0.0_wp
2552                       ENDIF
2553                    ENDIF
2554
2555                CASE ( 'usm_t_surf_wall' )
2556!
2557!--                 surface temperature for surfaces
2558                    IF ( l == -1 ) THEN
2559                       IF ( .NOT.  ALLOCATED(surf_usm_h%t_surf_wall_av) )  THEN
2560                           ALLOCATE ( surf_usm_h%t_surf_wall_av(1:surf_usm_h%ns) )
2561                           surf_usm_h%t_surf_wall_av = 0.0_wp
2562                       ENDIF
2563                    ELSE
2564                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_surf_wall_av) )  THEN
2565                           ALLOCATE ( surf_usm_v(l)%t_surf_wall_av(1:surf_usm_v(l)%ns) )
2566                           surf_usm_v(l)%t_surf_wall_av = 0.0_wp
2567                       ENDIF
2568                    ENDIF
2569
2570                CASE ( 'usm_t_surf_window' )
2571!
2572!--                 surface temperature for window surfaces
2573                    IF ( l == -1 ) THEN
2574                       IF ( .NOT.  ALLOCATED(surf_usm_h%t_surf_window_av) )  THEN
2575                           ALLOCATE ( surf_usm_h%t_surf_window_av(1:surf_usm_h%ns) )
2576                           surf_usm_h%t_surf_window_av = 0.0_wp
2577                       ENDIF
2578                    ELSE
2579                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_surf_window_av) )  THEN
2580                           ALLOCATE ( surf_usm_v(l)%t_surf_window_av(1:surf_usm_v(l)%ns) )
2581                           surf_usm_v(l)%t_surf_window_av = 0.0_wp
2582                       ENDIF
2583                    ENDIF
2584                   
2585                CASE ( 'usm_t_surf_green' )
2586!
2587!--                 surface temperature for green surfaces
2588                    IF ( l == -1 ) THEN
2589                       IF ( .NOT.  ALLOCATED(surf_usm_h%t_surf_green_av) )  THEN
2590                           ALLOCATE ( surf_usm_h%t_surf_green_av(1:surf_usm_h%ns) )
2591                           surf_usm_h%t_surf_green_av = 0.0_wp
2592                       ENDIF
2593                    ELSE
2594                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_surf_green_av) )  THEN
2595                           ALLOCATE ( surf_usm_v(l)%t_surf_green_av(1:surf_usm_v(l)%ns) )
2596                           surf_usm_v(l)%t_surf_green_av = 0.0_wp
2597                       ENDIF
2598                    ENDIF
2599               
2600                CASE ( 'usm_theta_10cm' )
2601!
2602!--                 near surface (10cm) temperature for whole surfaces
2603                    IF ( l == -1 ) THEN
2604                       IF ( .NOT.  ALLOCATED(surf_usm_h%pt_10cm_av) )  THEN
2605                           ALLOCATE ( surf_usm_h%pt_10cm_av(1:surf_usm_h%ns) )
2606                           surf_usm_h%pt_10cm_av = 0.0_wp
2607                       ENDIF
2608                    ELSE
2609                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%pt_10cm_av) )  THEN
2610                           ALLOCATE ( surf_usm_v(l)%pt_10cm_av(1:surf_usm_v(l)%ns) )
2611                           surf_usm_v(l)%pt_10cm_av = 0.0_wp
2612                       ENDIF
2613                    ENDIF
2614                 
2615                CASE ( 'usm_t_wall' )
2616!
2617!--                 wall temperature for iwl layer of walls and land
2618                    IF ( l == -1 ) THEN
2619                       IF ( .NOT.  ALLOCATED(surf_usm_h%t_wall_av) )  THEN
2620                           ALLOCATE ( surf_usm_h%t_wall_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
2621                           surf_usm_h%t_wall_av = 0.0_wp
2622                       ENDIF
2623                    ELSE
2624                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_wall_av) )  THEN
2625                           ALLOCATE ( surf_usm_v(l)%t_wall_av(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
2626                           surf_usm_v(l)%t_wall_av = 0.0_wp
2627                       ENDIF
2628                    ENDIF
2629
2630                CASE ( 'usm_t_window' )
2631!
2632!--                 window temperature for iwl layer of walls and land
2633                    IF ( l == -1 ) THEN
2634                       IF ( .NOT.  ALLOCATED(surf_usm_h%t_window_av) )  THEN
2635                           ALLOCATE ( surf_usm_h%t_window_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
2636                           surf_usm_h%t_window_av = 0.0_wp
2637                       ENDIF
2638                    ELSE
2639                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_window_av) )  THEN
2640                           ALLOCATE ( surf_usm_v(l)%t_window_av(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
2641                           surf_usm_v(l)%t_window_av = 0.0_wp
2642                       ENDIF
2643                    ENDIF
2644
2645                CASE ( 'usm_t_green' )
2646!
2647!--                 green temperature for iwl layer of walls and land
2648                    IF ( l == -1 ) THEN
2649                       IF ( .NOT.  ALLOCATED(surf_usm_h%t_green_av) )  THEN
2650                           ALLOCATE ( surf_usm_h%t_green_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
2651                           surf_usm_h%t_green_av = 0.0_wp
2652                       ENDIF
2653                    ELSE
2654                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_green_av) )  THEN
2655                           ALLOCATE ( surf_usm_v(l)%t_green_av(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
2656                           surf_usm_v(l)%t_green_av = 0.0_wp
2657                       ENDIF
2658                    ENDIF
2659                CASE ( 'usm_swc' )
2660!
2661!--                 soil water content for iwl layer of walls and land
2662                    IF ( l == -1 .AND. .NOT.  ALLOCATED(surf_usm_h%swc_av) )  THEN
2663                        ALLOCATE ( surf_usm_h%swc_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
2664                        surf_usm_h%swc_av = 0.0_wp
2665                    ELSE
2666                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%swc_av) )  THEN
2667                           ALLOCATE ( surf_usm_v(l)%swc_av(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
2668                           surf_usm_v(l)%swc_av = 0.0_wp
2669                       ENDIF
2670                    ENDIF
2671
2672               CASE DEFAULT
2673                   CONTINUE
2674
2675           END SELECT
2676
2677        ELSEIF ( mode == 'sum' )  THEN
2678           
2679           SELECT CASE ( TRIM( var ) )
2680
2681                CASE ( 'usm_wshf' )
2682!
2683!--                 array of sensible heat flux from surfaces (land, roof, wall)
2684                    IF ( l == -1 ) THEN
2685                       DO  m = 1, surf_usm_h%ns
2686                          surf_usm_h%wshf_eb_av(m) =                              &
2687                                             surf_usm_h%wshf_eb_av(m) +           &
2688                                             surf_usm_h%wshf_eb(m)
2689                       ENDDO
2690                    ELSE
2691                       DO  m = 1, surf_usm_v(l)%ns
2692                          surf_usm_v(l)%wshf_eb_av(m) =                        &
2693                                          surf_usm_v(l)%wshf_eb_av(m) +        &
2694                                          surf_usm_v(l)%wshf_eb(m)
2695                       ENDDO
2696                    ENDIF
2697                   
2698                CASE ( 'usm_qsws' )
2699!
2700!--                 array of latent heat flux from surfaces (land, roof, wall)
2701                    IF ( l == -1 ) THEN
2702                    DO  m = 1, surf_usm_h%ns
2703                       surf_usm_h%qsws_eb_av(m) =                              &
2704                                          surf_usm_h%qsws_eb_av(m) +           &
2705                                          surf_usm_h%qsws_eb(m)
2706                    ENDDO
2707                    ELSE
2708                       DO  m = 1, surf_usm_v(l)%ns
2709                          surf_usm_v(l)%qsws_eb_av(m) =                        &
2710                                          surf_usm_v(l)%qsws_eb_av(m) +        &
2711                                          surf_usm_v(l)%qsws_eb(m)
2712                       ENDDO
2713                    ENDIF
2714                   
2715                CASE ( 'usm_qsws_veg' )
2716!
2717!--                 array of latent heat flux from vegetation surfaces (land, roof, wall)
2718                    IF ( l == -1 ) THEN
2719                    DO  m = 1, surf_usm_h%ns
2720                       surf_usm_h%qsws_veg_av(m) =                              &
2721                                          surf_usm_h%qsws_veg_av(m) +           &
2722                                          surf_usm_h%qsws_veg(m)
2723                    ENDDO
2724                    ELSE
2725                       DO  m = 1, surf_usm_v(l)%ns
2726                          surf_usm_v(l)%qsws_veg_av(m) =                        &
2727                                          surf_usm_v(l)%qsws_veg_av(m) +        &
2728                                          surf_usm_v(l)%qsws_veg(m)
2729                       ENDDO
2730                    ENDIF
2731                   
2732                CASE ( 'usm_qsws_liq' )
2733!
2734!--                 array of latent heat flux from surfaces with liquid (land, roof, wall)
2735                    IF ( l == -1 ) THEN
2736                    DO  m = 1, surf_usm_h%ns
2737                       surf_usm_h%qsws_liq_av(m) =                              &
2738                                          surf_usm_h%qsws_liq_av(m) +           &
2739                                          surf_usm_h%qsws_liq(m)
2740                    ENDDO
2741                    ELSE
2742                       DO  m = 1, surf_usm_v(l)%ns
2743                          surf_usm_v(l)%qsws_liq_av(m) =                        &
2744                                          surf_usm_v(l)%qsws_liq_av(m) +        &
2745                                          surf_usm_v(l)%qsws_liq(m)
2746                       ENDDO
2747                    ENDIF
2748                   
2749                CASE ( 'usm_wghf' )
2750!
2751!--                 array of heat flux from ground (wall, roof, land)
2752                    IF ( l == -1 ) THEN
2753                       DO  m = 1, surf_usm_h%ns
2754                          surf_usm_h%wghf_eb_av(m) =                              &
2755                                             surf_usm_h%wghf_eb_av(m) +           &
2756                                             surf_usm_h%wghf_eb(m)
2757                       ENDDO
2758                    ELSE
2759                       DO  m = 1, surf_usm_v(l)%ns
2760                          surf_usm_v(l)%wghf_eb_av(m) =                        &
2761                                          surf_usm_v(l)%wghf_eb_av(m) +        &
2762                                          surf_usm_v(l)%wghf_eb(m)
2763                       ENDDO
2764                    ENDIF
2765                   
2766                CASE ( 'usm_wghf_window' )
2767!
2768!--                 array of heat flux from window ground (wall, roof, land)
2769                    IF ( l == -1 ) THEN
2770                       DO  m = 1, surf_usm_h%ns
2771                          surf_usm_h%wghf_eb_window_av(m) =                              &
2772                                             surf_usm_h%wghf_eb_window_av(m) +           &
2773                                             surf_usm_h%wghf_eb_window(m)
2774                       ENDDO
2775                    ELSE
2776                       DO  m = 1, surf_usm_v(l)%ns
2777                          surf_usm_v(l)%wghf_eb_window_av(m) =                        &
2778                                          surf_usm_v(l)%wghf_eb_window_av(m) +        &
2779                                          surf_usm_v(l)%wghf_eb_window(m)
2780                       ENDDO
2781                    ENDIF
2782
2783                CASE ( 'usm_wghf_green' )
2784!
2785!--                 array of heat flux from green ground (wall, roof, land)
2786                    IF ( l == -1 ) THEN
2787                       DO  m = 1, surf_usm_h%ns
2788                          surf_usm_h%wghf_eb_green_av(m) =                              &
2789                                             surf_usm_h%wghf_eb_green_av(m) +           &
2790                                             surf_usm_h%wghf_eb_green(m)
2791                       ENDDO
2792                    ELSE
2793                       DO  m = 1, surf_usm_v(l)%ns
2794                          surf_usm_v(l)%wghf_eb_green_av(m) =                        &
2795                                          surf_usm_v(l)%wghf_eb_green_av(m) +        &
2796                                          surf_usm_v(l)%wghf_eb_green(m)
2797                       ENDDO
2798                    ENDIF
2799                   
2800                CASE ( 'usm_iwghf' )
2801!
2802!--                 array of heat flux from indoor ground (wall, roof, land)
2803                    IF ( l == -1 ) THEN
2804                       DO  m = 1, surf_usm_h%ns
2805                          surf_usm_h%iwghf_eb_av(m) =                              &
2806                                             surf_usm_h%iwghf_eb_av(m) +           &
2807                                             surf_usm_h%iwghf_eb(m)
2808                       ENDDO
2809                    ELSE
2810                       DO  m = 1, surf_usm_v(l)%ns
2811                          surf_usm_v(l)%iwghf_eb_av(m) =                        &
2812                                          surf_usm_v(l)%iwghf_eb_av(m) +        &
2813                                          surf_usm_v(l)%iwghf_eb(m)
2814                       ENDDO
2815                    ENDIF
2816                   
2817                CASE ( 'usm_iwghf_window' )
2818!
2819!--                 array of heat flux from indoor window ground (wall, roof, land)
2820                    IF ( l == -1 ) THEN
2821                       DO  m = 1, surf_usm_h%ns
2822                          surf_usm_h%iwghf_eb_window_av(m) =                              &
2823                                             surf_usm_h%iwghf_eb_window_av(m) +           &
2824                                             surf_usm_h%iwghf_eb_window(m)
2825                       ENDDO
2826                    ELSE
2827                       DO  m = 1, surf_usm_v(l)%ns
2828                          surf_usm_v(l)%iwghf_eb_window_av(m) =                        &
2829                                          surf_usm_v(l)%iwghf_eb_window_av(m) +        &
2830                                          surf_usm_v(l)%iwghf_eb_window(m)
2831                       ENDDO
2832                    ENDIF
2833                   
2834                CASE ( 'usm_t_surf_wall' )
2835!
2836!--                 surface temperature for surfaces
2837                    IF ( l == -1 ) THEN
2838                       DO  m = 1, surf_usm_h%ns
2839                       surf_usm_h%t_surf_wall_av(m) =                               & 
2840                                          surf_usm_h%t_surf_wall_av(m) +            &
2841                                          t_surf_wall_h(m)
2842                       ENDDO
2843                    ELSE
2844                       DO  m = 1, surf_usm_v(l)%ns
2845                          surf_usm_v(l)%t_surf_wall_av(m) =                         &
2846                                          surf_usm_v(l)%t_surf_wall_av(m) +         &
2847                                          t_surf_wall_v(l)%t(m)
2848                       ENDDO
2849                    ENDIF
2850                   
2851                CASE ( 'usm_t_surf_window' )
2852!
2853!--                 surface temperature for window surfaces
2854                    IF ( l == -1 ) THEN
2855                       DO  m = 1, surf_usm_h%ns
2856                          surf_usm_h%t_surf_window_av(m) =                               &
2857                                             surf_usm_h%t_surf_window_av(m) +            &
2858                                             t_surf_window_h(m)
2859                       ENDDO
2860                    ELSE
2861                       DO  m = 1, surf_usm_v(l)%ns
2862                          surf_usm_v(l)%t_surf_window_av(m) =                         &
2863                                          surf_usm_v(l)%t_surf_window_av(m) +         &
2864                                          t_surf_window_v(l)%t(m)
2865                       ENDDO
2866                    ENDIF
2867                   
2868                CASE ( 'usm_t_surf_green' )
2869!
2870!--                 surface temperature for green surfaces
2871                    IF ( l == -1 ) THEN
2872                       DO  m = 1, surf_usm_h%ns
2873                          surf_usm_h%t_surf_green_av(m) =                               &
2874                                             surf_usm_h%t_surf_green_av(m) +            &
2875                                             t_surf_green_h(m)
2876                       ENDDO
2877                    ELSE
2878                       DO  m = 1, surf_usm_v(l)%ns
2879                          surf_usm_v(l)%t_surf_green_av(m) =                         &
2880                                          surf_usm_v(l)%t_surf_green_av(m) +         &
2881                                          t_surf_green_v(l)%t(m)
2882                       ENDDO
2883                    ENDIF
2884               
2885                CASE ( 'usm_theta_10cm' )
2886!
2887!--                 near surface temperature for whole surfaces
2888                    IF ( l == -1 ) THEN
2889                       DO  m = 1, surf_usm_h%ns
2890                          surf_usm_h%pt_10cm_av(m) =                               &
2891                                             surf_usm_h%pt_10cm_av(m) +            &
2892                                             surf_usm_h%pt_10cm(m)
2893                       ENDDO
2894                    ELSE
2895                       DO  m = 1, surf_usm_v(l)%ns
2896                          surf_usm_v(l)%pt_10cm_av(m) =                         &
2897                                          surf_usm_v(l)%pt_10cm_av(m) +         &
2898                                          surf_usm_v(l)%pt_10cm(m)
2899                       ENDDO
2900                    ENDIF
2901                   
2902                CASE ( 'usm_t_wall' )
2903!
2904!--                 wall temperature for  iwl layer of walls and land
2905                    IF ( l == -1 ) THEN
2906                       DO  m = 1, surf_usm_h%ns
2907                          surf_usm_h%t_wall_av(iwl,m) =                           &
2908                                             surf_usm_h%t_wall_av(iwl,m) +        &
2909                                             t_wall_h(iwl,m)
2910                       ENDDO
2911                    ELSE
2912                       DO  m = 1, surf_usm_v(l)%ns
2913                          surf_usm_v(l)%t_wall_av(iwl,m) =                     &
2914                                          surf_usm_v(l)%t_wall_av(iwl,m) +     &
2915                                          t_wall_v(l)%t(iwl,m)
2916                       ENDDO
2917                    ENDIF
2918                   
2919                CASE ( 'usm_t_window' )
2920!
2921!--                 window temperature for  iwl layer of walls and land
2922                    IF ( l == -1 ) THEN
2923                       DO  m = 1, surf_usm_h%ns
2924                          surf_usm_h%t_window_av(iwl,m) =                           &
2925                                             surf_usm_h%t_window_av(iwl,m) +        &
2926                                             t_window_h(iwl,m)
2927                       ENDDO
2928                    ELSE
2929                       DO  m = 1, surf_usm_v(l)%ns
2930                          surf_usm_v(l)%t_window_av(iwl,m) =                     &
2931                                          surf_usm_v(l)%t_window_av(iwl,m) +     &
2932                                          t_window_v(l)%t(iwl,m)
2933                       ENDDO
2934                    ENDIF
2935
2936                CASE ( 'usm_t_green' )
2937!
2938!--                 green temperature for  iwl layer of walls and land
2939                    IF ( l == -1 ) THEN
2940                       DO  m = 1, surf_usm_h%ns
2941                          surf_usm_h%t_green_av(iwl,m) =                           &
2942                                             surf_usm_h%t_green_av(iwl,m) +        &
2943                                             t_green_h(iwl,m)
2944                       ENDDO
2945                    ELSE
2946                       DO  m = 1, surf_usm_v(l)%ns
2947                          surf_usm_v(l)%t_green_av(iwl,m) =                     &
2948                                          surf_usm_v(l)%t_green_av(iwl,m) +     &
2949                                          t_green_v(l)%t(iwl,m)
2950                       ENDDO
2951                    ENDIF
2952
2953                CASE ( 'usm_swc' )
2954!
2955!--                 soil water content for  iwl layer of walls and land
2956                    IF ( l == -1 ) THEN
2957                    DO  m = 1, surf_usm_h%ns
2958                       surf_usm_h%swc_av(iwl,m) =                           &
2959                                          surf_usm_h%swc_av(iwl,m) +        &
2960                                          swc_h(iwl,m)
2961                    ENDDO
2962                    ELSE
2963                       DO  m = 1, surf_usm_v(l)%ns
2964                          surf_usm_v(l)%swc_av(iwl,m) =                     &
2965                                          surf_usm_v(l)%swc_av(iwl,m) +     &
2966                                          swc_v(l)%t(iwl,m)
2967                       ENDDO
2968                    ENDIF
2969
2970                CASE DEFAULT
2971                    CONTINUE
2972
2973           END SELECT
2974
2975        ELSEIF ( mode == 'average' )  THEN
2976           
2977           SELECT CASE ( TRIM( var ) )
2978
2979                CASE ( 'usm_wshf' )
2980!
2981!--                 array of sensible heat flux from surfaces (land, roof, wall)
2982                    IF ( l == -1 ) THEN
2983                       DO  m = 1, surf_usm_h%ns
2984                          surf_usm_h%wshf_eb_av(m) =                              &
2985                                             surf_usm_h%wshf_eb_av(m) /           &
2986                                             REAL( average_count_3d, kind=wp )
2987                       ENDDO
2988                    ELSE
2989                       DO  m = 1, surf_usm_v(l)%ns
2990                          surf_usm_v(l)%wshf_eb_av(m) =                        &
2991                                          surf_usm_v(l)%wshf_eb_av(m) /        &
2992                                          REAL( average_count_3d, kind=wp )
2993                       ENDDO
2994                    ENDIF
2995                   
2996                CASE ( 'usm_qsws' )
2997!
2998!--                 array of latent heat flux from surfaces (land, roof, wall)
2999                    IF ( l == -1 ) THEN
3000                    DO  m = 1, surf_usm_h%ns
3001                       surf_usm_h%qsws_eb_av(m) =                              &
3002                                          surf_usm_h%qsws_eb_av(m) /           &
3003                                          REAL( average_count_3d, kind=wp )
3004                    ENDDO
3005                    ELSE
3006                       DO  m = 1, surf_usm_v(l)%ns
3007                          surf_usm_v(l)%qsws_eb_av(m) =                        &
3008                                          surf_usm_v(l)%qsws_eb_av(m) /        &
3009                                          REAL( average_count_3d, kind=wp )
3010                       ENDDO
3011                    ENDIF
3012
3013                CASE ( 'usm_qsws_veg' )
3014!
3015!--                 array of latent heat flux from vegetation surfaces (land, roof, wall)
3016                    IF ( l == -1 ) THEN
3017                    DO  m = 1, surf_usm_h%ns
3018                       surf_usm_h%qsws_veg_av(m) =                              &
3019                                          surf_usm_h%qsws_veg_av(m) /           &
3020                                          REAL( average_count_3d, kind=wp )
3021                    ENDDO
3022                    ELSE
3023                       DO  m = 1, surf_usm_v(l)%ns
3024                          surf_usm_v(l)%qsws_veg_av(m) =                        &
3025                                          surf_usm_v(l)%qsws_veg_av(m) /        &
3026                                          REAL( average_count_3d, kind=wp )
3027                       ENDDO
3028                    ENDIF
3029                   
3030                CASE ( 'usm_qsws_liq' )
3031!
3032!--                 array of latent heat flux from surfaces with liquid (land, roof, wall)
3033                    IF ( l == -1 ) THEN
3034                    DO  m = 1, surf_usm_h%ns
3035                       surf_usm_h%qsws_liq_av(m) =                              &
3036                                          surf_usm_h%qsws_liq_av(m) /           &
3037                                          REAL( average_count_3d, kind=wp )
3038                    ENDDO
3039                    ELSE
3040                       DO  m = 1, surf_usm_v(l)%ns
3041                          surf_usm_v(l)%qsws_liq_av(m) =                        &
3042                                          surf_usm_v(l)%qsws_liq_av(m) /        &
3043                                          REAL( average_count_3d, kind=wp )
3044                       ENDDO
3045                    ENDIF
3046                   
3047                CASE ( 'usm_wghf' )
3048!
3049!--                 array of heat flux from ground (wall, roof, land)
3050                    IF ( l == -1 ) THEN
3051                       DO  m = 1, surf_usm_h%ns
3052                          surf_usm_h%wghf_eb_av(m) =                              &
3053                                             surf_usm_h%wghf_eb_av(m) /           &
3054                                             REAL( average_count_3d, kind=wp )
3055                       ENDDO
3056                    ELSE
3057                       DO  m = 1, surf_usm_v(l)%ns
3058                          surf_usm_v(l)%wghf_eb_av(m) =                        &
3059                                          surf_usm_v(l)%wghf_eb_av(m) /        &
3060                                          REAL( average_count_3d, kind=wp )
3061                       ENDDO
3062                    ENDIF
3063                   
3064                CASE ( 'usm_wghf_window' )
3065!
3066!--                 array of heat flux from window ground (wall, roof, land)
3067                    IF ( l == -1 ) THEN
3068                       DO  m = 1, surf_usm_h%ns
3069                          surf_usm_h%wghf_eb_window_av(m) =                              &
3070                                             surf_usm_h%wghf_eb_window_av(m) /           &
3071                                             REAL( average_count_3d, kind=wp )
3072                       ENDDO
3073                    ELSE
3074                       DO  m = 1, surf_usm_v(l)%ns
3075                          surf_usm_v(l)%wghf_eb_window_av(m) =                        &
3076                                          surf_usm_v(l)%wghf_eb_window_av(m) /        &
3077                                          REAL( average_count_3d, kind=wp )
3078                       ENDDO
3079                    ENDIF
3080
3081                CASE ( 'usm_wghf_green' )
3082!
3083!--                 array of heat flux from green ground (wall, roof, land)
3084                    IF ( l == -1 ) THEN
3085                       DO  m = 1, surf_usm_h%ns
3086                          surf_usm_h%wghf_eb_green_av(m) =                              &
3087                                             surf_usm_h%wghf_eb_green_av(m) /           &
3088                                             REAL( average_count_3d, kind=wp )
3089                       ENDDO
3090                    ELSE
3091                       DO  m = 1, surf_usm_v(l)%ns
3092                          surf_usm_v(l)%wghf_eb_green_av(m) =                        &
3093                                          surf_usm_v(l)%wghf_eb_green_av(m) /        &
3094                                          REAL( average_count_3d, kind=wp )
3095                       ENDDO
3096                    ENDIF
3097
3098                CASE ( 'usm_iwghf' )
3099!
3100!--                 array of heat flux from indoor ground (wall, roof, land)
3101                    IF ( l == -1 ) THEN
3102                       DO  m = 1, surf_usm_h%ns
3103                          surf_usm_h%iwghf_eb_av(m) =                              &
3104                                             surf_usm_h%iwghf_eb_av(m) /           &
3105                                             REAL( average_count_3d, kind=wp )
3106                       ENDDO
3107                    ELSE
3108                       DO  m = 1, surf_usm_v(l)%ns
3109                          surf_usm_v(l)%iwghf_eb_av(m) =                        &
3110                                          surf_usm_v(l)%iwghf_eb_av(m) /        &
3111                                          REAL( average_count_3d, kind=wp )
3112                       ENDDO
3113                    ENDIF
3114                   
3115                CASE ( 'usm_iwghf_window' )
3116!
3117!--                 array of heat flux from indoor window ground (wall, roof, land)
3118                    IF ( l == -1 ) THEN
3119                       DO  m = 1, surf_usm_h%ns
3120                          surf_usm_h%iwghf_eb_window_av(m) =                              &
3121                                             surf_usm_h%iwghf_eb_window_av(m) /           &
3122                                             REAL( average_count_3d, kind=wp )
3123                       ENDDO
3124                    ELSE
3125                       DO  m = 1, surf_usm_v(l)%ns
3126                          surf_usm_v(l)%iwghf_eb_window_av(m) =                        &
3127                                          surf_usm_v(l)%iwghf_eb_window_av(m) /        &
3128                                          REAL( average_count_3d, kind=wp )
3129                       ENDDO
3130                    ENDIF
3131                   
3132                CASE ( 'usm_t_surf_wall' )
3133!
3134!--                 surface temperature for surfaces
3135                    IF ( l == -1 ) THEN
3136                       DO  m = 1, surf_usm_h%ns
3137                       surf_usm_h%t_surf_wall_av(m) =                               & 
3138                                          surf_usm_h%t_surf_wall_av(m) /            &
3139                                             REAL( average_count_3d, kind=wp )
3140                       ENDDO
3141                    ELSE
3142                       DO  m = 1, surf_usm_v(l)%ns
3143                          surf_usm_v(l)%t_surf_wall_av(m) =                         &
3144                                          surf_usm_v(l)%t_surf_wall_av(m) /         &
3145                                          REAL( average_count_3d, kind=wp )
3146                       ENDDO
3147                    ENDIF
3148                   
3149                CASE ( 'usm_t_surf_window' )
3150!
3151!--                 surface temperature for window surfaces
3152                    IF ( l == -1 ) THEN
3153                       DO  m = 1, surf_usm_h%ns
3154                          surf_usm_h%t_surf_window_av(m) =                               &
3155                                             surf_usm_h%t_surf_window_av(m) /            &
3156                                             REAL( average_count_3d, kind=wp )
3157                       ENDDO
3158                    ELSE
3159                       DO  m = 1, surf_usm_v(l)%ns
3160                          surf_usm_v(l)%t_surf_window_av(m) =                         &
3161                                          surf_usm_v(l)%t_surf_window_av(m) /         &
3162                                          REAL( average_count_3d, kind=wp )
3163                       ENDDO
3164                    ENDIF
3165                   
3166                CASE ( 'usm_t_surf_green' )
3167!
3168!--                 surface temperature for green surfaces
3169                    IF ( l == -1 ) THEN
3170                       DO  m = 1, surf_usm_h%ns
3171                          surf_usm_h%t_surf_green_av(m) =                               &
3172                                             surf_usm_h%t_surf_green_av(m) /            &
3173                                             REAL( average_count_3d, kind=wp )
3174                       ENDDO
3175                    ELSE
3176                       DO  m = 1, surf_usm_v(l)%ns
3177                          surf_usm_v(l)%t_surf_green_av(m) =                         &
3178                                          surf_usm_v(l)%t_surf_green_av(m) /         &
3179                                          REAL( average_count_3d, kind=wp )
3180                       ENDDO
3181                    ENDIF
3182                   
3183                CASE ( 'usm_theta_10cm' )
3184!
3185!--                 near surface temperature for whole surfaces
3186                    IF ( l == -1 ) THEN
3187                       DO  m = 1, surf_usm_h%ns
3188                          surf_usm_h%pt_10cm_av(m) =                               &
3189                                             surf_usm_h%pt_10cm_av(m) /            &
3190                                             REAL( average_count_3d, kind=wp )
3191                       ENDDO
3192                    ELSE
3193                       DO  m = 1, surf_usm_v(l)%ns
3194                          surf_usm_v(l)%pt_10cm_av(m) =                         &
3195                                          surf_usm_v(l)%pt_10cm_av(m) /         &
3196                                          REAL( average_count_3d, kind=wp )
3197                       ENDDO
3198                    ENDIF
3199
3200                   
3201                CASE ( 'usm_t_wall' )
3202!
3203!--                 wall temperature for  iwl layer of walls and land
3204                    IF ( l == -1 ) THEN
3205                       DO  m = 1, surf_usm_h%ns
3206                          surf_usm_h%t_wall_av(iwl,m) =                           &
3207                                             surf_usm_h%t_wall_av(iwl,m) /        &
3208                                             REAL( average_count_3d, kind=wp )
3209                       ENDDO
3210                    ELSE
3211                       DO  m = 1, surf_usm_v(l)%ns
3212                          surf_usm_v(l)%t_wall_av(iwl,m) =                     &
3213                                          surf_usm_v(l)%t_wall_av(iwl,m) /     &
3214                                          REAL( average_count_3d, kind=wp )
3215                       ENDDO
3216                    ENDIF
3217
3218                CASE ( 'usm_t_window' )
3219!
3220!--                 window temperature for  iwl layer of walls and land
3221                    IF ( l == -1 ) THEN
3222                       DO  m = 1, surf_usm_h%ns
3223                          surf_usm_h%t_window_av(iwl,m) =                           &
3224                                             surf_usm_h%t_window_av(iwl,m) /        &
3225                                             REAL( average_count_3d, kind=wp )
3226                       ENDDO
3227                    ELSE
3228                       DO  m = 1, surf_usm_v(l)%ns
3229                          surf_usm_v(l)%t_window_av(iwl,m) =                     &
3230                                          surf_usm_v(l)%t_window_av(iwl,m) /     &
3231                                          REAL( average_count_3d, kind=wp )
3232                       ENDDO
3233                    ENDIF
3234
3235                CASE ( 'usm_t_green' )
3236!
3237!--                 green temperature for  iwl layer of walls and land
3238                    IF ( l == -1 ) THEN
3239                       DO  m = 1, surf_usm_h%ns
3240                          surf_usm_h%t_green_av(iwl,m) =                           &
3241                                             surf_usm_h%t_green_av(iwl,m) /        &
3242                                             REAL( average_count_3d, kind=wp )
3243                       ENDDO
3244                    ELSE
3245                       DO  m = 1, surf_usm_v(l)%ns
3246                          surf_usm_v(l)%t_green_av(iwl,m) =                     &
3247                                          surf_usm_v(l)%t_green_av(iwl,m) /     &
3248                                          REAL( average_count_3d, kind=wp )
3249                       ENDDO
3250                    ENDIF
3251                   
3252                CASE ( 'usm_swc' )
3253!
3254!--                 soil water content for  iwl layer of walls and land
3255                    IF ( l == -1 ) THEN
3256                    DO  m = 1, surf_usm_h%ns
3257                       surf_usm_h%swc_av(iwl,m) =                           &
3258                                          surf_usm_h%swc_av(iwl,m) /        &
3259                                          REAL( average_count_3d, kind=wp )
3260                    ENDDO
3261                    ELSE
3262                       DO  m = 1, surf_usm_v(l)%ns
3263                          surf_usm_v(l)%swc_av(iwl,m) =                     &
3264                                          surf_usm_v(l)%swc_av(iwl,m) /     &
3265                                          REAL( average_count_3d, kind=wp )
3266                       ENDDO
3267                    ENDIF
3268
3269
3270           END SELECT
3271
3272        ENDIF
3273
3274        ENDIF
3275
3276    END SUBROUTINE usm_3d_data_averaging
3277
3278
3279
3280!------------------------------------------------------------------------------!
3281! Description:
3282! ------------
3283!> Set internal Neumann boundary condition at outer soil grid points
3284!> for temperature and humidity.
3285!------------------------------------------------------------------------------!
3286 SUBROUTINE usm_boundary_condition
3287 
3288    IMPLICIT NONE
3289
3290    INTEGER(iwp) :: i      !< grid index x-direction
3291    INTEGER(iwp) :: ioff   !< offset index x-direction indicating location of soil grid point
3292    INTEGER(iwp) :: j      !< grid index y-direction
3293    INTEGER(iwp) :: joff   !< offset index x-direction indicating location of soil grid point
3294    INTEGER(iwp) :: k      !< grid index z-direction
3295    INTEGER(iwp) :: koff   !< offset index x-direction indicating location of soil grid point
3296    INTEGER(iwp) :: l      !< running index surface-orientation
3297    INTEGER(iwp) :: m      !< running index surface elements
3298
3299    koff = surf_usm_h%koff
3300    DO  m = 1, surf_usm_h%ns
3301       i = surf_usm_h%i(m)
3302       j = surf_usm_h%j(m)
3303       k = surf_usm_h%k(m)
3304       pt(k+koff,j,i) = pt(k,j,i)
3305    ENDDO
3306
3307    DO  l = 0, 3
3308       ioff = surf_usm_v(l)%ioff
3309       joff = surf_usm_v(l)%joff
3310       DO  m = 1, surf_usm_v(l)%ns
3311          i = surf_usm_v(l)%i(m)
3312          j = surf_usm_v(l)%j(m)
3313          k = surf_usm_v(l)%k(m)
3314          pt(k,j+joff,i+ioff) = pt(k,j,i)
3315       ENDDO
3316    ENDDO
3317
3318 END SUBROUTINE usm_boundary_condition
3319
3320
3321!------------------------------------------------------------------------------!
3322!
3323! Description:
3324! ------------
3325!> Subroutine checks variables and assigns units.
3326!> It is called out from subroutine check_parameters.
3327!------------------------------------------------------------------------------!
3328    SUBROUTINE usm_check_data_output( variable, unit )
3329
3330        IMPLICIT NONE
3331
3332        CHARACTER(LEN=*),INTENT(IN)    ::  variable   !<
3333        CHARACTER(LEN=*),INTENT(OUT)   ::  unit       !<
3334
3335        INTEGER(iwp)                                  :: i,j,l         !< index
3336        CHARACTER(LEN=2)                              :: ls
3337        CHARACTER(LEN=varnamelength)                  :: var           !< TRIM(variable)
3338        INTEGER(iwp), PARAMETER                       :: nl1 = 14      !< number of directional usm variables
3339        CHARACTER(LEN=varnamelength), DIMENSION(nl1)  :: varlist1 = &  !< list of directional usm variables
3340                  (/'usm_wshf                      ', &
3341                    'usm_wghf                      ', &
3342                    'usm_wghf_window               ', &
3343                    'usm_wghf_green                ', &
3344                    'usm_iwghf                     ', &
3345                    'usm_iwghf_window              ', &
3346                    'usm_surfz                     ', &
3347                    'usm_surfwintrans              ', &
3348                    'usm_surfcat                   ', &
3349                    'usm_t_surf_wall               ', &
3350                    'usm_t_surf_window             ', &
3351                    'usm_t_surf_green              ', &
3352                    'usm_t_green                   ', &
3353                    'usm_theta_10cm                '/)
3354
3355        INTEGER(iwp), PARAMETER                       :: nl2 = 3       !< number of directional layer usm variables
3356        CHARACTER(LEN=varnamelength), DIMENSION(nl2)  :: varlist2 = &  !< list of directional layer usm variables
3357                  (/'usm_t_wall                    ', &
3358                    'usm_t_window                  ', &
3359                    'usm_t_green                   '/)
3360
3361        INTEGER(iwp), PARAMETER                       :: nd = 5     !< number of directions
3362        CHARACTER(LEN=6), DIMENSION(nd), PARAMETER  :: dirname = &  !< direction names
3363                  (/'_roof ','_south','_north','_west ','_east '/)
3364        LOGICAL                                       :: lfound     !< flag if the variable is found
3365
3366
3367        lfound = .FALSE.
3368
3369        var = TRIM(variable)
3370
3371!
3372!--     check if variable exists
3373!--     directional variables
3374        DO i = 1, nl1
3375           DO j = 1, nd
3376              IF ( TRIM(var) == TRIM(varlist1(i))//TRIM(dirname(j)) ) THEN
3377                 lfound = .TRUE.
3378                 EXIT
3379              ENDIF
3380              IF ( lfound ) EXIT
3381           ENDDO
3382        ENDDO
3383        IF ( lfound ) GOTO 10
3384!
3385!--     directional layer variables
3386        DO i = 1, nl2
3387           DO j = 1, nd
3388              DO l = nzb_wall, nzt_wall
3389                 WRITE(ls,'(A1,I1)') '_',l
3390                 IF ( TRIM(var) == TRIM(varlist2(i))//TRIM(ls)//TRIM(dirname(j)) ) THEN
3391                    lfound = .TRUE.
3392                    EXIT
3393                 ENDIF
3394              ENDDO
3395              IF ( lfound ) EXIT
3396           ENDDO
3397        ENDDO
3398        IF ( .NOT.  lfound ) THEN
3399           unit = 'illegal'
3400           RETURN
3401        ENDIF
340210      CONTINUE
3403
3404        IF ( var(1:9)  == 'usm_wshf_'  .OR.  var(1:9) == 'usm_wghf_' .OR.                 &
3405             var(1:16) == 'usm_wghf_window_' .OR. var(1:15) == 'usm_wghf_green_' .OR.     &
3406             var(1:10) == 'usm_iwghf_' .OR. var(1:17) == 'usm_iwghf_window_'    .OR.      &
3407             var(1:17) == 'usm_surfwintrans_' .OR.                                        &
3408             var(1:9)  == 'usm_qsws_'  .OR.  var(1:13)  == 'usm_qsws_veg_'  .OR.          &
3409             var(1:13) == 'usm_qsws_liq_' ) THEN
3410            unit = 'W/m2'
3411        ELSE IF ( var(1:15) == 'usm_t_surf_wall'   .OR.  var(1:10) == 'usm_t_wall' .OR.   &
3412                  var(1:12) == 'usm_t_window' .OR. var(1:17) == 'usm_t_surf_window' .OR.  &
3413                  var(1:16) == 'usm_t_surf_green'  .OR.                                   &
3414                  var(1:11) == 'usm_t_green' .OR.  var(1:7) == 'usm_swc' .OR.             &
3415                  var(1:14) == 'usm_theta_10cm' )  THEN
3416            unit = 'K'
3417        ELSE IF ( var(1:9) == 'usm_surfz'  .OR.  var(1:11) == 'usm_surfcat' )  THEN
3418            unit = '1'
3419        ELSE
3420            unit = 'illegal'
3421        ENDIF
3422
3423    END SUBROUTINE usm_check_data_output
3424
3425
3426!------------------------------------------------------------------------------!
3427! Description:
3428! ------------
3429!> Check parameters routine for urban surface model
3430!------------------------------------------------------------------------------!
3431    SUBROUTINE usm_check_parameters
3432
3433       USE control_parameters,                                                 &
3434           ONLY:  bc_pt_b, bc_q_b, constant_flux_layer, large_scale_forcing,   &
3435                  lsf_surf, topography
3436
3437       USE netcdf_data_input_mod,                                             &
3438            ONLY:  building_type_f
3439
3440       IMPLICIT NONE
3441
3442       INTEGER(iwp) ::  i        !< running index, x-dimension
3443       INTEGER(iwp) ::  j        !< running index, y-dimension
3444
3445!
3446!--    Dirichlet boundary conditions are required as the surface fluxes are
3447!--    calculated from the temperature/humidity gradients in the urban surface
3448!--    model
3449       IF ( bc_pt_b == 'neumann'   .OR.   bc_q_b == 'neumann' )  THEN
3450          message_string = 'urban surface model requires setting of '//        &
3451                           'bc_pt_b = "dirichlet" and '//                      &
3452                           'bc_q_b  = "dirichlet"'
3453          CALL message( 'usm_check_parameters', 'PA0590', 1, 2, 0, 6, 0 )
3454       ENDIF
3455
3456       IF ( .NOT.  constant_flux_layer )  THEN
3457          message_string = 'urban surface model requires '//                   &
3458                           'constant_flux_layer = .T.'
3459          CALL message( 'usm_check_parameters', 'PA0084', 1, 2, 0, 6, 0 )
3460       ENDIF
3461
3462       IF (  .NOT.  radiation )  THEN
3463          message_string = 'urban surface model requires '//                   &
3464                           'the radiation model to be switched on'
3465          CALL message( 'usm_check_parameters', 'PA0084', 1, 2, 0, 6, 0 )
3466       ENDIF
3467!       
3468!--    Surface forcing has to be disabled for LSF in case of enabled
3469!--    urban surface module
3470       IF ( large_scale_forcing )  THEN
3471          lsf_surf = .FALSE.
3472       ENDIF
3473!
3474!--    Topography
3475       IF ( topography == 'flat' )  THEN
3476          message_string = 'topography /= "flat" is required '//               &
3477                           'when using the urban surface model'
3478          CALL message( 'usm_check_parameters', 'PA0592', 1, 2, 0, 6, 0 )
3479       ENDIF
3480!
3481!--    naheatlayers
3482       IF ( naheatlayers > nzt )  THEN
3483          message_string = 'number of anthropogenic heat layers '//            &
3484                           '"naheatlayers" can not be larger than'//           &
3485                           ' number of domain layers "nzt"'
3486          CALL message( 'usm_check_parameters', 'PA0593', 1, 2, 0, 6, 0 )
3487       ENDIF
3488!
3489!--    Check if building types are set within a valid range.
3490       IF ( building_type < LBOUND( building_pars, 2 )  .AND.                  &
3491            building_type > UBOUND( building_pars, 2 ) )  THEN
3492          WRITE( message_string, * ) 'building_type = ', building_type,        &
3493                                     ' is out of the valid range'
3494          CALL message( 'usm_check_parameters', 'PA0529', 2, 2, 0, 6, 0 )
3495       ENDIF
3496       IF ( building_type_f%from_file )  THEN
3497          DO  i = nxl, nxr
3498             DO  j = nys, nyn
3499                IF ( building_type_f%var(j,i) /= building_type_f%fill  .AND.   &
3500              ( building_type_f%var(j,i) < LBOUND( building_pars, 2 )  .OR.    &
3501                building_type_f%var(j,i) > UBOUND( building_pars, 2 ) ) )      &
3502                THEN
3503                   WRITE( message_string, * ) 'building_type = is out of ' //  &
3504                                        'the valid range at (j,i) = ', j, i
3505                   CALL message( 'usm_check_parameters', 'PA0529', 2, 2, 0, 6, 0 )
3506                ENDIF
3507             ENDDO
3508          ENDDO
3509       ENDIF
3510    END SUBROUTINE usm_check_parameters
3511
3512
3513!------------------------------------------------------------------------------!
3514!
3515! Description:
3516! ------------
3517!> Output of the 3D-arrays in netCDF and/or AVS format
3518!> for variables of urban_surface model.
3519!> It resorts the urban surface module output quantities from surf style
3520!> indexing into temporary 3D array with indices (i,j,k).
3521!> It is called from subroutine data_output_3d.
3522!------------------------------------------------------------------------------!
3523    SUBROUTINE usm_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do )
3524       
3525        IMPLICIT NONE
3526
3527        INTEGER(iwp), INTENT(IN)       ::  av        !< flag if averaged
3528        CHARACTER (len=*), INTENT(IN)  ::  variable  !< variable name
3529        INTEGER(iwp), INTENT(IN)       ::  nzb_do    !< lower limit of the data output (usually 0)
3530        INTEGER(iwp), INTENT(IN)       ::  nzt_do    !< vertical upper limit of the data output (usually nz_do3d)
3531        LOGICAL, INTENT(OUT)           ::  found     !<
3532        REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do) ::  local_pf   !< sp - it has to correspond to module data_output_3d
3533        REAL(sp), DIMENSION(nzb:nzt+1,nys:nyn,nxl:nxr)     ::  temp_pf    !< temp array for urban surface output procedure
3534       
3535        CHARACTER (len=varnamelength)                      :: var     !< trimmed variable name
3536        INTEGER(iwp), PARAMETER                            :: nd = 5  !< number of directions
3537        CHARACTER(len=6), DIMENSION(0:nd-1), PARAMETER     :: dirname = (/ '_roof ', '_south', '_north', '_west ', '_east ' /)
3538        INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER         :: dirint =  (/    iup_u, isouth_u, inorth_u,  iwest_u,  ieast_u /)
3539        INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER         :: diridx =  (/       -1,        1,        0,        3,        2 /)
3540                                                                      !< index for surf_*_v: 0:3 = (North, South, East, West)
3541        INTEGER(iwp)                   :: ids,idsint,idsidx
3542        INTEGER(iwp)                   :: i,j,k,iwl,istat, l, m  !< running indices
3543
3544        found = .TRUE.
3545        temp_pf = -1._wp
3546       
3547        ids = -1
3548        var = TRIM(variable)
3549        DO i = 0, nd-1
3550            k = len(TRIM(var))
3551            j = len(TRIM(dirname(i)))
3552            IF ( TRIM(var(k-j+1:k)) == TRIM(dirname(i)) )  THEN
3553                ids = i
3554                idsint = dirint(ids)
3555                idsidx = diridx(ids)
3556                var = var(:k-j)
3557                EXIT
3558            ENDIF
3559        ENDDO
3560        IF ( ids == -1 )  THEN
3561            var = TRIM(variable)
3562        ENDIF
3563        IF ( var(1:11) == 'usm_t_wall_'  .AND.  len(TRIM(var)) >= 12 )  THEN
3564!
3565!--         wall layers
3566            READ(var(12:12), '(I1)', iostat=istat ) iwl
3567            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
3568                var = var(1:10)
3569            ENDIF
3570        ENDIF
3571        IF ( var(1:13) == 'usm_t_window_'  .AND.  len(TRIM(var)) >= 14 )  THEN
3572!
3573!--         window layers
3574            READ(var(14:14), '(I1)', iostat=istat ) iwl
3575            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
3576                var = var(1:12)
3577            ENDIF
3578        ENDIF
3579        IF ( var(1:12) == 'usm_t_green_'  .AND.  len(TRIM(var)) >= 13 )  THEN
3580!
3581!--         green layers
3582            READ(var(13:13), '(I1)', iostat=istat ) iwl
3583            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
3584                var = var(1:11)
3585            ENDIF
3586        ENDIF
3587        IF ( var(1:8) == 'usm_swc_'  .AND.  len(TRIM(var)) >= 9 )  THEN
3588!
3589!--         green layers soil water content
3590            READ(var(9:9), '(I1)', iostat=istat ) iwl
3591            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
3592                var = var(1:7)
3593            ENDIF
3594        ENDIF
3595       
3596        SELECT CASE ( TRIM(var) )
3597
3598          CASE ( 'usm_surfz' )
3599!
3600!--           array of surface height (z)
3601              IF ( idsint == iup_u )  THEN
3602                 DO  m = 1, surf_usm_h%ns
3603                    i = surf_usm_h%i(m)
3604                    j = surf_usm_h%j(m)
3605                    k = surf_usm_h%k(m)
3606                    temp_pf(0,j,i) = MAX( temp_pf(0,j,i), REAL( k, kind=wp) )
3607                 ENDDO
3608              ELSE
3609                 l = idsidx
3610                 DO  m = 1, surf_usm_v(l)%ns
3611                    i = surf_usm_v(l)%i(m)
3612                    j = surf_usm_v(l)%j(m)
3613                    k = surf_usm_v(l)%k(m)
3614                    temp_pf(0,j,i) = MAX( temp_pf(0,j,i), REAL( k, kind=wp) + 1.0_wp )
3615                 ENDDO
3616              ENDIF
3617
3618          CASE ( 'usm_surfcat' )
3619!
3620!--           surface category
3621              IF ( idsint == iup_u )  THEN
3622                 DO  m = 1, surf_usm_h%ns
3623                    i = surf_usm_h%i(m)
3624                    j = surf_usm_h%j(m)
3625                    k = surf_usm_h%k(m)
3626                    temp_pf(k,j,i) = surf_usm_h%surface_types(m)
3627                 ENDDO
3628              ELSE
3629                 l = idsidx
3630                 DO  m = 1, surf_usm_v(l)%ns
3631                    i = surf_usm_v(l)%i(m)
3632                    j = surf_usm_v(l)%j(m)
3633                    k = surf_usm_v(l)%k(m)
3634                    temp_pf(k,j,i) = surf_usm_v(l)%surface_types(m)
3635                 ENDDO
3636              ENDIF
3637             
3638          CASE ( 'usm_surfwintrans' )
3639!
3640!--           transmissivity window tiles
3641              IF ( idsint == iup_u )  THEN
3642                 DO  m = 1, surf_usm_h%ns
3643                    i = surf_usm_h%i(m)
3644                    j = surf_usm_h%j(m)
3645                    k = surf_usm_h%k(m)
3646                    temp_pf(k,j,i) = surf_usm_h%transmissivity(m)
3647                 ENDDO
3648              ELSE
3649                 l = idsidx
3650                 DO  m = 1, surf_usm_v(l)%ns
3651                    i = surf_usm_v(l)%i(m)
3652                    j = surf_usm_v(l)%j(m)
3653                    k = surf_usm_v(l)%k(m)
3654                    temp_pf(k,j,i) = surf_usm_v(l)%transmissivity(m)
3655                 ENDDO
3656              ENDIF
3657
3658          CASE ( 'usm_wshf' )
3659!
3660!--           array of sensible heat flux from surfaces
3661              IF ( av == 0 )  THEN
3662                 IF ( idsint == iup_u )  THEN
3663                    DO  m = 1, surf_usm_h%ns
3664                       i = surf_usm_h%i(m)
3665                       j = surf_usm_h%j(m)
3666                       k = surf_usm_h%k(m)
3667                       temp_pf(k,j,i) = surf_usm_h%wshf_eb(m)
3668                    ENDDO
3669                 ELSE
3670                    l = idsidx
3671                    DO  m = 1, surf_usm_v(l)%ns
3672                       i = surf_usm_v(l)%i(m)
3673                       j = surf_usm_v(l)%j(m)
3674                       k = surf_usm_v(l)%k(m)
3675                       temp_pf(k,j,i) = surf_usm_v(l)%wshf_eb(m)
3676                    ENDDO
3677                 ENDIF
3678              ELSE
3679                 IF ( idsint == iup_u )  THEN
3680                    DO  m = 1, surf_usm_h%ns
3681                       i = surf_usm_h%i(m)
3682                       j = surf_usm_h%j(m)
3683                       k = surf_usm_h%k(m)
3684                       temp_pf(k,j,i) = surf_usm_h%wshf_eb_av(m)
3685                    ENDDO
3686                 ELSE
3687                    l = idsidx
3688                    DO  m = 1, surf_usm_v(l)%ns
3689                       i = surf_usm_v(l)%i(m)
3690                       j = surf_usm_v(l)%j(m)
3691                       k = surf_usm_v(l)%k(m)
3692                       temp_pf(k,j,i) = surf_usm_v(l)%wshf_eb_av(m)
3693                    ENDDO
3694                 ENDIF
3695              ENDIF
3696             
3697             
3698          CASE ( 'usm_qsws' )
3699!
3700!--           array of latent heat flux from surfaces
3701              IF ( av == 0 )  THEN
3702                 IF ( idsint == iup_u )  THEN
3703                    DO  m = 1, surf_usm_h%ns
3704                       i = surf_usm_h%i(m)
3705                       j = surf_usm_h%j(m)
3706                       k = surf_usm_h%k(m)
3707                       temp_pf(k,j,i) = surf_usm_h%qsws_eb(m)
3708                    ENDDO
3709                 ELSE
3710                    l = idsidx
3711                    DO  m = 1, surf_usm_v(l)%ns
3712                       i = surf_usm_v(l)%i(m)
3713                       j = surf_usm_v(l)%j(m)
3714                       k = surf_usm_v(l)%k(m)
3715                       temp_pf(k,j,i) = surf_usm_v(l)%qsws_eb(m)
3716                    ENDDO
3717                 ENDIF
3718              ELSE
3719                 IF ( idsint == iup_u )  THEN
3720                    DO  m = 1, surf_usm_h%ns
3721                       i = surf_usm_h%i(m)
3722                       j = surf_usm_h%j(m)
3723                       k = surf_usm_h%k(m)
3724                       temp_pf(k,j,i) = surf_usm_h%qsws_eb_av(m)
3725                    ENDDO
3726                 ELSE
3727                    l = idsidx
3728                    DO  m = 1, surf_usm_v(l)%ns
3729                       i = surf_usm_v(l)%i(m)
3730                       j = surf_usm_v(l)%j(m)
3731                       k = surf_usm_v(l)%k(m)
3732                       temp_pf(k,j,i) = surf_usm_v(l)%qsws_eb_av(m)
3733                    ENDDO
3734                 ENDIF
3735              ENDIF
3736             
3737          CASE ( 'usm_qsws_veg' )
3738!
3739!--           array of latent heat flux from vegetation surfaces
3740              IF ( av == 0 )  THEN
3741                 IF ( idsint == iup_u )  THEN
3742                    DO  m = 1, surf_usm_h%ns
3743                       i = surf_usm_h%i(m)
3744                       j = surf_usm_h%j(m)
3745                       k = surf_usm_h%k(m)
3746                       temp_pf(k,j,i) = surf_usm_h%qsws_veg(m)
3747                    ENDDO
3748                 ELSE
3749                    l = idsidx
3750                    DO  m = 1, surf_usm_v(l)%ns
3751                       i = surf_usm_v(l)%i(m)
3752                       j = surf_usm_v(l)%j(m)
3753                       k = surf_usm_v(l)%k(m)
3754                       temp_pf(k,j,i) = surf_usm_v(l)%qsws_veg(m)
3755                    ENDDO
3756                 ENDIF
3757              ELSE
3758                 IF ( idsint == iup_u )  THEN
3759                    DO  m = 1, surf_usm_h%ns
3760                       i = surf_usm_h%i(m)
3761                       j = surf_usm_h%j(m)
3762                       k = surf_usm_h%k(m)
3763                       temp_pf(k,j,i) = surf_usm_h%qsws_veg_av(m)
3764                    ENDDO
3765                 ELSE
3766                    l = idsidx
3767                    DO  m = 1, surf_usm_v(l)%ns
3768                       i = surf_usm_v(l)%i(m)
3769                       j = surf_usm_v(l)%j(m)
3770                       k = surf_usm_v(l)%k(m)
3771                       temp_pf(k,j,i) = surf_usm_v(l)%qsws_veg_av(m)
3772                    ENDDO
3773                 ENDIF
3774              ENDIF
3775             
3776          CASE ( 'usm_qsws_liq' )
3777!
3778!--           array of latent heat flux from surfaces with liquid
3779              IF ( av == 0 )  THEN
3780                 IF ( idsint == iup_u )  THEN
3781                    DO  m = 1, surf_usm_h%ns
3782                       i = surf_usm_h%i(m)
3783                       j = surf_usm_h%j(m)
3784                       k = surf_usm_h%k(m)
3785                       temp_pf(k,j,i) = surf_usm_h%qsws_liq(m)
3786                    ENDDO
3787                 ELSE
3788                    l = idsidx
3789                    DO  m = 1, surf_usm_v(l)%ns
3790                       i = surf_usm_v(l)%i(m)
3791                       j = surf_usm_v(l)%j(m)
3792                       k = surf_usm_v(l)%k(m)
3793                       temp_pf(k,j,i) = surf_usm_v(l)%qsws_liq(m)
3794                    ENDDO
3795                 ENDIF
3796              ELSE
3797                 IF ( idsint == iup_u )  THEN
3798                    DO  m = 1, surf_usm_h%ns
3799                       i = surf_usm_h%i(m)
3800                       j = surf_usm_h%j(m)
3801                       k = surf_usm_h%k(m)
3802                       temp_pf(k,j,i) = surf_usm_h%qsws_liq_av(m)
3803                    ENDDO
3804                 ELSE
3805                    l = idsidx
3806                    DO  m = 1, surf_usm_v(l)%ns
3807                       i = surf_usm_v(l)%i(m)
3808                       j = surf_usm_v(l)%j(m)
3809                       k = surf_usm_v(l)%k(m)
3810                       temp_pf(k,j,i) = surf_usm_v(l)%qsws_liq_av(m)
3811                    ENDDO
3812                 ENDIF
3813              ENDIF
3814
3815          CASE ( 'usm_wghf' )
3816!
3817!--           array of heat flux from ground (land, wall, roof)
3818              IF ( av == 0 )  THEN
3819                 IF ( idsint == iup_u )  THEN
3820                    DO  m = 1, surf_usm_h%ns
3821                       i = surf_usm_h%i(m)
3822                       j = surf_usm_h%j(m)
3823                       k = surf_usm_h%k(m)
3824                       temp_pf(k,j,i) = surf_usm_h%wghf_eb(m)
3825                    ENDDO
3826                 ELSE
3827                    l = idsidx
3828                    DO  m = 1, surf_usm_v(l)%ns
3829                       i = surf_usm_v(l)%i(m)
3830                       j = surf_usm_v(l)%j(m)
3831                       k = surf_usm_v(l)%k(m)
3832                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb(m)
3833                    ENDDO
3834                 ENDIF
3835              ELSE
3836                 IF ( idsint == iup_u )  THEN
3837                    DO  m = 1, surf_usm_h%ns
3838                       i = surf_usm_h%i(m)
3839                       j = surf_usm_h%j(m)
3840                       k = surf_usm_h%k(m)
3841                       temp_pf(k,j,i) = surf_usm_h%wghf_eb_av(m)
3842                    ENDDO
3843                 ELSE
3844                    l = idsidx
3845                    DO  m = 1, surf_usm_v(l)%ns
3846                       i = surf_usm_v(l)%i(m)
3847                       j = surf_usm_v(l)%j(m)
3848                       k = surf_usm_v(l)%k(m)
3849                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_av(m)
3850                    ENDDO
3851                 ENDIF
3852              ENDIF
3853
3854          CASE ( 'usm_wghf_window' )
3855!
3856!--           array of heat flux from window ground (land, wall, roof)
3857              IF ( av == 0 )  THEN
3858                 IF ( idsint == iup_u )  THEN
3859                    DO  m = 1, surf_usm_h%ns
3860                       i = surf_usm_h%i(m)
3861                       j = surf_usm_h%j(m)
3862                       k = surf_usm_h%k(m)
3863                       temp_pf(k,j,i) = surf_usm_h%wghf_eb_window(m)
3864                    ENDDO
3865                 ELSE
3866                    l = idsidx
3867                    DO  m = 1, surf_usm_v(l)%ns
3868                       i = surf_usm_v(l)%i(m)
3869                       j = surf_usm_v(l)%j(m)
3870                       k = surf_usm_v(l)%k(m)
3871                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_window(m)
3872                    ENDDO
3873                 ENDIF
3874              ELSE
3875                 IF ( idsint == iup_u )  THEN
3876                    DO  m = 1, surf_usm_h%ns
3877                       i = surf_usm_h%i(m)
3878                       j = surf_usm_h%j(m)
3879                       k = surf_usm_h%k(m)
3880                       temp_pf(k,j,i) = surf_usm_h%wghf_eb_window_av(m)
3881                    ENDDO
3882                 ELSE
3883                    l = idsidx
3884                    DO  m = 1, surf_usm_v(l)%ns
3885                       i = surf_usm_v(l)%i(m)
3886                       j = surf_usm_v(l)%j(m)
3887                       k = surf_usm_v(l)%k(m)
3888                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_window_av(m)
3889                    ENDDO
3890                 ENDIF
3891              ENDIF
3892
3893          CASE ( 'usm_wghf_green' )
3894!
3895!--           array of heat flux from green ground (land, wall, roof)
3896              IF ( av == 0 )  THEN
3897                 IF ( idsint == iup_u )  THEN
3898                    DO  m = 1, surf_usm_h%ns
3899                       i = surf_usm_h%i(m)
3900                       j = surf_usm_h%j(m)
3901                       k = surf_usm_h%k(m)
3902                       temp_pf(k,j,i) = surf_usm_h%wghf_eb_green(m)
3903                    ENDDO
3904                 ELSE
3905                    l = idsidx
3906                    DO  m = 1, surf_usm_v(l)%ns
3907                       i = surf_usm_v(l)%i(m)
3908                       j = surf_usm_v(l)%j(m)
3909                       k = surf_usm_v(l)%k(m)
3910                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_green(m)
3911                    ENDDO
3912                 ENDIF
3913              ELSE
3914                 IF ( idsint == iup_u )  THEN
3915                    DO  m = 1, surf_usm_h%ns
3916                       i = surf_usm_h%i(m)
3917                       j = surf_usm_h%j(m)
3918                       k = surf_usm_h%k(m)
3919                       temp_pf(k,j,i) = surf_usm_h%wghf_eb_green_av(m)
3920                    ENDDO
3921                 ELSE
3922                    l = idsidx
3923                    DO  m = 1, surf_usm_v(l)%ns
3924                       i = surf_usm_v(l)%i(m)
3925                       j = surf_usm_v(l)%j(m)
3926                       k = surf_usm_v(l)%k(m)
3927                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_green_av(m)
3928                    ENDDO
3929                 ENDIF
3930              ENDIF
3931
3932          CASE ( 'usm_iwghf' )
3933!
3934!--           array of heat flux from indoor ground (land, wall, roof)
3935              IF ( av == 0 )  THEN
3936                 IF ( idsint == iup_u )  THEN
3937                    DO  m = 1, surf_usm_h%ns
3938                       i = surf_usm_h%i(m)
3939                       j = surf_usm_h%j(m)
3940                       k = surf_usm_h%k(m)
3941                       temp_pf(k,j,i) = surf_usm_h%iwghf_eb(m)
3942                    ENDDO
3943                 ELSE
3944                    l = idsidx
3945                    DO  m = 1, surf_usm_v(l)%ns
3946                       i = surf_usm_v(l)%i(m)
3947                       j = surf_usm_v(l)%j(m)
3948                       k = surf_usm_v(l)%k(m)
3949                       temp_pf(k,j,i) = surf_usm_v(l)%iwghf_eb(m)
3950                    ENDDO
3951                 ENDIF
3952              ELSE
3953                 IF ( idsint == iup_u )  THEN
3954                    DO  m = 1, surf_usm_h%ns
3955                       i = surf_usm_h%i(m)
3956                       j = surf_usm_h%j(m)
3957                       k = surf_usm_h%k(m)
3958                       temp_pf(k,j,i) = surf_usm_h%iwghf_eb_av(m)
3959                    ENDDO
3960                 ELSE
3961                    l = idsidx
3962                    DO  m = 1, surf_usm_v(l)%ns
3963                       i = surf_usm_v(l)%i(m)
3964                       j = surf_usm_v(l)%j(m)
3965                       k = surf_usm_v(l)%k(m)
3966                       temp_pf(k,j,i) = surf_usm_v(l)%iwghf_eb_av(m)
3967                    ENDDO
3968                 ENDIF
3969              ENDIF
3970
3971          CASE ( 'usm_iwghf_window' )
3972!
3973!--           array of heat flux from indoor window ground (land, wall, roof)
3974              IF ( av == 0 )  THEN
3975                 IF ( idsint == iup_u )  THEN
3976                    DO  m = 1, surf_usm_h%ns
3977                       i = surf_usm_h%i(m)
3978                       j = surf_usm_h%j(m)
3979                       k = surf_usm_h%k(m)
3980                       temp_pf(k,j,i) = surf_usm_h%iwghf_eb_window(m)
3981                    ENDDO
3982                 ELSE
3983                    l = idsidx
3984                    DO  m = 1, surf_usm_v(l)%ns
3985                       i = surf_usm_v(l)%i(m)
3986                       j = surf_usm_v(l)%j(m)
3987                       k = surf_usm_v(l)%k(m)
3988                       temp_pf(k,j,i) = surf_usm_v(l)%iwghf_eb_window(m)
3989                    ENDDO
3990                 ENDIF
3991              ELSE
3992                 IF ( idsint == iup_u )  THEN
3993                    DO  m = 1, surf_usm_h%ns
3994                       i = surf_usm_h%i(m)
3995                       j = surf_usm_h%j(m)
3996                       k = surf_usm_h%k(m)
3997                       temp_pf(k,j,i) = surf_usm_h%iwghf_eb_window_av(m)
3998                    ENDDO
3999                 ELSE
4000                    l = idsidx
4001                    DO  m = 1, surf_usm_v(l)%ns
4002                       i = surf_usm_v(l)%i(m)
4003                       j = surf_usm_v(l)%j(m)
4004                       k = surf_usm_v(l)%k(m)
4005                       temp_pf(k,j,i) = surf_usm_v(l)%iwghf_eb_window_av(m)
4006                    ENDDO
4007                 ENDIF
4008              ENDIF
4009             
4010          CASE ( 'usm_t_surf_wall' )
4011!
4012!--           surface temperature for surfaces
4013              IF ( av == 0 )  THEN
4014                 IF ( idsint == iup_u )  THEN
4015                    DO  m = 1, surf_usm_h%ns
4016                       i = surf_usm_h%i(m)
4017                       j = surf_usm_h%j(m)
4018                       k = surf_usm_h%k(m)
4019                       temp_pf(k,j,i) = t_surf_wall_h(m)
4020                    ENDDO
4021                 ELSE
4022                    l = idsidx
4023                    DO  m = 1, surf_usm_v(l)%ns
4024                       i = surf_usm_v(l)%i(m)
4025                       j = surf_usm_v(l)%j(m)
4026                       k = surf_usm_v(l)%k(m)
4027                       temp_pf(k,j,i) = t_surf_wall_v(l)%t(m)
4028                    ENDDO
4029                 ENDIF
4030              ELSE
4031                 IF ( idsint == iup_u )  THEN
4032                    DO  m = 1, surf_usm_h%ns
4033                       i = surf_usm_h%i(m)
4034                       j = surf_usm_h%j(m)
4035                       k = surf_usm_h%k(m)
4036                       temp_pf(k,j,i) = surf_usm_h%t_surf_wall_av(m)
4037                    ENDDO
4038                 ELSE
4039                    l = idsidx
4040                    DO  m = 1, surf_usm_v(l)%ns
4041                       i = surf_usm_v(l)%i(m)
4042                       j = surf_usm_v(l)%j(m)
4043                       k = surf_usm_v(l)%k(m)
4044                       temp_pf(k,j,i) = surf_usm_v(l)%t_surf_wall_av(m)
4045                    ENDDO
4046                 ENDIF
4047              ENDIF
4048             
4049          CASE ( 'usm_t_surf_window' )
4050!
4051!--           surface temperature for window surfaces
4052              IF ( av == 0 )  THEN
4053                 IF ( idsint == iup_u )  THEN
4054                    DO  m = 1, surf_usm_h%ns
4055                       i = surf_usm_h%i(m)
4056                       j = surf_usm_h%j(m)
4057                       k = surf_usm_h%k(m)
4058                       temp_pf(k,j,i) = t_surf_window_h(m)
4059                    ENDDO
4060                 ELSE
4061                    l = idsidx
4062                    DO  m = 1, surf_usm_v(l)%ns
4063                       i = surf_usm_v(l)%i(m)
4064                       j = surf_usm_v(l)%j(m)
4065                       k = surf_usm_v(l)%k(m)
4066                       temp_pf(k,j,i) = t_surf_window_v(l)%t(m)
4067                    ENDDO
4068                 ENDIF
4069
4070              ELSE
4071                 IF ( idsint == iup_u )  THEN
4072                    DO  m = 1, surf_usm_h%ns
4073                       i = surf_usm_h%i(m)
4074                       j = surf_usm_h%j(m)
4075                       k = surf_usm_h%k(m)
4076                       temp_pf(k,j,i) = surf_usm_h%t_surf_window_av(m)
4077                    ENDDO
4078                 ELSE
4079                    l = idsidx
4080                    DO  m = 1, surf_usm_v(l)%ns
4081                       i = surf_usm_v(l)%i(m)
4082                       j = surf_usm_v(l)%j(m)
4083                       k = surf_usm_v(l)%k(m)
4084                       temp_pf(k,j,i) = surf_usm_v(l)%t_surf_window_av(m)
4085                    ENDDO
4086
4087                 ENDIF
4088
4089              ENDIF
4090
4091          CASE ( 'usm_t_surf_green' )
4092!
4093!--           surface temperature for green surfaces
4094              IF ( av == 0 )  THEN
4095                 IF ( idsint == iup_u )  THEN
4096                    DO  m = 1, surf_usm_h%ns
4097                       i = surf_usm_h%i(m)
4098                       j = surf_usm_h%j(m)
4099                       k = surf_usm_h%k(m)
4100                       temp_pf(k,j,i) = t_surf_green_h(m)
4101                    ENDDO
4102                 ELSE
4103                    l = idsidx
4104                    DO  m = 1, surf_usm_v(l)%ns
4105                       i = surf_usm_v(l)%i(m)
4106                       j = surf_usm_v(l)%j(m)
4107                       k = surf_usm_v(l)%k(m)
4108                       temp_pf(k,j,i) = t_surf_green_v(l)%t(m)
4109                    ENDDO
4110                 ENDIF
4111
4112              ELSE
4113                 IF ( idsint == iup_u )  THEN
4114                    DO  m = 1, surf_usm_h%ns
4115                       i = surf_usm_h%i(m)
4116                       j = surf_usm_h%j(m)
4117                       k = surf_usm_h%k(m)
4118                       temp_pf(k,j,i) = surf_usm_h%t_surf_green_av(m)
4119                    ENDDO
4120                 ELSE
4121                    l = idsidx
4122                    DO  m = 1, surf_usm_v(l)%ns
4123                       i = surf_usm_v(l)%i(m)
4124                       j = surf_usm_v(l)%j(m)
4125                       k = surf_usm_v(l)%k(m)
4126                       temp_pf(k,j,i) = surf_usm_v(l)%t_surf_green_av(m)
4127                    ENDDO
4128
4129                 ENDIF
4130
4131              ENDIF
4132
4133          CASE ( 'usm_theta_10cm' )
4134!
4135!--           near surface temperature for whole surfaces
4136              IF ( av == 0 )  THEN
4137                 IF ( idsint == iup_u )  THEN
4138                    DO  m = 1, surf_usm_h%ns
4139                       i = surf_usm_h%i(m)
4140                       j = surf_usm_h%j(m)
4141                       k = surf_usm_h%k(m)
4142                       temp_pf(k,j,i) = surf_usm_h%pt_10cm(m)
4143                    ENDDO
4144                 ELSE
4145                    l = idsidx
4146                    DO  m = 1, surf_usm_v(l)%ns
4147                       i = surf_usm_v(l)%i(m)
4148                       j = surf_usm_v(l)%j(m)
4149                       k = surf_usm_v(l)%k(m)
4150                       temp_pf(k,j,i) = surf_usm_v(l)%pt_10cm(m)
4151                    ENDDO
4152                 ENDIF
4153             
4154             
4155              ELSE
4156                 IF ( idsint == iup_u )  THEN
4157                    DO  m = 1, surf_usm_h%ns
4158                       i = surf_usm_h%i(m)
4159                       j = surf_usm_h%j(m)
4160                       k = surf_usm_h%k(m)
4161                       temp_pf(k,j,i) = surf_usm_h%pt_10cm_av(m)
4162                    ENDDO
4163                 ELSE
4164                    l = idsidx
4165                    DO  m = 1, surf_usm_v(l)%ns
4166                       i = surf_usm_v(l)%i(m)
4167                       j = surf_usm_v(l)%j(m)
4168                       k = surf_usm_v(l)%k(m)
4169                       temp_pf(k,j,i) = surf_usm_v(l)%pt_10cm_av(m)
4170                    ENDDO
4171
4172                  ENDIF
4173              ENDIF
4174             
4175          CASE ( 'usm_t_wall' )
4176!
4177!--           wall temperature for  iwl layer of walls and land
4178              IF ( av == 0 )  THEN
4179                 IF ( idsint == iup_u )  THEN
4180                    DO  m = 1, surf_usm_h%ns
4181                       i = surf_usm_h%i(m)
4182                       j = surf_usm_h%j(m)
4183                       k = surf_usm_h%k(m)
4184                       temp_pf(k,j,i) = t_wall_h(iwl,m)
4185                    ENDDO
4186                 ELSE
4187                    l = idsidx
4188                    DO  m = 1, surf_usm_v(l)%ns
4189                       i = surf_usm_v(l)%i(m)
4190                       j = surf_usm_v(l)%j(m)
4191                       k = surf_usm_v(l)%k(m)
4192                       temp_pf(k,j,i) = t_wall_v(l)%t(iwl,m)
4193                    ENDDO
4194                 ENDIF
4195              ELSE
4196                 IF ( idsint == iup_u )  THEN
4197                    DO  m = 1, surf_usm_h%ns
4198                       i = surf_usm_h%i(m)
4199                       j = surf_usm_h%j(m)
4200                       k = surf_usm_h%k(m)
4201                       temp_pf(k,j,i) = surf_usm_h%t_wall_av(iwl,m)
4202                    ENDDO
4203                 ELSE
4204                    l = idsidx
4205                    DO  m = 1, surf_usm_v(l)%ns
4206                       i = surf_usm_v(l)%i(m)
4207                       j = surf_usm_v(l)%j(m)
4208                       k = surf_usm_v(l)%k(m)
4209                       temp_pf(k,j,i) = surf_usm_v(l)%t_wall_av(iwl,m)
4210                    ENDDO
4211                 ENDIF
4212              ENDIF
4213             
4214          CASE ( 'usm_t_window' )
4215!
4216!--           window temperature for iwl layer of walls and land
4217              IF ( av == 0 )  THEN
4218                 IF ( idsint == iup_u )  THEN
4219                    DO  m = 1, surf_usm_h%ns
4220                       i = surf_usm_h%i(m)
4221                       j = surf_usm_h%j(m)
4222                       k = surf_usm_h%k(m)
4223                       temp_pf(k,j,i) = t_window_h(iwl,m)
4224                    ENDDO
4225                 ELSE
4226                    l = idsidx
4227                    DO  m = 1, surf_usm_v(l)%ns
4228                       i = surf_usm_v(l)%i(m)
4229                       j = surf_usm_v(l)%j(m)
4230                       k = surf_usm_v(l)%k(m)
4231                       temp_pf(k,j,i) = t_window_v(l)%t(iwl,m)
4232                    ENDDO
4233                 ENDIF
4234              ELSE
4235                 IF ( idsint == iup_u )  THEN
4236                    DO  m = 1, surf_usm_h%ns
4237                       i = surf_usm_h%i(m)
4238                       j = surf_usm_h%j(m)
4239                       k = surf_usm_h%k(m)
4240                       temp_pf(k,j,i) = surf_usm_h%t_window_av(iwl,m)
4241                    ENDDO
4242                 ELSE
4243                    l = idsidx
4244                    DO  m = 1, surf_usm_v(l)%ns
4245                       i = surf_usm_v(l)%i(m)
4246                       j = surf_usm_v(l)%j(m)
4247                       k = surf_usm_v(l)%k(m)
4248                       temp_pf(k,j,i) = surf_usm_v(l)%t_window_av(iwl,m)
4249                    ENDDO
4250                 ENDIF
4251              ENDIF
4252
4253          CASE ( 'usm_t_green' )
4254!
4255!--           green temperature for  iwl layer of walls and land
4256              IF ( av == 0 )  THEN
4257                 IF ( idsint == iup_u )  THEN
4258                    DO  m = 1, surf_usm_h%ns
4259                       i = surf_usm_h%i(m)
4260                       j = surf_usm_h%j(m)
4261                       k = surf_usm_h%k(m)
4262                       temp_pf(k,j,i) = t_green_h(iwl,m)
4263                    ENDDO
4264                 ELSE
4265                    l = idsidx
4266                    DO  m = 1, surf_usm_v(l)%ns
4267                       i = surf_usm_v(l)%i(m)
4268                       j = surf_usm_v(l)%j(m)
4269                       k = surf_usm_v(l)%k(m)
4270                       temp_pf(k,j,i) = t_green_v(l)%t(iwl,m)
4271                    ENDDO
4272                 ENDIF
4273              ELSE
4274                 IF ( idsint == iup_u )  THEN
4275                    DO  m = 1, surf_usm_h%ns
4276                       i = surf_usm_h%i(m)
4277                       j = surf_usm_h%j(m)
4278                       k = surf_usm_h%k(m)
4279                       temp_pf(k,j,i) = surf_usm_h%t_green_av(iwl,m)
4280                    ENDDO
4281                 ELSE
4282                    l = idsidx
4283                    DO  m = 1, surf_usm_v(l)%ns
4284                       i = surf_usm_v(l)%i(m)
4285                       j = surf_usm_v(l)%j(m)
4286                       k = surf_usm_v(l)%k(m)
4287                       temp_pf(k,j,i) = surf_usm_v(l)%t_green_av(iwl,m)
4288                    ENDDO
4289                 ENDIF
4290              ENDIF
4291             
4292              CASE ( 'usm_swc' )
4293!
4294!--           soil water content for  iwl layer of walls and land
4295              IF ( av == 0 )  THEN
4296                 IF ( idsint == iup_u )  THEN
4297                    DO  m = 1, surf_usm_h%ns
4298                       i = surf_usm_h%i(m)
4299                       j = surf_usm_h%j(m)
4300                       k = surf_usm_h%k(m)
4301                       temp_pf(k,j,i) = swc_h(iwl,m)
4302                    ENDDO
4303                 ELSE
4304                    l = idsidx
4305                    DO  m = 1, surf_usm_v(l)%ns
4306                       i = surf_usm_v(l)%i(m)
4307                       j = surf_usm_v(l)%j(m)
4308                       k = surf_usm_v(l)%k(m)
4309                       temp_pf(k,j,i) = swc_v(l)%t(iwl,m)
4310                    ENDDO
4311                 ENDIF
4312              ELSE
4313                 IF ( idsint == iup_u )  THEN
4314                    DO  m = 1, surf_usm_h%ns
4315                       i = surf_usm_h%i(m)
4316                       j = surf_usm_h%j(m)
4317                       k = surf_usm_h%k(m)
4318                       temp_pf(k,j,i) = surf_usm_h%swc_av(iwl,m)
4319                    ENDDO
4320                 ELSE
4321                    l = idsidx
4322                    DO  m = 1, surf_usm_v(l)%ns
4323                       i = surf_usm_v(l)%i(m)
4324                       j = surf_usm_v(l)%j(m)
4325                       k = surf_usm_v(l)%k(m)
4326                       temp_pf(k,j,i) = surf_usm_v(l)%swc_av(iwl,m)
4327                    ENDDO
4328                 ENDIF
4329              ENDIF
4330
4331             
4332          CASE DEFAULT
4333              found = .FALSE.
4334              RETURN
4335        END SELECT
4336
4337!
4338!--     Rearrange dimensions for NetCDF output
4339!--     FIXME: this may generate FPE overflow upon conversion from DP to SP
4340        DO  j = nys, nyn
4341            DO  i = nxl, nxr
4342                DO  k = nzb_do, nzt_do
4343                    local_pf(i,j,k) = temp_pf(k,j,i)
4344                ENDDO
4345            ENDDO
4346        ENDDO
4347       
4348    END SUBROUTINE usm_data_output_3d
4349   
4350
4351!------------------------------------------------------------------------------!
4352!
4353! Description:
4354! ------------
4355!> Soubroutine defines appropriate grid for netcdf variables.
4356!> It is called out from subroutine netcdf.
4357!------------------------------------------------------------------------------!
4358    SUBROUTINE usm_define_netcdf_grid( variable, found, grid_x, grid_y, grid_z )
4359   
4360        IMPLICIT NONE
4361
4362        CHARACTER (len=*), INTENT(IN)  ::  variable    !<
4363        LOGICAL, INTENT(OUT)           ::  found       !<
4364        CHARACTER (len=*), INTENT(OUT) ::  grid_x      !<
4365        CHARACTER (len=*), INTENT(OUT) ::  grid_y      !<
4366        CHARACTER (len=*), INTENT(OUT) ::  grid_z      !<
4367
4368        CHARACTER (len=varnamelength)  :: var
4369
4370        var = TRIM(variable)
4371        IF ( var(1:9) == 'usm_wshf_'  .OR.  var(1:9) == 'usm_wghf_'  .OR.                   &
4372             var(1:16) == 'usm_wghf_window_'  .OR. var(1:15) == 'usm_wghf_green_' .OR.      &
4373             var(1:10) == 'usm_iwghf_'  .OR. var(1:17) == 'usm_iwghf_window_' .OR.          &
4374             var(1:9) == 'usm_qsws_'  .OR.  var(1:13) == 'usm_qsws_veg_'  .OR.              &
4375             var(1:13) == 'usm_qsws_liq_' .OR.                                              &
4376             var(1:15) == 'usm_t_surf_wall'  .OR.  var(1:10) == 'usm_t_wall'  .OR.          &
4377             var(1:17) == 'usm_t_surf_window'  .OR.  var(1:12) == 'usm_t_window'  .OR.      &
4378             var(1:16) == 'usm_t_surf_green'  .OR. var(1:11) == 'usm_t_green' .OR.          &
4379             var(1:15) == 'usm_theta_10cm' .OR.                                             &
4380             var(1:9) == 'usm_surfz'  .OR.  var(1:11) == 'usm_surfcat'  .OR.                &
4381             var(1:16) == 'usm_surfwintrans'  .OR. var(1:7) == 'usm_swc' ) THEN
4382
4383            found = .TRUE.
4384            grid_x = 'x'
4385            grid_y = 'y'
4386            grid_z = 'zu'
4387        ELSE
4388            found  = .FALSE.
4389            grid_x = 'none'
4390            grid_y = 'none'
4391            grid_z = 'none'
4392        ENDIF
4393
4394    END SUBROUTINE usm_define_netcdf_grid
4395   
4396
4397!------------------------------------------------------------------------------!
4398! Description:
4399! ------------
4400!> Initialization of the wall surface model
4401!------------------------------------------------------------------------------!
4402    SUBROUTINE usm_init_material_model
4403
4404        IMPLICIT NONE
4405
4406        INTEGER(iwp) ::  k, l, m            !< running indices
4407       
4408        CALL location_message( '    initialization of wall surface model', .TRUE. )
4409
4410!
4411!--     Calculate wall grid spacings.
4412!--     Temperature is defined at the center of the wall layers,
4413!--     whereas gradients/fluxes are defined at the edges (_stag)     
4414!--     apply for all particular surface grids. First for horizontal surfaces
4415        DO  m = 1, surf_usm_h%ns
4416
4417           surf_usm_h%dz_wall(nzb_wall,m) = surf_usm_h%zw(nzb_wall,m)
4418           DO k = nzb_wall+1, nzt_wall
4419               surf_usm_h%dz_wall(k,m) = surf_usm_h%zw(k,m) -                  &
4420                                         surf_usm_h%zw(k-1,m)
4421           ENDDO
4422           surf_usm_h%dz_window(nzb_wall,m) = surf_usm_h%zw_window(nzb_wall,m)
4423           DO k = nzb_wall+1, nzt_wall
4424               surf_usm_h%dz_window(k,m) = surf_usm_h%zw_window(k,m) -         &
4425                                         surf_usm_h%zw_window(k-1,m)
4426           ENDDO
4427           
4428           surf_usm_h%dz_wall(nzt_wall+1,m) = surf_usm_h%dz_wall(nzt_wall,m)
4429
4430           DO k = nzb_wall, nzt_wall-1
4431               surf_usm_h%dz_wall_stag(k,m) = 0.5 * (                          &
4432                           surf_usm_h%dz_wall(k+1,m) + surf_usm_h%dz_wall(k,m) )
4433           ENDDO
4434           surf_usm_h%dz_wall_stag(nzt_wall,m) = surf_usm_h%dz_wall(nzt_wall,m)
4435           
4436           surf_usm_h%dz_window(nzt_wall+1,m) = surf_usm_h%dz_window(nzt_wall,m)
4437
4438           DO k = nzb_wall, nzt_wall-1
4439               surf_usm_h%dz_window_stag(k,m) = 0.5 * (                        &
4440                           surf_usm_h%dz_window(k+1,m) + surf_usm_h%dz_window(k,m) )
4441           ENDDO
4442           surf_usm_h%dz_window_stag(nzt_wall,m) = surf_usm_h%dz_window(nzt_wall,m)
4443
4444           IF (surf_usm_h%green_type_roof(m) == 2.0_wp ) THEN
4445!
4446!-- extensive green roof
4447!-- set ratio of substrate layer thickness, soil-type and LAI
4448              soil_type = 3
4449              surf_usm_h%lai(m) = 2.0_wp
4450             
4451              surf_usm_h%zw_green(nzb_wall,m)   = 0.05_wp
4452              surf_usm_h%zw_green(nzb_wall+1,m) = 0.10_wp
4453              surf_usm_h%zw_green(nzb_wall+2,m) = 0.15_wp
4454              surf_usm_h%zw_green(nzb_wall+3,m) = 0.20_wp
4455           ELSE
4456!
4457!-- intensiv green roof
4458!-- set ratio of substrate layer thickness, soil-type and LAI
4459              soil_type = 6
4460              surf_usm_h%lai(m) = 4.0_wp
4461             
4462              surf_usm_h%zw_green(nzb_wall,m)   = 0.05_wp
4463              surf_usm_h%zw_green(nzb_wall+1,m) = 0.10_wp
4464              surf_usm_h%zw_green(nzb_wall+2,m) = 0.40_wp
4465              surf_usm_h%zw_green(nzb_wall+3,m) = 0.80_wp
4466           ENDIF
4467           
4468           surf_usm_h%dz_green(nzb_wall,m) = surf_usm_h%zw_green(nzb_wall,m)
4469           DO k = nzb_wall+1, nzt_wall
4470               surf_usm_h%dz_green(k,m) = surf_usm_h%zw_green(k,m) -           &
4471                                         surf_usm_h%zw_green(k-1,m)
4472           ENDDO
4473           surf_usm_h%dz_green(nzt_wall+1,m) = surf_usm_h%dz_green(nzt_wall,m)
4474
4475           DO k = nzb_wall, nzt_wall-1
4476               surf_usm_h%dz_green_stag(k,m) = 0.5 * (                         &
4477                           surf_usm_h%dz_green(k+1,m) + surf_usm_h%dz_green(k,m) )
4478           ENDDO
4479           surf_usm_h%dz_green_stag(nzt_wall,m) = surf_usm_h%dz_green(nzt_wall,m)
4480           
4481          IF ( alpha_vangenuchten == 9999999.9_wp )  THEN
4482             alpha_vangenuchten = soil_pars(0,soil_type)
4483          ENDIF
4484
4485          IF ( l_vangenuchten == 9999999.9_wp )  THEN
4486             l_vangenuchten = soil_pars