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

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

last commit documented

  • Property svn:keywords set to Id
File size: 82.2 KB
Line 
1 SUBROUTINE header
2
3!--------------------------------------------------------------------------------!
4! This file is part of PALM.
5!
6! PALM is free software: you can redistribute it and/or modify it under the terms
7! of the GNU General Public License as published by the Free Software Foundation,
8! either version 3 of the License, or (at your option) any later version.
9!
10! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
11! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13!
14! You should have received a copy of the GNU General Public License along with
15! PALM. If not, see <http://www.gnu.org/licenses/>.
16!
17! Copyright 1997-2014 Leibniz Universitaet Hannover
18!--------------------------------------------------------------------------------!
19!
20! Current revisions:
21! -----------------
22!
23!
24! Former revisions:
25! -----------------
26! $Id: header.f90 1323 2014-03-20 17:09:54Z raasch $
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    IMPLICIT NONE
179
180    CHARACTER (LEN=1)  ::  prec                !:
181   
182    CHARACTER (LEN=2)  ::  do2d_mode           !:
183   
184    CHARACTER (LEN=5)  ::  section_chr         !:
185   
186    CHARACTER (LEN=10) ::  coor_chr            !:
187    CHARACTER (LEN=10) ::  host_chr            !:
188   
189    CHARACTER (LEN=16) ::  begin_chr           !:
190   
191    CHARACTER (LEN=26) ::  ver_rev             !:
192   
193    CHARACTER (LEN=40) ::  output_format       !:
194   
195    CHARACTER (LEN=70) ::  char1               !:
196    CHARACTER (LEN=70) ::  char2               !:
197    CHARACTER (LEN=70) ::  dopr_chr            !:
198    CHARACTER (LEN=70) ::  do2d_xy             !:
199    CHARACTER (LEN=70) ::  do2d_xz             !:
200    CHARACTER (LEN=70) ::  do2d_yz             !:
201    CHARACTER (LEN=70) ::  do3d_chr            !:
202    CHARACTER (LEN=70) ::  domask_chr          !:
203    CHARACTER (LEN=70) ::  run_classification  !:
204   
205    CHARACTER (LEN=85) ::  roben               !:
206    CHARACTER (LEN=85) ::  runten              !:
207   
208    CHARACTER (LEN=86) ::  coordinates         !:
209    CHARACTER (LEN=86) ::  gradients           !:
210    CHARACTER (LEN=86) ::  learde              !:
211    CHARACTER (LEN=86) ::  slices              !:
212    CHARACTER (LEN=86) ::  temperatures        !:
213    CHARACTER (LEN=86) ::  ugcomponent         !:
214    CHARACTER (LEN=86) ::  vgcomponent         !:
215
216    CHARACTER (LEN=1), DIMENSION(1:3) ::  dir = (/ 'x', 'y', 'z' /)  !:
217
218    INTEGER(iwp) ::  av        !:
219    INTEGER(iwp) ::  bh        !:
220    INTEGER(iwp) ::  blx       !:
221    INTEGER(iwp) ::  bly       !:
222    INTEGER(iwp) ::  bxl       !:
223    INTEGER(iwp) ::  bxr       !:
224    INTEGER(iwp) ::  byn       !:
225    INTEGER(iwp) ::  bys       !:
226    INTEGER(iwp) ::  ch        !:
227    INTEGER(iwp) ::  count     !:
228    INTEGER(iwp) ::  cwx       !:
229    INTEGER(iwp) ::  cwy       !:
230    INTEGER(iwp) ::  cxl       !:
231    INTEGER(iwp) ::  cxr       !:
232    INTEGER(iwp) ::  cyn       !:
233    INTEGER(iwp) ::  cys       !:
234    INTEGER(iwp) ::  dim       !:
235    INTEGER(iwp) ::  i         !:
236    INTEGER(iwp) ::  io        !:
237    INTEGER(iwp) ::  j         !:
238    INTEGER(iwp) ::  l         !:
239    INTEGER(iwp) ::  ll        !:
240    INTEGER(iwp) ::  mpi_type  !:
241   
242    REAL(wp) ::  cpuseconds_per_simulated_second  !:
243
244!
245!-- Open the output file. At the end of the simulation, output is directed
246!-- to unit 19.
247    IF ( ( runnr == 0 .OR. force_print_header )  .AND. &
248         .NOT. simulated_time_at_begin /= simulated_time )  THEN
249       io = 15   !  header output on file RUN_CONTROL
250    ELSE
251       io = 19   !  header output on file HEADER
252    ENDIF
253    CALL check_open( io )
254
255!
256!-- At the end of the run, output file (HEADER) will be rewritten with
257!-- new informations
258    IF ( io == 19 .AND. simulated_time_at_begin /= simulated_time ) REWIND( 19 )
259
260!
261!-- Determine kind of model run
262    IF ( TRIM( initializing_actions ) == 'read_restart_data' )  THEN
263       run_classification = '3D - restart run'
264    ELSEIF ( TRIM( initializing_actions ) == 'cyclic_fill' )  THEN
265       run_classification = '3D - run with cyclic fill of 3D - prerun data'
266    ELSEIF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 )  THEN
267       run_classification = '3D - run without 1D - prerun'
268    ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
269       run_classification = '3D - run with 1D - prerun'
270    ELSEIF ( INDEX( initializing_actions, 'by_user' ) /=0 )  THEN
271       run_classification = '3D - run initialized by user'
272    ELSE
273       message_string = ' unknown action(s): ' // TRIM( initializing_actions )
274       CALL message( 'header', 'PA0191', 0, 0, 0, 6, 0 )
275    ENDIF
276    IF ( ocean )  THEN
277       run_classification = 'ocean - ' // run_classification
278    ELSE
279       run_classification = 'atmosphere - ' // run_classification
280    ENDIF
281
282!
283!-- Run-identification, date, time, host
284    host_chr = host(1:10)
285    ver_rev = TRIM( version ) // '  ' // TRIM( revision )
286    WRITE ( io, 100 )  ver_rev, TRIM( run_classification )
287    IF ( TRIM( coupling_mode ) /= 'uncoupled' )  THEN
288#if defined( __mpi2 )
289       mpi_type = 2
290#else
291       mpi_type = 1
292#endif
293       WRITE ( io, 101 )  mpi_type, coupling_mode
294    ENDIF
295#if defined( __parallel )
296    IF ( coupling_start_time /= 0.0 )  THEN
297       IF ( coupling_start_time > simulated_time_at_begin )  THEN
298          WRITE ( io, 109 )
299       ELSE
300          WRITE ( io, 114 )
301       ENDIF
302    ENDIF
303#endif
304    WRITE ( io, 102 )  run_date, run_identifier, run_time, runnr, &
305                       ADJUSTR( host_chr )
306#if defined( __parallel )
307    IF ( npex == -1  .AND.  pdims(2) /= 1 )  THEN
308       char1 = 'calculated'
309    ELSEIF ( ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec'  .OR.  &
310               host(1:2) == 'lc' )  .AND.                          &
311             npex == -1  .AND.  pdims(2) == 1 )  THEN
312       char1 = 'forced'
313    ELSE
314       char1 = 'predefined'
315    ENDIF
316    IF ( threads_per_task == 1 )  THEN
317       WRITE ( io, 103 )  numprocs, pdims(1), pdims(2), TRIM( char1 )
318    ELSE
319       WRITE ( io, 104 )  numprocs*threads_per_task, numprocs, &
320                          threads_per_task, pdims(1), pdims(2), TRIM( char1 )
321    ENDIF
322    IF ( num_acc_per_node /= 0 )  WRITE ( io, 117 )  num_acc_per_node   
323    IF ( ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec'  .OR.    &
324           host(1:2) == 'lc'   .OR.  host(1:3) == 'dec' )  .AND. &
325         npex == -1  .AND.  pdims(2) == 1 )                      &
326    THEN
327       WRITE ( io, 106 )
328    ELSEIF ( pdims(2) == 1 )  THEN
329       WRITE ( io, 107 )  'x'
330    ELSEIF ( pdims(1) == 1 )  THEN
331       WRITE ( io, 107 )  'y'
332    ENDIF
333    IF ( use_seperate_pe_for_dvrp_output )  WRITE ( io, 105 )
334    IF ( numprocs /= maximum_parallel_io_streams )  THEN
335       WRITE ( io, 108 )  maximum_parallel_io_streams
336    ENDIF
337#else
338    IF ( num_acc_per_node /= 0 )  WRITE ( io, 120 )  num_acc_per_node
339#endif
340    WRITE ( io, 99 )
341
342!
343!-- Numerical schemes
344    WRITE ( io, 110 )
345    IF ( psolver(1:7) == 'poisfft' )  THEN
346       WRITE ( io, 111 )  TRIM( fft_method )
347       IF ( transpose_compute_overlap )  WRITE( io, 115 )
348    ELSEIF ( psolver == 'sor' )  THEN
349       WRITE ( io, 112 )  nsor_ini, nsor, omega_sor
350    ELSEIF ( psolver == 'multigrid' )  THEN
351       WRITE ( io, 135 )  cycle_mg, maximum_grid_level, ngsrb
352       IF ( mg_cycles == -1 )  THEN
353          WRITE ( io, 140 )  residual_limit
354       ELSE
355          WRITE ( io, 141 )  mg_cycles
356       ENDIF
357       IF ( mg_switch_to_pe0_level == 0 )  THEN
358          WRITE ( io, 136 )  nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
359                             nzt_mg(1)
360       ELSEIF (  mg_switch_to_pe0_level /= -1 )  THEN
361          WRITE ( io, 137 )  mg_switch_to_pe0_level,            &
362                             mg_loc_ind(2,0)-mg_loc_ind(1,0)+1, &
363                             mg_loc_ind(4,0)-mg_loc_ind(3,0)+1, &
364                             nzt_mg(mg_switch_to_pe0_level),    &
365                             nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
366                             nzt_mg(1)
367       ENDIF
368       IF ( masking_method )  WRITE ( io, 144 )
369    ENDIF
370    IF ( call_psolver_at_all_substeps  .AND. timestep_scheme(1:5) == 'runge' ) &
371    THEN
372       WRITE ( io, 142 )
373    ENDIF
374
375    IF ( momentum_advec == 'pw-scheme' )  THEN
376       WRITE ( io, 113 )
377    ELSEIF (momentum_advec == 'ws-scheme' )  THEN
378       WRITE ( io, 503 )
379    ENDIF
380    IF ( scalar_advec == 'pw-scheme' )  THEN
381       WRITE ( io, 116 )
382    ELSEIF ( scalar_advec == 'ws-scheme' )  THEN
383       WRITE ( io, 504 )
384    ELSE
385       WRITE ( io, 118 )
386    ENDIF
387
388    WRITE ( io, 139 )  TRIM( loop_optimization )
389
390    IF ( galilei_transformation )  THEN
391       IF ( use_ug_for_galilei_tr )  THEN
392          char1 = '0.6 * geostrophic wind'
393       ELSE
394          char1 = 'mean wind in model domain'
395       ENDIF
396       IF ( simulated_time_at_begin == simulated_time )  THEN
397          char2 = 'at the start of the run'
398       ELSE
399          char2 = 'at the end of the run'
400       ENDIF
401       WRITE ( io, 119 )  TRIM( char1 ), TRIM( char2 ), &
402                          advected_distance_x/1000.0, advected_distance_y/1000.0
403    ENDIF
404    WRITE ( io, 122 )  timestep_scheme
405    IF ( use_upstream_for_tke )  WRITE ( io, 143 )
406    IF ( rayleigh_damping_factor /= 0.0 )  THEN
407       IF ( .NOT. ocean )  THEN
408          WRITE ( io, 123 )  'above', rayleigh_damping_height, &
409               rayleigh_damping_factor
410       ELSE
411          WRITE ( io, 123 )  'below', rayleigh_damping_height, &
412               rayleigh_damping_factor
413       ENDIF
414    ENDIF
415    IF ( neutral )  WRITE ( io, 131 )  pt_surface
416    IF ( humidity )  THEN
417       IF ( .NOT. cloud_physics )  THEN
418          WRITE ( io, 129 )
419       ELSE
420          WRITE ( io, 130 )
421       ENDIF
422    ENDIF
423    IF ( passive_scalar )  WRITE ( io, 134 )
424    IF ( conserve_volume_flow )  THEN
425       WRITE ( io, 150 )  conserve_volume_flow_mode
426       IF ( TRIM( conserve_volume_flow_mode ) == 'bulk_velocity' )  THEN
427          WRITE ( io, 151 )  u_bulk, v_bulk
428       ENDIF
429    ELSEIF ( dp_external )  THEN
430       IF ( dp_smooth )  THEN
431          WRITE ( io, 152 )  dpdxy, dp_level_b, ', vertically smoothed.'
432       ELSE
433          WRITE ( io, 152 )  dpdxy, dp_level_b, '.'
434       ENDIF
435    ENDIF
436    IF ( large_scale_subsidence )  THEN
437        WRITE ( io, 153 )
438        WRITE ( io, 154 )
439    ENDIF
440    IF ( nudging )  THEN
441        WRITE ( io, 155 )
442        WRITE ( io, 156 )
443    ENDIF
444    IF ( large_scale_forcing )  THEN
445        WRITE ( io, 157 )
446        WRITE ( io, 158 )
447    ENDIF
448    WRITE ( io, 99 )
449
450!
451!-- Runtime and timestep informations
452    WRITE ( io, 200 )
453    IF ( .NOT. dt_fixed )  THEN
454       WRITE ( io, 201 )  dt_max, cfl_factor
455    ELSE
456       WRITE ( io, 202 )  dt
457    ENDIF
458    WRITE ( io, 203 )  simulated_time_at_begin, end_time
459
460    IF ( time_restart /= 9999999.9_wp  .AND. &
461         simulated_time_at_begin == simulated_time )  THEN
462       IF ( dt_restart == 9999999.9_wp )  THEN
463          WRITE ( io, 204 )  ' Restart at:       ',time_restart
464       ELSE
465          WRITE ( io, 205 )  ' Restart at:       ',time_restart, dt_restart
466       ENDIF
467    ENDIF
468
469    IF ( simulated_time_at_begin /= simulated_time )  THEN
470       i = MAX ( log_point_s(10)%counts, 1 )
471       IF ( ( simulated_time - simulated_time_at_begin ) == 0.0 )  THEN
472          cpuseconds_per_simulated_second = 0.0
473       ELSE
474          cpuseconds_per_simulated_second = log_point_s(10)%sum / &
475                                            ( simulated_time -    &
476                                              simulated_time_at_begin )
477       ENDIF
478       WRITE ( io, 206 )  simulated_time, log_point_s(10)%sum,      &
479                          log_point_s(10)%sum / REAL( i, KIND=wp ), &
480                          cpuseconds_per_simulated_second
481       IF ( time_restart /= 9999999.9_wp  .AND.  time_restart < end_time )  THEN
482          IF ( dt_restart == 9999999.9_wp )  THEN
483             WRITE ( io, 204 )  ' Next restart at:     ',time_restart
484          ELSE
485             WRITE ( io, 205 )  ' Next restart at:     ',time_restart, dt_restart
486          ENDIF
487       ENDIF
488    ENDIF
489
490!
491!-- Start time for coupled runs, if independent precursor runs for atmosphere
492!-- and ocean are used or have been used. In this case, coupling_start_time
493!-- defines the time when the coupling is switched on.
494    IF ( coupling_start_time /= 0.0 )  THEN
495       WRITE ( io, 207 )  coupling_start_time
496    ENDIF
497
498!
499!-- Computational grid
500    IF ( .NOT. ocean )  THEN
501       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(nzt+1)
502       IF ( dz_stretch_level_index < nzt+1 )  THEN
503          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
504                             dz_stretch_factor, dz_max
505       ENDIF
506    ELSE
507       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(0)
508       IF ( dz_stretch_level_index > 0 )  THEN
509          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
510                             dz_stretch_factor, dz_max
511       ENDIF
512    ENDIF
513    WRITE ( io, 254 )  nx, ny, nzt+1, MIN( nnx, nx+1 ), MIN( nny, ny+1 ), &
514                       MIN( nnz+2, nzt+2 )
515    IF ( sloping_surface )  WRITE ( io, 260 )  alpha_surface
516
517!
518!-- Topography
519    WRITE ( io, 270 )  topography
520    SELECT CASE ( TRIM( topography ) )
521
522       CASE ( 'flat' )
523          ! no actions necessary
524
525       CASE ( 'single_building' )
526          blx = INT( building_length_x / dx )
527          bly = INT( building_length_y / dy )
528          bh  = INT( building_height / dz )
529
530          IF ( building_wall_left == 9999999.9_wp )  THEN
531             building_wall_left = ( nx + 1 - blx ) / 2 * dx
532          ENDIF
533          bxl = INT ( building_wall_left / dx + 0.5 )
534          bxr = bxl + blx
535
536          IF ( building_wall_south == 9999999.9_wp )  THEN
537             building_wall_south = ( ny + 1 - bly ) / 2 * dy
538          ENDIF
539          bys = INT ( building_wall_south / dy + 0.5 )
540          byn = bys + bly
541
542          WRITE ( io, 271 )  building_length_x, building_length_y, &
543                             building_height, bxl, bxr, bys, byn
544
545       CASE ( 'single_street_canyon' )
546          ch  = NINT( canyon_height / dz )
547          IF ( canyon_width_x /= 9999999.9_wp )  THEN
548!
549!--          Street canyon in y direction
550             cwx = NINT( canyon_width_x / dx )
551             IF ( canyon_wall_left == 9999999.9_wp )  THEN
552                canyon_wall_left = ( nx + 1 - cwx ) / 2 * dx
553             ENDIF
554             cxl = NINT( canyon_wall_left / dx )
555             cxr = cxl + cwx
556             WRITE ( io, 272 )  'y', canyon_height, ch, 'u', cxl, cxr
557
558          ELSEIF ( canyon_width_y /= 9999999.9_wp )  THEN
559!
560!--          Street canyon in x direction
561             cwy = NINT( canyon_width_y / dy )
562             IF ( canyon_wall_south == 9999999.9_wp )  THEN
563                canyon_wall_south = ( ny + 1 - cwy ) / 2 * dy
564             ENDIF
565             cys = NINT( canyon_wall_south / dy )
566             cyn = cys + cwy
567             WRITE ( io, 272 )  'x', canyon_height, ch, 'v', cys, cyn
568          ENDIF
569
570    END SELECT
571
572    IF ( TRIM( topography ) /= 'flat' )  THEN
573       IF ( TRIM( topography_grid_convention ) == ' ' )  THEN
574          IF ( TRIM( topography ) == 'single_building' .OR.  &
575               TRIM( topography ) == 'single_street_canyon' )  THEN
576             WRITE ( io, 278 )
577          ELSEIF ( TRIM( topography ) == 'read_from_file' )  THEN
578             WRITE ( io, 279 )
579          ENDIF
580       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_edge' )  THEN
581          WRITE ( io, 278 )
582       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_center' )  THEN
583          WRITE ( io, 279 )
584       ENDIF
585    ENDIF
586
587    IF ( plant_canopy )  THEN
588
589       WRITE ( io, 280 ) canopy_mode, pch_index, drag_coefficient
590       IF ( passive_scalar )  THEN
591          WRITE ( io, 281 ) scalar_exchange_coefficient,   &
592                            leaf_surface_concentration
593       ENDIF
594
595!
596!--    Heat flux at the top of vegetation
597       WRITE ( io, 282 ) cthf
598
599!
600!--    Leaf area density profile
601!--    Building output strings, starting with surface value
602       WRITE ( learde, '(F6.4)' )  lad_surface
603       gradients = '------'
604       slices = '     0'
605       coordinates = '   0.0'
606       i = 1
607       DO  WHILE ( lad_vertical_gradient_level_ind(i) /= -9999 )
608
609          WRITE (coor_chr,'(F7.2)')  lad(lad_vertical_gradient_level_ind(i))
610          learde = TRIM( learde ) // ' ' // TRIM( coor_chr )
611
612          WRITE (coor_chr,'(F7.2)')  lad_vertical_gradient(i)
613          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
614
615          WRITE (coor_chr,'(I7)')  lad_vertical_gradient_level_ind(i)
616          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
617
618          WRITE (coor_chr,'(F7.1)')  lad_vertical_gradient_level(i)
619          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
620
621          i = i + 1
622       ENDDO
623
624       WRITE ( io, 283 )  TRIM( coordinates ), TRIM( learde ), &
625                          TRIM( gradients ), TRIM( slices )
626
627    ENDIF
628
629!
630!-- Boundary conditions
631    IF ( ibc_p_b == 0 )  THEN
632       runten = 'p(0)     = 0      |'
633    ELSEIF ( ibc_p_b == 1 )  THEN
634       runten = 'p(0)     = p(1)   |'
635    ENDIF
636    IF ( ibc_p_t == 0 )  THEN
637       roben  = 'p(nzt+1) = 0      |'
638    ELSE
639       roben  = 'p(nzt+1) = p(nzt) |'
640    ENDIF
641
642    IF ( ibc_uv_b == 0 )  THEN
643       runten = TRIM( runten ) // ' uv(0)     = -uv(1)                |'
644    ELSE
645       runten = TRIM( runten ) // ' uv(0)     = uv(1)                 |'
646    ENDIF
647    IF ( TRIM( bc_uv_t ) == 'dirichlet_0' )  THEN
648       roben  = TRIM( roben  ) // ' uv(nzt+1) = 0                     |'
649    ELSEIF ( ibc_uv_t == 0 )  THEN
650       roben  = TRIM( roben  ) // ' uv(nzt+1) = ug(nzt+1), vg(nzt+1)  |'
651    ELSE
652       roben  = TRIM( roben  ) // ' uv(nzt+1) = uv(nzt)               |'
653    ENDIF
654
655    IF ( ibc_pt_b == 0 )  THEN
656       runten = TRIM( runten ) // ' pt(0)   = pt_surface'
657    ELSEIF ( ibc_pt_b == 1 )  THEN
658       runten = TRIM( runten ) // ' pt(0)   = pt(1)'
659    ELSEIF ( ibc_pt_b == 2 )  THEN
660       runten = TRIM( runten ) // ' pt(0) = from coupled model'
661    ENDIF
662    IF ( ibc_pt_t == 0 )  THEN
663       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt_top'
664    ELSEIF( ibc_pt_t == 1 )  THEN
665       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt(nzt)'
666    ELSEIF( ibc_pt_t == 2 )  THEN
667       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt(nzt) + dpt/dz_ini'
668
669    ENDIF
670
671    WRITE ( io, 300 )  runten, roben
672
673    IF ( .NOT. constant_diffusion )  THEN
674       IF ( ibc_e_b == 1 )  THEN
675          runten = 'e(0)     = e(1)'
676       ELSE
677          runten = 'e(0)     = e(1) = (u*/0.1)**2'
678       ENDIF
679       roben = 'e(nzt+1) = e(nzt) = e(nzt-1)'
680
681       WRITE ( io, 301 )  'e', runten, roben       
682
683    ENDIF
684
685    IF ( ocean )  THEN
686       runten = 'sa(0)    = sa(1)'
687       IF ( ibc_sa_t == 0 )  THEN
688          roben =  'sa(nzt+1) = sa_surface'
689       ELSE
690          roben =  'sa(nzt+1) = sa(nzt)'
691       ENDIF
692       WRITE ( io, 301 ) 'sa', runten, roben
693    ENDIF
694
695    IF ( humidity )  THEN
696       IF ( ibc_q_b == 0 )  THEN
697          runten = 'q(0)     = q_surface'
698       ELSE
699          runten = 'q(0)     = q(1)'
700       ENDIF
701       IF ( ibc_q_t == 0 )  THEN
702          roben =  'q(nzt)   = q_top'
703       ELSE
704          roben =  'q(nzt)   = q(nzt-1) + dq/dz'
705       ENDIF
706       WRITE ( io, 301 ) 'q', runten, roben
707    ENDIF
708
709    IF ( passive_scalar )  THEN
710       IF ( ibc_q_b == 0 )  THEN
711          runten = 's(0)     = s_surface'
712       ELSE
713          runten = 's(0)     = s(1)'
714       ENDIF
715       IF ( ibc_q_t == 0 )  THEN
716          roben =  's(nzt)   = s_top'
717       ELSE
718          roben =  's(nzt)   = s(nzt-1) + ds/dz'
719       ENDIF
720       WRITE ( io, 301 ) 's', runten, roben
721    ENDIF
722
723    IF ( use_surface_fluxes )  THEN
724       WRITE ( io, 303 )
725       IF ( constant_heatflux )  THEN
726          IF ( large_scale_forcing .AND. lsf_surf )  THEN
727             WRITE ( io, 306 )  shf(0,0)
728          ELSE
729             WRITE ( io, 306 )  surface_heatflux
730          ENDIF
731          IF ( random_heatflux )  WRITE ( io, 307 )
732       ENDIF
733       IF ( humidity  .AND.  constant_waterflux )  THEN
734          IF ( large_scale_forcing .AND. lsf_surf )  THEN
735             WRITE ( io, 311 ) qsws(0,0)
736          ELSE
737             WRITE ( io, 311 ) surface_waterflux
738          ENDIF
739       ENDIF
740       IF ( passive_scalar  .AND.  constant_waterflux )  THEN
741          WRITE ( io, 313 ) surface_waterflux
742       ENDIF
743    ENDIF
744
745    IF ( use_top_fluxes )  THEN
746       WRITE ( io, 304 )
747       IF ( coupling_mode == 'uncoupled' )  THEN
748          WRITE ( io, 320 )  top_momentumflux_u, top_momentumflux_v
749          IF ( constant_top_heatflux )  THEN
750             WRITE ( io, 306 )  top_heatflux
751          ENDIF
752       ELSEIF ( coupling_mode == 'ocean_to_atmosphere' )  THEN
753          WRITE ( io, 316 )
754       ENDIF
755       IF ( ocean  .AND.  constant_top_salinityflux )  THEN
756          WRITE ( io, 309 )  top_salinityflux
757       ENDIF
758       IF ( humidity  .OR.  passive_scalar )  THEN
759          WRITE ( io, 315 )
760       ENDIF
761    ENDIF
762
763    IF ( prandtl_layer )  THEN
764       WRITE ( io, 305 )  (zu(1)-zu(0)), roughness_length, &
765                          z0h_factor*roughness_length, kappa, &
766                          rif_min, rif_max
767       IF ( .NOT. constant_heatflux )  WRITE ( io, 308 )
768       IF ( humidity  .AND.  .NOT. constant_waterflux )  THEN
769          WRITE ( io, 312 )
770       ENDIF
771       IF ( passive_scalar  .AND.  .NOT. constant_waterflux )  THEN
772          WRITE ( io, 314 )
773       ENDIF
774    ELSE
775       IF ( INDEX(initializing_actions, 'set_1d-model_profiles') /= 0 )  THEN
776          WRITE ( io, 310 )  rif_min, rif_max
777       ENDIF
778    ENDIF
779
780    WRITE ( io, 317 )  bc_lr, bc_ns
781    IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
782       WRITE ( io, 318 )  use_cmax, pt_damping_width, pt_damping_factor       
783       IF ( turbulent_inflow )  THEN
784          WRITE ( io, 319 )  recycling_width, recycling_plane, &
785                             inflow_damping_height, inflow_damping_width
786       ENDIF
787    ENDIF
788
789!
790!-- Listing of 1D-profiles
791    WRITE ( io, 325 )  dt_dopr_listing
792    IF ( averaging_interval_pr /= 0.0 )  THEN
793       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
794    ENDIF
795
796!
797!-- DATA output
798    WRITE ( io, 330 )
799    IF ( averaging_interval_pr /= 0.0 )  THEN
800       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
801    ENDIF
802
803!
804!-- 1D-profiles
805    dopr_chr = 'Profile:'
806    IF ( dopr_n /= 0 )  THEN
807       WRITE ( io, 331 )
808
809       output_format = ''
810       IF ( netcdf_output )  THEN
811          output_format = output_format_netcdf
812       ENDIF
813       WRITE ( io, 344 )  output_format
814
815       DO  i = 1, dopr_n
816          dopr_chr = TRIM( dopr_chr ) // ' ' // TRIM( data_output_pr(i) ) // ','
817          IF ( LEN_TRIM( dopr_chr ) >= 60 )  THEN
818             WRITE ( io, 332 )  dopr_chr
819             dopr_chr = '       :'
820          ENDIF
821       ENDDO
822
823       IF ( dopr_chr /= '' )  THEN
824          WRITE ( io, 332 )  dopr_chr
825       ENDIF
826       WRITE ( io, 333 )  dt_dopr, averaging_interval_pr, dt_averaging_input_pr
827       IF ( skip_time_dopr /= 0.0 )  WRITE ( io, 339 )  skip_time_dopr
828    ENDIF
829
830!
831!-- 2D-arrays
832    DO  av = 0, 1
833
834       i = 1
835       do2d_xy = ''
836       do2d_xz = ''
837       do2d_yz = ''
838       DO  WHILE ( do2d(av,i) /= ' ' )
839
840          l = MAX( 2, LEN_TRIM( do2d(av,i) ) )
841          do2d_mode = do2d(av,i)(l-1:l)
842
843          SELECT CASE ( do2d_mode )
844             CASE ( 'xy' )
845                ll = LEN_TRIM( do2d_xy )
846                do2d_xy = do2d_xy(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
847             CASE ( 'xz' )
848                ll = LEN_TRIM( do2d_xz )
849                do2d_xz = do2d_xz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
850             CASE ( 'yz' )
851                ll = LEN_TRIM( do2d_yz )
852                do2d_yz = do2d_yz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
853          END SELECT
854
855          i = i + 1
856
857       ENDDO
858
859       IF ( ( ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  .OR.    &
860              ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  .OR.    &
861              ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 ) )  .AND. &
862            ( netcdf_output  .OR.  iso2d_output ) )  THEN
863
864          IF (  av == 0 )  THEN
865             WRITE ( io, 334 )  ''
866          ELSE
867             WRITE ( io, 334 )  '(time-averaged)'
868          ENDIF
869
870          IF ( do2d_at_begin )  THEN
871             begin_chr = 'and at the start'
872          ELSE
873             begin_chr = ''
874          ENDIF
875
876          output_format = ''
877          IF ( netcdf_output )  THEN
878             output_format = output_format_netcdf
879          ENDIF
880          IF ( iso2d_output )  THEN
881             IF ( netcdf_output )  THEN
882                output_format = TRIM( output_format_netcdf ) // ' and iso2d'
883             ELSE
884                output_format = 'iso2d'
885             ENDIF
886          ENDIF
887          WRITE ( io, 344 )  output_format
888
889          IF ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  THEN
890             i = 1
891             slices = '/'
892             coordinates = '/'
893!
894!--          Building strings with index and coordinate informations of the
895!--          slices
896             DO  WHILE ( section(i,1) /= -9999 )
897
898                WRITE (section_chr,'(I5)')  section(i,1)
899                section_chr = ADJUSTL( section_chr )
900                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
901
902                IF ( section(i,1) == -1 )  THEN
903                   WRITE (coor_chr,'(F10.1)')  -1.0
904                ELSE
905                   WRITE (coor_chr,'(F10.1)')  zu(section(i,1))
906                ENDIF
907                coor_chr = ADJUSTL( coor_chr )
908                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
909
910                i = i + 1
911             ENDDO
912             IF ( av == 0 )  THEN
913                WRITE ( io, 335 )  'XY', do2d_xy, dt_do2d_xy, &
914                                   TRIM( begin_chr ), 'k', TRIM( slices ), &
915                                   TRIM( coordinates )
916                IF ( skip_time_do2d_xy /= 0.0 )  THEN
917                   WRITE ( io, 339 )  skip_time_do2d_xy
918                ENDIF
919             ELSE
920                WRITE ( io, 342 )  'XY', do2d_xy, dt_data_output_av, &
921                                   TRIM( begin_chr ), averaging_interval, &
922                                   dt_averaging_input, 'k', TRIM( slices ), &
923                                   TRIM( coordinates )
924                IF ( skip_time_data_output_av /= 0.0 )  THEN
925                   WRITE ( io, 339 )  skip_time_data_output_av
926                ENDIF
927             ENDIF
928             IF ( netcdf_data_format > 4 )  THEN
929                WRITE ( io, 352 )  ntdim_2d_xy(av)
930             ELSE
931                WRITE ( io, 353 )
932             ENDIF
933          ENDIF
934
935          IF ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  THEN
936             i = 1
937             slices = '/'
938             coordinates = '/'
939!
940!--          Building strings with index and coordinate informations of the
941!--          slices
942             DO  WHILE ( section(i,2) /= -9999 )
943
944                WRITE (section_chr,'(I5)')  section(i,2)
945                section_chr = ADJUSTL( section_chr )
946                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
947
948                WRITE (coor_chr,'(F10.1)')  section(i,2) * dy
949                coor_chr = ADJUSTL( coor_chr )
950                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
951
952                i = i + 1
953             ENDDO
954             IF ( av == 0 )  THEN
955                WRITE ( io, 335 )  'XZ', do2d_xz, dt_do2d_xz, &
956                                   TRIM( begin_chr ), 'j', TRIM( slices ), &
957                                   TRIM( coordinates )
958                IF ( skip_time_do2d_xz /= 0.0 )  THEN
959                   WRITE ( io, 339 )  skip_time_do2d_xz
960                ENDIF
961             ELSE
962                WRITE ( io, 342 )  'XZ', do2d_xz, dt_data_output_av, &
963                                   TRIM( begin_chr ), averaging_interval, &
964                                   dt_averaging_input, 'j', TRIM( slices ), &
965                                   TRIM( coordinates )
966                IF ( skip_time_data_output_av /= 0.0 )  THEN
967                   WRITE ( io, 339 )  skip_time_data_output_av
968                ENDIF
969             ENDIF
970             IF ( netcdf_data_format > 4 )  THEN
971                WRITE ( io, 352 )  ntdim_2d_xz(av)
972             ELSE
973                WRITE ( io, 353 )
974             ENDIF
975          ENDIF
976
977          IF ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 )  THEN
978             i = 1
979             slices = '/'
980             coordinates = '/'
981!
982!--          Building strings with index and coordinate informations of the
983!--          slices
984             DO  WHILE ( section(i,3) /= -9999 )
985
986                WRITE (section_chr,'(I5)')  section(i,3)
987                section_chr = ADJUSTL( section_chr )
988                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
989
990                WRITE (coor_chr,'(F10.1)')  section(i,3) * dx
991                coor_chr = ADJUSTL( coor_chr )
992                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
993
994                i = i + 1
995             ENDDO
996             IF ( av == 0 )  THEN
997                WRITE ( io, 335 )  'YZ', do2d_yz, dt_do2d_yz, &
998                                   TRIM( begin_chr ), 'i', TRIM( slices ), &
999                                   TRIM( coordinates )
1000                IF ( skip_time_do2d_yz /= 0.0 )  THEN
1001                   WRITE ( io, 339 )  skip_time_do2d_yz
1002                ENDIF
1003             ELSE
1004                WRITE ( io, 342 )  'YZ', do2d_yz, dt_data_output_av, &
1005                                   TRIM( begin_chr ), averaging_interval, &
1006                                   dt_averaging_input, 'i', TRIM( slices ), &
1007                                   TRIM( coordinates )
1008                IF ( skip_time_data_output_av /= 0.0 )  THEN
1009                   WRITE ( io, 339 )  skip_time_data_output_av
1010                ENDIF
1011             ENDIF
1012             IF ( netcdf_data_format > 4 )  THEN
1013                WRITE ( io, 352 )  ntdim_2d_yz(av)
1014             ELSE
1015                WRITE ( io, 353 )
1016             ENDIF
1017          ENDIF
1018
1019       ENDIF
1020
1021    ENDDO
1022
1023!
1024!-- 3d-arrays
1025    DO  av = 0, 1
1026
1027       i = 1
1028       do3d_chr = ''
1029       DO  WHILE ( do3d(av,i) /= ' ' )
1030
1031          do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // ','
1032          i = i + 1
1033
1034       ENDDO
1035
1036       IF ( do3d_chr /= '' )  THEN
1037          IF ( av == 0 )  THEN
1038             WRITE ( io, 336 )  ''
1039          ELSE
1040             WRITE ( io, 336 )  '(time-averaged)'
1041          ENDIF
1042
1043          output_format = ''
1044          IF ( netcdf_output )  THEN
1045             output_format = output_format_netcdf
1046          ENDIF
1047          IF ( avs_output )  THEN
1048             IF ( netcdf_output )  THEN
1049                output_format = TRIM( output_format_netcdf ) // ' and avs'
1050             ELSE
1051                output_format = 'avs'
1052             ENDIF
1053          ENDIF
1054          WRITE ( io, 344 )  output_format
1055
1056          IF ( do3d_at_begin )  THEN
1057             begin_chr = 'and at the start'
1058          ELSE
1059             begin_chr = ''
1060          ENDIF
1061          IF ( av == 0 )  THEN
1062             WRITE ( io, 337 )  do3d_chr, dt_do3d, TRIM( begin_chr ), &
1063                                zu(nz_do3d), nz_do3d
1064          ELSE
1065             WRITE ( io, 343 )  do3d_chr, dt_data_output_av,           &
1066                                TRIM( begin_chr ), averaging_interval, &
1067                                dt_averaging_input, zu(nz_do3d), nz_do3d
1068          ENDIF
1069
1070          IF ( netcdf_data_format > 4 )  THEN
1071             WRITE ( io, 352 )  ntdim_3d(av)
1072          ELSE
1073             WRITE ( io, 353 )
1074          ENDIF
1075
1076          IF ( do3d_compress )  THEN
1077             do3d_chr = ''
1078             i = 1
1079             DO WHILE ( do3d(av,i) /= ' ' )
1080
1081                SELECT CASE ( do3d(av,i) )
1082                   CASE ( 'u' )
1083                      j = 1
1084                   CASE ( 'v' )
1085                      j = 2
1086                   CASE ( 'w' )
1087                      j = 3
1088                   CASE ( 'p' )
1089                      j = 4
1090                   CASE ( 'pt' )
1091                      j = 5
1092                END SELECT
1093                WRITE ( prec, '(I1)' )  plot_3d_precision(j)%precision
1094                do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // &
1095                           ':' // prec // ','
1096                i = i + 1
1097
1098             ENDDO
1099             WRITE ( io, 338 )  do3d_chr
1100
1101          ENDIF
1102
1103          IF ( av == 0 )  THEN
1104             IF ( skip_time_do3d /= 0.0 )  THEN
1105                WRITE ( io, 339 )  skip_time_do3d
1106             ENDIF
1107          ELSE
1108             IF ( skip_time_data_output_av /= 0.0 )  THEN
1109                WRITE ( io, 339 )  skip_time_data_output_av
1110             ENDIF
1111          ENDIF
1112
1113       ENDIF
1114
1115    ENDDO
1116
1117!
1118!-- masked arrays
1119    IF ( masks > 0 )  WRITE ( io, 345 )  &
1120         mask_scale_x, mask_scale_y, mask_scale_z
1121    DO  mid = 1, masks
1122       DO  av = 0, 1
1123
1124          i = 1
1125          domask_chr = ''
1126          DO  WHILE ( domask(mid,av,i) /= ' ' )
1127             domask_chr = TRIM( domask_chr ) // ' ' //  &
1128                          TRIM( domask(mid,av,i) ) // ','
1129             i = i + 1
1130          ENDDO
1131
1132          IF ( domask_chr /= '' )  THEN
1133             IF ( av == 0 )  THEN
1134                WRITE ( io, 346 )  '', mid
1135             ELSE
1136                WRITE ( io, 346 )  ' (time-averaged)', mid
1137             ENDIF
1138
1139             output_format = ' '
1140             IF ( netcdf_output )  THEN
1141                output_format = output_format_netcdf
1142             ENDIF
1143!--          Parallel output not implemented for mask data, hence
1144!--          output_format must be adjusted.
1145             IF ( netcdf_data_format == 5 ) output_format = 'netCDF4/HDF5'
1146             IF ( netcdf_data_format == 6 ) output_format = 'netCDF4/HDF5 classic'
1147             WRITE ( io, 344 )  output_format
1148
1149             IF ( av == 0 )  THEN
1150                WRITE ( io, 347 )  domask_chr, dt_domask(mid)
1151             ELSE
1152                WRITE ( io, 348 )  domask_chr, dt_data_output_av, &
1153                                   averaging_interval, dt_averaging_input
1154             ENDIF
1155
1156             IF ( av == 0 )  THEN
1157                IF ( skip_time_domask(mid) /= 0.0 )  THEN
1158                   WRITE ( io, 339 )  skip_time_domask(mid)
1159                ENDIF
1160             ELSE
1161                IF ( skip_time_data_output_av /= 0.0 )  THEN
1162                   WRITE ( io, 339 )  skip_time_data_output_av
1163                ENDIF
1164             ENDIF
1165!
1166!--          output locations
1167             DO  dim = 1, 3
1168                IF ( mask(mid,dim,1) >= 0.0 )  THEN
1169                   count = 0
1170                   DO  WHILE ( mask(mid,dim,count+1) >= 0.0 )
1171                      count = count + 1
1172                   ENDDO
1173                   WRITE ( io, 349 )  dir(dim), dir(dim), mid, dir(dim), &
1174                                      mask(mid,dim,:count)
1175                ELSEIF ( mask_loop(mid,dim,1) < 0.0 .AND.  &
1176                         mask_loop(mid,dim,2) < 0.0 .AND.  &
1177                         mask_loop(mid,dim,3) == 0.0 )  THEN
1178                   WRITE ( io, 350 )  dir(dim), dir(dim)
1179                ELSEIF ( mask_loop(mid,dim,3) == 0.0 )  THEN
1180                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1181                                      mask_loop(mid,dim,1:2)
1182                ELSE
1183                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1184                                      mask_loop(mid,dim,1:3)
1185                ENDIF
1186             ENDDO
1187          ENDIF
1188
1189       ENDDO
1190    ENDDO
1191
1192!
1193!-- Timeseries
1194    IF ( dt_dots /= 9999999.9_wp )  THEN
1195       WRITE ( io, 340 )
1196
1197       output_format = ''
1198       IF ( netcdf_output )  THEN
1199          output_format = output_format_netcdf
1200       ENDIF
1201       WRITE ( io, 344 )  output_format
1202       WRITE ( io, 341 )  dt_dots
1203    ENDIF
1204
1205#if defined( __dvrp_graphics )
1206!
1207!-- Dvrp-output
1208    IF ( dt_dvrp /= 9999999.9_wp )  THEN
1209       WRITE ( io, 360 )  dt_dvrp, TRIM( dvrp_output ), TRIM( dvrp_host ), &
1210                          TRIM( dvrp_username ), TRIM( dvrp_directory )
1211       i = 1
1212       l = 0
1213       m = 0
1214       DO WHILE ( mode_dvrp(i) /= ' ' )
1215          IF ( mode_dvrp(i)(1:10) == 'isosurface' )  THEN
1216             READ ( mode_dvrp(i), '(10X,I2)' )  j
1217             l = l + 1
1218             IF ( do3d(0,j) /= ' ' )  THEN
1219                WRITE ( io, 361 )  TRIM( do3d(0,j) ), threshold(l), &
1220                                   isosurface_color(:,l)
1221             ENDIF
1222          ELSEIF ( mode_dvrp(i)(1:6) == 'slicer' )  THEN
1223             READ ( mode_dvrp(i), '(6X,I2)' )  j
1224             m = m + 1
1225             IF ( do2d(0,j) /= ' ' )  THEN
1226                WRITE ( io, 362 )  TRIM( do2d(0,j) ), &
1227                                   slicer_range_limits_dvrp(:,m)
1228             ENDIF
1229          ELSEIF ( mode_dvrp(i)(1:9) == 'particles' )  THEN
1230             WRITE ( io, 363 )  dvrp_psize
1231             IF ( particle_dvrpsize /= 'none' )  THEN
1232                WRITE ( io, 364 )  'size', TRIM( particle_dvrpsize ), &
1233                                   dvrpsize_interval
1234             ENDIF
1235             IF ( particle_color /= 'none' )  THEN
1236                WRITE ( io, 364 )  'color', TRIM( particle_color ), &
1237                                   color_interval
1238             ENDIF
1239          ENDIF
1240          i = i + 1
1241       ENDDO
1242
1243       WRITE ( io, 365 )  groundplate_color, superelevation_x, &
1244                          superelevation_y, superelevation, clip_dvrp_l, &
1245                          clip_dvrp_r, clip_dvrp_s, clip_dvrp_n
1246
1247       IF ( TRIM( topography ) /= 'flat' )  THEN
1248          WRITE ( io, 366 )  topography_color
1249          IF ( cluster_size > 1 )  THEN
1250             WRITE ( io, 367 )  cluster_size
1251          ENDIF
1252       ENDIF
1253
1254    ENDIF
1255#endif
1256
1257#if defined( __spectra )
1258!
1259!-- Spectra output
1260    IF ( dt_dosp /= 9999999.9_wp )  THEN
1261       WRITE ( io, 370 )
1262
1263       output_format = ' '
1264       IF ( netcdf_output )  THEN
1265          output_format = output_format_netcdf
1266       ENDIF
1267       WRITE ( io, 344 )  output_format
1268       WRITE ( io, 371 )  dt_dosp
1269       IF ( skip_time_dosp /= 0.0 )  WRITE ( io, 339 )  skip_time_dosp
1270       WRITE ( io, 372 )  ( data_output_sp(i), i = 1,10 ),     &
1271                          ( spectra_direction(i), i = 1,10 ),  &
1272                          ( comp_spectra_level(i), i = 1,100 ), &
1273                          ( plot_spectra_level(i), i = 1,100 ), &
1274                          averaging_interval_sp, dt_averaging_input_pr
1275    ENDIF
1276#endif
1277
1278    WRITE ( io, 99 )
1279
1280!
1281!-- Physical quantities
1282    WRITE ( io, 400 )
1283
1284!
1285!-- Geostrophic parameters
1286    WRITE ( io, 410 )  omega, phi, f, fs
1287
1288!
1289!-- Other quantities
1290    WRITE ( io, 411 )  g
1291    WRITE ( io, 412 )  TRIM( reference_state )
1292    IF ( use_single_reference_value )  THEN
1293       IF ( ocean )  THEN
1294          WRITE ( io, 413 )  prho_reference
1295       ELSE
1296          WRITE ( io, 414 )  pt_reference
1297       ENDIF
1298    ENDIF
1299
1300!
1301!-- Cloud physics parameters
1302    IF ( cloud_physics )  THEN
1303       WRITE ( io, 415 )
1304       WRITE ( io, 416 ) surface_pressure, r_d, rho_surface, cp, l_v
1305       IF ( icloud_scheme == 0 )  THEN
1306          WRITE ( io, 510 ) 1.0E-6 * nc_const
1307          IF ( precipitation )  WRITE ( io, 511 ) c_sedimentation
1308       ENDIF
1309    ENDIF
1310
1311!-- Profile of the geostrophic wind (component ug)
1312!-- Building output strings
1313    WRITE ( ugcomponent, '(F6.2)' )  ug_surface
1314    gradients = '------'
1315    slices = '     0'
1316    coordinates = '   0.0'
1317    i = 1
1318    DO  WHILE ( ug_vertical_gradient_level_ind(i) /= -9999 )
1319     
1320       WRITE (coor_chr,'(F6.2,1X)')  ug(ug_vertical_gradient_level_ind(i))
1321       ugcomponent = TRIM( ugcomponent ) // '  ' // TRIM( coor_chr )
1322
1323       WRITE (coor_chr,'(F6.2,1X)')  ug_vertical_gradient(i)
1324       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1325
1326       WRITE (coor_chr,'(I6,1X)')  ug_vertical_gradient_level_ind(i)
1327       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1328
1329       WRITE (coor_chr,'(F6.1,1X)')  ug_vertical_gradient_level(i)
1330       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
1331
1332       IF ( i == 10 )  THEN
1333          EXIT
1334       ELSE
1335          i = i + 1
1336       ENDIF
1337
1338    ENDDO
1339
1340    IF ( .NOT. large_scale_forcing )  THEN
1341       WRITE ( io, 423 )  TRIM( coordinates ), TRIM( ugcomponent ), &
1342                          TRIM( gradients ), TRIM( slices )
1343    ELSE
1344       WRITE ( io, 429 ) 
1345    ENDIF
1346
1347!-- Profile of the geostrophic wind (component vg)
1348!-- Building output strings
1349    WRITE ( vgcomponent, '(F6.2)' )  vg_surface
1350    gradients = '------'
1351    slices = '     0'
1352    coordinates = '   0.0'
1353    i = 1
1354    DO  WHILE ( vg_vertical_gradient_level_ind(i) /= -9999 )
1355
1356       WRITE (coor_chr,'(F6.2,1X)')  vg(vg_vertical_gradient_level_ind(i))
1357       vgcomponent = TRIM( vgcomponent ) // '  ' // TRIM( coor_chr )
1358
1359       WRITE (coor_chr,'(F6.2,1X)')  vg_vertical_gradient(i)
1360       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1361
1362       WRITE (coor_chr,'(I6,1X)')  vg_vertical_gradient_level_ind(i)
1363       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1364
1365       WRITE (coor_chr,'(F6.1,1X)')  vg_vertical_gradient_level(i)
1366       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
1367
1368       IF ( i == 10 )  THEN
1369          EXIT
1370       ELSE
1371          i = i + 1
1372       ENDIF
1373 
1374    ENDDO
1375
1376    IF ( .NOT. large_scale_forcing )  THEN
1377       WRITE ( io, 424 )  TRIM( coordinates ), TRIM( vgcomponent ), &
1378                          TRIM( gradients ), TRIM( slices )
1379    ENDIF
1380
1381!
1382!-- Initial wind profiles
1383    IF ( u_profile(1) /= 9999999.9_wp )  WRITE ( io, 427 )
1384
1385!
1386!-- Initial temperature profile
1387!-- Building output strings, starting with surface temperature
1388    WRITE ( temperatures, '(F6.2)' )  pt_surface
1389    gradients = '------'
1390    slices = '     0'
1391    coordinates = '   0.0'
1392    i = 1
1393    DO  WHILE ( pt_vertical_gradient_level_ind(i) /= -9999 )
1394
1395       WRITE (coor_chr,'(F7.2)')  pt_init(pt_vertical_gradient_level_ind(i))
1396       temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1397
1398       WRITE (coor_chr,'(F7.2)')  pt_vertical_gradient(i)
1399       gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1400
1401       WRITE (coor_chr,'(I7)')  pt_vertical_gradient_level_ind(i)
1402       slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1403
1404       WRITE (coor_chr,'(F7.1)')  pt_vertical_gradient_level(i)
1405       coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1406
1407       IF ( i == 10 )  THEN
1408          EXIT
1409       ELSE
1410          i = i + 1
1411       ENDIF
1412
1413    ENDDO
1414
1415    IF ( .NOT. nudging )  THEN
1416       WRITE ( io, 420 )  TRIM( coordinates ), TRIM( temperatures ), &
1417                          TRIM( gradients ), TRIM( slices )
1418    ELSE
1419       WRITE ( io, 428 ) 
1420    ENDIF
1421
1422!
1423!-- Initial humidity profile
1424!-- Building output strings, starting with surface humidity
1425    IF ( humidity  .OR.  passive_scalar )  THEN
1426       WRITE ( temperatures, '(E8.1)' )  q_surface
1427       gradients = '--------'
1428       slices = '       0'
1429       coordinates = '     0.0'
1430       i = 1
1431       DO  WHILE ( q_vertical_gradient_level_ind(i) /= -9999 )
1432         
1433          WRITE (coor_chr,'(E8.1,4X)')  q_init(q_vertical_gradient_level_ind(i))
1434          temperatures = TRIM( temperatures ) // '  ' // TRIM( coor_chr )
1435
1436          WRITE (coor_chr,'(E8.1,4X)')  q_vertical_gradient(i)
1437          gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1438         
1439          WRITE (coor_chr,'(I8,4X)')  q_vertical_gradient_level_ind(i)
1440          slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1441         
1442          WRITE (coor_chr,'(F8.1,4X)')  q_vertical_gradient_level(i)
1443          coordinates = TRIM( coordinates ) // '  '  // TRIM( coor_chr )
1444
1445          IF ( i == 10 )  THEN
1446             EXIT
1447          ELSE
1448             i = i + 1
1449          ENDIF
1450
1451       ENDDO
1452
1453       IF ( humidity )  THEN
1454          IF ( .NOT. nudging )  THEN
1455             WRITE ( io, 421 )  TRIM( coordinates ), TRIM( temperatures ), &
1456                                TRIM( gradients ), TRIM( slices )
1457          ENDIF
1458       ELSE
1459          WRITE ( io, 422 )  TRIM( coordinates ), TRIM( temperatures ), &
1460                             TRIM( gradients ), TRIM( slices )
1461       ENDIF
1462    ENDIF
1463
1464!
1465!-- Initial salinity profile
1466!-- Building output strings, starting with surface salinity
1467    IF ( ocean )  THEN
1468       WRITE ( temperatures, '(F6.2)' )  sa_surface
1469       gradients = '------'
1470       slices = '     0'
1471       coordinates = '   0.0'
1472       i = 1
1473       DO  WHILE ( sa_vertical_gradient_level_ind(i) /= -9999 )
1474
1475          WRITE (coor_chr,'(F7.2)')  sa_init(sa_vertical_gradient_level_ind(i))
1476          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1477
1478          WRITE (coor_chr,'(F7.2)')  sa_vertical_gradient(i)
1479          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1480
1481          WRITE (coor_chr,'(I7)')  sa_vertical_gradient_level_ind(i)
1482          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1483
1484          WRITE (coor_chr,'(F7.1)')  sa_vertical_gradient_level(i)
1485          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1486
1487          IF ( i == 10 )  THEN
1488             EXIT
1489          ELSE
1490             i = i + 1
1491          ENDIF
1492
1493       ENDDO
1494
1495       WRITE ( io, 425 )  TRIM( coordinates ), TRIM( temperatures ), &
1496                          TRIM( gradients ), TRIM( slices )
1497    ENDIF
1498
1499!
1500!-- Profile for the large scale vertial velocity
1501!-- Building output strings, starting with surface value
1502    IF ( large_scale_subsidence )  THEN
1503       temperatures = '   0.0'
1504       gradients = '------'
1505       slices = '     0'
1506       coordinates = '   0.0'
1507       i = 1
1508       DO  WHILE ( subs_vertical_gradient_level_i(i) /= -9999 )
1509
1510          WRITE (coor_chr,'(E10.2,7X)')  &
1511                                w_subs(subs_vertical_gradient_level_i(i))
1512          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1513
1514          WRITE (coor_chr,'(E10.2,7X)')  subs_vertical_gradient(i)
1515          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1516
1517          WRITE (coor_chr,'(I10,7X)')  subs_vertical_gradient_level_i(i)
1518          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1519
1520          WRITE (coor_chr,'(F10.2,7X)')  subs_vertical_gradient_level(i)
1521          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1522
1523          IF ( i == 10 )  THEN
1524             EXIT
1525          ELSE
1526             i = i + 1
1527          ENDIF
1528
1529       ENDDO
1530
1531 
1532       IF ( .NOT. large_scale_forcing )  THEN
1533          WRITE ( io, 426 )  TRIM( coordinates ), TRIM( temperatures ), &
1534                             TRIM( gradients ), TRIM( slices )
1535        ELSE
1536           WRITE ( io, 460 ) 
1537       ENDIF
1538
1539
1540    ENDIF
1541
1542!
1543!-- Cloud physcis parameters / quantities / numerical methods
1544    WRITE ( io, 430 )
1545    IF ( humidity .AND. .NOT. cloud_physics .AND. .NOT. cloud_droplets)  THEN
1546       WRITE ( io, 431 )
1547    ELSEIF ( humidity  .AND.  cloud_physics )  THEN
1548       WRITE ( io, 432 )
1549       IF ( radiation )  WRITE ( io, 132 )
1550       IF ( icloud_scheme == 1 )  THEN
1551          IF ( precipitation )  WRITE ( io, 133 )
1552       ELSEIF ( icloud_scheme == 0 )  THEN
1553          IF ( drizzle )  WRITE ( io, 506 )
1554          IF ( precipitation )  THEN
1555             WRITE ( io, 505 )
1556             IF ( turbulence )  WRITE ( io, 507 )
1557             IF ( ventilation_effect )  WRITE ( io, 508 )
1558             IF ( limiter_sedimentation )  WRITE ( io, 509 )
1559          ENDIF
1560       ENDIF
1561    ELSEIF ( humidity  .AND.  cloud_droplets )  THEN
1562       WRITE ( io, 433 )
1563       IF ( curvature_solution_effects )  WRITE ( io, 434 )
1564       IF ( collision_kernel /= 'none' )  THEN
1565          WRITE ( io, 435 )  TRIM( collision_kernel )
1566          IF ( collision_kernel(6:9) == 'fast' )  THEN
1567             WRITE ( io, 436 )  radius_classes, dissipation_classes
1568          ENDIF
1569       ELSE
1570          WRITE ( io, 437 )
1571       ENDIF
1572    ENDIF
1573
1574!
1575!-- LES / turbulence parameters
1576    WRITE ( io, 450 )
1577
1578!--
1579! ... LES-constants used must still be added here
1580!--
1581    IF ( constant_diffusion )  THEN
1582       WRITE ( io, 451 )  km_constant, km_constant/prandtl_number, &
1583                          prandtl_number
1584    ENDIF
1585    IF ( .NOT. constant_diffusion)  THEN
1586       IF ( e_init > 0.0 )  WRITE ( io, 455 )  e_init
1587       IF ( e_min > 0.0 )  WRITE ( io, 454 )  e_min
1588       IF ( wall_adjustment )  WRITE ( io, 453 )  wall_adjustment_factor
1589    ENDIF
1590
1591!
1592!-- Special actions during the run
1593    WRITE ( io, 470 )
1594    IF ( create_disturbances )  THEN
1595       WRITE ( io, 471 )  dt_disturb, disturbance_amplitude,                   &
1596                          zu(disturbance_level_ind_b), disturbance_level_ind_b,&
1597                          zu(disturbance_level_ind_t), disturbance_level_ind_t
1598       IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
1599          WRITE ( io, 472 )  inflow_disturbance_begin, inflow_disturbance_end
1600       ELSE
1601          WRITE ( io, 473 )  disturbance_energy_limit
1602       ENDIF
1603       WRITE ( io, 474 )  TRIM( random_generator )
1604    ENDIF
1605    IF ( pt_surface_initial_change /= 0.0 )  THEN
1606       WRITE ( io, 475 )  pt_surface_initial_change
1607    ENDIF
1608    IF ( humidity  .AND.  q_surface_initial_change /= 0.0 )  THEN
1609       WRITE ( io, 476 )  q_surface_initial_change       
1610    ENDIF
1611    IF ( passive_scalar  .AND.  q_surface_initial_change /= 0.0 )  THEN
1612       WRITE ( io, 477 )  q_surface_initial_change       
1613    ENDIF
1614
1615    IF ( particle_advection )  THEN
1616!
1617!--    Particle attributes
1618       WRITE ( io, 480 )  particle_advection_start, dt_prel, bc_par_lr, &
1619                          bc_par_ns, bc_par_b, bc_par_t, particle_maximum_age, &
1620                          end_time_prel, dt_sort_particles
1621       IF ( use_sgs_for_particles )  WRITE ( io, 488 )  dt_min_part
1622       IF ( random_start_position )  WRITE ( io, 481 )
1623       IF ( particles_per_point > 1 )  WRITE ( io, 489 )  particles_per_point
1624       WRITE ( io, 495 )  total_number_of_particles
1625       IF ( use_particle_tails  .AND.  maximum_number_of_tailpoints /= 0 )  THEN
1626          WRITE ( io, 483 )  maximum_number_of_tailpoints
1627          IF ( minimum_tailpoint_distance /= 0 )  THEN
1628             WRITE ( io, 484 )  total_number_of_tails,      &
1629                                minimum_tailpoint_distance, &
1630                                maximum_tailpoint_age
1631          ENDIF
1632       ENDIF
1633       IF ( dt_write_particle_data /= 9999999.9_wp )  THEN
1634          WRITE ( io, 485 )  dt_write_particle_data
1635          output_format = ' '
1636          IF ( netcdf_output )  THEN
1637             IF ( netcdf_data_format > 1 )  THEN
1638                output_format = 'netcdf (64 bit offset) and binary'
1639             ELSE
1640                output_format = 'netcdf and binary'
1641             ENDIF
1642          ELSE
1643             output_format = 'binary'
1644          ENDIF
1645          WRITE ( io, 344 )  output_format
1646       ENDIF
1647       IF ( dt_dopts /= 9999999.9_wp )  WRITE ( io, 494 )  dt_dopts
1648       IF ( write_particle_statistics )  WRITE ( io, 486 )
1649
1650       WRITE ( io, 487 )  number_of_particle_groups
1651
1652       DO  i = 1, number_of_particle_groups
1653          IF ( i == 1  .AND.  density_ratio(i) == 9999999.9_wp )  THEN
1654             WRITE ( io, 490 )  i, 0.0
1655             WRITE ( io, 492 )
1656          ELSE
1657             WRITE ( io, 490 )  i, radius(i)
1658             IF ( density_ratio(i) /= 0.0 )  THEN
1659                WRITE ( io, 491 )  density_ratio(i)
1660             ELSE
1661                WRITE ( io, 492 )
1662             ENDIF
1663          ENDIF
1664          WRITE ( io, 493 )  psl(i), psr(i), pss(i), psn(i), psb(i), pst(i), &
1665                             pdx(i), pdy(i), pdz(i)
1666          IF ( .NOT. vertical_particle_advection(i) )  WRITE ( io, 482 )
1667       ENDDO
1668
1669    ENDIF
1670
1671
1672!
1673!-- Parameters of 1D-model
1674    IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
1675       WRITE ( io, 500 )  end_time_1d, dt_run_control_1d, dt_pr_1d, &
1676                          mixing_length_1d, dissipation_1d
1677       IF ( damp_level_ind_1d /= nzt+1 )  THEN
1678          WRITE ( io, 502 )  zu(damp_level_ind_1d), damp_level_ind_1d
1679       ENDIF
1680    ENDIF
1681
1682!
1683!-- User-defined informations
1684    CALL user_header( io )
1685
1686    WRITE ( io, 99 )
1687
1688!
1689!-- Write buffer contents to disc immediately
1690    CALL local_flush( io )
1691
1692!
1693!-- Here the FORMATs start
1694
1695 99 FORMAT (1X,78('-'))
1696100 FORMAT (/1X,'******************************',6X,42('-')/        &
1697            1X,'* ',A,' *',6X,A/                               &
1698            1X,'******************************',6X,42('-'))
1699101 FORMAT (37X,'coupled run using MPI-',I1,': ',A/ &
1700            37X,42('-'))
1701102 FORMAT (/' Date:                 ',A8,6X,'Run:       ',A20/      &
1702            ' Time:                 ',A8,6X,'Run-No.:   ',I2.2/     &
1703            ' Run on host:        ',A10)
1704#if defined( __parallel )
1705103 FORMAT (' Number of PEs:',10X,I6,6X,'Processor grid (x,y): (',I3,',',I3, &
1706              ')',1X,A)
1707104 FORMAT (' Number of PEs:',8X,I5,9X,'Tasks:',I4,'   threads per task:',I4/ &
1708              37X,'Processor grid (x,y): (',I3,',',I3,')',1X,A)
1709105 FORMAT (37X,'One additional PE is used to handle'/37X,'the dvrp output!')
1710106 FORMAT (37X,'A 1d-decomposition along x is forced'/ &
1711            37X,'because the job is running on an SMP-cluster')
1712107 FORMAT (37X,'A 1d-decomposition along ',A,' is used')
1713108 FORMAT (37X,'Max. # of parallel I/O streams is ',I5)
1714109 FORMAT (37X,'Precursor run for coupled atmos-ocean run'/ &
1715            37X,42('-'))
1716114 FORMAT (37X,'Coupled atmosphere-ocean run following'/ &
1717            37X,'independent precursor runs'/             &
1718            37X,42('-'))
1719117 FORMAT (' Accelerator boards / node:  ',I2)
1720#endif
1721110 FORMAT (/' Numerical Schemes:'/ &
1722             ' -----------------'/)
1723111 FORMAT (' --> Solve perturbation pressure via FFT using ',A,' routines')
1724112 FORMAT (' --> Solve perturbation pressure via SOR-Red/Black-Schema'/ &
1725            '     Iterations (initial/other): ',I3,'/',I3,'  omega = ',F5.3)
1726113 FORMAT (' --> Momentum advection via Piascek-Williams-Scheme (Form C3)', &
1727                  ' or Upstream')
1728115 FORMAT ('     FFT and transpositions are overlapping')
1729116 FORMAT (' --> Scalar advection via Piascek-Williams-Scheme (Form C3)', &
1730                  ' or Upstream')
1731118 FORMAT (' --> Scalar advection via Bott-Chlond-Scheme')
1732119 FORMAT (' --> Galilei-Transform applied to horizontal advection:'/ &
1733            '     translation velocity = ',A/ &
1734            '     distance advected ',A,':  ',F8.3,' km(x)  ',F8.3,' km(y)')
1735120 FORMAT (' Accelerator boards: ',8X,I2)
1736122 FORMAT (' --> Time differencing scheme: ',A)
1737123 FORMAT (' --> Rayleigh-Damping active, starts ',A,' z = ',F8.2,' m'/ &
1738            '     maximum damping coefficient: ',F5.3, ' 1/s')
1739129 FORMAT (' --> Additional prognostic equation for the specific humidity')
1740130 FORMAT (' --> Additional prognostic equation for the total water content')
1741131 FORMAT (' --> No pt-equation solved. Neutral stratification with pt = ', &
1742                  F6.2, ' K assumed')
1743132 FORMAT ('     Parameterization of long-wave radiation processes via'/ &
1744            '     effective emissivity scheme')
1745133 FORMAT ('     Precipitation parameterization via Kessler-Scheme')
1746134 FORMAT (' --> Additional prognostic equation for a passive scalar')
1747135 FORMAT (' --> Solve perturbation pressure via multigrid method (', &
1748                  A,'-cycle)'/ &
1749            '     number of grid levels:                   ',I2/ &
1750            '     Gauss-Seidel red/black iterations:       ',I2)
1751136 FORMAT ('     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1752                  I3,')')
1753137 FORMAT ('     level data gathered on PE0 at level:     ',I2/ &
1754            '     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1755                  I3,')'/ &
1756            '     gridpoints of coarsest domain (x,y,z):    (',I3,',',I3,',', &
1757                  I3,')')
1758139 FORMAT (' --> Loop optimization method: ',A)
1759140 FORMAT ('     maximum residual allowed:                ',E10.3)
1760141 FORMAT ('     fixed number of multigrid cycles:        ',I4)
1761142 FORMAT ('     perturbation pressure is calculated at every Runge-Kutta ', &
1762                  'step')
1763143 FORMAT ('     Euler/upstream scheme is used for the SGS turbulent ', &
1764                  'kinetic energy')
1765144 FORMAT ('     masking method is used')
1766150 FORMAT (' --> Volume flow at the right and north boundary will be ', &
1767                  'conserved'/ &
1768            '     using the ',A,' mode')
1769151 FORMAT ('     with u_bulk = ',F7.3,' m/s and v_bulk = ',F7.3,' m/s')
1770152 FORMAT (' --> External pressure gradient directly prescribed by the user:',&
1771           /'     ',2(1X,E12.5),'Pa/m in x/y direction', &
1772           /'     starting from dp_level_b =', F8.3, 'm', A /)
1773153 FORMAT (' --> Large-scale vertical motion is used in the ', &
1774                  'prognostic equation(s) for')
1775154 FORMAT ('     the scalar(s) only')
1776155 FORMAT (' --> Nudging is used - initial profiles for u, v, pt and q ',& 
1777                  'correspond to the')
1778156 FORMAT ('     first profiles in NUDGING_DATA')
1779157 FORMAT (' --> Large scale forcing from external file (LSF_DATA) is used: ')
1780158 FORMAT ('     prescribed surfaces fluxes and geostrophic wind components')
1781200 FORMAT (//' Run time and time step information:'/ &
1782             ' ----------------------------------'/)
1783201 FORMAT ( ' Timestep:             variable     maximum value: ',F6.3,' s', &
1784             '    CFL-factor: ',F4.2)
1785202 FORMAT ( ' Timestep:          dt = ',F6.3,' s'/)
1786203 FORMAT ( ' Start time:          ',F9.3,' s'/ &
1787             ' End time:            ',F9.3,' s')
1788204 FORMAT ( A,F9.3,' s')
1789205 FORMAT ( A,F9.3,' s',5X,'restart every',17X,F9.3,' s')
1790206 FORMAT (/' Time reached:        ',F9.3,' s'/ &
1791             ' CPU-time used:       ',F9.3,' s     per timestep:               ', &
1792               '  ',F9.3,' s'/                                                    &
1793             '                                      per second of simulated tim', &
1794               'e: ',F9.3,' s')
1795207 FORMAT ( ' Coupling start time: ',F9.3,' s')
1796250 FORMAT (//' Computational grid and domain size:'/ &
1797              ' ----------------------------------'// &
1798              ' Grid length:      dx =    ',F7.3,' m    dy =    ',F7.3, &
1799              ' m    dz =    ',F7.3,' m'/ &
1800              ' Domain size:       x = ',F10.3,' m     y = ',F10.3, &
1801              ' m  z(u) = ',F10.3,' m'/)
1802252 FORMAT (' dz constant up to ',F10.3,' m (k=',I4,'), then stretched by', &
1803              ' factor: ',F5.3/ &
1804            ' maximum dz not to be exceeded is dz_max = ',F10.3,' m'/)
1805254 FORMAT (' Number of gridpoints (x,y,z):  (0:',I4,', 0:',I4,', 0:',I4,')'/ &
1806            ' Subdomain size (x,y,z):        (  ',I4,',   ',I4,',   ',I4,')'/)
1807260 FORMAT (/' The model has a slope in x-direction. Inclination angle: ',F6.2,&
1808             ' degrees')
1809270 FORMAT (//' Topography informations:'/ &
1810              ' -----------------------'// &
1811              1X,'Topography: ',A)
1812271 FORMAT (  ' Building size (x/y/z) in m: ',F5.1,' / ',F5.1,' / ',F5.1/ &
1813              ' Horizontal index bounds (l/r/s/n): ',I4,' / ',I4,' / ',I4, &
1814                ' / ',I4)
1815272 FORMAT (  ' Single quasi-2D street canyon of infinite length in ',A, &
1816              ' direction' / &
1817              ' Canyon height: ', F6.2, 'm, ch = ', I4, '.'      / &
1818              ' Canyon position (',A,'-walls): cxl = ', I4,', cxr = ', I4, '.')
1819278 FORMAT (' Topography grid definition convention:'/ &
1820            ' cell edge (staggered grid points'/  &
1821            ' (u in x-direction, v in y-direction))' /)
1822279 FORMAT (' Topography grid definition convention:'/ &
1823            ' cell center (scalar grid points)' /)
1824280 FORMAT (//' Vegetation canopy (drag) model:'/ &
1825              ' ------------------------------'// &
1826              ' Canopy mode: ', A / &
1827              ' Canopy top: ',I4 / &
1828              ' Leaf drag coefficient: ',F6.2 /)
1829281 FORMAT (/ ' Scalar_exchange_coefficient: ',F6.2 / &
1830              ' Scalar concentration at leaf surfaces in kg/m**3: ',F6.2 /)
1831282 FORMAT (' Predefined constant heatflux at the top of the vegetation: ',F6.2,' K m/s')
1832283 FORMAT (/ ' Characteristic levels of the leaf area density:'// &
1833              ' Height:              ',A,'  m'/ &
1834              ' Leaf area density:   ',A,'  m**2/m**3'/ &
1835              ' Gradient:            ',A,'  m**2/m**4'/ &
1836              ' Gridpoint:           ',A)
1837               
1838300 FORMAT (//' Boundary conditions:'/ &
1839             ' -------------------'// &
1840             '                     p                    uv             ', &
1841             '                   pt'// &
1842             ' B. bound.: ',A/ &
1843             ' T. bound.: ',A)
1844301 FORMAT (/'                     ',A// &
1845             ' B. bound.: ',A/ &
1846             ' T. bound.: ',A)
1847303 FORMAT (/' Bottom surface fluxes are used in diffusion terms at k=1')
1848304 FORMAT (/' Top surface fluxes are used in diffusion terms at k=nzt')
1849305 FORMAT (//'    Prandtl-Layer between bottom surface and first ', &
1850               'computational u,v-level:'// &
1851             '       zp = ',F6.2,' m   z0 = ',F6.4,' m   z0h = ',F7.5,&
1852             ' m   kappa = ',F4.2/ &
1853             '       Rif value range:   ',F6.2,' <= rif <=',F6.2)
1854306 FORMAT ('       Predefined constant heatflux:   ',F9.6,' K m/s')
1855307 FORMAT ('       Heatflux has a random normal distribution')
1856308 FORMAT ('       Predefined surface temperature')
1857309 FORMAT ('       Predefined constant salinityflux:   ',F9.6,' psu m/s')
1858310 FORMAT (//'    1D-Model:'// &
1859             '       Rif value range:   ',F6.2,' <= rif <=',F6.2)
1860311 FORMAT ('       Predefined constant humidity flux: ',E10.3,' m/s')
1861312 FORMAT ('       Predefined surface humidity')
1862313 FORMAT ('       Predefined constant scalar flux: ',E10.3,' kg/(m**2 s)')
1863314 FORMAT ('       Predefined scalar value at the surface')
1864315 FORMAT ('       Humidity / scalar flux at top surface is 0.0')
1865316 FORMAT ('       Sensible heatflux and momentum flux from coupled ', &
1866                    'atmosphere model')
1867317 FORMAT (//' Lateral boundaries:'/ &
1868            '       left/right:  ',A/    &
1869            '       north/south: ',A)
1870318 FORMAT (/'       use_cmax: ',L1 / &
1871            '       pt damping layer width = ',F8.2,' m, pt ', &
1872                    'damping factor = ',F6.4)
1873319 FORMAT ('       turbulence recycling at inflow switched on'/ &
1874            '       width of recycling domain: ',F7.1,' m   grid index: ',I4/ &
1875            '       inflow damping height: ',F6.1,' m   width: ',F6.1,' m')
1876320 FORMAT ('       Predefined constant momentumflux:  u: ',F9.6,' m**2/s**2'/ &
1877            '                                          v: ',F9.6,' m**2/s**2')
1878325 FORMAT (//' List output:'/ &
1879             ' -----------'//  &
1880            '    1D-Profiles:'/    &
1881            '       Output every             ',F8.2,' s')
1882326 FORMAT ('       Time averaged over       ',F8.2,' s'/ &
1883            '       Averaging input every    ',F8.2,' s')
1884330 FORMAT (//' Data output:'/ &
1885             ' -----------'/)
1886331 FORMAT (/'    1D-Profiles:')
1887332 FORMAT (/'       ',A)
1888333 FORMAT ('       Output every             ',F8.2,' s',/ &
1889            '       Time averaged over       ',F8.2,' s'/ &
1890            '       Averaging input every    ',F8.2,' s')
1891334 FORMAT (/'    2D-Arrays',A,':')
1892335 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
1893            '       Output every             ',F8.2,' s  ',A/ &
1894            '       Cross sections at ',A1,' = ',A/ &
1895            '       scalar-coordinates:   ',A,' m'/)
1896336 FORMAT (/'    3D-Arrays',A,':')
1897337 FORMAT (/'       Arrays: ',A/ &
1898            '       Output every             ',F8.2,' s  ',A/ &
1899            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
1900338 FORMAT ('       Compressed data output'/ &
1901            '       Decimal precision: ',A/)
1902339 FORMAT ('       No output during initial ',F8.2,' s')
1903340 FORMAT (/'    Time series:')
1904341 FORMAT ('       Output every             ',F8.2,' s'/)
1905342 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
1906            '       Output every             ',F8.2,' s  ',A/ &
1907            '       Time averaged over       ',F8.2,' s'/ &
1908            '       Averaging input every    ',F8.2,' s'/ &
1909            '       Cross sections at ',A1,' = ',A/ &
1910            '       scalar-coordinates:   ',A,' m'/)
1911343 FORMAT (/'       Arrays: ',A/ &
1912            '       Output every             ',F8.2,' s  ',A/ &
1913            '       Time averaged over       ',F8.2,' s'/ &
1914            '       Averaging input every    ',F8.2,' s'/ &
1915            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
1916344 FORMAT ('       Output format: ',A/)
1917345 FORMAT (/'    Scaling lengths for output locations of all subsequent mask IDs:',/ &
1918            '       mask_scale_x (in x-direction): ',F9.3, ' m',/ &
1919            '       mask_scale_y (in y-direction): ',F9.3, ' m',/ &
1920            '       mask_scale_z (in z-direction): ',F9.3, ' m' )
1921346 FORMAT (/'    Masked data output',A,' for mask ID ',I2, ':')
1922347 FORMAT ('       Variables: ',A/ &
1923            '       Output every             ',F8.2,' s')
1924348 FORMAT ('       Variables: ',A/ &
1925            '       Output every             ',F8.2,' s'/ &
1926            '       Time averaged over       ',F8.2,' s'/ &
1927            '       Averaging input every    ',F8.2,' s')
1928349 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
1929            'mask_scale_',A,' predefined by array mask_',I2.2,'_',A,':'/ &
1930            13('       ',8(F8.2,',')/) )
1931350 FORMAT (/'       Output locations in ',A,'-direction: ', &
1932            'all gridpoints along ',A,'-direction (default).' )
1933351 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
1934            'mask_scale_',A,' constructed from array mask_',I2.2,'_',A,'_loop:'/ &
1935            '          loop begin:',F8.2,', end:',F8.2,', stride:',F8.2 )
1936352 FORMAT  (/'       Number of output time levels allowed: ',I3 /)
1937353 FORMAT  (/'       Number of output time levels allowed: unlimited' /)
1938#if defined( __dvrp_graphics )
1939360 FORMAT ('    Plot-Sequence with dvrp-software:'/ &
1940            '       Output every      ',F7.1,' s'/ &
1941            '       Output mode:      ',A/ &
1942            '       Host / User:      ',A,' / ',A/ &
1943            '       Directory:        ',A// &
1944            '       The sequence contains:')
1945361 FORMAT (/'       Isosurface of "',A,'"    Threshold value: ', E12.3/ &
1946            '          Isosurface color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
1947362 FORMAT (/'       Slicer plane ',A/ &
1948            '       Slicer limits: [',F6.2,',',F6.2,']')
1949363 FORMAT (/'       Particles'/ &
1950            '          particle size:  ',F7.2,' m')
1951364 FORMAT ('          particle ',A,' controlled by "',A,'" with interval [', &
1952                       F6.2,',',F6.2,']')
1953365 FORMAT (/'       Groundplate color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)'/ &
1954            '       Superelevation along (x,y,z): (',F4.1,',',F4.1,',',F4.1, &
1955                     ')'/ &
1956            '       Clipping limits: from x = ',F9.1,' m to x = ',F9.1,' m'/ &
1957            '                        from y = ',F9.1,' m to y = ',F9.1,' m')
1958366 FORMAT (/'       Topography color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
1959367 FORMAT ('       Polygon reduction for topography: cluster_size = ', I1)
1960#endif
1961#if defined( __spectra )
1962370 FORMAT ('    Spectra:')
1963371 FORMAT ('       Output every ',F7.1,' s'/)
1964372 FORMAT ('       Arrays:     ', 10(A5,',')/                         &
1965            '       Directions: ', 10(A5,',')/                         &
1966            '       height levels  k = ', 20(I3,',')/                  &
1967            '                          ', 20(I3,',')/                  &
1968            '                          ', 20(I3,',')/                  &
1969            '                          ', 20(I3,',')/                  &
1970            '                          ', 19(I3,','),I3,'.'/           &
1971            '       height levels selected for standard plot:'/        &
1972            '                      k = ', 20(I3,',')/                  &
1973            '                          ', 20(I3,',')/                  &
1974            '                          ', 20(I3,',')/                  &
1975            '                          ', 20(I3,',')/                  &
1976            '                          ', 19(I3,','),I3,'.'/           &
1977            '       Time averaged over ', F7.1, ' s,' /                &
1978            '       Profiles for the time averaging are taken every ', &
1979                    F6.1,' s')
1980#endif
1981400 FORMAT (//' Physical quantities:'/ &
1982              ' -------------------'/)
1983410 FORMAT ('    Angular velocity    :   omega = ',E9.3,' rad/s'/  &
1984            '    Geograph. latitude  :   phi   = ',F4.1,' degr'/   &
1985            '    Coriolis parameter  :   f     = ',F9.6,' 1/s'/    &
1986            '                            f*    = ',F9.6,' 1/s')
1987411 FORMAT (/'    Gravity             :   g     = ',F4.1,' m/s**2')
1988412 FORMAT (/'    Reference state used in buoyancy terms: ',A)
1989413 FORMAT ('       Reference density in buoyancy terms: ',F8.3,' kg/m**3')
1990414 FORMAT ('       Reference temperature in buoyancy terms: ',F8.4,' K')
1991415 FORMAT (/'    Cloud physics parameters:'/ &
1992             '    ------------------------'/)
1993416 FORMAT ('        Surface pressure   :   p_0   = ',F7.2,' hPa'/      &
1994            '        Gas constant       :   R     = ',F5.1,' J/(kg K)'/ &
1995            '        Density of air     :   rho_0 = ',F5.3,' kg/m**3'/  &
1996            '        Specific heat cap. :   c_p   = ',F6.1,' J/(kg K)'/ &
1997            '        Vapourization heat :   L_v   = ',E8.2,' J/kg')
1998420 FORMAT (/'    Characteristic levels of the initial temperature profile:'// &
1999            '       Height:        ',A,'  m'/ &
2000            '       Temperature:   ',A,'  K'/ &
2001            '       Gradient:      ',A,'  K/100m'/ &
2002            '       Gridpoint:     ',A)
2003421 FORMAT (/'    Characteristic levels of the initial humidity profile:'// &
2004            '       Height:      ',A,'  m'/ &
2005            '       Humidity:    ',A,'  kg/kg'/ &
2006            '       Gradient:    ',A,'  (kg/kg)/100m'/ &
2007            '       Gridpoint:   ',A)
2008422 FORMAT (/'    Characteristic levels of the initial scalar profile:'// &
2009            '       Height:                  ',A,'  m'/ &
2010            '       Scalar concentration:    ',A,'  kg/m**3'/ &
2011            '       Gradient:                ',A,'  (kg/m**3)/100m'/ &
2012            '       Gridpoint:               ',A)
2013423 FORMAT (/'    Characteristic levels of the geo. wind component ug:'// &
2014            '       Height:      ',A,'  m'/ &
2015            '       ug:          ',A,'  m/s'/ &
2016            '       Gradient:    ',A,'  1/100s'/ &
2017            '       Gridpoint:   ',A)
2018424 FORMAT (/'    Characteristic levels of the geo. wind component vg:'// &
2019            '       Height:      ',A,'  m'/ &
2020            '       vg:          ',A,'  m/s'/ &
2021            '       Gradient:    ',A,'  1/100s'/ &
2022            '       Gridpoint:   ',A)
2023425 FORMAT (/'    Characteristic levels of the initial salinity profile:'// &
2024            '       Height:     ',A,'  m'/ &
2025            '       Salinity:   ',A,'  psu'/ &
2026            '       Gradient:   ',A,'  psu/100m'/ &
2027            '       Gridpoint:  ',A)
2028426 FORMAT (/'    Characteristic levels of the subsidence/ascent profile:'// &
2029            '       Height:      ',A,'  m'/ &
2030            '       w_subs:      ',A,'  m/s'/ &
2031            '       Gradient:    ',A,'  (m/s)/100m'/ &
2032            '       Gridpoint:   ',A)
2033427 FORMAT (/'    Initial wind profiles (u,v) are interpolated from given'// &
2034                  ' profiles')
2035428 FORMAT (/'    Initial profiles (u, v, pt, q) are taken from file '/ &
2036             '    NUDGING_DATA')
2037429 FORMAT (/'    Geostrophic wind profiles (ug, vg) are are taken from file '/ &
2038             '    LSF_DATA')
2039430 FORMAT (//' Cloud physics quantities / methods:'/ &
2040              ' ----------------------------------'/)
2041431 FORMAT ('    Humidity is treated as purely passive scalar (no condensati', &
2042                 'on)')
2043432 FORMAT ('    Bulk scheme with liquid water potential temperature and'/ &
2044            '    total water content is used.'/ &
2045            '    Condensation is parameterized via 0% - or 100% scheme.')
2046433 FORMAT ('    Cloud droplets treated explicitly using the Lagrangian part', &
2047                 'icle model')
2048434 FORMAT ('    Curvature and solution effecs are considered for growth of', &
2049                 ' droplets < 1.0E-6 m')
2050435 FORMAT ('    Droplet collision is handled by ',A,'-kernel')
2051436 FORMAT ('       Fast kernel with fixed radius- and dissipation classes ', &
2052                    'are used'/ &
2053            '          number of radius classes:       ',I3,'    interval ', &
2054                       '[1.0E-6,2.0E-4] m'/ &
2055            '          number of dissipation classes:   ',I2,'    interval ', &
2056                       '[0,1000] cm**2/s**3')
2057437 FORMAT ('    Droplet collision is switched off')
2058450 FORMAT (//' LES / Turbulence quantities:'/ &
2059              ' ---------------------------'/)
2060451 FORMAT ('    Diffusion coefficients are constant:'/ &
2061            '    Km = ',F6.2,' m**2/s   Kh = ',F6.2,' m**2/s   Pr = ',F5.2)
2062453 FORMAT ('    Mixing length is limited to ',F4.2,' * z')
2063454 FORMAT ('    TKE is not allowed to fall below ',E9.2,' (m/s)**2')
2064455 FORMAT ('    initial TKE is prescribed as ',E9.2,' (m/s)**2')
2065460 FORMAT (/'    Profiles for large scale vertical velocity are '/ &
2066             '    taken from file LSF_DATA')
2067470 FORMAT (//' Actions during the simulation:'/ &
2068              ' -----------------------------'/)
2069471 FORMAT ('    Disturbance impulse (u,v) every :   ',F6.2,' s'/            &
2070            '    Disturbance amplitude           :     ',F4.2, ' m/s'/       &
2071            '    Lower disturbance level         : ',F8.2,' m (GP ',I4,')'/  &
2072            '    Upper disturbance level         : ',F8.2,' m (GP ',I4,')')
2073472 FORMAT ('    Disturbances continued during the run from i/j =',I4, &
2074                 ' to i/j =',I4)
2075473 FORMAT ('    Disturbances cease as soon as the disturbance energy exceeds',&
2076                 1X,F5.3, ' m**2/s**2')
2077474 FORMAT ('    Random number generator used    : ',A/)
2078475 FORMAT ('    The surface temperature is increased (or decreased, ', &
2079                 'respectively, if'/ &
2080            '    the value is negative) by ',F5.2,' K at the beginning of the',&
2081                 ' 3D-simulation'/)
2082476 FORMAT ('    The surface humidity is increased (or decreased, ',&
2083                 'respectively, if the'/ &
2084            '    value is negative) by ',E8.1,' kg/kg at the beginning of', &
2085                 ' the 3D-simulation'/)
2086477 FORMAT ('    The scalar value is increased at the surface (or decreased, ',&
2087                 'respectively, if the'/ &
2088            '    value is negative) by ',E8.1,' kg/m**3 at the beginning of', &
2089                 ' the 3D-simulation'/)
2090480 FORMAT ('    Particles:'/ &
2091            '    ---------'// &
2092            '       Particle advection is active (switched on at t = ', F7.1, &
2093                    ' s)'/ &
2094            '       Start of new particle generations every  ',F6.1,' s'/ &
2095            '       Boundary conditions: left/right: ', A, ' north/south: ', A/&
2096            '                            bottom:     ', A, ' top:         ', A/&
2097            '       Maximum particle age:                 ',F9.1,' s'/ &
2098            '       Advection stopped at t = ',F9.1,' s'/ &
2099            '       Particles are sorted every ',F9.1,' s'/)
2100481 FORMAT ('       Particles have random start positions'/)
2101482 FORMAT ('          Particles are advected only horizontally'/)
2102483 FORMAT ('       Particles have tails with a maximum of ',I3,' points')
2103484 FORMAT ('            Number of tails of the total domain: ',I10/ &
2104            '            Minimum distance between tailpoints: ',F8.2,' m'/ &
2105            '            Maximum age of the end of the tail:  ',F8.2,' s')
2106485 FORMAT ('       Particle data are written on file every ', F9.1, ' s')
2107486 FORMAT ('       Particle statistics are written on file'/)
2108487 FORMAT ('       Number of particle groups: ',I2/)
2109488 FORMAT ('       SGS velocity components are used for particle advection'/ &
2110            '          minimum timestep for advection: ', F7.5/)
2111489 FORMAT ('       Number of particles simultaneously released at each ', &
2112                    'point: ', I5/)
2113490 FORMAT ('       Particle group ',I2,':'/ &
2114            '          Particle radius: ',E10.3, 'm')
2115491 FORMAT ('          Particle inertia is activated'/ &
2116            '             density_ratio (rho_fluid/rho_particle) = ',F5.3/)
2117492 FORMAT ('          Particles are advected only passively (no inertia)'/)
2118493 FORMAT ('          Boundaries of particle source: x:',F8.1,' - ',F8.1,' m'/&
2119            '                                         y:',F8.1,' - ',F8.1,' m'/&
2120            '                                         z:',F8.1,' - ',F8.1,' m'/&
2121            '          Particle distances:  dx = ',F8.1,' m  dy = ',F8.1, &
2122                       ' m  dz = ',F8.1,' m'/)
2123494 FORMAT ('       Output of particle time series in NetCDF format every ', &
2124                    F8.2,' s'/)
2125495 FORMAT ('       Number of particles in total domain: ',I10/)
2126500 FORMAT (//' 1D-Model parameters:'/                           &
2127              ' -------------------'//                           &
2128            '    Simulation time:                   ',F8.1,' s'/ &
2129            '    Run-controll output every:         ',F8.1,' s'/ &
2130            '    Vertical profile output every:     ',F8.1,' s'/ &
2131            '    Mixing length calculation:         ',A/         &
2132            '    Dissipation calculation:           ',A/)
2133502 FORMAT ('    Damping layer starts from ',F7.1,' m (GP ',I4,')'/)
2134503 FORMAT (' --> Momentum advection via Wicker-Skamarock-Scheme 5th order')
2135504 FORMAT (' --> Scalar advection via Wicker-Skamarock-Scheme 5th order')
2136505 FORMAT ('    Precipitation parameterization via Seifert-Beheng-Scheme')
2137506 FORMAT ('    Drizzle parameterization via Stokes law')
2138507 FORMAT ('    Turbulence effects on precipitation process')
2139508 FORMAT ('    Ventilation effects on evaporation of rain drops')
2140509 FORMAT ('    Slope limiter used for sedimentation process')
2141510 FORMAT ('        Droplet density    :   N_c   = ',F6.1,' 1/cm**3')
2142511 FORMAT ('        Sedimentation Courant number:                  '/&
2143            '                               C_s   = ',F3.1,'        ')
2144
2145 END SUBROUTINE header
Note: See TracBrowser for help on using the repository browser.