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

Last change on this file since 1325 was 1325, checked in by suehring, 10 years ago

last commit documented

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