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

Last change on this file since 1360 was 1360, checked in by hoffmann, 10 years ago

last commit documented

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