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

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

last commit documented

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