source: palm/trunk/SOURCE/header.f90 @ 1322

Last change on this file since 1322 was 1322, checked in by raasch, 10 years ago

REAL functions and a lot of REAL constants provided with KIND-attribute,
some small bugfixes

  • Property svn:keywords set to Id
File size: 82.2 KB
Line 
1 SUBROUTINE header
2
3!--------------------------------------------------------------------------------!
4! This file is part of PALM.
5!
6! PALM is free software: you can redistribute it and/or modify it under the terms
7! of the GNU General Public License as published by the Free Software Foundation,
8! either version 3 of the License, or (at your option) any later 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-2014 Leibniz Universitaet Hannover
18!--------------------------------------------------------------------------------!
19!
20! Current revisions:
21! -----------------
22! REAL functions provided with KIND-attribute,
23! some REAL constants defined as wp-kind
24!
25! Former revisions:
26! -----------------
27! $Id: header.f90 1322 2014-03-20 16:38:49Z raasch $
28!
29! 1320 2014-03-20 08:40:49Z raasch
30! ONLY-attribute added to USE-statements,
31! kind-parameters added to all INTEGER and REAL declaration statements,
32! kinds are defined in new module kinds,
33! revision history before 2012 removed,
34! comment fields (!:) to be used for variable explanations added to
35! all variable declaration statements
36!
37! 1308 2014-03-13 14:58:42Z fricke
38! output of the fixed number of output time levels
39! output_format adjusted for masked data if netcdf_data_format > 5
40!
41! 1299 2014-03-06 13:15:21Z heinze
42! output for using large_scale subsidence in combination
43! with large_scale_forcing
44! reformatting, more detailed explanations
45!
46! 1241 2013-10-30 11:36:58Z heinze
47! output for nudging + large scale forcing from external file
48!
49! 1216 2013-08-26 09:31:42Z raasch
50! output for transpose_compute_overlap
51!
52! 1212 2013-08-15 08:46:27Z raasch
53! output for poisfft_hybrid removed
54!
55! 1179 2013-06-14 05:57:58Z raasch
56! output of reference_state, use_reference renamed use_single_reference_value
57!
58! 1159 2013-05-21 11:58:22Z fricke
59! +use_cmax
60!
61! 1115 2013-03-26 18:16:16Z hoffmann
62! descriptions for Seifert-Beheng-cloud-physics-scheme added
63!
64! 1111 2013-03-08 23:54:10Z raasch
65! output of accelerator board information
66! ibc_p_b = 2 removed
67!
68! 1108 2013-03-05 07:03:32Z raasch
69! bugfix for r1106
70!
71! 1106 2013-03-04 05:31:38Z raasch
72! some format changes for coupled runs
73!
74! 1092 2013-02-02 11:24:22Z raasch
75! unused variables removed
76!
77! 1036 2012-10-22 13:43:42Z raasch
78! code put under GPL (PALM 3.9)
79!
80! 1031 2012-10-19 14:35:30Z raasch
81! output of netCDF data format modified
82!
83! 1015 2012-09-27 09:23:24Z raasch
84! output of Aajustment of mixing length to the Prandtl mixing length at first
85! grid point above ground removed
86!
87! 1003 2012-09-14 14:35:53Z raasch
88! output of information about equal/unequal subdomain size removed
89!
90! 1001 2012-09-13 14:08:46Z raasch
91! all actions concerning leapfrog- and upstream-spline-scheme removed
92!
93! 978 2012-08-09 08:28:32Z fricke
94! -km_damp_max, outflow_damping_width
95! +pt_damping_factor, pt_damping_width
96! +z0h
97!
98! 964 2012-07-26 09:14:24Z raasch
99! output of profil-related quantities removed
100!
101! 940 2012-07-09 14:31:00Z raasch
102! Output in case of simulations for pure neutral stratification (no pt-equation
103! solved)
104!
105! 927 2012-06-06 19:15:04Z raasch
106! output of masking_method for mg-solver
107!
108! 868 2012-03-28 12:21:07Z raasch
109! translation velocity in Galilean transformation changed to 0.6 * ug
110!
111! 833 2012-02-22 08:55:55Z maronga
112! Adjusted format for leaf area density
113!
114! 828 2012-02-21 12:00:36Z raasch
115! output of dissipation_classes + radius_classes
116!
117! 825 2012-02-19 03:03:44Z raasch
118! Output of cloud physics parameters/quantities complemented and restructured
119!
120! Revision 1.1  1997/08/11 06:17:20  raasch
121! Initial revision
122!
123!
124! Description:
125! ------------
126! Writing a header with all important informations about the actual run.
127! This subroutine is called three times, two times at the beginning
128! (writing information on files RUN_CONTROL and HEADER) and one time at the
129! end of the run, then writing additional information about CPU-usage on file
130! header.
131!-----------------------------------------------------------------------------!
132
133    USE arrays_3d,                                                             &
134        ONLY:  lad, pt_init, qsws, q_init, sa_init, shf, ug, vg, w_subs, zu
135       
136    USE control_parameters
137       
138    USE cloud_parameters,                                                      &
139        ONLY:  cp, curvature_solution_effects, c_sedimentation,                &
140               limiter_sedimentation, l_v, nc_const, r_d, ventilation_effect
141       
142    USE cpulog,                                                                &
143        ONLY:  log_point_s
144       
145    USE dvrp_variables,                                                        &
146        ONLY:  use_seperate_pe_for_dvrp_output
147       
148    USE grid_variables,                                                        &
149        ONLY:  dx, dy
150       
151    USE indices,                                                               &
152        ONLY:  mg_loc_ind, nnx, nny, nnz, nx, ny, nxl_mg, nxr_mg, nyn_mg,      &
153               nys_mg, nzt, nzt_mg
154       
155    USE kinds
156   
157    USE model_1d,                                                              &
158        ONLY:  damp_level_ind_1d, dt_pr_1d, dt_run_control_1d, end_time_1d
159       
160    USE particle_attributes,                                                   &
161        ONLY:  bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, collision_kernel,     &
162               density_ratio, dissipation_classes, dt_min_part, dt_prel,       &
163               dt_sort_particles, dt_write_particle_data, end_time_prel,       &
164               maximum_number_of_tailpoints, maximum_tailpoint_age,            &
165               minimum_tailpoint_distance, number_of_particle_groups,          &
166               particle_advection, particle_advection_start,                   &
167               particles_per_point, pdx, pdy, pdz,  psb, psl, psn, psr, pss,   &
168               pst, radius, radius_classes, random_start_position,             &
169               total_number_of_particles, use_particle_tails,                  &
170               use_sgs_for_particles, total_number_of_tails,                   &
171               vertical_particle_advection, write_particle_statistics
172       
173    USE pegrid
174
175    IMPLICIT NONE
176
177    CHARACTER (LEN=1)  ::  prec                !:
178   
179    CHARACTER (LEN=2)  ::  do2d_mode           !:
180   
181    CHARACTER (LEN=5)  ::  section_chr         !:
182   
183    CHARACTER (LEN=10) ::  coor_chr            !:
184    CHARACTER (LEN=10) ::  host_chr            !:
185   
186    CHARACTER (LEN=16) ::  begin_chr           !:
187   
188    CHARACTER (LEN=26) ::  ver_rev             !:
189   
190    CHARACTER (LEN=40) ::  output_format       !:
191   
192    CHARACTER (LEN=70) ::  char1               !:
193    CHARACTER (LEN=70) ::  char2               !:
194    CHARACTER (LEN=70) ::  dopr_chr            !:
195    CHARACTER (LEN=70) ::  do2d_xy             !:
196    CHARACTER (LEN=70) ::  do2d_xz             !:
197    CHARACTER (LEN=70) ::  do2d_yz             !:
198    CHARACTER (LEN=70) ::  do3d_chr            !:
199    CHARACTER (LEN=70) ::  domask_chr          !:
200    CHARACTER (LEN=70) ::  run_classification  !:
201   
202    CHARACTER (LEN=85) ::  roben               !:
203    CHARACTER (LEN=85) ::  runten              !:
204   
205    CHARACTER (LEN=86) ::  coordinates         !:
206    CHARACTER (LEN=86) ::  gradients           !:
207    CHARACTER (LEN=86) ::  learde              !:
208    CHARACTER (LEN=86) ::  slices              !:
209    CHARACTER (LEN=86) ::  temperatures        !:
210    CHARACTER (LEN=86) ::  ugcomponent         !:
211    CHARACTER (LEN=86) ::  vgcomponent         !:
212
213    CHARACTER (LEN=1), DIMENSION(1:3) ::  dir = (/ 'x', 'y', 'z' /)  !:
214
215    INTEGER(iwp) ::  av        !:
216    INTEGER(iwp) ::  bh        !:
217    INTEGER(iwp) ::  blx       !:
218    INTEGER(iwp) ::  bly       !:
219    INTEGER(iwp) ::  bxl       !:
220    INTEGER(iwp) ::  bxr       !:
221    INTEGER(iwp) ::  byn       !:
222    INTEGER(iwp) ::  bys       !:
223    INTEGER(iwp) ::  ch        !:
224    INTEGER(iwp) ::  count     !:
225    INTEGER(iwp) ::  cwx       !:
226    INTEGER(iwp) ::  cwy       !:
227    INTEGER(iwp) ::  cxl       !:
228    INTEGER(iwp) ::  cxr       !:
229    INTEGER(iwp) ::  cyn       !:
230    INTEGER(iwp) ::  cys       !:
231    INTEGER(iwp) ::  dim       !:
232    INTEGER(iwp) ::  i         !:
233    INTEGER(iwp) ::  io        !:
234    INTEGER(iwp) ::  j         !:
235    INTEGER(iwp) ::  l         !:
236    INTEGER(iwp) ::  ll        !:
237    INTEGER(iwp) ::  mpi_type  !:
238   
239    REAL(wp) ::  cpuseconds_per_simulated_second  !:
240
241!
242!-- Open the output file. At the end of the simulation, output is directed
243!-- to unit 19.
244    IF ( ( runnr == 0 .OR. force_print_header )  .AND. &
245         .NOT. simulated_time_at_begin /= simulated_time )  THEN
246       io = 15   !  header output on file RUN_CONTROL
247    ELSE
248       io = 19   !  header output on file HEADER
249    ENDIF
250    CALL check_open( io )
251
252!
253!-- At the end of the run, output file (HEADER) will be rewritten with
254!-- new informations
255    IF ( io == 19 .AND. simulated_time_at_begin /= simulated_time ) REWIND( 19 )
256
257!
258!-- Determine kind of model run
259    IF ( TRIM( initializing_actions ) == 'read_restart_data' )  THEN
260       run_classification = '3D - restart run'
261    ELSEIF ( TRIM( initializing_actions ) == 'cyclic_fill' )  THEN
262       run_classification = '3D - run with cyclic fill of 3D - prerun data'
263    ELSEIF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 )  THEN
264       run_classification = '3D - run without 1D - prerun'
265    ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
266       run_classification = '3D - run with 1D - prerun'
267    ELSEIF ( INDEX( initializing_actions, 'by_user' ) /=0 )  THEN
268       run_classification = '3D - run initialized by user'
269    ELSE
270       message_string = ' unknown action(s): ' // TRIM( initializing_actions )
271       CALL message( 'header', 'PA0191', 0, 0, 0, 6, 0 )
272    ENDIF
273    IF ( ocean )  THEN
274       run_classification = 'ocean - ' // run_classification
275    ELSE
276       run_classification = 'atmosphere - ' // run_classification
277    ENDIF
278
279!
280!-- Run-identification, date, time, host
281    host_chr = host(1:10)
282    ver_rev = TRIM( version ) // '  ' // TRIM( revision )
283    WRITE ( io, 100 )  ver_rev, TRIM( run_classification )
284    IF ( TRIM( coupling_mode ) /= 'uncoupled' )  THEN
285#if defined( __mpi2 )
286       mpi_type = 2
287#else
288       mpi_type = 1
289#endif
290       WRITE ( io, 101 )  mpi_type, coupling_mode
291    ENDIF
292#if defined( __parallel )
293    IF ( coupling_start_time /= 0.0 )  THEN
294       IF ( coupling_start_time > simulated_time_at_begin )  THEN
295          WRITE ( io, 109 )
296       ELSE
297          WRITE ( io, 114 )
298       ENDIF
299    ENDIF
300#endif
301    WRITE ( io, 102 )  run_date, run_identifier, run_time, runnr, &
302                       ADJUSTR( host_chr )
303#if defined( __parallel )
304    IF ( npex == -1  .AND.  pdims(2) /= 1 )  THEN
305       char1 = 'calculated'
306    ELSEIF ( ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec'  .OR.  &
307               host(1:2) == 'lc' )  .AND.                          &
308             npex == -1  .AND.  pdims(2) == 1 )  THEN
309       char1 = 'forced'
310    ELSE
311       char1 = 'predefined'
312    ENDIF
313    IF ( threads_per_task == 1 )  THEN
314       WRITE ( io, 103 )  numprocs, pdims(1), pdims(2), TRIM( char1 )
315    ELSE
316       WRITE ( io, 104 )  numprocs*threads_per_task, numprocs, &
317                          threads_per_task, pdims(1), pdims(2), TRIM( char1 )
318    ENDIF
319    IF ( num_acc_per_node /= 0 )  WRITE ( io, 117 )  num_acc_per_node   
320    IF ( ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec'  .OR.    &
321           host(1:2) == 'lc'   .OR.  host(1:3) == 'dec' )  .AND. &
322         npex == -1  .AND.  pdims(2) == 1 )                      &
323    THEN
324       WRITE ( io, 106 )
325    ELSEIF ( pdims(2) == 1 )  THEN
326       WRITE ( io, 107 )  'x'
327    ELSEIF ( pdims(1) == 1 )  THEN
328       WRITE ( io, 107 )  'y'
329    ENDIF
330    IF ( use_seperate_pe_for_dvrp_output )  WRITE ( io, 105 )
331    IF ( numprocs /= maximum_parallel_io_streams )  THEN
332       WRITE ( io, 108 )  maximum_parallel_io_streams
333    ENDIF
334#else
335    IF ( num_acc_per_node /= 0 )  WRITE ( io, 120 )  num_acc_per_node
336#endif
337    WRITE ( io, 99 )
338
339!
340!-- Numerical schemes
341    WRITE ( io, 110 )
342    IF ( psolver(1:7) == 'poisfft' )  THEN
343       WRITE ( io, 111 )  TRIM( fft_method )
344       IF ( transpose_compute_overlap )  WRITE( io, 115 )
345    ELSEIF ( psolver == 'sor' )  THEN
346       WRITE ( io, 112 )  nsor_ini, nsor, omega_sor
347    ELSEIF ( psolver == 'multigrid' )  THEN
348       WRITE ( io, 135 )  cycle_mg, maximum_grid_level, ngsrb
349       IF ( mg_cycles == -1 )  THEN
350          WRITE ( io, 140 )  residual_limit
351       ELSE
352          WRITE ( io, 141 )  mg_cycles
353       ENDIF
354       IF ( mg_switch_to_pe0_level == 0 )  THEN
355          WRITE ( io, 136 )  nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
356                             nzt_mg(1)
357       ELSEIF (  mg_switch_to_pe0_level /= -1 )  THEN
358          WRITE ( io, 137 )  mg_switch_to_pe0_level,            &
359                             mg_loc_ind(2,0)-mg_loc_ind(1,0)+1, &
360                             mg_loc_ind(4,0)-mg_loc_ind(3,0)+1, &
361                             nzt_mg(mg_switch_to_pe0_level),    &
362                             nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
363                             nzt_mg(1)
364       ENDIF
365       IF ( masking_method )  WRITE ( io, 144 )
366    ENDIF
367    IF ( call_psolver_at_all_substeps  .AND. timestep_scheme(1:5) == 'runge' ) &
368    THEN
369       WRITE ( io, 142 )
370    ENDIF
371
372    IF ( momentum_advec == 'pw-scheme' )  THEN
373       WRITE ( io, 113 )
374    ELSEIF (momentum_advec == 'ws-scheme' )  THEN
375       WRITE ( io, 503 )
376    ENDIF
377    IF ( scalar_advec == 'pw-scheme' )  THEN
378       WRITE ( io, 116 )
379    ELSEIF ( scalar_advec == 'ws-scheme' )  THEN
380       WRITE ( io, 504 )
381    ELSE
382       WRITE ( io, 118 )
383    ENDIF
384
385    WRITE ( io, 139 )  TRIM( loop_optimization )
386
387    IF ( galilei_transformation )  THEN
388       IF ( use_ug_for_galilei_tr )  THEN
389          char1 = '0.6 * geostrophic wind'
390       ELSE
391          char1 = 'mean wind in model domain'
392       ENDIF
393       IF ( simulated_time_at_begin == simulated_time )  THEN
394          char2 = 'at the start of the run'
395       ELSE
396          char2 = 'at the end of the run'
397       ENDIF
398       WRITE ( io, 119 )  TRIM( char1 ), TRIM( char2 ), &
399                          advected_distance_x/1000.0, advected_distance_y/1000.0
400    ENDIF
401    WRITE ( io, 122 )  timestep_scheme
402    IF ( use_upstream_for_tke )  WRITE ( io, 143 )
403    IF ( rayleigh_damping_factor /= 0.0 )  THEN
404       IF ( .NOT. ocean )  THEN
405          WRITE ( io, 123 )  'above', rayleigh_damping_height, &
406               rayleigh_damping_factor
407       ELSE
408          WRITE ( io, 123 )  'below', rayleigh_damping_height, &
409               rayleigh_damping_factor
410       ENDIF
411    ENDIF
412    IF ( neutral )  WRITE ( io, 131 )  pt_surface
413    IF ( humidity )  THEN
414       IF ( .NOT. cloud_physics )  THEN
415          WRITE ( io, 129 )
416       ELSE
417          WRITE ( io, 130 )
418       ENDIF
419    ENDIF
420    IF ( passive_scalar )  WRITE ( io, 134 )
421    IF ( conserve_volume_flow )  THEN
422       WRITE ( io, 150 )  conserve_volume_flow_mode
423       IF ( TRIM( conserve_volume_flow_mode ) == 'bulk_velocity' )  THEN
424          WRITE ( io, 151 )  u_bulk, v_bulk
425       ENDIF
426    ELSEIF ( dp_external )  THEN
427       IF ( dp_smooth )  THEN
428          WRITE ( io, 152 )  dpdxy, dp_level_b, ', vertically smoothed.'
429       ELSE
430          WRITE ( io, 152 )  dpdxy, dp_level_b, '.'
431       ENDIF
432    ENDIF
433    IF ( large_scale_subsidence )  THEN
434        WRITE ( io, 153 )
435        WRITE ( io, 154 )
436    ENDIF
437    IF ( nudging )  THEN
438        WRITE ( io, 155 )
439        WRITE ( io, 156 )
440    ENDIF
441    IF ( large_scale_forcing )  THEN
442        WRITE ( io, 157 )
443        WRITE ( io, 158 )
444    ENDIF
445    WRITE ( io, 99 )
446
447!
448!-- Runtime and timestep informations
449    WRITE ( io, 200 )
450    IF ( .NOT. dt_fixed )  THEN
451       WRITE ( io, 201 )  dt_max, cfl_factor
452    ELSE
453       WRITE ( io, 202 )  dt
454    ENDIF
455    WRITE ( io, 203 )  simulated_time_at_begin, end_time
456
457    IF ( time_restart /= 9999999.9_wp  .AND. &
458         simulated_time_at_begin == simulated_time )  THEN
459       IF ( dt_restart == 9999999.9_wp )  THEN
460          WRITE ( io, 204 )  ' Restart at:       ',time_restart
461       ELSE
462          WRITE ( io, 205 )  ' Restart at:       ',time_restart, dt_restart
463       ENDIF
464    ENDIF
465
466    IF ( simulated_time_at_begin /= simulated_time )  THEN
467       i = MAX ( log_point_s(10)%counts, 1 )
468       IF ( ( simulated_time - simulated_time_at_begin ) == 0.0 )  THEN
469          cpuseconds_per_simulated_second = 0.0
470       ELSE
471          cpuseconds_per_simulated_second = log_point_s(10)%sum / &
472                                            ( simulated_time -    &
473                                              simulated_time_at_begin )
474       ENDIF
475       WRITE ( io, 206 )  simulated_time, log_point_s(10)%sum,      &
476                          log_point_s(10)%sum / REAL( i, KIND=wp ), &
477                          cpuseconds_per_simulated_second
478       IF ( time_restart /= 9999999.9_wp  .AND.  time_restart < end_time )  THEN
479          IF ( dt_restart == 9999999.9_wp )  THEN
480             WRITE ( io, 204 )  ' Next restart at:     ',time_restart
481          ELSE
482             WRITE ( io, 205 )  ' Next restart at:     ',time_restart, dt_restart
483          ENDIF
484       ENDIF
485    ENDIF
486
487!
488!-- Start time for coupled runs, if independent precursor runs for atmosphere
489!-- and ocean are used or have been used. In this case, coupling_start_time
490!-- defines the time when the coupling is switched on.
491    IF ( coupling_start_time /= 0.0 )  THEN
492       WRITE ( io, 207 )  coupling_start_time
493    ENDIF
494
495!
496!-- Computational grid
497    IF ( .NOT. ocean )  THEN
498       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(nzt+1)
499       IF ( dz_stretch_level_index < nzt+1 )  THEN
500          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
501                             dz_stretch_factor, dz_max
502       ENDIF
503    ELSE
504       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(0)
505       IF ( dz_stretch_level_index > 0 )  THEN
506          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
507                             dz_stretch_factor, dz_max
508       ENDIF
509    ENDIF
510    WRITE ( io, 254 )  nx, ny, nzt+1, MIN( nnx, nx+1 ), MIN( nny, ny+1 ), &
511                       MIN( nnz+2, nzt+2 )
512    IF ( sloping_surface )  WRITE ( io, 260 )  alpha_surface
513
514!
515!-- Topography
516    WRITE ( io, 270 )  topography
517    SELECT CASE ( TRIM( topography ) )
518
519       CASE ( 'flat' )
520          ! no actions necessary
521
522       CASE ( 'single_building' )
523          blx = INT( building_length_x / dx )
524          bly = INT( building_length_y / dy )
525          bh  = INT( building_height / dz )
526
527          IF ( building_wall_left == 9999999.9_wp )  THEN
528             building_wall_left = ( nx + 1 - blx ) / 2 * dx
529          ENDIF
530          bxl = INT ( building_wall_left / dx + 0.5 )
531          bxr = bxl + blx
532
533          IF ( building_wall_south == 9999999.9_wp )  THEN
534             building_wall_south = ( ny + 1 - bly ) / 2 * dy
535          ENDIF
536          bys = INT ( building_wall_south / dy + 0.5 )
537          byn = bys + bly
538
539          WRITE ( io, 271 )  building_length_x, building_length_y, &
540                             building_height, bxl, bxr, bys, byn
541
542       CASE ( 'single_street_canyon' )
543          ch  = NINT( canyon_height / dz )
544          IF ( canyon_width_x /= 9999999.9_wp )  THEN
545!
546!--          Street canyon in y direction
547             cwx = NINT( canyon_width_x / dx )
548             IF ( canyon_wall_left == 9999999.9_wp )  THEN
549                canyon_wall_left = ( nx + 1 - cwx ) / 2 * dx
550             ENDIF
551             cxl = NINT( canyon_wall_left / dx )
552             cxr = cxl + cwx
553             WRITE ( io, 272 )  'y', canyon_height, ch, 'u', cxl, cxr
554
555          ELSEIF ( canyon_width_y /= 9999999.9_wp )  THEN
556!
557!--          Street canyon in x direction
558             cwy = NINT( canyon_width_y / dy )
559             IF ( canyon_wall_south == 9999999.9_wp )  THEN
560                canyon_wall_south = ( ny + 1 - cwy ) / 2 * dy
561             ENDIF
562             cys = NINT( canyon_wall_south / dy )
563             cyn = cys + cwy
564             WRITE ( io, 272 )  'x', canyon_height, ch, 'v', cys, cyn
565          ENDIF
566
567    END SELECT
568
569    IF ( TRIM( topography ) /= 'flat' )  THEN
570       IF ( TRIM( topography_grid_convention ) == ' ' )  THEN
571          IF ( TRIM( topography ) == 'single_building' .OR.  &
572               TRIM( topography ) == 'single_street_canyon' )  THEN
573             WRITE ( io, 278 )
574          ELSEIF ( TRIM( topography ) == 'read_from_file' )  THEN
575             WRITE ( io, 279 )
576          ENDIF
577       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_edge' )  THEN
578          WRITE ( io, 278 )
579       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_center' )  THEN
580          WRITE ( io, 279 )
581       ENDIF
582    ENDIF
583
584    IF ( plant_canopy )  THEN
585
586       WRITE ( io, 280 ) canopy_mode, pch_index, drag_coefficient
587       IF ( passive_scalar )  THEN
588          WRITE ( io, 281 ) scalar_exchange_coefficient,   &
589                            leaf_surface_concentration
590       ENDIF
591
592!
593!--    Heat flux at the top of vegetation
594       WRITE ( io, 282 ) cthf
595
596!
597!--    Leaf area density profile
598!--    Building output strings, starting with surface value
599       WRITE ( learde, '(F6.4)' )  lad_surface
600       gradients = '------'
601       slices = '     0'
602       coordinates = '   0.0'
603       i = 1
604       DO  WHILE ( lad_vertical_gradient_level_ind(i) /= -9999 )
605
606          WRITE (coor_chr,'(F7.2)')  lad(lad_vertical_gradient_level_ind(i))
607          learde = TRIM( learde ) // ' ' // TRIM( coor_chr )
608
609          WRITE (coor_chr,'(F7.2)')  lad_vertical_gradient(i)
610          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
611
612          WRITE (coor_chr,'(I7)')  lad_vertical_gradient_level_ind(i)
613          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
614
615          WRITE (coor_chr,'(F7.1)')  lad_vertical_gradient_level(i)
616          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
617
618          i = i + 1
619       ENDDO
620
621       WRITE ( io, 283 )  TRIM( coordinates ), TRIM( learde ), &
622                          TRIM( gradients ), TRIM( slices )
623
624    ENDIF
625
626!
627!-- Boundary conditions
628    IF ( ibc_p_b == 0 )  THEN
629       runten = 'p(0)     = 0      |'
630    ELSEIF ( ibc_p_b == 1 )  THEN
631       runten = 'p(0)     = p(1)   |'
632    ENDIF
633    IF ( ibc_p_t == 0 )  THEN
634       roben  = 'p(nzt+1) = 0      |'
635    ELSE
636       roben  = 'p(nzt+1) = p(nzt) |'
637    ENDIF
638
639    IF ( ibc_uv_b == 0 )  THEN
640       runten = TRIM( runten ) // ' uv(0)     = -uv(1)                |'
641    ELSE
642       runten = TRIM( runten ) // ' uv(0)     = uv(1)                 |'
643    ENDIF
644    IF ( TRIM( bc_uv_t ) == 'dirichlet_0' )  THEN
645       roben  = TRIM( roben  ) // ' uv(nzt+1) = 0                     |'
646    ELSEIF ( ibc_uv_t == 0 )  THEN
647       roben  = TRIM( roben  ) // ' uv(nzt+1) = ug(nzt+1), vg(nzt+1)  |'
648    ELSE
649       roben  = TRIM( roben  ) // ' uv(nzt+1) = uv(nzt)               |'
650    ENDIF
651
652    IF ( ibc_pt_b == 0 )  THEN
653       runten = TRIM( runten ) // ' pt(0)   = pt_surface'
654    ELSEIF ( ibc_pt_b == 1 )  THEN
655       runten = TRIM( runten ) // ' pt(0)   = pt(1)'
656    ELSEIF ( ibc_pt_b == 2 )  THEN
657       runten = TRIM( runten ) // ' pt(0) = from coupled model'
658    ENDIF
659    IF ( ibc_pt_t == 0 )  THEN
660       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt_top'
661    ELSEIF( ibc_pt_t == 1 )  THEN
662       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt(nzt)'
663    ELSEIF( ibc_pt_t == 2 )  THEN
664       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt(nzt) + dpt/dz_ini'
665
666    ENDIF
667
668    WRITE ( io, 300 )  runten, roben
669
670    IF ( .NOT. constant_diffusion )  THEN
671       IF ( ibc_e_b == 1 )  THEN
672          runten = 'e(0)     = e(1)'
673       ELSE
674          runten = 'e(0)     = e(1) = (u*/0.1)**2'
675       ENDIF
676       roben = 'e(nzt+1) = e(nzt) = e(nzt-1)'
677
678       WRITE ( io, 301 )  'e', runten, roben       
679
680    ENDIF
681
682    IF ( ocean )  THEN
683       runten = 'sa(0)    = sa(1)'
684       IF ( ibc_sa_t == 0 )  THEN
685          roben =  'sa(nzt+1) = sa_surface'
686       ELSE
687          roben =  'sa(nzt+1) = sa(nzt)'
688       ENDIF
689       WRITE ( io, 301 ) 'sa', runten, roben
690    ENDIF
691
692    IF ( humidity )  THEN
693       IF ( ibc_q_b == 0 )  THEN
694          runten = 'q(0)     = q_surface'
695       ELSE
696          runten = 'q(0)     = q(1)'
697       ENDIF
698       IF ( ibc_q_t == 0 )  THEN
699          roben =  'q(nzt)   = q_top'
700       ELSE
701          roben =  'q(nzt)   = q(nzt-1) + dq/dz'
702       ENDIF
703       WRITE ( io, 301 ) 'q', runten, roben
704    ENDIF
705
706    IF ( passive_scalar )  THEN
707       IF ( ibc_q_b == 0 )  THEN
708          runten = 's(0)     = s_surface'
709       ELSE
710          runten = 's(0)     = s(1)'
711       ENDIF
712       IF ( ibc_q_t == 0 )  THEN
713          roben =  's(nzt)   = s_top'
714       ELSE
715          roben =  's(nzt)   = s(nzt-1) + ds/dz'
716       ENDIF
717       WRITE ( io, 301 ) 's', runten, roben
718    ENDIF
719
720    IF ( use_surface_fluxes )  THEN
721       WRITE ( io, 303 )
722       IF ( constant_heatflux )  THEN
723          IF ( large_scale_forcing .AND. lsf_surf )  THEN
724             WRITE ( io, 306 )  shf(0,0)
725          ELSE
726             WRITE ( io, 306 )  surface_heatflux
727          ENDIF
728          IF ( random_heatflux )  WRITE ( io, 307 )
729       ENDIF
730       IF ( humidity  .AND.  constant_waterflux )  THEN
731          IF ( large_scale_forcing .AND. lsf_surf )  THEN
732             WRITE ( io, 311 ) qsws(0,0)
733          ELSE
734             WRITE ( io, 311 ) surface_waterflux
735          ENDIF
736       ENDIF
737       IF ( passive_scalar  .AND.  constant_waterflux )  THEN
738          WRITE ( io, 313 ) surface_waterflux
739       ENDIF
740    ENDIF
741
742    IF ( use_top_fluxes )  THEN
743       WRITE ( io, 304 )
744       IF ( coupling_mode == 'uncoupled' )  THEN
745          WRITE ( io, 320 )  top_momentumflux_u, top_momentumflux_v
746          IF ( constant_top_heatflux )  THEN
747             WRITE ( io, 306 )  top_heatflux
748          ENDIF
749       ELSEIF ( coupling_mode == 'ocean_to_atmosphere' )  THEN
750          WRITE ( io, 316 )
751       ENDIF
752       IF ( ocean  .AND.  constant_top_salinityflux )  THEN
753          WRITE ( io, 309 )  top_salinityflux
754       ENDIF
755       IF ( humidity  .OR.  passive_scalar )  THEN
756          WRITE ( io, 315 )
757       ENDIF
758    ENDIF
759
760    IF ( prandtl_layer )  THEN
761       WRITE ( io, 305 )  (zu(1)-zu(0)), roughness_length, &
762                          z0h_factor*roughness_length, kappa, &
763                          rif_min, rif_max
764       IF ( .NOT. constant_heatflux )  WRITE ( io, 308 )
765       IF ( humidity  .AND.  .NOT. constant_waterflux )  THEN
766          WRITE ( io, 312 )
767       ENDIF
768       IF ( passive_scalar  .AND.  .NOT. constant_waterflux )  THEN
769          WRITE ( io, 314 )
770       ENDIF
771    ELSE
772       IF ( INDEX(initializing_actions, 'set_1d-model_profiles') /= 0 )  THEN
773          WRITE ( io, 310 )  rif_min, rif_max
774       ENDIF
775    ENDIF
776
777    WRITE ( io, 317 )  bc_lr, bc_ns
778    IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
779       WRITE ( io, 318 )  use_cmax, pt_damping_width, pt_damping_factor       
780       IF ( turbulent_inflow )  THEN
781          WRITE ( io, 319 )  recycling_width, recycling_plane, &
782                             inflow_damping_height, inflow_damping_width
783       ENDIF
784    ENDIF
785
786!
787!-- Listing of 1D-profiles
788    WRITE ( io, 325 )  dt_dopr_listing
789    IF ( averaging_interval_pr /= 0.0 )  THEN
790       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
791    ENDIF
792
793!
794!-- DATA output
795    WRITE ( io, 330 )
796    IF ( averaging_interval_pr /= 0.0 )  THEN
797       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
798    ENDIF
799
800!
801!-- 1D-profiles
802    dopr_chr = 'Profile:'
803    IF ( dopr_n /= 0 )  THEN
804       WRITE ( io, 331 )
805
806       output_format = ''
807       IF ( netcdf_output )  THEN
808          output_format = output_format_netcdf
809       ENDIF
810       WRITE ( io, 344 )  output_format
811
812       DO  i = 1, dopr_n
813          dopr_chr = TRIM( dopr_chr ) // ' ' // TRIM( data_output_pr(i) ) // ','
814          IF ( LEN_TRIM( dopr_chr ) >= 60 )  THEN
815             WRITE ( io, 332 )  dopr_chr
816             dopr_chr = '       :'
817          ENDIF
818       ENDDO
819
820       IF ( dopr_chr /= '' )  THEN
821          WRITE ( io, 332 )  dopr_chr
822       ENDIF
823       WRITE ( io, 333 )  dt_dopr, averaging_interval_pr, dt_averaging_input_pr
824       IF ( skip_time_dopr /= 0.0 )  WRITE ( io, 339 )  skip_time_dopr
825    ENDIF
826
827!
828!-- 2D-arrays
829    DO  av = 0, 1
830
831       i = 1
832       do2d_xy = ''
833       do2d_xz = ''
834       do2d_yz = ''
835       DO  WHILE ( do2d(av,i) /= ' ' )
836
837          l = MAX( 2, LEN_TRIM( do2d(av,i) ) )
838          do2d_mode = do2d(av,i)(l-1:l)
839
840          SELECT CASE ( do2d_mode )
841             CASE ( 'xy' )
842                ll = LEN_TRIM( do2d_xy )
843                do2d_xy = do2d_xy(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
844             CASE ( 'xz' )
845                ll = LEN_TRIM( do2d_xz )
846                do2d_xz = do2d_xz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
847             CASE ( 'yz' )
848                ll = LEN_TRIM( do2d_yz )
849                do2d_yz = do2d_yz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
850          END SELECT
851
852          i = i + 1
853
854       ENDDO
855
856       IF ( ( ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  .OR.    &
857              ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  .OR.    &
858              ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 ) )  .AND. &
859            ( netcdf_output  .OR.  iso2d_output ) )  THEN
860
861          IF (  av == 0 )  THEN
862             WRITE ( io, 334 )  ''
863          ELSE
864             WRITE ( io, 334 )  '(time-averaged)'
865          ENDIF
866
867          IF ( do2d_at_begin )  THEN
868             begin_chr = 'and at the start'
869          ELSE
870             begin_chr = ''
871          ENDIF
872
873          output_format = ''
874          IF ( netcdf_output )  THEN
875             output_format = output_format_netcdf
876          ENDIF
877          IF ( iso2d_output )  THEN
878             IF ( netcdf_output )  THEN
879                output_format = TRIM( output_format_netcdf ) // ' and iso2d'
880             ELSE
881                output_format = 'iso2d'
882             ENDIF
883          ENDIF
884          WRITE ( io, 344 )  output_format
885
886          IF ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  THEN
887             i = 1
888             slices = '/'
889             coordinates = '/'
890!
891!--          Building strings with index and coordinate informations of the
892!--          slices
893             DO  WHILE ( section(i,1) /= -9999 )
894
895                WRITE (section_chr,'(I5)')  section(i,1)
896                section_chr = ADJUSTL( section_chr )
897                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
898
899                IF ( section(i,1) == -1 )  THEN
900                   WRITE (coor_chr,'(F10.1)')  -1.0
901                ELSE
902                   WRITE (coor_chr,'(F10.1)')  zu(section(i,1))
903                ENDIF
904                coor_chr = ADJUSTL( coor_chr )
905                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
906
907                i = i + 1
908             ENDDO
909             IF ( av == 0 )  THEN
910                WRITE ( io, 335 )  'XY', do2d_xy, dt_do2d_xy, &
911                                   TRIM( begin_chr ), 'k', TRIM( slices ), &
912                                   TRIM( coordinates )
913                IF ( skip_time_do2d_xy /= 0.0 )  THEN
914                   WRITE ( io, 339 )  skip_time_do2d_xy
915                ENDIF
916             ELSE
917                WRITE ( io, 342 )  'XY', do2d_xy, dt_data_output_av, &
918                                   TRIM( begin_chr ), averaging_interval, &
919                                   dt_averaging_input, 'k', TRIM( slices ), &
920                                   TRIM( coordinates )
921                IF ( skip_time_data_output_av /= 0.0 )  THEN
922                   WRITE ( io, 339 )  skip_time_data_output_av
923                ENDIF
924             ENDIF
925             IF ( netcdf_data_format > 4 )  THEN
926                WRITE ( io, 352 )  ntdim_2d_xy(av)
927             ELSE
928                WRITE ( io, 353 )
929             ENDIF
930          ENDIF
931
932          IF ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  THEN
933             i = 1
934             slices = '/'
935             coordinates = '/'
936!
937!--          Building strings with index and coordinate informations of the
938!--          slices
939             DO  WHILE ( section(i,2) /= -9999 )
940
941                WRITE (section_chr,'(I5)')  section(i,2)
942                section_chr = ADJUSTL( section_chr )
943                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
944
945                WRITE (coor_chr,'(F10.1)')  section(i,2) * dy
946                coor_chr = ADJUSTL( coor_chr )
947                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
948
949                i = i + 1
950             ENDDO
951             IF ( av == 0 )  THEN
952                WRITE ( io, 335 )  'XZ', do2d_xz, dt_do2d_xz, &
953                                   TRIM( begin_chr ), 'j', TRIM( slices ), &
954                                   TRIM( coordinates )
955                IF ( skip_time_do2d_xz /= 0.0 )  THEN
956                   WRITE ( io, 339 )  skip_time_do2d_xz
957                ENDIF
958             ELSE
959                WRITE ( io, 342 )  'XZ', do2d_xz, dt_data_output_av, &
960                                   TRIM( begin_chr ), averaging_interval, &
961                                   dt_averaging_input, 'j', TRIM( slices ), &
962                                   TRIM( coordinates )
963                IF ( skip_time_data_output_av /= 0.0 )  THEN
964                   WRITE ( io, 339 )  skip_time_data_output_av
965                ENDIF
966             ENDIF
967             IF ( netcdf_data_format > 4 )  THEN
968                WRITE ( io, 352 )  ntdim_2d_xz(av)
969             ELSE
970                WRITE ( io, 353 )
971             ENDIF
972          ENDIF
973
974          IF ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 )  THEN
975             i = 1
976             slices = '/'
977             coordinates = '/'
978!
979!--          Building strings with index and coordinate informations of the
980!--          slices
981             DO  WHILE ( section(i,3) /= -9999 )
982
983                WRITE (section_chr,'(I5)')  section(i,3)
984                section_chr = ADJUSTL( section_chr )
985                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
986
987                WRITE (coor_chr,'(F10.1)')  section(i,3) * dx
988                coor_chr = ADJUSTL( coor_chr )
989                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
990
991                i = i + 1
992             ENDDO
993             IF ( av == 0 )  THEN
994                WRITE ( io, 335 )  'YZ', do2d_yz, dt_do2d_yz, &
995                                   TRIM( begin_chr ), 'i', TRIM( slices ), &
996                                   TRIM( coordinates )
997                IF ( skip_time_do2d_yz /= 0.0 )  THEN
998                   WRITE ( io, 339 )  skip_time_do2d_yz
999                ENDIF
1000             ELSE
1001                WRITE ( io, 342 )  'YZ', do2d_yz, dt_data_output_av, &
1002                                   TRIM( begin_chr ), averaging_interval, &
1003                                   dt_averaging_input, 'i', TRIM( slices ), &
1004                                   TRIM( coordinates )
1005                IF ( skip_time_data_output_av /= 0.0 )  THEN
1006                   WRITE ( io, 339 )  skip_time_data_output_av
1007                ENDIF
1008             ENDIF
1009             IF ( netcdf_data_format > 4 )  THEN
1010                WRITE ( io, 352 )  ntdim_2d_yz(av)
1011             ELSE
1012                WRITE ( io, 353 )
1013             ENDIF
1014          ENDIF
1015
1016       ENDIF
1017
1018    ENDDO
1019
1020!
1021!-- 3d-arrays
1022    DO  av = 0, 1
1023
1024       i = 1
1025       do3d_chr = ''
1026       DO  WHILE ( do3d(av,i) /= ' ' )
1027
1028          do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // ','
1029          i = i + 1
1030
1031       ENDDO
1032
1033       IF ( do3d_chr /= '' )  THEN
1034          IF ( av == 0 )  THEN
1035             WRITE ( io, 336 )  ''
1036          ELSE
1037             WRITE ( io, 336 )  '(time-averaged)'
1038          ENDIF
1039
1040          output_format = ''
1041          IF ( netcdf_output )  THEN
1042             output_format = output_format_netcdf
1043          ENDIF
1044          IF ( avs_output )  THEN
1045             IF ( netcdf_output )  THEN
1046                output_format = TRIM( output_format_netcdf ) // ' and avs'
1047             ELSE
1048                output_format = 'avs'
1049             ENDIF
1050          ENDIF
1051          WRITE ( io, 344 )  output_format
1052
1053          IF ( do3d_at_begin )  THEN
1054             begin_chr = 'and at the start'
1055          ELSE
1056             begin_chr = ''
1057          ENDIF
1058          IF ( av == 0 )  THEN
1059             WRITE ( io, 337 )  do3d_chr, dt_do3d, TRIM( begin_chr ), &
1060                                zu(nz_do3d), nz_do3d
1061          ELSE
1062             WRITE ( io, 343 )  do3d_chr, dt_data_output_av,           &
1063                                TRIM( begin_chr ), averaging_interval, &
1064                                dt_averaging_input, zu(nz_do3d), nz_do3d
1065          ENDIF
1066
1067          IF ( netcdf_data_format > 4 )  THEN
1068             WRITE ( io, 352 )  ntdim_3d(av)
1069          ELSE
1070             WRITE ( io, 353 )
1071          ENDIF
1072
1073          IF ( do3d_compress )  THEN
1074             do3d_chr = ''
1075             i = 1
1076             DO WHILE ( do3d(av,i) /= ' ' )
1077
1078                SELECT CASE ( do3d(av,i) )
1079                   CASE ( 'u' )
1080                      j = 1
1081                   CASE ( 'v' )
1082                      j = 2
1083                   CASE ( 'w' )
1084                      j = 3
1085                   CASE ( 'p' )
1086                      j = 4
1087                   CASE ( 'pt' )
1088                      j = 5
1089                END SELECT
1090                WRITE ( prec, '(I1)' )  plot_3d_precision(j)%precision
1091                do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // &
1092                           ':' // prec // ','
1093                i = i + 1
1094
1095             ENDDO
1096             WRITE ( io, 338 )  do3d_chr
1097
1098          ENDIF
1099
1100          IF ( av == 0 )  THEN
1101             IF ( skip_time_do3d /= 0.0 )  THEN
1102                WRITE ( io, 339 )  skip_time_do3d
1103             ENDIF
1104          ELSE
1105             IF ( skip_time_data_output_av /= 0.0 )  THEN
1106                WRITE ( io, 339 )  skip_time_data_output_av
1107             ENDIF
1108          ENDIF
1109
1110       ENDIF
1111
1112    ENDDO
1113
1114!
1115!-- masked arrays
1116    IF ( masks > 0 )  WRITE ( io, 345 )  &
1117         mask_scale_x, mask_scale_y, mask_scale_z
1118    DO  mid = 1, masks
1119       DO  av = 0, 1
1120
1121          i = 1
1122          domask_chr = ''
1123          DO  WHILE ( domask(mid,av,i) /= ' ' )
1124             domask_chr = TRIM( domask_chr ) // ' ' //  &
1125                          TRIM( domask(mid,av,i) ) // ','
1126             i = i + 1
1127          ENDDO
1128
1129          IF ( domask_chr /= '' )  THEN
1130             IF ( av == 0 )  THEN
1131                WRITE ( io, 346 )  '', mid
1132             ELSE
1133                WRITE ( io, 346 )  ' (time-averaged)', mid
1134             ENDIF
1135
1136             output_format = ' '
1137             IF ( netcdf_output )  THEN
1138                output_format = output_format_netcdf
1139             ENDIF
1140!--          Parallel output not implemented for mask data, hence
1141!--          output_format must be adjusted.
1142             IF ( netcdf_data_format == 5 ) output_format = 'netCDF4/HDF5'
1143             IF ( netcdf_data_format == 6 ) output_format = 'netCDF4/HDF5 classic'
1144             WRITE ( io, 344 )  output_format
1145
1146             IF ( av == 0 )  THEN
1147                WRITE ( io, 347 )  domask_chr, dt_domask(mid)
1148             ELSE
1149                WRITE ( io, 348 )  domask_chr, dt_data_output_av, &
1150                                   averaging_interval, dt_averaging_input
1151             ENDIF
1152
1153             IF ( av == 0 )  THEN
1154                IF ( skip_time_domask(mid) /= 0.0 )  THEN
1155                   WRITE ( io, 339 )  skip_time_domask(mid)
1156                ENDIF
1157             ELSE
1158                IF ( skip_time_data_output_av /= 0.0 )  THEN
1159                   WRITE ( io, 339 )  skip_time_data_output_av
1160                ENDIF
1161             ENDIF
1162!
1163!--          output locations
1164             DO  dim = 1, 3
1165                IF ( mask(mid,dim,1) >= 0.0 )  THEN
1166                   count = 0
1167                   DO  WHILE ( mask(mid,dim,count+1) >= 0.0 )
1168                      count = count + 1
1169                   ENDDO
1170                   WRITE ( io, 349 )  dir(dim), dir(dim), mid, dir(dim), &
1171                                      mask(mid,dim,:count)
1172                ELSEIF ( mask_loop(mid,dim,1) < 0.0 .AND.  &
1173                         mask_loop(mid,dim,2) < 0.0 .AND.  &
1174                         mask_loop(mid,dim,3) == 0.0 )  THEN
1175                   WRITE ( io, 350 )  dir(dim), dir(dim)
1176                ELSEIF ( mask_loop(mid,dim,3) == 0.0 )  THEN
1177                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1178                                      mask_loop(mid,dim,1:2)
1179                ELSE
1180                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1181                                      mask_loop(mid,dim,1:3)
1182                ENDIF
1183             ENDDO
1184          ENDIF
1185
1186       ENDDO
1187    ENDDO
1188
1189!
1190!-- Timeseries
1191    IF ( dt_dots /= 9999999.9_wp )  THEN
1192       WRITE ( io, 340 )
1193
1194       output_format = ''
1195       IF ( netcdf_output )  THEN
1196          output_format = output_format_netcdf
1197       ENDIF
1198       WRITE ( io, 344 )  output_format
1199       WRITE ( io, 341 )  dt_dots
1200    ENDIF
1201
1202#if defined( __dvrp_graphics )
1203!
1204!-- Dvrp-output
1205    IF ( dt_dvrp /= 9999999.9_wp )  THEN
1206       WRITE ( io, 360 )  dt_dvrp, TRIM( dvrp_output ), TRIM( dvrp_host ), &
1207                          TRIM( dvrp_username ), TRIM( dvrp_directory )
1208       i = 1
1209       l = 0
1210       m = 0
1211       DO WHILE ( mode_dvrp(i) /= ' ' )
1212          IF ( mode_dvrp(i)(1:10) == 'isosurface' )  THEN
1213             READ ( mode_dvrp(i), '(10X,I2)' )  j
1214             l = l + 1
1215             IF ( do3d(0,j) /= ' ' )  THEN
1216                WRITE ( io, 361 )  TRIM( do3d(0,j) ), threshold(l), &
1217                                   isosurface_color(:,l)
1218             ENDIF
1219          ELSEIF ( mode_dvrp(i)(1:6) == 'slicer' )  THEN
1220             READ ( mode_dvrp(i), '(6X,I2)' )  j
1221             m = m + 1
1222             IF ( do2d(0,j) /= ' ' )  THEN
1223                WRITE ( io, 362 )  TRIM( do2d(0,j) ), &
1224                                   slicer_range_limits_dvrp(:,m)
1225             ENDIF
1226          ELSEIF ( mode_dvrp(i)(1:9) == 'particles' )  THEN
1227             WRITE ( io, 363 )  dvrp_psize
1228             IF ( particle_dvrpsize /= 'none' )  THEN
1229                WRITE ( io, 364 )  'size', TRIM( particle_dvrpsize ), &
1230                                   dvrpsize_interval
1231             ENDIF
1232             IF ( particle_color /= 'none' )  THEN
1233                WRITE ( io, 364 )  'color', TRIM( particle_color ), &
1234                                   color_interval
1235             ENDIF
1236          ENDIF
1237          i = i + 1
1238       ENDDO
1239
1240       WRITE ( io, 365 )  groundplate_color, superelevation_x, &
1241                          superelevation_y, superelevation, clip_dvrp_l, &
1242                          clip_dvrp_r, clip_dvrp_s, clip_dvrp_n
1243
1244       IF ( TRIM( topography ) /= 'flat' )  THEN
1245          WRITE ( io, 366 )  topography_color
1246          IF ( cluster_size > 1 )  THEN
1247             WRITE ( io, 367 )  cluster_size
1248          ENDIF
1249       ENDIF
1250
1251    ENDIF
1252#endif
1253
1254#if defined( __spectra )
1255!
1256!-- Spectra output
1257    IF ( dt_dosp /= 9999999.9_wp )  THEN
1258       WRITE ( io, 370 )
1259
1260       output_format = ' '
1261       IF ( netcdf_output )  THEN
1262          output_format = output_format_netcdf
1263       ENDIF
1264       WRITE ( io, 344 )  output_format
1265       WRITE ( io, 371 )  dt_dosp
1266       IF ( skip_time_dosp /= 0.0 )  WRITE ( io, 339 )  skip_time_dosp
1267       WRITE ( io, 372 )  ( data_output_sp(i), i = 1,10 ),     &
1268                          ( spectra_direction(i), i = 1,10 ),  &
1269                          ( comp_spectra_level(i), i = 1,100 ), &
1270                          ( plot_spectra_level(i), i = 1,100 ), &
1271                          averaging_interval_sp, dt_averaging_input_pr
1272    ENDIF
1273#endif
1274
1275    WRITE ( io, 99 )
1276
1277!
1278!-- Physical quantities
1279    WRITE ( io, 400 )
1280
1281!
1282!-- Geostrophic parameters
1283    WRITE ( io, 410 )  omega, phi, f, fs
1284
1285!
1286!-- Other quantities
1287    WRITE ( io, 411 )  g
1288    WRITE ( io, 412 )  TRIM( reference_state )
1289    IF ( use_single_reference_value )  THEN
1290       IF ( ocean )  THEN
1291          WRITE ( io, 413 )  prho_reference
1292       ELSE
1293          WRITE ( io, 414 )  pt_reference
1294       ENDIF
1295    ENDIF
1296
1297!
1298!-- Cloud physics parameters
1299    IF ( cloud_physics )  THEN
1300       WRITE ( io, 415 )
1301       WRITE ( io, 416 ) surface_pressure, r_d, rho_surface, cp, l_v
1302       IF ( icloud_scheme == 0 )  THEN
1303          WRITE ( io, 510 ) 1.0E-6 * nc_const
1304          IF ( precipitation )  WRITE ( io, 511 ) c_sedimentation
1305       ENDIF
1306    ENDIF
1307
1308!-- Profile of the geostrophic wind (component ug)
1309!-- Building output strings
1310    WRITE ( ugcomponent, '(F6.2)' )  ug_surface
1311    gradients = '------'
1312    slices = '     0'
1313    coordinates = '   0.0'
1314    i = 1
1315    DO  WHILE ( ug_vertical_gradient_level_ind(i) /= -9999 )
1316     
1317       WRITE (coor_chr,'(F6.2,1X)')  ug(ug_vertical_gradient_level_ind(i))
1318       ugcomponent = TRIM( ugcomponent ) // '  ' // TRIM( coor_chr )
1319
1320       WRITE (coor_chr,'(F6.2,1X)')  ug_vertical_gradient(i)
1321       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1322
1323       WRITE (coor_chr,'(I6,1X)')  ug_vertical_gradient_level_ind(i)
1324       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1325
1326       WRITE (coor_chr,'(F6.1,1X)')  ug_vertical_gradient_level(i)
1327       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
1328
1329       IF ( i == 10 )  THEN
1330          EXIT
1331       ELSE
1332          i = i + 1
1333       ENDIF
1334
1335    ENDDO
1336
1337    IF ( .NOT. large_scale_forcing )  THEN
1338       WRITE ( io, 423 )  TRIM( coordinates ), TRIM( ugcomponent ), &
1339                          TRIM( gradients ), TRIM( slices )
1340    ELSE
1341       WRITE ( io, 429 ) 
1342    ENDIF
1343
1344!-- Profile of the geostrophic wind (component vg)
1345!-- Building output strings
1346    WRITE ( vgcomponent, '(F6.2)' )  vg_surface
1347    gradients = '------'
1348    slices = '     0'
1349    coordinates = '   0.0'
1350    i = 1
1351    DO  WHILE ( vg_vertical_gradient_level_ind(i) /= -9999 )
1352
1353       WRITE (coor_chr,'(F6.2,1X)')  vg(vg_vertical_gradient_level_ind(i))
1354       vgcomponent = TRIM( vgcomponent ) // '  ' // TRIM( coor_chr )
1355
1356       WRITE (coor_chr,'(F6.2,1X)')  vg_vertical_gradient(i)
1357       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1358
1359       WRITE (coor_chr,'(I6,1X)')  vg_vertical_gradient_level_ind(i)
1360       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1361
1362       WRITE (coor_chr,'(F6.1,1X)')  vg_vertical_gradient_level(i)
1363       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
1364
1365       IF ( i == 10 )  THEN
1366          EXIT
1367       ELSE
1368          i = i + 1
1369       ENDIF
1370 
1371    ENDDO
1372
1373    IF ( .NOT. large_scale_forcing )  THEN
1374       WRITE ( io, 424 )  TRIM( coordinates ), TRIM( vgcomponent ), &
1375                          TRIM( gradients ), TRIM( slices )
1376    ENDIF
1377
1378!
1379!-- Initial wind profiles
1380    IF ( u_profile(1) /= 9999999.9_wp )  WRITE ( io, 427 )
1381
1382!
1383!-- Initial temperature profile
1384!-- Building output strings, starting with surface temperature
1385    WRITE ( temperatures, '(F6.2)' )  pt_surface
1386    gradients = '------'
1387    slices = '     0'
1388    coordinates = '   0.0'
1389    i = 1
1390    DO  WHILE ( pt_vertical_gradient_level_ind(i) /= -9999 )
1391
1392       WRITE (coor_chr,'(F7.2)')  pt_init(pt_vertical_gradient_level_ind(i))
1393       temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1394
1395       WRITE (coor_chr,'(F7.2)')  pt_vertical_gradient(i)
1396       gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1397
1398       WRITE (coor_chr,'(I7)')  pt_vertical_gradient_level_ind(i)
1399       slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1400
1401       WRITE (coor_chr,'(F7.1)')  pt_vertical_gradient_level(i)
1402       coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1403
1404       IF ( i == 10 )  THEN
1405          EXIT
1406       ELSE
1407          i = i + 1
1408       ENDIF
1409
1410    ENDDO
1411
1412    IF ( .NOT. nudging )  THEN
1413       WRITE ( io, 420 )  TRIM( coordinates ), TRIM( temperatures ), &
1414                          TRIM( gradients ), TRIM( slices )
1415    ELSE
1416       WRITE ( io, 428 ) 
1417    ENDIF
1418
1419!
1420!-- Initial humidity profile
1421!-- Building output strings, starting with surface humidity
1422    IF ( humidity  .OR.  passive_scalar )  THEN
1423       WRITE ( temperatures, '(E8.1)' )  q_surface
1424       gradients = '--------'
1425       slices = '       0'
1426       coordinates = '     0.0'
1427       i = 1
1428       DO  WHILE ( q_vertical_gradient_level_ind(i) /= -9999 )
1429         
1430          WRITE (coor_chr,'(E8.1,4X)')  q_init(q_vertical_gradient_level_ind(i))
1431          temperatures = TRIM( temperatures ) // '  ' // TRIM( coor_chr )
1432
1433          WRITE (coor_chr,'(E8.1,4X)')  q_vertical_gradient(i)
1434          gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1435         
1436          WRITE (coor_chr,'(I8,4X)')  q_vertical_gradient_level_ind(i)
1437          slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1438         
1439          WRITE (coor_chr,'(F8.1,4X)')  q_vertical_gradient_level(i)
1440          coordinates = TRIM( coordinates ) // '  '  // TRIM( coor_chr )
1441
1442          IF ( i == 10 )  THEN
1443             EXIT
1444          ELSE
1445             i = i + 1
1446          ENDIF
1447
1448       ENDDO
1449
1450       IF ( humidity )  THEN
1451          IF ( .NOT. nudging )  THEN
1452             WRITE ( io, 421 )  TRIM( coordinates ), TRIM( temperatures ), &
1453                                TRIM( gradients ), TRIM( slices )
1454          ENDIF
1455       ELSE
1456          WRITE ( io, 422 )  TRIM( coordinates ), TRIM( temperatures ), &
1457                             TRIM( gradients ), TRIM( slices )
1458       ENDIF
1459    ENDIF
1460
1461!
1462!-- Initial salinity profile
1463!-- Building output strings, starting with surface salinity
1464    IF ( ocean )  THEN
1465       WRITE ( temperatures, '(F6.2)' )  sa_surface
1466       gradients = '------'
1467       slices = '     0'
1468       coordinates = '   0.0'
1469       i = 1
1470       DO  WHILE ( sa_vertical_gradient_level_ind(i) /= -9999 )
1471
1472          WRITE (coor_chr,'(F7.2)')  sa_init(sa_vertical_gradient_level_ind(i))
1473          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1474
1475          WRITE (coor_chr,'(F7.2)')  sa_vertical_gradient(i)
1476          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1477
1478          WRITE (coor_chr,'(I7)')  sa_vertical_gradient_level_ind(i)
1479          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1480
1481          WRITE (coor_chr,'(F7.1)')  sa_vertical_gradient_level(i)
1482          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1483
1484          IF ( i == 10 )  THEN
1485             EXIT
1486          ELSE
1487             i = i + 1
1488          ENDIF
1489
1490       ENDDO
1491
1492       WRITE ( io, 425 )  TRIM( coordinates ), TRIM( temperatures ), &
1493                          TRIM( gradients ), TRIM( slices )
1494    ENDIF
1495
1496!
1497!-- Profile for the large scale vertial velocity
1498!-- Building output strings, starting with surface value
1499    IF ( large_scale_subsidence )  THEN
1500       temperatures = '   0.0'
1501       gradients = '------'
1502       slices = '     0'
1503       coordinates = '   0.0'
1504       i = 1
1505       DO  WHILE ( subs_vertical_gradient_level_i(i) /= -9999 )
1506
1507          WRITE (coor_chr,'(E10.2,7X)')  &
1508                                w_subs(subs_vertical_gradient_level_i(i))
1509          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1510
1511          WRITE (coor_chr,'(E10.2,7X)')  subs_vertical_gradient(i)
1512          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1513
1514          WRITE (coor_chr,'(I10,7X)')  subs_vertical_gradient_level_i(i)
1515          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1516
1517          WRITE (coor_chr,'(F10.2,7X)')  subs_vertical_gradient_level(i)
1518          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1519
1520          IF ( i == 10 )  THEN
1521             EXIT
1522          ELSE
1523             i = i + 1
1524          ENDIF
1525
1526       ENDDO
1527
1528 
1529       IF ( .NOT. large_scale_forcing )  THEN
1530          WRITE ( io, 426 )  TRIM( coordinates ), TRIM( temperatures ), &
1531                             TRIM( gradients ), TRIM( slices )
1532        ELSE
1533           WRITE ( io, 460 ) 
1534       ENDIF
1535
1536
1537    ENDIF
1538
1539!
1540!-- Cloud physcis parameters / quantities / numerical methods
1541    WRITE ( io, 430 )
1542    IF ( humidity .AND. .NOT. cloud_physics .AND. .NOT. cloud_droplets)  THEN
1543       WRITE ( io, 431 )
1544    ELSEIF ( humidity  .AND.  cloud_physics )  THEN
1545       WRITE ( io, 432 )
1546       IF ( radiation )  WRITE ( io, 132 )
1547       IF ( icloud_scheme == 1 )  THEN
1548          IF ( precipitation )  WRITE ( io, 133 )
1549       ELSEIF ( icloud_scheme == 0 )  THEN
1550          IF ( drizzle )  WRITE ( io, 506 )
1551          IF ( precipitation )  THEN
1552             WRITE ( io, 505 )
1553             IF ( turbulence )  WRITE ( io, 507 )
1554             IF ( ventilation_effect )  WRITE ( io, 508 )
1555             IF ( limiter_sedimentation )  WRITE ( io, 509 )
1556          ENDIF
1557       ENDIF
1558    ELSEIF ( humidity  .AND.  cloud_droplets )  THEN
1559       WRITE ( io, 433 )
1560       IF ( curvature_solution_effects )  WRITE ( io, 434 )
1561       IF ( collision_kernel /= 'none' )  THEN
1562          WRITE ( io, 435 )  TRIM( collision_kernel )
1563          IF ( collision_kernel(6:9) == 'fast' )  THEN
1564             WRITE ( io, 436 )  radius_classes, dissipation_classes
1565          ENDIF
1566       ELSE
1567          WRITE ( io, 437 )
1568       ENDIF
1569    ENDIF
1570
1571!
1572!-- LES / turbulence parameters
1573    WRITE ( io, 450 )
1574
1575!--
1576! ... LES-constants used must still be added here
1577!--
1578    IF ( constant_diffusion )  THEN
1579       WRITE ( io, 451 )  km_constant, km_constant/prandtl_number, &
1580                          prandtl_number
1581    ENDIF
1582    IF ( .NOT. constant_diffusion)  THEN
1583       IF ( e_init > 0.0 )  WRITE ( io, 455 )  e_init
1584       IF ( e_min > 0.0 )  WRITE ( io, 454 )  e_min
1585       IF ( wall_adjustment )  WRITE ( io, 453 )  wall_adjustment_factor
1586    ENDIF
1587
1588!
1589!-- Special actions during the run
1590    WRITE ( io, 470 )
1591    IF ( create_disturbances )  THEN
1592       WRITE ( io, 471 )  dt_disturb, disturbance_amplitude,                   &
1593                          zu(disturbance_level_ind_b), disturbance_level_ind_b,&
1594                          zu(disturbance_level_ind_t), disturbance_level_ind_t
1595       IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
1596          WRITE ( io, 472 )  inflow_disturbance_begin, inflow_disturbance_end
1597       ELSE
1598          WRITE ( io, 473 )  disturbance_energy_limit
1599       ENDIF
1600       WRITE ( io, 474 )  TRIM( random_generator )
1601    ENDIF
1602    IF ( pt_surface_initial_change /= 0.0 )  THEN
1603       WRITE ( io, 475 )  pt_surface_initial_change
1604    ENDIF
1605    IF ( humidity  .AND.  q_surface_initial_change /= 0.0 )  THEN
1606       WRITE ( io, 476 )  q_surface_initial_change       
1607    ENDIF
1608    IF ( passive_scalar  .AND.  q_surface_initial_change /= 0.0 )  THEN
1609       WRITE ( io, 477 )  q_surface_initial_change       
1610    ENDIF
1611
1612    IF ( particle_advection )  THEN
1613!
1614!--    Particle attributes
1615       WRITE ( io, 480 )  particle_advection_start, dt_prel, bc_par_lr, &
1616                          bc_par_ns, bc_par_b, bc_par_t, particle_maximum_age, &
1617                          end_time_prel, dt_sort_particles
1618       IF ( use_sgs_for_particles )  WRITE ( io, 488 )  dt_min_part
1619       IF ( random_start_position )  WRITE ( io, 481 )
1620       IF ( particles_per_point > 1 )  WRITE ( io, 489 )  particles_per_point
1621       WRITE ( io, 495 )  total_number_of_particles
1622       IF ( use_particle_tails  .AND.  maximum_number_of_tailpoints /= 0 )  THEN
1623          WRITE ( io, 483 )  maximum_number_of_tailpoints
1624          IF ( minimum_tailpoint_distance /= 0 )  THEN
1625             WRITE ( io, 484 )  total_number_of_tails,      &
1626                                minimum_tailpoint_distance, &
1627                                maximum_tailpoint_age
1628          ENDIF
1629       ENDIF
1630       IF ( dt_write_particle_data /= 9999999.9_wp )  THEN
1631          WRITE ( io, 485 )  dt_write_particle_data
1632          output_format = ' '
1633          IF ( netcdf_output )  THEN
1634             IF ( netcdf_data_format > 1 )  THEN
1635                output_format = 'netcdf (64 bit offset) and binary'
1636             ELSE
1637                output_format = 'netcdf and binary'
1638             ENDIF
1639          ELSE
1640             output_format = 'binary'
1641          ENDIF
1642          WRITE ( io, 344 )  output_format
1643       ENDIF
1644       IF ( dt_dopts /= 9999999.9_wp )  WRITE ( io, 494 )  dt_dopts
1645       IF ( write_particle_statistics )  WRITE ( io, 486 )
1646
1647       WRITE ( io, 487 )  number_of_particle_groups
1648
1649       DO  i = 1, number_of_particle_groups
1650          IF ( i == 1  .AND.  density_ratio(i) == 9999999.9_wp )  THEN
1651             WRITE ( io, 490 )  i, 0.0
1652             WRITE ( io, 492 )
1653          ELSE
1654             WRITE ( io, 490 )  i, radius(i)
1655             IF ( density_ratio(i) /= 0.0 )  THEN
1656                WRITE ( io, 491 )  density_ratio(i)
1657             ELSE
1658                WRITE ( io, 492 )
1659             ENDIF
1660          ENDIF
1661          WRITE ( io, 493 )  psl(i), psr(i), pss(i), psn(i), psb(i), pst(i), &
1662                             pdx(i), pdy(i), pdz(i)
1663          IF ( .NOT. vertical_particle_advection(i) )  WRITE ( io, 482 )
1664       ENDDO
1665
1666    ENDIF
1667
1668
1669!
1670!-- Parameters of 1D-model
1671    IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
1672       WRITE ( io, 500 )  end_time_1d, dt_run_control_1d, dt_pr_1d, &
1673                          mixing_length_1d, dissipation_1d
1674       IF ( damp_level_ind_1d /= nzt+1 )  THEN
1675          WRITE ( io, 502 )  zu(damp_level_ind_1d), damp_level_ind_1d
1676       ENDIF
1677    ENDIF
1678
1679!
1680!-- User-defined informations
1681    CALL user_header( io )
1682
1683    WRITE ( io, 99 )
1684
1685!
1686!-- Write buffer contents to disc immediately
1687    CALL local_flush( io )
1688
1689!
1690!-- Here the FORMATs start
1691
1692 99 FORMAT (1X,78('-'))
1693100 FORMAT (/1X,'******************************',6X,42('-')/        &
1694            1X,'* ',A,' *',6X,A/                               &
1695            1X,'******************************',6X,42('-'))
1696101 FORMAT (37X,'coupled run using MPI-',I1,': ',A/ &
1697            37X,42('-'))
1698102 FORMAT (/' Date:                 ',A8,6X,'Run:       ',A20/      &
1699            ' Time:                 ',A8,6X,'Run-No.:   ',I2.2/     &
1700            ' Run on host:        ',A10)
1701#if defined( __parallel )
1702103 FORMAT (' Number of PEs:',10X,I6,6X,'Processor grid (x,y): (',I3,',',I3, &
1703              ')',1X,A)
1704104 FORMAT (' Number of PEs:',8X,I5,9X,'Tasks:',I4,'   threads per task:',I4/ &
1705              37X,'Processor grid (x,y): (',I3,',',I3,')',1X,A)
1706105 FORMAT (37X,'One additional PE is used to handle'/37X,'the dvrp output!')
1707106 FORMAT (37X,'A 1d-decomposition along x is forced'/ &
1708            37X,'because the job is running on an SMP-cluster')
1709107 FORMAT (37X,'A 1d-decomposition along ',A,' is used')
1710108 FORMAT (37X,'Max. # of parallel I/O streams is ',I5)
1711109 FORMAT (37X,'Precursor run for coupled atmos-ocean run'/ &
1712            37X,42('-'))
1713114 FORMAT (37X,'Coupled atmosphere-ocean run following'/ &
1714            37X,'independent precursor runs'/             &
1715            37X,42('-'))
1716117 FORMAT (' Accelerator boards / node:  ',I2)
1717#endif
1718110 FORMAT (/' Numerical Schemes:'/ &
1719             ' -----------------'/)
1720111 FORMAT (' --> Solve perturbation pressure via FFT using ',A,' routines')
1721112 FORMAT (' --> Solve perturbation pressure via SOR-Red/Black-Schema'/ &
1722            '     Iterations (initial/other): ',I3,'/',I3,'  omega = ',F5.3)
1723113 FORMAT (' --> Momentum advection via Piascek-Williams-Scheme (Form C3)', &
1724                  ' or Upstream')
1725115 FORMAT ('     FFT and transpositions are overlapping')
1726116 FORMAT (' --> Scalar advection via Piascek-Williams-Scheme (Form C3)', &
1727                  ' or Upstream')
1728118 FORMAT (' --> Scalar advection via Bott-Chlond-Scheme')
1729119 FORMAT (' --> Galilei-Transform applied to horizontal advection:'/ &
1730            '     translation velocity = ',A/ &
1731            '     distance advected ',A,':  ',F8.3,' km(x)  ',F8.3,' km(y)')
1732120 FORMAT (' Accelerator boards: ',8X,I2)
1733122 FORMAT (' --> Time differencing scheme: ',A)
1734123 FORMAT (' --> Rayleigh-Damping active, starts ',A,' z = ',F8.2,' m'/ &
1735            '     maximum damping coefficient: ',F5.3, ' 1/s')
1736129 FORMAT (' --> Additional prognostic equation for the specific humidity')
1737130 FORMAT (' --> Additional prognostic equation for the total water content')
1738131 FORMAT (' --> No pt-equation solved. Neutral stratification with pt = ', &
1739                  F6.2, ' K assumed')
1740132 FORMAT ('     Parameterization of long-wave radiation processes via'/ &
1741            '     effective emissivity scheme')
1742133 FORMAT ('     Precipitation parameterization via Kessler-Scheme')
1743134 FORMAT (' --> Additional prognostic equation for a passive scalar')
1744135 FORMAT (' --> Solve perturbation pressure via multigrid method (', &
1745                  A,'-cycle)'/ &
1746            '     number of grid levels:                   ',I2/ &
1747            '     Gauss-Seidel red/black iterations:       ',I2)
1748136 FORMAT ('     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1749                  I3,')')
1750137 FORMAT ('     level data gathered on PE0 at level:     ',I2/ &
1751            '     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1752                  I3,')'/ &
1753            '     gridpoints of coarsest domain (x,y,z):    (',I3,',',I3,',', &
1754                  I3,')')
1755139 FORMAT (' --> Loop optimization method: ',A)
1756140 FORMAT ('     maximum residual allowed:                ',E10.3)
1757141 FORMAT ('     fixed number of multigrid cycles:        ',I4)
1758142 FORMAT ('     perturbation pressure is calculated at every Runge-Kutta ', &
1759                  'step')
1760143 FORMAT ('     Euler/upstream scheme is used for the SGS turbulent ', &
1761                  'kinetic energy')
1762144 FORMAT ('     masking method is used')
1763150 FORMAT (' --> Volume flow at the right and north boundary will be ', &
1764                  'conserved'/ &
1765            '     using the ',A,' mode')
1766151 FORMAT ('     with u_bulk = ',F7.3,' m/s and v_bulk = ',F7.3,' m/s')
1767152 FORMAT (' --> External pressure gradient directly prescribed by the user:',&
1768           /'     ',2(1X,E12.5),'Pa/m in x/y direction', &
1769           /'     starting from dp_level_b =', F8.3, 'm', A /)
1770153 FORMAT (' --> Large-scale vertical motion is used in the ', &
1771                  'prognostic equation(s) for')
1772154 FORMAT ('     the scalar(s) only')
1773155 FORMAT (' --> Nudging is used - initial profiles for u, v, pt and q ',& 
1774                  'correspond to the')
1775156 FORMAT ('     first profiles in NUDGING_DATA')
1776157 FORMAT (' --> Large scale forcing from external file (LSF_DATA) is used: ')
1777158 FORMAT ('     prescribed surfaces fluxes and geostrophic wind components')
1778200 FORMAT (//' Run time and time step information:'/ &
1779             ' ----------------------------------'/)
1780201 FORMAT ( ' Timestep:             variable     maximum value: ',F6.3,' s', &
1781             '    CFL-factor: ',F4.2)
1782202 FORMAT ( ' Timestep:          dt = ',F6.3,' s'/)
1783203 FORMAT ( ' Start time:          ',F9.3,' s'/ &
1784             ' End time:            ',F9.3,' s')
1785204 FORMAT ( A,F9.3,' s')
1786205 FORMAT ( A,F9.3,' s',5X,'restart every',17X,F9.3,' s')
1787206 FORMAT (/' Time reached:        ',F9.3,' s'/ &
1788             ' CPU-time used:       ',F9.3,' s     per timestep:               ', &
1789               '  ',F9.3,' s'/                                                    &
1790             '                                      per second of simulated tim', &
1791               'e: ',F9.3,' s')
1792207 FORMAT ( ' Coupling start time: ',F9.3,' s')
1793250 FORMAT (//' Computational grid and domain size:'/ &
1794              ' ----------------------------------'// &
1795              ' Grid length:      dx =    ',F7.3,' m    dy =    ',F7.3, &
1796              ' m    dz =    ',F7.3,' m'/ &
1797              ' Domain size:       x = ',F10.3,' m     y = ',F10.3, &
1798              ' m  z(u) = ',F10.3,' m'/)
1799252 FORMAT (' dz constant up to ',F10.3,' m (k=',I4,'), then stretched by', &
1800              ' factor: ',F5.3/ &
1801            ' maximum dz not to be exceeded is dz_max = ',F10.3,' m'/)
1802254 FORMAT (' Number of gridpoints (x,y,z):  (0:',I4,', 0:',I4,', 0:',I4,')'/ &
1803            ' Subdomain size (x,y,z):        (  ',I4,',   ',I4,',   ',I4,')'/)
1804260 FORMAT (/' The model has a slope in x-direction. Inclination angle: ',F6.2,&
1805             ' degrees')
1806270 FORMAT (//' Topography informations:'/ &
1807              ' -----------------------'// &
1808              1X,'Topography: ',A)
1809271 FORMAT (  ' Building size (x/y/z) in m: ',F5.1,' / ',F5.1,' / ',F5.1/ &
1810              ' Horizontal index bounds (l/r/s/n): ',I4,' / ',I4,' / ',I4, &
1811                ' / ',I4)
1812272 FORMAT (  ' Single quasi-2D street canyon of infinite length in ',A, &
1813              ' direction' / &
1814              ' Canyon height: ', F6.2, 'm, ch = ', I4, '.'      / &
1815              ' Canyon position (',A,'-walls): cxl = ', I4,', cxr = ', I4, '.')
1816278 FORMAT (' Topography grid definition convention:'/ &
1817            ' cell edge (staggered grid points'/  &
1818            ' (u in x-direction, v in y-direction))' /)
1819279 FORMAT (' Topography grid definition convention:'/ &
1820            ' cell center (scalar grid points)' /)
1821280 FORMAT (//' Vegetation canopy (drag) model:'/ &
1822              ' ------------------------------'// &
1823              ' Canopy mode: ', A / &
1824              ' Canopy top: ',I4 / &
1825              ' Leaf drag coefficient: ',F6.2 /)
1826281 FORMAT (/ ' Scalar_exchange_coefficient: ',F6.2 / &
1827              ' Scalar concentration at leaf surfaces in kg/m**3: ',F6.2 /)
1828282 FORMAT (' Predefined constant heatflux at the top of the vegetation: ',F6.2,' K m/s')
1829283 FORMAT (/ ' Characteristic levels of the leaf area density:'// &
1830              ' Height:              ',A,'  m'/ &
1831              ' Leaf area density:   ',A,'  m**2/m**3'/ &
1832              ' Gradient:            ',A,'  m**2/m**4'/ &
1833              ' Gridpoint:           ',A)
1834               
1835300 FORMAT (//' Boundary conditions:'/ &
1836             ' -------------------'// &
1837             '                     p                    uv             ', &
1838             '                   pt'// &
1839             ' B. bound.: ',A/ &
1840             ' T. bound.: ',A)
1841301 FORMAT (/'                     ',A// &
1842             ' B. bound.: ',A/ &
1843             ' T. bound.: ',A)
1844303 FORMAT (/' Bottom surface fluxes are used in diffusion terms at k=1')
1845304 FORMAT (/' Top surface fluxes are used in diffusion terms at k=nzt')
1846305 FORMAT (//'    Prandtl-Layer between bottom surface and first ', &
1847               'computational u,v-level:'// &
1848             '       zp = ',F6.2,' m   z0 = ',F6.4,' m   z0h = ',F7.5,&
1849             ' m   kappa = ',F4.2/ &
1850             '       Rif value range:   ',F6.2,' <= rif <=',F6.2)
1851306 FORMAT ('       Predefined constant heatflux:   ',F9.6,' K m/s')
1852307 FORMAT ('       Heatflux has a random normal distribution')
1853308 FORMAT ('       Predefined surface temperature')
1854309 FORMAT ('       Predefined constant salinityflux:   ',F9.6,' psu m/s')
1855310 FORMAT (//'    1D-Model:'// &
1856             '       Rif value range:   ',F6.2,' <= rif <=',F6.2)
1857311 FORMAT ('       Predefined constant humidity flux: ',E10.3,' m/s')
1858312 FORMAT ('       Predefined surface humidity')
1859313 FORMAT ('       Predefined constant scalar flux: ',E10.3,' kg/(m**2 s)')
1860314 FORMAT ('       Predefined scalar value at the surface')
1861315 FORMAT ('       Humidity / scalar flux at top surface is 0.0')
1862316 FORMAT ('       Sensible heatflux and momentum flux from coupled ', &
1863                    'atmosphere model')
1864317 FORMAT (//' Lateral boundaries:'/ &
1865            '       left/right:  ',A/    &
1866            '       north/south: ',A)
1867318 FORMAT (/'       use_cmax: ',L1 / &
1868            '       pt damping layer width = ',F8.2,' m, pt ', &
1869                    'damping factor = ',F6.4)
1870319 FORMAT ('       turbulence recycling at inflow switched on'/ &
1871            '       width of recycling domain: ',F7.1,' m   grid index: ',I4/ &
1872            '       inflow damping height: ',F6.1,' m   width: ',F6.1,' m')
1873320 FORMAT ('       Predefined constant momentumflux:  u: ',F9.6,' m**2/s**2'/ &
1874            '                                          v: ',F9.6,' m**2/s**2')
1875325 FORMAT (//' List output:'/ &
1876             ' -----------'//  &
1877            '    1D-Profiles:'/    &
1878            '       Output every             ',F8.2,' s')
1879326 FORMAT ('       Time averaged over       ',F8.2,' s'/ &
1880            '       Averaging input every    ',F8.2,' s')
1881330 FORMAT (//' Data output:'/ &
1882             ' -----------'/)
1883331 FORMAT (/'    1D-Profiles:')
1884332 FORMAT (/'       ',A)
1885333 FORMAT ('       Output every             ',F8.2,' s',/ &
1886            '       Time averaged over       ',F8.2,' s'/ &
1887            '       Averaging input every    ',F8.2,' s')
1888334 FORMAT (/'    2D-Arrays',A,':')
1889335 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
1890            '       Output every             ',F8.2,' s  ',A/ &
1891            '       Cross sections at ',A1,' = ',A/ &
1892            '       scalar-coordinates:   ',A,' m'/)
1893336 FORMAT (/'    3D-Arrays',A,':')
1894337 FORMAT (/'       Arrays: ',A/ &
1895            '       Output every             ',F8.2,' s  ',A/ &
1896            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
1897338 FORMAT ('       Compressed data output'/ &
1898            '       Decimal precision: ',A/)
1899339 FORMAT ('       No output during initial ',F8.2,' s')
1900340 FORMAT (/'    Time series:')
1901341 FORMAT ('       Output every             ',F8.2,' s'/)
1902342 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
1903            '       Output every             ',F8.2,' s  ',A/ &
1904            '       Time averaged over       ',F8.2,' s'/ &
1905            '       Averaging input every    ',F8.2,' s'/ &
1906            '       Cross sections at ',A1,' = ',A/ &
1907            '       scalar-coordinates:   ',A,' m'/)
1908343 FORMAT (/'       Arrays: ',A/ &
1909            '       Output every             ',F8.2,' s  ',A/ &
1910            '       Time averaged over       ',F8.2,' s'/ &
1911            '       Averaging input every    ',F8.2,' s'/ &
1912            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
1913344 FORMAT ('       Output format: ',A/)
1914345 FORMAT (/'    Scaling lengths for output locations of all subsequent mask IDs:',/ &
1915            '       mask_scale_x (in x-direction): ',F9.3, ' m',/ &
1916            '       mask_scale_y (in y-direction): ',F9.3, ' m',/ &
1917            '       mask_scale_z (in z-direction): ',F9.3, ' m' )
1918346 FORMAT (/'    Masked data output',A,' for mask ID ',I2, ':')
1919347 FORMAT ('       Variables: ',A/ &
1920            '       Output every             ',F8.2,' s')
1921348 FORMAT ('       Variables: ',A/ &
1922            '       Output every             ',F8.2,' s'/ &
1923            '       Time averaged over       ',F8.2,' s'/ &
1924            '       Averaging input every    ',F8.2,' s')
1925349 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
1926            'mask_scale_',A,' predefined by array mask_',I2.2,'_',A,':'/ &
1927            13('       ',8(F8.2,',')/) )
1928350 FORMAT (/'       Output locations in ',A,'-direction: ', &
1929            'all gridpoints along ',A,'-direction (default).' )
1930351 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
1931            'mask_scale_',A,' constructed from array mask_',I2.2,'_',A,'_loop:'/ &
1932            '          loop begin:',F8.2,', end:',F8.2,', stride:',F8.2 )
1933352 FORMAT  (/'       Number of output time levels allowed: ',I3 /)
1934353 FORMAT  (/'       Number of output time levels allowed: unlimited' /)
1935#if defined( __dvrp_graphics )
1936360 FORMAT ('    Plot-Sequence with dvrp-software:'/ &
1937            '       Output every      ',F7.1,' s'/ &
1938            '       Output mode:      ',A/ &
1939            '       Host / User:      ',A,' / ',A/ &
1940            '       Directory:        ',A// &
1941            '       The sequence contains:')
1942361 FORMAT (/'       Isosurface of "',A,'"    Threshold value: ', E12.3/ &
1943            '          Isosurface color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
1944362 FORMAT (/'       Slicer plane ',A/ &
1945            '       Slicer limits: [',F6.2,',',F6.2,']')
1946363 FORMAT (/'       Particles'/ &
1947            '          particle size:  ',F7.2,' m')
1948364 FORMAT ('          particle ',A,' controlled by "',A,'" with interval [', &
1949                       F6.2,',',F6.2,']')
1950365 FORMAT (/'       Groundplate color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)'/ &
1951            '       Superelevation along (x,y,z): (',F4.1,',',F4.1,',',F4.1, &
1952                     ')'/ &
1953            '       Clipping limits: from x = ',F9.1,' m to x = ',F9.1,' m'/ &
1954            '                        from y = ',F9.1,' m to y = ',F9.1,' m')
1955366 FORMAT (/'       Topography color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
1956367 FORMAT ('       Polygon reduction for topography: cluster_size = ', I1)
1957#endif
1958#if defined( __spectra )
1959370 FORMAT ('    Spectra:')
1960371 FORMAT ('       Output every ',F7.1,' s'/)
1961372 FORMAT ('       Arrays:     ', 10(A5,',')/                         &
1962            '       Directions: ', 10(A5,',')/                         &
1963            '       height levels  k = ', 20(I3,',')/                  &
1964            '                          ', 20(I3,',')/                  &
1965            '                          ', 20(I3,',')/                  &
1966            '                          ', 20(I3,',')/                  &
1967            '                          ', 19(I3,','),I3,'.'/           &
1968            '       height levels selected for standard plot:'/        &
1969            '                      k = ', 20(I3,',')/                  &
1970            '                          ', 20(I3,',')/                  &
1971            '                          ', 20(I3,',')/                  &
1972            '                          ', 20(I3,',')/                  &
1973            '                          ', 19(I3,','),I3,'.'/           &
1974            '       Time averaged over ', F7.1, ' s,' /                &
1975            '       Profiles for the time averaging are taken every ', &
1976                    F6.1,' s')
1977#endif
1978400 FORMAT (//' Physical quantities:'/ &
1979              ' -------------------'/)
1980410 FORMAT ('    Angular velocity    :   omega = ',E9.3,' rad/s'/  &
1981            '    Geograph. latitude  :   phi   = ',F4.1,' degr'/   &
1982            '    Coriolis parameter  :   f     = ',F9.6,' 1/s'/    &
1983            '                            f*    = ',F9.6,' 1/s')
1984411 FORMAT (/'    Gravity             :   g     = ',F4.1,' m/s**2')
1985412 FORMAT (/'    Reference state used in buoyancy terms: ',A)
1986413 FORMAT ('       Reference density in buoyancy terms: ',F8.3,' kg/m**3')
1987414 FORMAT ('       Reference temperature in buoyancy terms: ',F8.4,' K')
1988415 FORMAT (/'    Cloud physics parameters:'/ &
1989             '    ------------------------'/)
1990416 FORMAT ('        Surface pressure   :   p_0   = ',F7.2,' hPa'/      &
1991            '        Gas constant       :   R     = ',F5.1,' J/(kg K)'/ &
1992            '        Density of air     :   rho_0 = ',F5.3,' kg/m**3'/  &
1993            '        Specific heat cap. :   c_p   = ',F6.1,' J/(kg K)'/ &
1994            '        Vapourization heat :   L_v   = ',E8.2,' J/kg')
1995420 FORMAT (/'    Characteristic levels of the initial temperature profile:'// &
1996            '       Height:        ',A,'  m'/ &
1997            '       Temperature:   ',A,'  K'/ &
1998            '       Gradient:      ',A,'  K/100m'/ &
1999            '       Gridpoint:     ',A)
2000421 FORMAT (/'    Characteristic levels of the initial humidity profile:'// &
2001            '       Height:      ',A,'  m'/ &
2002            '       Humidity:    ',A,'  kg/kg'/ &
2003            '       Gradient:    ',A,'  (kg/kg)/100m'/ &
2004            '       Gridpoint:   ',A)
2005422 FORMAT (/'    Characteristic levels of the initial scalar profile:'// &
2006            '       Height:                  ',A,'  m'/ &
2007            '       Scalar concentration:    ',A,'  kg/m**3'/ &
2008            '       Gradient:                ',A,'  (kg/m**3)/100m'/ &
2009            '       Gridpoint:               ',A)
2010423 FORMAT (/'    Characteristic levels of the geo. wind component ug:'// &
2011            '       Height:      ',A,'  m'/ &
2012            '       ug:          ',A,'  m/s'/ &
2013            '       Gradient:    ',A,'  1/100s'/ &
2014            '       Gridpoint:   ',A)
2015424 FORMAT (/'    Characteristic levels of the geo. wind component vg:'// &
2016            '       Height:      ',A,'  m'/ &
2017            '       vg:          ',A,'  m/s'/ &
2018            '       Gradient:    ',A,'  1/100s'/ &
2019            '       Gridpoint:   ',A)
2020425 FORMAT (/'    Characteristic levels of the initial salinity profile:'// &
2021            '       Height:     ',A,'  m'/ &
2022            '       Salinity:   ',A,'  psu'/ &
2023            '       Gradient:   ',A,'  psu/100m'/ &
2024            '       Gridpoint:  ',A)
2025426 FORMAT (/'    Characteristic levels of the subsidence/ascent profile:'// &
2026            '       Height:      ',A,'  m'/ &
2027            '       w_subs:      ',A,'  m/s'/ &
2028            '       Gradient:    ',A,'  (m/s)/100m'/ &
2029            '       Gridpoint:   ',A)
2030427 FORMAT (/'    Initial wind profiles (u,v) are interpolated from given'// &
2031                  ' profiles')
2032428 FORMAT (/'    Initial profiles (u, v, pt, q) are taken from file '/ &
2033             '    NUDGING_DATA')
2034429 FORMAT (/'    Geostrophic wind profiles (ug, vg) are are taken from file '/ &
2035             '    LSF_DATA')
2036430 FORMAT (//' Cloud physics quantities / methods:'/ &
2037              ' ----------------------------------'/)
2038431 FORMAT ('    Humidity is treated as purely passive scalar (no condensati', &
2039                 'on)')
2040432 FORMAT ('    Bulk scheme with liquid water potential temperature and'/ &
2041            '    total water content is used.'/ &
2042            '    Condensation is parameterized via 0% - or 100% scheme.')
2043433 FORMAT ('    Cloud droplets treated explicitly using the Lagrangian part', &
2044                 'icle model')
2045434 FORMAT ('    Curvature and solution effecs are considered for growth of', &
2046                 ' droplets < 1.0E-6 m')
2047435 FORMAT ('    Droplet collision is handled by ',A,'-kernel')
2048436 FORMAT ('       Fast kernel with fixed radius- and dissipation classes ', &
2049                    'are used'/ &
2050            '          number of radius classes:       ',I3,'    interval ', &
2051                       '[1.0E-6,2.0E-4] m'/ &
2052            '          number of dissipation classes:   ',I2,'    interval ', &
2053                       '[0,1000] cm**2/s**3')
2054437 FORMAT ('    Droplet collision is switched off')
2055450 FORMAT (//' LES / Turbulence quantities:'/ &
2056              ' ---------------------------'/)
2057451 FORMAT ('    Diffusion coefficients are constant:'/ &
2058            '    Km = ',F6.2,' m**2/s   Kh = ',F6.2,' m**2/s   Pr = ',F5.2)
2059453 FORMAT ('    Mixing length is limited to ',F4.2,' * z')
2060454 FORMAT ('    TKE is not allowed to fall below ',E9.2,' (m/s)**2')
2061455 FORMAT ('    initial TKE is prescribed as ',E9.2,' (m/s)**2')
2062460 FORMAT (/'    Profiles for large scale vertical velocity are '/ &
2063             '    taken from file LSF_DATA')
2064470 FORMAT (//' Actions during the simulation:'/ &
2065              ' -----------------------------'/)
2066471 FORMAT ('    Disturbance impulse (u,v) every :   ',F6.2,' s'/            &
2067            '    Disturbance amplitude           :     ',F4.2, ' m/s'/       &
2068            '    Lower disturbance level         : ',F8.2,' m (GP ',I4,')'/  &
2069            '    Upper disturbance level         : ',F8.2,' m (GP ',I4,')')
2070472 FORMAT ('    Disturbances continued during the run from i/j =',I4, &
2071                 ' to i/j =',I4)
2072473 FORMAT ('    Disturbances cease as soon as the disturbance energy exceeds',&
2073                 1X,F5.3, ' m**2/s**2')
2074474 FORMAT ('    Random number generator used    : ',A/)
2075475 FORMAT ('    The surface temperature is increased (or decreased, ', &
2076                 'respectively, if'/ &
2077            '    the value is negative) by ',F5.2,' K at the beginning of the',&
2078                 ' 3D-simulation'/)
2079476 FORMAT ('    The surface humidity is increased (or decreased, ',&
2080                 'respectively, if the'/ &
2081            '    value is negative) by ',E8.1,' kg/kg at the beginning of', &
2082                 ' the 3D-simulation'/)
2083477 FORMAT ('    The scalar value is increased at the surface (or decreased, ',&
2084                 'respectively, if the'/ &
2085            '    value is negative) by ',E8.1,' kg/m**3 at the beginning of', &
2086                 ' the 3D-simulation'/)
2087480 FORMAT ('    Particles:'/ &
2088            '    ---------'// &
2089            '       Particle advection is active (switched on at t = ', F7.1, &
2090                    ' s)'/ &
2091            '       Start of new particle generations every  ',F6.1,' s'/ &
2092            '       Boundary conditions: left/right: ', A, ' north/south: ', A/&
2093            '                            bottom:     ', A, ' top:         ', A/&
2094            '       Maximum particle age:                 ',F9.1,' s'/ &
2095            '       Advection stopped at t = ',F9.1,' s'/ &
2096            '       Particles are sorted every ',F9.1,' s'/)
2097481 FORMAT ('       Particles have random start positions'/)
2098482 FORMAT ('          Particles are advected only horizontally'/)
2099483 FORMAT ('       Particles have tails with a maximum of ',I3,' points')
2100484 FORMAT ('            Number of tails of the total domain: ',I10/ &
2101            '            Minimum distance between tailpoints: ',F8.2,' m'/ &
2102            '            Maximum age of the end of the tail:  ',F8.2,' s')
2103485 FORMAT ('       Particle data are written on file every ', F9.1, ' s')
2104486 FORMAT ('       Particle statistics are written on file'/)
2105487 FORMAT ('       Number of particle groups: ',I2/)
2106488 FORMAT ('       SGS velocity components are used for particle advection'/ &
2107            '          minimum timestep for advection: ', F7.5/)
2108489 FORMAT ('       Number of particles simultaneously released at each ', &
2109                    'point: ', I5/)
2110490 FORMAT ('       Particle group ',I2,':'/ &
2111            '          Particle radius: ',E10.3, 'm')
2112491 FORMAT ('          Particle inertia is activated'/ &
2113            '             density_ratio (rho_fluid/rho_particle) = ',F5.3/)
2114492 FORMAT ('          Particles are advected only passively (no inertia)'/)
2115493 FORMAT ('          Boundaries of particle source: x:',F8.1,' - ',F8.1,' m'/&
2116            '                                         y:',F8.1,' - ',F8.1,' m'/&
2117            '                                         z:',F8.1,' - ',F8.1,' m'/&
2118            '          Particle distances:  dx = ',F8.1,' m  dy = ',F8.1, &
2119                       ' m  dz = ',F8.1,' m'/)
2120494 FORMAT ('       Output of particle time series in NetCDF format every ', &
2121                    F8.2,' s'/)
2122495 FORMAT ('       Number of particles in total domain: ',I10/)
2123500 FORMAT (//' 1D-Model parameters:'/                           &
2124              ' -------------------'//                           &
2125            '    Simulation time:                   ',F8.1,' s'/ &
2126            '    Run-controll output every:         ',F8.1,' s'/ &
2127            '    Vertical profile output every:     ',F8.1,' s'/ &
2128            '    Mixing length calculation:         ',A/         &
2129            '    Dissipation calculation:           ',A/)
2130502 FORMAT ('    Damping layer starts from ',F7.1,' m (GP ',I4,')'/)
2131503 FORMAT (' --> Momentum advection via Wicker-Skamarock-Scheme 5th order')
2132504 FORMAT (' --> Scalar advection via Wicker-Skamarock-Scheme 5th order')
2133505 FORMAT ('    Precipitation parameterization via Seifert-Beheng-Scheme')
2134506 FORMAT ('    Drizzle parameterization via Stokes law')
2135507 FORMAT ('    Turbulence effects on precipitation process')
2136508 FORMAT ('    Ventilation effects on evaporation of rain drops')
2137509 FORMAT ('    Slope limiter used for sedimentation process')
2138510 FORMAT ('        Droplet density    :   N_c   = ',F6.1,' 1/cm**3')
2139511 FORMAT ('        Sedimentation Courant number:                  '/&
2140            '                               C_s   = ',F3.1,'        ')
2141
2142 END SUBROUTINE header
Note: See TracBrowser for help on using the repository browser.