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

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

adjustments for using CUDA-aware MPI

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