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

Last change on this file since 1429 was 1429, checked in by knoop, 10 years ago

Ensemble run capability added to parallel random number generator.

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