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

Last change on this file since 1353 was 1353, checked in by heinze, 10 years ago

REAL constants provided with KIND-attribute

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