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

Last change on this file since 3467 was 3467, checked in by suehring, 5 years ago

Branch salsa @3446 re-integrated into trunk

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