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

Last change on this file since 1324 was 1324, checked in by suehring, 10 years ago

Bugfixes in ONLY statements

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