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

Last change on this file since 1366 was 1366, checked in by boeske, 10 years ago

last commit documented

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