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

Last change on this file since 1327 was 1327, checked in by raasch, 11 years ago

Changed:


-s real64 removed (.mrun.config.hlrnIII)
-r8 removed (.mrun.config.imuk)
deleted: .mrun.config.imuk_ice2_netcdf4 .mrun.config.imuk_hlrn

REAL constants defined as wp-kind in modules

"baroclinicity" renamed "baroclinity", "ocean version" replaced by
"ocean mode"

code parts concerning old output formats "iso2d" and "avs" removed.
netCDF is the only remaining output format.

Errors:


bugfix: duplicate error message 56 removed

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