source: palm/trunk/SOURCE/parin.f90 @ 3469

Last change on this file since 3469 was 3469, checked in by kanani, 5 years ago

Implement indoor climate and energy demand model

  • Property svn:keywords set to Id
File size: 47.8 KB
Line 
1!> @file parin.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 1997-2018 Leibniz Universitaet Hannover
18!------------------------------------------------------------------------------!
19!
20! Current revisions:
21! -----------------
22!
23!
24! Former revisions:
25! -----------------
26! $Id: parin.f90 3469 2018-10-30 20:05:07Z kanani $
27! Add indoor model (kanani, srissman, tlang),
28! minor formatting
29!
30! 3467 2018-10-30 19:05:21Z suehring
31! Implementation of a new aerosol module salsa.
32!
33! 3448 2018-10-29 18:14:31Z kanani
34! Add biometeorology
35!
36! 3435 2018-10-26 18:25:44Z gronemeier
37! Add mask_k_over_surface
38!
39! 3421 2018-10-24 18:39:32Z gronemeier
40! Added module for data output at surfaces
41!
42! 3355 2018-10-16 14:03:34Z knoop
43! - offline nesting separated from large-scale forcing module
44! - top boundary condition for pressure in offline nesting changed
45!
46! 3343 2018-10-15 10:38:52Z suehring
47! Introduced reading of date_init to inipar.(Russo)
48! Add extra profiles for chemistry (basit)
49!
50! 3294 2018-10-01 02:37:10Z raasch
51! changes concerning modularization of ocean option
52!
53! 3274 2018-09-24 15:42:55Z knoop
54! Modularization of all bulk cloud physics code components
55!
56! 3248 2018-09-14 09:42:06Z sward
57! Minor formating changes
58!
59! 3246 2018-09-13 15:14:50Z sward
60! Added error handling for input namelist via parin_fail_message
61!
62! 3240 2018-09-12 12:04:40Z Giersch
63! A check that controls the number of user-defined profiles on the restart file
64! with the one given for the current run has been added.
65!
66! 3204 2018-08-23 10:49:05Z raasch
67! additional check for nz
68!
69! 3184 2018-07-27 17:13:09Z suehring
70! Bugfix, comment setting of chemistry and passive scalar top boundary condition
71! in case of offline nesting
72!
73! 3183 2018-07-27 14:25:55Z suehring
74! Rename variables and boundary conditions in mesoscale-offline nesting mode
75!
76! 3182 2018-07-27 13:36:03Z suehring
77! Added multi agent system
78!
79! 3157 2018-07-19 21:08:49Z maronga
80! added use_free_convection_scaling
81!
82! 3083 2018-06-19 14:03:12Z gronemeier
83! Added rans_const_c and rans_const_sigma as input parameters (TG)
84!
85! 3065 2018-06-12 07:03:02Z Giersch
86! New initialization parameters added
87!
88! 3049 2018-05-29 13:52:36Z Giersch
89! Error messages revised
90!
91! 3045 2018-05-28 07:55:41Z Giersch
92! z_max_do2d removed, error messages revised
93!
94! 2995 2018-04-19 12:13:16Z Giersch
95! time_since_reference_point must be calculated/initialized before the first 
96! call of functions related to the radiation model which occur in
97! time_integration_spinup or time_integration
98!
99! 2980 2018-04-17 15:19:27Z suehring
100! Revise message call
101!
102! 2975 2018-04-16 15:22:20Z suehring
103! - Informative message when initializing_actions has been changed
104!   to set_constant_profile in child domain
105! - Change location in message call
106!
107! 2967 2018-04-13 11:22:08Z raasch
108! bugfix: missing parallel cpp-directives added
109!
110! 2941 2018-04-03 11:54:58Z kanani
111! Fix for spinup in case of restart run
112!
113! 2938 2018-03-27 15:52:42Z suehring
114! Change initialization in case child domain should be initialized with Inifor.
115!
116! 2936 2018-03-27 14:49:27Z suehring
117! inipar renamed to initialization_parameters.
118! d3par renamed to runtime_parameters.
119!
120! 2921 2018-03-22 15:05:23Z Giersch
121! Activation of spinup has been moved from lsm/usm_parin to parin itself
122!
123! 2906 2018-03-19 08:56:40Z Giersch
124! ENVIRONMENT variables read/write_svf has been added
125!
126! 2894 2018-03-15 09:17:58Z Giersch
127! read_var_list has been renamed to rrd_global, all module related _parin
128! routines are called before reading the global restart data to overwrite them
129! in case of restart runs
130!
131! 2881 2018-03-13 16:24:40Z suehring
132! Added flag for switching on/off calculation of soil moisture
133!
134! 2849 2018-03-05 10:49:33Z Giersch
135! Position of d3par namelist in parameter file is unimportant now
136!
137! 2826 2018-02-21 12:39:28Z Giersch
138! Bugfix in setting the default boundary conditions for nest domains
139!
140! 2817 2018-02-19 16:32:21Z knoop
141! Preliminary gust module interface implemented
142!
143! 2773 2018-01-30 14:12:54Z suehring
144! Nesting for chemical species implemented
145!
146! 2766 2018-01-22 17:17:47Z kanani
147! Removed preprocessor directive __chem
148!
149! 2718 2018-01-02 08:49:38Z maronga
150! Corrected "Former revisions" section
151!
152! 2696 2017-12-14 17:12:51Z kanani
153! Change in file header (GPL part)
154! Implementation of uv exposure model (FK)
155! Added rans_mode and turbulence_closure to inipar (TG)
156! Implementation of chemistry module
157! Sorting of USE list (FK)
158! Forcing implemented, and initialization with inifor (MS)
159!
160! 2600 2017-11-01 14:11:20Z raasch
161! some comments added and variables renamed concerning r2599
162!
163! 2599 2017-11-01 13:18:45Z hellstea
164! The i/o grouping is updated to work correctly also in nested runs.
165!
166! 2575 2017-10-24 09:57:58Z maronga
167! Renamed phi -> latitude, added longitude
168!
169! 2563 2017-10-19 15:36:10Z Giersch
170! Changed position where restart files are closed.
171!
172! 2550 2017-10-16 17:12:01Z boeske
173! Added complex_terrain
174!
175! 2544 2017-10-13 18:09:32Z maronga
176! Moved day_of_year_init and time_utc_init to inipar.
177!
178! 2397 2017-09-04 16:22:48Z suehring
179! Enable initialization of 3d model by user in the child domain.
180!
181! 2375 2017-08-29 14:10:28Z schwenkel
182! Added aerosol initialization for bulk microphysics
183!
184! 2372 2017-08-25 12:37:32Z sward
185! y_shift added to namelist
186!
187! 2365 2017-08-21 14:59:59Z kanani
188! Vertical grid nesting: add vnest_start_time to d3par (SadiqHuq)
189!
190! 2339 2017-08-07 13:55:26Z gronemeier
191! corrected timestamp in header
192!
193! 2338 2017-08-07 12:15:38Z gronemeier
194! Modularize 1D model
195!
196! 2310 2017-07-11 09:37:02Z gronemeier
197! Bugfix: re-arranged call for error messages for ENVPAR file
198!
199! 2304 2017-07-04 14:35:55Z suehring
200! Bugfix, enable restarts for child domain.
201!
202! 2298 2017-06-29 09:28:18Z raasch
203! -return_addres, return_username in ENVPAR, -cross_ts_uymax, cross_ts_uymin in
204! d3par
205!
206! 2296 2017-06-28 07:53:56Z maronga
207! Added parameters for model spinup
208!
209! 2292 2017-06-20 09:51:42Z schwenkel
210! Implementation of new microphysic scheme: cloud_scheme = 'morrison'
211! includes two more prognostic equations for cloud drop concentration (nc) 
212! and cloud water content (qc).
213!
214! 2267 2017-06-09 09:33:25Z gronemeier
215! Bugfix: removed skipping of reading namelists in case of omitted d3par
216!
217! 2259 2017-06-08 09:09:11Z gronemeier
218! Implemented synthetic turbulence generator
219!
220! 2233 2017-05-30 18:08:54Z suehring
221!
222! 2232 2017-05-30 17:47:52Z suehring
223! typo corrected
224! +wall_salinityflux
225! +tunnel_height, tunnel_lenght, tunnel_width_x, tunnel_width_y,
226!  tunnel_wall_depth
227!
228! 2118 2017-01-17 16:38:49Z raasch
229! -background_communication from inipar
230!
231! 2050 2016-11-08 15:00:55Z gronemeier
232! Implement turbulent outflow condition
233!
234! 2037 2016-10-26 11:15:40Z knoop
235! Anelastic approximation implemented
236!
237! 2035 2016-10-24 15:06:17Z suehring
238! Remove check for npex and npey in nesting case
239!
240! 2011 2016-09-19 17:29:57Z kanani
241! Added flag lsf_exception to allow explicit enabling of large scale forcing
242! together with buildings on flat terrain.
243!
244! 2007 2016-08-24 15:47:17Z kanani
245! Added call to urban surface model for reading of &urban_surface_par
246!
247! 2004 2016-08-24 10:25:59Z suehring
248! Humidity and passive scalar treated separately in nesting mode
249!
250! 2000 2016-08-20 18:09:15Z knoop
251! Forced header and separation lines into 80 columns
252!
253! 1992 2016-08-12 15:14:59Z suehring
254! +top_scalarflux
255!
256! 1960 2016-07-12 16:34:24Z suehring
257! Allocation of s_init
258!
259! 1957 2016-07-07 10:43:48Z suehring
260! flight module added
261!
262! 1955 2016-07-01 12:38:59Z hellstea
263! The parameter intializating_actions is set to 'set_constant_profiles for
264! all nest domains in order to make sure that diagnostic variables are properly
265! initialized for nest domains. Prognostic variables are later initialized by
266! interpolation from the parent domain.
267!
268! 1917 2016-05-27 14:28:12Z witha
269! Initial version of purely vertical nesting introduced.
270!
271! 1914 2016-05-26 14:44:07Z witha
272! Added call to wind turbine model for reading of &wind_turbine_par
273!
274! 1849 2016-04-08 11:33:18Z hoffmann
275! Adapted for modularization of microphysics
276!
277! 1833 2016-04-07 14:23:03Z raasch
278! call of spectra_parin
279!
280! 1831 2016-04-07 13:15:51Z hoffmann
281! turbulence renamed collision_turbulence, drizzle renamed
282! cloud_water_sedimentation
283! curvature_solution_effects removed
284!
285! 1826 2016-04-07 12:01:39Z maronga
286! Added call to radiation model for reading of &radiation_par.
287! Added call to plant canopy model for reading of &canopy_par.
288!
289! 1817 2016-04-06 15:44:20Z maronga
290! Added call to land surface model for reading of &lsm_par
291!
292! 1804 2016-04-05 16:30:18Z maronga
293! Removed code for parameter file check (__check)
294!
295! 1783 2016-03-06 18:36:17Z raasch
296! +netcdf_deflate in d3par, netcdf module and variable names changed
297!
298! 1764 2016-02-28 12:45:19Z raasch
299! cpp-statements for nesting removed, explicit settings of boundary conditions
300! in nest domains,
301! bugfix: npex/npey message moved from inipar to d3par
302! bugfix: check of lateral boundary conditions from check_parameters to here,
303! because they will be already used in init_pegrid and init_grid
304!
305! 1762 2016-02-25 12:31:13Z hellstea
306! Introduction of nested domain feature
307!
308! 1691 2015-10-26 16:17:44Z maronga
309! Added parameter most_method. Renamed prandtl_layer to constant_flux_layer.
310!
311! 1682 2015-10-07 23:56:08Z knoop
312! Code annotations made doxygen readable
313!
314! 1560 2015-03-06 10:48:54Z keck
315! +recycling_yshift
316!
317! 1496 2014-12-02 17:25:50Z maronga
318! Renamed: "radiation -> "cloud_top_radiation"
319!
320! 1484 2014-10-21 10:53:05Z kanani
321! Changes due to new module structure of the plant canopy model:
322!   canopy-model related parameters moved to new package canopy_par in
323!   subroutine package_parin
324!
325! 1429 2014-07-15 12:53:45Z knoop
326! +ensemble_member_nr to prepare the random_generator for ensemble runs
327!
328! 1402 2014-05-09 14:25:13Z raasch
329! location messages modified, progress_bar_disabled included in envpar-NAMELIST
330!
331! 1384 2014-05-02 14:31:06Z raasch
332! location messages added
333!
334! 1365 2014-04-22 15:03:56Z boeske
335! Usage of large scale forcing enabled:
336! +use_subsidence_tendencies
337!
338! 1361 2014-04-16 15:17:48Z hoffmann
339! +call_microphysics_at_all_substeps
340!
341! 1359 2014-04-11 17:15:14Z hoffmann
342! REAL constants provided with KIND-attribute
343!
344! 1353 2014-04-08 15:21:23Z heinze
345! REAL constants provided with KIND-attribute
346!
347! 1327 2014-03-21 11:00:16Z raasch
348! -data_output_format, do3d_compress, do3d_comp_prec
349!
350! 1320 2014-03-20 08:40:49Z raasch
351! ONLY-attribute added to USE-statements,
352! kind-parameters added to all INTEGER and REAL declaration statements,
353! kinds are defined in new module kinds,
354! old module precision_kind is removed,
355! revision history before 2012 removed,
356! comment fields (!:) to be used for variable explanations added to
357! all variable declaration statements
358!
359! 1318 2014-03-17 13:35:16Z raasch
360! +cpu_log_barrierwait in d3par
361!
362! 1301 2014-03-06 13:29:46Z heinze
363! +large_scale_subsidence
364!
365! 1241 2013-10-30 11:36:58Z heinze
366! +nudging
367! +large_scale_forcing
368!
369! 1216 2013-08-26 09:31:42Z raasch
370! +transpose_compute_overlap in inipar
371!
372! 1195 2013-07-01 12:27:57Z heinze
373! Bugfix: allocate ref_state
374!
375! 1179 2013-06-14 05:57:58Z raasch
376! +reference_state in inipar
377!
378! 1159 2013-05-21 11:58:22Z fricke
379! +use_cmax
380!
381! 1128 2013-04-12 06:19:32Z raasch
382! +background_communication in inipar
383!
384! 1115 2013-03-26 18:16:16Z hoffmann
385! unused variables removed
386!
387! 1092 2013-02-02 11:24:22Z raasch
388! unused variables removed
389!
390! 1065 2012-11-22 17:42:36Z hoffmann
391! +nc, c_sedimentation, limiter_sedimentation, turbulence
392! -mu_constant, mu_constant_value
393!
394! 1053 2012-11-13 17:11:03Z hoffmann
395! necessary expansions according to the two new prognostic equations (nr, qr)
396! of the two-moment cloud physics scheme and steering parameters:
397! +*_init, *_surface, *_surface_initial_change, *_vertical_gradient,
398! +*_vertical_gradient_level, surface_waterflux_*,
399! +cloud_scheme, drizzle, mu_constant, mu_constant_value, ventilation_effect
400!
401! 1036 2012-10-22 13:43:42Z raasch
402! code put under GPL (PALM 3.9)
403!
404! 1015 2012-09-27 09:23:24Z raasch
405! -adjust_mixing_length
406!
407! 1003 2012-09-14 14:35:53Z raasch
408! -grid_matching
409!
410! 1001 2012-09-13 14:08:46Z raasch
411! -cut_spline_overshoot, long_filter_factor, overshoot_limit_*, ups_limit_*
412!
413! 996 2012-09-07 10:41:47Z raasch
414! -use_prior_plot1d_parameters
415!
416! 978 2012-08-09 08:28:32Z fricke
417! -km_damp_max, outflow_damping_width
418! +pt_damping_factor, pt_damping_width
419! +z0h_factor
420!
421! 964 2012-07-26 09:14:24Z raasch
422! -cross_normalized_x, cross_normalized_y, cross_xtext, z_max_do1d,
423! z_max_do1d_normalized
424!
425! 940 2012-07-09 14:31:00Z raasch
426! +neutral in inipar
427!
428! 927 2012-06-06 19:15:04Z raasch
429! +masking_method in inipar
430!
431! 824 2012-02-17 09:09:57Z raasch
432! +curvature_solution_effects in inipar
433!
434! 809 2012-01-30 13:32:58Z maronga
435! Bugfix: replaced .AND. and .NOT. with && and ! in the preprocessor directives
436!
437! 807 2012-01-25 11:53:51Z maronga
438! New cpp directive "__check" implemented which is used by check_namelist_files
439!
440! Revision 1.1  1997/07/24 11:22:50  raasch
441! Initial revision
442!
443!
444! Description:
445! ------------
446!> This subroutine reads variables controling the run from the NAMELIST files
447!>
448!> @todo: Revise max_pr_cs (profiles for chemistry)
449!------------------------------------------------------------------------------!
450 SUBROUTINE parin
451 
452
453    USE arrays_3d,                                                             &
454        ONLY:  pt_init, q_init, ref_state, s_init, sa_init,                    &
455               ug, u_init, v_init, vg
456
457    USE biometeorology_mod,                                                    &
458        ONLY:  biom_parin
459
460    USE bulk_cloud_model_mod,                                                  &
461        ONLY:  bcm_parin
462
463    USE chemistry_model_mod,                                                   &
464        ONLY:  chem_parin
465
466    USE chem_modules
467
468    USE control_parameters
469
470    USE cpulog,                                                                &
471        ONLY:  cpu_log_barrierwait
472
473    USE date_and_time_mod,                                                     &
474        ONLY:  date_init, day_of_year_init, time_utc_init
475
476    USE dvrp_variables,                                                        &
477        ONLY:  local_dvrserver_running
478
479    USE flight_mod,                                                            &
480        ONLY:  flight_parin
481
482    USE grid_variables,                                                        &
483        ONLY:  dx, dy
484
485    USE gust_mod,                                                              &
486        ONLY: gust_parin
487
488    USE indices,                                                               &
489        ONLY:  nx, ny, nz
490
491    USE indoor_model_mod,                                                      &
492        ONLY:  im_parin
493
494    USE kinds
495
496    USE land_surface_model_mod,                                                &
497        ONLY: lsm_parin
498
499    USE model_1d_mod,                                                          &
500        ONLY:  damp_level_1d, dt_pr_1d, dt_run_control_1d, end_time_1d
501
502    USE multi_agent_system_mod,                                                &
503        ONLY:  mas_parin
504
505    USE nesting_offl_mod,                                                      &
506        ONLY:  nesting_offl_parin
507       
508    USE netcdf_interface,                                                      &
509        ONLY:  netcdf_data_format, netcdf_deflate, netcdf_precision
510
511    USE ocean_mod,                                                             &
512        ONLY:  ocean_parin
513
514    USE pegrid
515
516    USE plant_canopy_model_mod,                                                &
517         ONLY: pcm_parin
518
519    USE pmc_interface,                                                         &
520        ONLY:  nested_run, nesting_mode
521
522    USE profil_parameter,                                                      &
523        ONLY:  cross_profiles, profile_columns, profile_rows
524
525    USE progress_bar,                                                          &
526        ONLY :  progress_bar_disabled
527
528    USE radiation_model_mod,                                                   &
529        ONLY: radiation_parin
530
531    USE read_restart_data_mod,                                                 &
532        ONLY:  rrd_global 
533             
534    USE salsa_mod,                                                             &
535        ONLY: salsa_parin         
536
537    USE spectra_mod,                                                           &
538        ONLY :  spectra_parin
539
540    USE statistics,                                                            &
541        ONLY:  hom, hom_sum, pr_palm, region, statistic_regions
542
543    USE surface_output_mod,                                                    &
544        ONLY:  surface_output_parin
545
546    USE synthetic_turbulence_generator_mod,                                    &
547        ONLY:  stg_parin
548
549    USE turbulence_closure_mod,                                                &
550        ONLY:  rans_const_c, rans_const_sigma
551
552    USE urban_surface_mod,                                                     &
553        ONLY: usm_parin
554
555    USE uv_exposure_model_mod,                                                 &
556        ONLY:  uvem_parin
557
558    USE vertical_nesting_mod,                                                  &
559        ONLY:  vnest_start_time
560
561    USE wind_turbine_model_mod,                                                &
562        ONLY:  wtm_parin
563
564
565    IMPLICIT NONE
566
567    CHARACTER (LEN=80) ::  line  !< dummy string that contains the current line of the parameter file
568
569    INTEGER(iwp) ::  global_id      !< process id with respect to MPI_COMM_WORLD
570    INTEGER(iwp) ::  global_procs   !< # of procs with respect to MPI_COMM_WORLD
571    INTEGER(iwp) ::  i              !<
572    INTEGER(iwp) ::  ioerr          !< error flag for open/read/write
573
574    NAMELIST /inipar/  alpha_surface, approximation, bc_e_b,     &
575                       bc_lr, bc_ns, bc_p_b, bc_p_t, bc_pt_b, bc_pt_t, bc_q_b, &
576             bc_q_t,bc_s_b, bc_s_t, bc_uv_b, bc_uv_t,                 &
577             building_height, building_length_x,          &
578             building_length_y, building_wall_left, building_wall_south,       &
579             calc_soil_moisture_during_spinup,                                 &
580             call_psolver_at_all_substeps,  &
581             canyon_height,                                                    &
582             canyon_width_x, canyon_width_y, canyon_wall_left,                 &
583             canyon_wall_south, cfl_factor, cloud_droplets,   &
584             collective_wait, complex_terrain,           &
585             conserve_volume_flow,                                             &
586             conserve_volume_flow_mode, constant_flux_layer,                   &
587             coupling_start_time,             &
588             cycle_mg, damp_level_1d,                                          &
589             data_output_during_spinup,                                        &
590             date_init,                                                        &
591             day_of_year_init,                                                 &
592             dissipation_1d,                                                   &
593             dp_external, dp_level_b, dp_smooth, dpdxy,    &
594             dt, dt_pr_1d, dt_run_control_1d, dt_spinup, dx, dy, dz, dz_max,   &
595             dz_stretch_factor, dz_stretch_level, dz_stretch_level_start,      &
596             dz_stretch_level_end, end_time_1d, ensemble_member_nr, e_init,    &
597             e_min, fft_method, flux_input_mode, flux_output_mode,             &
598             galilei_transformation, humidity,                                 &
599             inflow_damping_height, inflow_damping_width,                      &
600             inflow_disturbance_begin, inflow_disturbance_end,                 &
601             initializing_actions, km_constant,                                &
602             large_scale_forcing, large_scale_subsidence, latitude,            &
603             longitude,                                 &
604             loop_optimization, lsf_exception, masking_method, mg_cycles,      &
605             mg_switch_to_pe0_level, mixing_length_1d, momentum_advec,         &
606             most_method,                                                      &
607             netcdf_precision, neutral, ngsrb,                                 &
608             nsor, nsor_ini, nudging, nx, ny, nz, ocean_mode, omega,           &
609             omega_sor, outflow_source_plane, passive_scalar,                  &
610             prandtl_number, psolver, pt_damping_factor,        &
611             pt_damping_width, pt_reference, pt_surface,                       &
612             pt_surface_initial_change, pt_vertical_gradient,                  &
613             pt_vertical_gradient_level, q_surface, q_surface_initial_change,  &
614             q_vertical_gradient, q_vertical_gradient_level,                   &
615             random_generator, random_heatflux, rans_const_c, rans_const_sigma,&
616             rans_mode,                                                        &
617             rayleigh_damping_factor, rayleigh_damping_height,                 &
618             recycling_width, recycling_yshift,                                &
619             reference_state, residual_limit,                                  &
620             roughness_length,                                                 &
621             scalar_advec,   &
622             scalar_rayleigh_damping,                              &
623             spinup_time, spinup_pt_amplitude, spinup_pt_mean,                 &
624             statistic_regions, subs_vertical_gradient,                        &
625             subs_vertical_gradient_level, surface_heatflux, surface_pressure, &
626             surface_scalarflux, surface_waterflux,                            &
627             s_surface, s_surface_initial_change, s_vertical_gradient,         &
628             s_vertical_gradient_level, time_utc_init, timestep_scheme,        &
629             topography, topography_grid_convention, top_heatflux,             &
630             top_momentumflux_u, top_momentumflux_v,                           &
631             top_scalarflux, transpose_compute_overlap,                        &
632             tunnel_height, tunnel_length, tunnel_width_x, tunnel_width_y,     &
633             tunnel_wall_depth, turbulence_closure,                            &
634             turbulent_inflow, turbulent_outflow,                              &
635             use_subsidence_tendencies, ug_surface, ug_vertical_gradient,      &
636             use_free_convection_scaling,                                      &
637             ug_vertical_gradient_level, use_surface_fluxes, use_cmax,         &
638             use_top_fluxes, use_ug_for_galilei_tr, use_upstream_for_tke,      &
639             uv_heights, u_bulk, u_profile, vg_surface, vg_vertical_gradient,  &
640             vg_vertical_gradient_level, v_bulk, v_profile,&
641             wall_adjustment, wall_heatflux, wall_humidityflux,                &
642             wall_scalarflux, y_shift, zeta_max, zeta_min,  &
643             z0h_factor
644
645    NAMELIST /initialization_parameters/  alpha_surface,                       &
646             approximation, bc_e_b,                                            &
647             bc_lr, bc_ns, bc_p_b, bc_p_t, bc_pt_b, bc_pt_t, bc_q_b,           &
648             bc_q_t,bc_s_b, bc_s_t, bc_uv_b, bc_uv_t,                          &
649             building_height, building_length_x,                               &
650             building_length_y, building_wall_left, building_wall_south,       &
651             calc_soil_moisture_during_spinup,                                 &
652             call_psolver_at_all_substeps,                                     &
653             canyon_height,                                                    &
654             canyon_width_x, canyon_width_y, canyon_wall_left,                 &
655             canyon_wall_south, cfl_factor, cloud_droplets,                    &
656             collective_wait, complex_terrain,                                 &
657             conserve_volume_flow,                                             &
658             conserve_volume_flow_mode, constant_flux_layer,                   &
659             coupling_start_time,                                              &
660             cycle_mg, damp_level_1d,                                          &
661             data_output_during_spinup,                                        &
662             date_init,                                                        &
663             day_of_year_init,                                                 &
664             dissipation_1d,                                                   &
665             dp_external, dp_level_b, dp_smooth, dpdxy,                        &
666             dt, dt_pr_1d, dt_run_control_1d, dt_spinup, dx, dy, dz, dz_max,   &
667             dz_stretch_factor, dz_stretch_level, dz_stretch_level_start,      &
668             dz_stretch_level_end, end_time_1d, ensemble_member_nr, e_init,    &
669             e_min, fft_method, flux_input_mode, flux_output_mode,             &
670             galilei_transformation, humidity,                                 &
671             inflow_damping_height, inflow_damping_width,                      &
672             inflow_disturbance_begin, inflow_disturbance_end,                 &
673             initializing_actions, km_constant,                                &
674             large_scale_forcing, large_scale_subsidence, latitude,            &
675             longitude,                                                        &
676             loop_optimization, lsf_exception, masking_method, mg_cycles,      &
677             mg_switch_to_pe0_level, mixing_length_1d, momentum_advec,         &
678             most_method,                                                      &
679             netcdf_precision, neutral, ngsrb,                                 &
680             nsor, nsor_ini, nudging, nx, ny, nz, ocean_mode, omega,           &
681             omega_sor, outflow_source_plane, passive_scalar,                  &
682             prandtl_number, psolver, pt_damping_factor,                       &
683             pt_damping_width, pt_reference, pt_surface,                       &
684             pt_surface_initial_change, pt_vertical_gradient,                  &
685             pt_vertical_gradient_level, q_surface, q_surface_initial_change,  &
686             q_vertical_gradient, q_vertical_gradient_level,                   &
687             random_generator, random_heatflux, rans_const_c, rans_const_sigma,&
688             rans_mode,                                                        &
689             rayleigh_damping_factor, rayleigh_damping_height,                 &
690             recycling_width, recycling_yshift,                                &
691             reference_state, residual_limit,                                  &
692             roughness_length, scalar_advec,                                   &
693             scalar_rayleigh_damping,                                          &
694             spinup_time, spinup_pt_amplitude, spinup_pt_mean,                 &
695             statistic_regions, subs_vertical_gradient,                        &
696             subs_vertical_gradient_level, surface_heatflux, surface_pressure, &
697             surface_scalarflux, surface_waterflux,                            &
698             s_surface, s_surface_initial_change, s_vertical_gradient,         &
699             s_vertical_gradient_level, time_utc_init, timestep_scheme,        &
700             topography, topography_grid_convention, top_heatflux,             &
701             top_momentumflux_u, top_momentumflux_v,                           &
702             top_scalarflux, transpose_compute_overlap,                        &
703             tunnel_height, tunnel_length, tunnel_width_x, tunnel_width_y,     &
704             tunnel_wall_depth, turbulence_closure,                            &
705             turbulent_inflow, turbulent_outflow,                              &
706             use_subsidence_tendencies, ug_surface, ug_vertical_gradient,      &
707             ug_vertical_gradient_level, use_surface_fluxes, use_cmax,         &
708             use_top_fluxes, use_ug_for_galilei_tr, use_upstream_for_tke,      &
709             use_free_convection_scaling,                                      &
710             uv_heights, u_bulk, u_profile, vg_surface, vg_vertical_gradient,  &
711             vg_vertical_gradient_level, v_bulk, v_profile,                    &
712             wall_adjustment, wall_heatflux, wall_humidityflux,                &
713             wall_scalarflux, y_shift, zeta_max, zeta_min, z0h_factor
714             
715    NAMELIST /d3par/  averaging_interval, averaging_interval_pr,               &
716             cpu_log_barrierwait, create_disturbances,                         &
717             cross_profiles, data_output, data_output_masks,                   &
718             data_output_pr, data_output_2d_on_each_pe, disturbance_amplitude, &
719             disturbance_energy_limit, disturbance_level_b,                    &
720             disturbance_level_t, do2d_at_begin, do3d_at_begin,                &
721             dt, dt_averaging_input, dt_averaging_input_pr,                    &
722             dt_coupling, dt_data_output, dt_data_output_av, dt_disturb,       &
723             dt_domask, dt_dopr, dt_dopr_listing, dt_dots, dt_do2d_xy,         &
724             dt_do2d_xz, dt_do2d_yz, dt_do3d, dt_max, dt_restart,              &
725             dt_run_control,end_time, force_print_header, mask_k_over_surface, &
726             mask_scale_x,                                                     &
727             mask_scale_y, mask_scale_z, mask_x, mask_y, mask_z, mask_x_loop,  &
728             mask_y_loop, mask_z_loop, netcdf_data_format, netcdf_deflate,     &
729             normalizing_region, npex, npey, nz_do3d,                          &
730             profile_columns, profile_rows,     &
731             restart_time, section_xy, section_xz, section_yz,                 &
732             skip_time_data_output, skip_time_data_output_av, skip_time_dopr,  &
733             skip_time_do2d_xy, skip_time_do2d_xz, skip_time_do2d_yz,          &
734             skip_time_do3d, skip_time_domask, synchronous_exchange,           &
735             termination_time_needed, vnest_start_time
736
737    NAMELIST /runtime_parameters/  averaging_interval, averaging_interval_pr,  &
738             cpu_log_barrierwait, create_disturbances,                         &
739             cross_profiles, data_output, data_output_masks,                   &
740             data_output_pr, data_output_2d_on_each_pe, disturbance_amplitude, &
741             disturbance_energy_limit, disturbance_level_b,                    &
742             disturbance_level_t, do2d_at_begin, do3d_at_begin,                &
743             dt, dt_averaging_input, dt_averaging_input_pr,                    &
744             dt_coupling, dt_data_output, dt_data_output_av, dt_disturb,       &
745             dt_domask, dt_dopr, dt_dopr_listing, dt_dots, dt_do2d_xy,         &
746             dt_do2d_xz, dt_do2d_yz, dt_do3d, dt_max, dt_restart,              &
747             dt_run_control,end_time, force_print_header, mask_k_over_surface, &
748             mask_scale_x,                                                     &
749             mask_scale_y, mask_scale_z, mask_x, mask_y, mask_z, mask_x_loop,  &
750             mask_y_loop, mask_z_loop, netcdf_data_format, netcdf_deflate,     &
751             normalizing_region, npex, npey, nz_do3d,                          &
752             profile_columns, profile_rows,     &
753             restart_time, section_xy, section_xz, section_yz,                 &
754             skip_time_data_output, skip_time_data_output_av, skip_time_dopr,  &
755             skip_time_do2d_xy, skip_time_do2d_xz, skip_time_do2d_yz,          &
756             skip_time_do3d, skip_time_domask, synchronous_exchange,           &
757             termination_time_needed, vnest_start_time
758
759    NAMELIST /envpar/  progress_bar_disabled, host, local_dvrserver_running,   &
760                       maximum_cpu_time_allowed, maximum_parallel_io_streams,  &
761                       read_svf, revision, run_identifier, tasks_per_node,     &
762                       write_binary, write_svf
763
764!
765!-- First read values of environment variables (this NAMELIST file is
766!-- generated by palmrun)
767    CALL location_message( 'reading environment parameters from ENVPAR', .FALSE. )
768
769    OPEN ( 90, FILE='ENVPAR', STATUS='OLD', FORM='FORMATTED', IOSTAT=ioerr )
770
771    IF ( ioerr /= 0 )  THEN
772       message_string = 'local file ENVPAR not found' //                       &
773                        '&some variables for steering may not be properly set'
774       CALL message( 'parin', 'PA0276', 0, 1, 0, 6, 0 )
775    ELSE
776       READ ( 90, envpar, IOSTAT=ioerr )
777       IF ( ioerr < 0 )  THEN
778          message_string = 'no envpar-NAMELIST found in local file '  //       &
779                           'ENVPAR& or some variables for steering may '  //   &
780                           'not be properly set'
781          CALL message( 'parin', 'PA0278', 0, 1, 0, 6, 0 )
782       ELSEIF ( ioerr > 0 )  THEN
783          message_string = 'errors in local file ENVPAR' //                    &
784                           '&some variables for steering may not be properly set'
785          CALL message( 'parin', 'PA0277', 0, 1, 0, 6, 0 )
786       ENDIF
787       CLOSE ( 90 )
788    ENDIF
789
790    CALL location_message( 'finished', .TRUE. )
791!
792!-- Calculate the number of groups into which parallel I/O is split.
793!-- The default for files which are opened by all PEs (or where each
794!-- PE opens his own independent file) is, that all PEs are doing input/output
795!-- in parallel at the same time. This might cause performance or even more
796!-- severe problems depending on the configuration of the underlying file
797!-- system.
798!-- Calculation of the number of blocks and the I/O group must be based on all
799!-- PEs involved in this run. Since myid and numprocs are related to the
800!-- comm2d communicator, which gives only a subset of all PEs in case of
801!-- nested runs, that information must be inquired again from the global
802!-- communicator.
803!-- First, set the default:
804#if defined( __parallel )
805    CALL MPI_COMM_RANK( MPI_COMM_WORLD, global_id, ierr )
806    CALL MPI_COMM_SIZE( MPI_COMM_WORLD, global_procs, ierr )
807#else
808    global_id    = 0
809    global_procs = 1
810#endif
811    IF ( maximum_parallel_io_streams == -1  .OR.                               &
812         maximum_parallel_io_streams > global_procs )  THEN
813       maximum_parallel_io_streams = global_procs
814    ENDIF
815!
816!-- Now calculate the number of io_blocks and the io_group to which the
817!-- respective PE belongs. I/O of the groups is done in serial, but in parallel
818!-- for all PEs belonging to the same group.
819    io_blocks = global_procs / maximum_parallel_io_streams
820    io_group  = MOD( global_id+1, io_blocks )
821   
822    CALL location_message( 'reading NAMELIST parameters from PARIN', .FALSE. )
823!
824!-- Data is read in parallel by groups of PEs
825    DO  i = 0, io_blocks-1
826       IF ( i == io_group )  THEN
827
828!
829!--       Open the NAMELIST-file which is send with this job
830          CALL check_open( 11 )
831
832!
833!--       Read the control parameters for initialization.
834!--       The namelist "inipar" must be provided in the NAMELIST-file.
835          READ ( 11, initialization_parameters, ERR=10, END=11 )
836          GOTO 14
837         
838 10       BACKSPACE( 11 )
839          READ( 11 , '(A)') line
840          CALL parin_fail_message( 'initialization_parameters', line )
841
842 11       REWIND ( 11 )
843          READ ( 11, inipar, ERR=12, END=13 )
844 
845          message_string = 'namelist inipar is deprecated and will be ' //    &
846                          'removed in near future. & Please use namelist ' // &
847                          'initialization_parameters instead'
848          CALL message( 'parin', 'PA0017', 0, 1, 0, 6, 0 )
849 
850          GOTO 14
851 
852 12       BACKSPACE( 11 )
853          READ( 11 , '(A)') line
854          CALL parin_fail_message( 'inipar', line )
855
856 13       message_string = 'no initialization_parameters-namelist found'
857          CALL message( 'parin', 'PA0272', 1, 2, 0, 6, 0 )
858
859!
860!--       Try to read runtime parameters given by the user for this run
861!--       (namelist "runtime_parameters"). The namelist "runtime_parmeters"   
862!--       can be omitted. In that case default values are used for the         
863!--       parameters.
864 14       line = ' '
865
866          REWIND ( 11 )
867          line = ' '
868          DO WHILE ( INDEX( line, '&runtime_parameters' ) == 0 )
869             READ ( 11, '(A)', END=16 )  line
870          ENDDO
871          BACKSPACE ( 11 )
872
873!
874!--       Read namelist
875          READ ( 11, runtime_parameters, ERR = 15 )
876          GOTO 18
877
878 15       BACKSPACE( 11 )
879          READ( 11 , '(A)') line
880          CALL parin_fail_message( 'runtime_parameters', line )
881
882 16       REWIND ( 11 )
883          line = ' '
884          DO WHILE ( INDEX( line, '&d3par' ) == 0 )
885             READ ( 11, '(A)', END=18 )  line
886          ENDDO
887          BACKSPACE ( 11 )
888
889!
890!--       Read namelist
891          READ ( 11, d3par, ERR = 17, END = 18 )
892
893          message_string = 'namelist d3par is deprecated and will be ' //      &
894                          'removed in near future. &Please use namelist ' //   &
895                          'runtime_parameters instead'
896          CALL message( 'parin', 'PA0487', 0, 1, 0, 6, 0 )
897
898          GOTO 18
899
900 17       BACKSPACE( 11 )
901          READ( 11 , '(A)') line
902          CALL parin_fail_message( 'd3par', line )
903
904 18       CONTINUE
905
906!
907!--       Check for module namelists and read them
908          CALL biom_parin
909          CALL lsm_parin
910          CALL bcm_parin
911          CALL surface_output_parin
912          CALL usm_parin
913          CALL spectra_parin
914          CALL radiation_parin
915          CALL gust_parin
916          CALL mas_parin
917          CALL nesting_offl_parin
918          CALL ocean_parin
919          CALL pcm_parin
920          CALL package_parin
921          CALL wtm_parin
922          CALL flight_parin
923          CALL stg_parin
924          CALL chem_parin
925          CALL uvem_parin
926          CALL im_parin
927          CALL salsa_parin
928!
929!--       Read user-defined variables
930          CALL user_parin
931
932!
933!--       If required, read control parameters from restart file (produced by
934!--       a prior run). All PEs are reading from file created by PE0 (see
935!--       check_open)
936          IF ( TRIM( initializing_actions ) == 'read_restart_data' )  THEN
937
938             CALL rrd_global
939!
940!--          Increment the run count
941             runnr = runnr + 1
942!
943!--          In case of a restart run, the number of user-defined profiles on
944!--          the restart file (already stored in max_pr_user) has to match the
945!--          one given for the current run. max_pr_user_tmp is calculated in
946!--          user_parin and max_pr_user is read in via rrd_global.
947             IF ( max_pr_user /= max_pr_user_tmp )  THEN
948                WRITE( message_string, * ) 'the number of user-defined ',      &
949                      'profiles given in data_output_pr (', max_pr_user_tmp,   &
950                      ') does not match the one ',                             &
951                      'found in the restart file (', max_pr_user, ')'
952                CALL message( 'user_parin', 'UI0009', 1, 2, 0, 6, 0 )
953             ENDIF
954          ELSE
955             max_pr_user = max_pr_user_tmp
956          ENDIF
957
958!
959!--       Activate spinup
960          IF ( land_surface .OR. urban_surface )  THEN
961             IF ( spinup_time > 0.0_wp )  THEN
962                coupling_start_time = spinup_time
963                time_since_reference_point = simulated_time - coupling_start_time
964                IF ( spinup_pt_mean == 9999999.9_wp )  THEN
965                   spinup_pt_mean = pt_surface
966                ENDIF
967                end_time = end_time + spinup_time
968                IF ( TRIM( initializing_actions ) /= 'read_restart_data' )     &
969                   spinup = .TRUE.
970             ENDIF
971          ENDIF
972
973!
974!--       In case of nested runs, explicitly set nesting boundary conditions.
975!--       This will overwrite the user settings and basic defaults.
976!--       bc_lr and bc_ns always need to be cyclic for vertical nesting.
977          IF ( nested_run )  THEN
978             IF ( nesting_mode == 'vertical' )  THEN
979                IF (bc_lr /= 'cyclic' .OR. bc_ns /= 'cyclic' )  THEN
980                   WRITE ( message_string, *) 'bc_lr and bc_ns were set to ,', &
981                        'cyclic for vertical nesting'
982                   CALL message( 'parin', 'PA0428', 0, 0, 0, 6, 0 )
983                   bc_lr   = 'cyclic'
984                   bc_ns   = 'cyclic'
985                ENDIF
986                IF ( child_domain )  THEN
987                   bc_uv_t  = 'nested'
988                   bc_pt_t  = 'nested'
989                   bc_q_t   = 'nested'
990                   bc_s_t   = 'nested'
991                   bc_cs_t  = 'nested'
992                   bc_p_t   = 'neumann' 
993                ENDIF
994!
995!--          For other nesting modes only set boundary conditions for
996!--          nested domains.
997             ELSE
998                IF ( child_domain )  THEN
999                   bc_lr    = 'nested'
1000                   bc_ns    = 'nested'
1001                   bc_uv_t  = 'nested'
1002                   bc_pt_t  = 'nested'
1003                   bc_q_t   = 'nested'
1004                   bc_s_t   = 'nested'
1005                   bc_cs_t  = 'nested'
1006                   bc_p_t   = 'neumann'
1007                ENDIF
1008             ENDIF
1009          ENDIF
1010!
1011!--       Set boundary conditions also in case the model is offline-nested in
1012!--       larger-scale models.
1013          IF ( nesting_offline )  THEN
1014             bc_lr    = 'nesting_offline'
1015             bc_ns    = 'nesting_offline'
1016             bc_uv_t  = 'nesting_offline'
1017             bc_pt_t  = 'nesting_offline'
1018             bc_q_t   = 'nesting_offline'
1019           !  bc_s_t   = 'nesting_offline'  ! scalar boundary condition is not clear
1020           !  bc_cs_t  = 'nesting_offline'  ! same for chemical species
1021!
1022!--          For the pressure set Dirichlet conditions, in contrast to the
1023!--          self nesting. This gives less oscilations within the
1024!--          free atmosphere since the pressure solver has more degrees of
1025!--          freedom. In constrast to the self nesting, this might be
1026!--          justified since the top boundary is far away from the domain
1027!--          of interest.
1028             bc_p_t   = 'dirichlet' !'neumann'
1029          ENDIF
1030
1031!         
1032!--       In case of nested runs, make sure that initializing_actions =
1033!--       'set_constant_profiles' even though the constant-profiles
1034!--       initializations for the prognostic variables will be overwritten
1035!--       by pmci_child_initialize and pmci_parent_initialize. This is,
1036!--       however, important e.g. to make sure that diagnostic variables
1037!--       are set properly. An exception is made in case of restart runs and
1038!--       if user decides to do everything by its own.
1039          IF ( child_domain  .AND.  .NOT. (                                    &
1040               TRIM( initializing_actions ) == 'read_restart_data'      .OR.   &
1041               TRIM( initializing_actions ) == 'set_constant_profiles'  .OR.   &
1042               TRIM( initializing_actions ) == 'by_user' ) )  THEN
1043             message_string = 'initializing_actions = ' //                     &
1044                              TRIM( initializing_actions ) // ' has been ' //  &
1045                              'changed to set_constant_profiles in child ' //  &
1046                              'domain.' 
1047             CALL message( 'parin', 'PA0492', 0, 0, 0, 6, 0 )
1048
1049             initializing_actions = 'set_constant_profiles'
1050          ENDIF           
1051!
1052!--       Check validity of lateral boundary conditions. This has to be done
1053!--       here because they are already used in init_pegrid and init_grid and
1054!--       therefore cannot be check in check_parameters
1055          IF ( bc_lr /= 'cyclic'  .AND.  bc_lr /= 'dirichlet/radiation'  .AND. &
1056               bc_lr /= 'radiation/dirichlet'  .AND.  bc_lr /= 'nested'  .AND. &
1057               bc_lr /= 'nesting_offline' )  THEN
1058             message_string = 'unknown boundary condition: bc_lr = "' // &
1059                              TRIM( bc_lr ) // '"'
1060             CALL message( 'parin', 'PA0049', 1, 2, 0, 6, 0 )
1061          ENDIF
1062          IF ( bc_ns /= 'cyclic'  .AND.  bc_ns /= 'dirichlet/radiation'  .AND. &
1063               bc_ns /= 'radiation/dirichlet'  .AND.  bc_ns /= 'nested'  .AND. &
1064               bc_ns /= 'nesting_offline' )  THEN
1065             message_string = 'unknown boundary condition: bc_ns = "' // &
1066                              TRIM( bc_ns ) // '"'
1067             CALL message( 'parin', 'PA0050', 1, 2, 0, 6, 0 )
1068          ENDIF
1069!
1070!--       Set internal variables used for speed optimization in if clauses
1071          IF ( bc_lr /= 'cyclic' )               bc_lr_cyc    = .FALSE.
1072          IF ( bc_lr == 'dirichlet/radiation' )  bc_lr_dirrad = .TRUE.
1073          IF ( bc_lr == 'radiation/dirichlet' )  bc_lr_raddir = .TRUE.
1074          IF ( bc_ns /= 'cyclic' )               bc_ns_cyc    = .FALSE.
1075          IF ( bc_ns == 'dirichlet/radiation' )  bc_ns_dirrad = .TRUE.
1076          IF ( bc_ns == 'radiation/dirichlet' )  bc_ns_raddir = .TRUE.
1077
1078!
1079!--       Definition of names of areas used for computing statistics. They must
1080!--       be defined at this place, because they are allowed to be redefined by
1081!--       the user in user_parin.
1082          region = 'total domain'
1083
1084!
1085!--       Check in case of initial run, if the grid point numbers are well
1086!--       defined and allocate some arrays which are already needed in
1087!--       init_pegrid or check_parameters. During restart jobs, these arrays
1088!--       will be allocated in rrd_global. All other arrays are allocated
1089!--       in init_3d_model.
1090          IF ( TRIM( initializing_actions ) /= 'read_restart_data' )  THEN
1091
1092             IF ( nx <= 0 )  THEN
1093                WRITE( message_string, * ) 'no value or wrong value given',    &
1094                                           ' for nx: nx=', nx
1095                CALL message( 'parin', 'PA0273', 1, 2, 0, 6, 0 )
1096             ENDIF
1097             IF ( ny <= 0 )  THEN
1098                WRITE( message_string, * ) 'no value or wrong value given',    &
1099                                           ' for ny: ny=', ny
1100                CALL message( 'parin', 'PA0274', 1, 2, 0, 6, 0 )
1101             ENDIF
1102             IF ( nz <= 0 )  THEN
1103                WRITE( message_string, * ) 'no value or wrong value given',    &
1104                                           ' for nz: nz=', nz
1105                CALL message( 'parin', 'PA0275', 1, 2, 0, 6, 0 )
1106             ENDIF
1107
1108!
1109!--          As a side condition, routine flow_statistics require at least 14
1110!--          vertical grid levels (they are used to store time-series data)
1111!>           @todo   Remove this restriction
1112             IF ( nz < 14 )  THEN
1113                WRITE( message_string, * ) 'nz >= 14 is required'
1114                CALL message( 'parin', 'PA0362', 1, 2, 0, 6, 0 )
1115             ENDIF
1116
1117!
1118!--          ATTENTION: in case of changes to the following statement please
1119!--                  also check the allocate statement in routine rrd_global
1120             ALLOCATE( pt_init(0:nz+1), q_init(0:nz+1), s_init(0:nz+1),        &
1121                       ref_state(0:nz+1), sa_init(0:nz+1), ug(0:nz+1),         &
1122                       u_init(0:nz+1), v_init(0:nz+1), vg(0:nz+1),             &
1123                       hom(0:nz+1,2,pr_palm+max_pr_user+max_pr_cs,0:statistic_regions),  &
1124                       hom_sum(0:nz+1,pr_palm+max_pr_user+max_pr_cs,0:statistic_regions) )
1125
1126             hom = 0.0_wp
1127
1128          ENDIF
1129
1130!
1131!--       NAMELIST-file is not needed anymore
1132          CALL close_file( 11 )
1133
1134       ENDIF
1135#if defined( __parallel )
1136       CALL MPI_BARRIER( MPI_COMM_WORLD, ierr )
1137#endif
1138    ENDDO
1139
1140    CALL location_message( 'finished', .TRUE. )
1141
1142 END SUBROUTINE parin
Note: See TracBrowser for help on using the repository browser.