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

Last change on this file since 1308 was 1308, checked in by fricke, 10 years ago

Adjustments for parallel NetCDF output for lccrayh/lccrayb (Cray XC30 systems)

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