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

Last change on this file since 1968 was 1961, checked in by suehring, 8 years ago

last commit documented

  • Property svn:keywords set to Id
File size: 87.6 KB
Line 
1!> @file header.f90
2!--------------------------------------------------------------------------------!
3! This file is part of PALM.
4!
5! PALM is free software: you can redistribute it and/or modify it under the terms
6! of the GNU General Public License as published by the Free Software Foundation,
7! either version 3 of the License, or (at your option) any later version.
8!
9! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
10! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
11! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
12!
13! You should have received a copy of the GNU General Public License along with
14! PALM. If not, see <http://www.gnu.org/licenses/>.
15!
16! Copyright 1997-2016 Leibniz Universitaet Hannover
17!--------------------------------------------------------------------------------!
18!
19! Current revisions:
20! -----------------
21!
22!
23! Former revisions:
24! -----------------
25! $Id: header.f90 1961 2016-07-12 16:37:58Z suehring $
26!
27! 1960 2016-07-12 16:34:24Z suehring
28! Treat humidity and passive scalar separately.
29! Modify misleading information concerning humidity.
30! Bugfix, change unit for humidity flux.
31!
32! 1957 2016-07-07 10:43:48Z suehring
33! flight module added
34!
35! 1931 2016-06-10 12:06:59Z suehring
36! Rename multigrid into multigrid_noopt
37!
38! 1902 2016-05-09 11:18:56Z suehring
39! Write information about masking_method only for multigrid solver
40!
41! 1849 2016-04-08 11:33:18Z hoffmann
42! Adapted for modularization of microphysics
43!
44! 1833 2016-04-07 14:23:03Z raasch
45! spectrum renamed spectra_mod, output of spectra related quantities moved to
46! spectra_mod
47!
48! 1831 2016-04-07 13:15:51Z hoffmann
49! turbulence renamed collision_turbulence,
50! drizzle renamed cloud_water_sedimentation
51!
52! 1826 2016-04-07 12:01:39Z maronga
53! Moved radiation model header output to the respective module.
54! Moved canopy model header output to the respective module.
55!
56! 1822 2016-04-07 07:49:42Z hoffmann
57! Tails removed. icloud_scheme replaced by microphysics_*
58!
59! 1817 2016-04-06 15:44:20Z maronga
60! Moved land_surface_model header output to the respective module.
61!
62! 1808 2016-04-05 19:44:00Z raasch
63! routine local_flush replaced by FORTRAN statement
64!
65! 1797 2016-03-21 16:50:28Z raasch
66! output of nesting datatransfer mode
67!
68! 1791 2016-03-11 10:41:25Z raasch
69! output of nesting informations of all domains
70!
71! 1788 2016-03-10 11:01:04Z maronga
72! Parameter dewfall removed
73!
74! 1786 2016-03-08 05:49:27Z raasch
75! cpp-direktives for spectra removed
76!
77! 1783 2016-03-06 18:36:17Z raasch
78! netcdf module and variable names changed, output of netcdf_deflate
79!
80! 1764 2016-02-28 12:45:19Z raasch
81! output of nesting informations
82!
83! 1697 2015-10-28 17:14:10Z raasch
84! small E- and F-FORMAT changes to avoid informative compiler messages about
85! insufficient field width
86!
87! 1691 2015-10-26 16:17:44Z maronga
88! Renamed prandtl_layer to constant_flux_layer, renames rif_min/rif_max to
89! zeta_min/zeta_max.
90!
91! 1682 2015-10-07 23:56:08Z knoop
92! Code annotations made doxygen readable
93!
94! 1675 2015-10-02 08:28:59Z gronemeier
95! Bugfix: Definition of topography grid levels
96!
97! 1660 2015-09-21 08:15:16Z gronemeier
98! Bugfix: Definition of building/street canyon height if vertical grid stretching
99!         starts below the maximum topography height.
100!
101! 1590 2015-05-08 13:56:27Z maronga
102! Bugfix: Added TRIM statements for character strings for LSM and radiation code
103!
104! 1585 2015-04-30 07:05:52Z maronga
105! Further output for radiation model(s).
106!
107! 1575 2015-03-27 09:56:27Z raasch
108! adjustments for psolver-queries, output of seed_follows_topography
109!
110! 1560 2015-03-06 10:48:54Z keck
111! output for recycling y shift
112!
113! 1557 2015-03-05 16:43:04Z suehring
114! output for monotonic limiter
115!
116! 1551 2015-03-03 14:18:16Z maronga
117! Added informal output for land surface model and radiation model. Removed typo.
118!
119! 1496 2014-12-02 17:25:50Z maronga
120! Renamed: "radiation -> "cloud_top_radiation"
121!
122! 1484 2014-10-21 10:53:05Z kanani
123! Changes due to new module structure of the plant canopy model:
124!   module plant_canopy_model_mod and output for new canopy model parameters
125!   (alpha_lad, beta_lad, lai_beta,...) added,
126!   drag_coefficient, leaf_surface_concentration and scalar_exchange_coefficient
127!   renamed to canopy_drag_coeff, leaf_surface_conc and leaf_scalar_exch_coeff,
128!   learde renamed leaf_area_density.
129! Bugfix: DO-WHILE-loop for lad header information additionally restricted
130! by maximum number of gradient levels (currently 10)
131!
132! 1482 2014-10-18 12:34:45Z raasch
133! information about calculated or predefined virtual processor topology adjusted
134!
135! 1468 2014-09-24 14:06:57Z maronga
136! Adapted for use on up to 6-digit processor cores
137!
138! 1429 2014-07-15 12:53:45Z knoop
139! header exended to provide ensemble_member_nr if specified
140!
141! 1376 2014-04-26 11:21:22Z boeske
142! Correction of typos
143!
144! 1365 2014-04-22 15:03:56Z boeske
145! New section 'Large scale forcing and nudging':
146! output of large scale forcing and nudging information,
147! new section for initial profiles created
148!
149! 1359 2014-04-11 17:15:14Z hoffmann
150! dt_sort_particles removed
151!
152! 1353 2014-04-08 15:21:23Z heinze
153! REAL constants provided with KIND-attribute
154!
155! 1327 2014-03-21 11:00:16Z raasch
156! parts concerning iso2d and avs output removed,
157! -netcdf output queries
158!
159! 1324 2014-03-21 09:13:16Z suehring
160! Bugfix: module spectrum added
161!
162! 1322 2014-03-20 16:38:49Z raasch
163! REAL functions provided with KIND-attribute,
164! some REAL constants defined as wp-kind
165!
166! 1320 2014-03-20 08:40:49Z raasch
167! ONLY-attribute added to USE-statements,
168! kind-parameters added to all INTEGER and REAL declaration statements,
169! kinds are defined in new module kinds,
170! revision history before 2012 removed,
171! comment fields (!:) to be used for variable explanations added to
172! all variable declaration statements
173!
174! 1308 2014-03-13 14:58:42Z fricke
175! output of the fixed number of output time levels
176! output_format adjusted for masked data if netcdf_data_format > 5
177!
178! 1299 2014-03-06 13:15:21Z heinze
179! output for using large_scale subsidence in combination
180! with large_scale_forcing
181! reformatting, more detailed explanations
182!
183! 1241 2013-10-30 11:36:58Z heinze
184! output for nudging + large scale forcing from external file
185!
186! 1216 2013-08-26 09:31:42Z raasch
187! output for transpose_compute_overlap
188!
189! 1212 2013-08-15 08:46:27Z raasch
190! output for poisfft_hybrid removed
191!
192! 1179 2013-06-14 05:57:58Z raasch
193! output of reference_state, use_reference renamed use_single_reference_value
194!
195! 1159 2013-05-21 11:58:22Z fricke
196! +use_cmax
197!
198! 1115 2013-03-26 18:16:16Z hoffmann
199! descriptions for Seifert-Beheng-cloud-physics-scheme added
200!
201! 1111 2013-03-08 23:54:10Z raasch
202! output of accelerator board information
203! ibc_p_b = 2 removed
204!
205! 1108 2013-03-05 07:03:32Z raasch
206! bugfix for r1106
207!
208! 1106 2013-03-04 05:31:38Z raasch
209! some format changes for coupled runs
210!
211! 1092 2013-02-02 11:24:22Z raasch
212! unused variables removed
213!
214! 1036 2012-10-22 13:43:42Z raasch
215! code put under GPL (PALM 3.9)
216!
217! 1031 2012-10-19 14:35:30Z raasch
218! output of netCDF data format modified
219!
220! 1015 2012-09-27 09:23:24Z raasch
221! output of Adjustment of mixing length to the Prandtl mixing length at first
222! grid point above ground removed
223!
224! 1003 2012-09-14 14:35:53Z raasch
225! output of information about equal/unequal subdomain size removed
226!
227! 1001 2012-09-13 14:08:46Z raasch
228! all actions concerning leapfrog- and upstream-spline-scheme removed
229!
230! 978 2012-08-09 08:28:32Z fricke
231! -km_damp_max, outflow_damping_width
232! +pt_damping_factor, pt_damping_width
233! +z0h
234!
235! 964 2012-07-26 09:14:24Z raasch
236! output of profil-related quantities removed
237!
238! 940 2012-07-09 14:31:00Z raasch
239! Output in case of simulations for pure neutral stratification (no pt-equation
240! solved)
241!
242! 927 2012-06-06 19:15:04Z raasch
243! output of masking_method for mg-solver
244!
245! 868 2012-03-28 12:21:07Z raasch
246! translation velocity in Galilean transformation changed to 0.6 * ug
247!
248! 833 2012-02-22 08:55:55Z maronga
249! Adjusted format for leaf area density
250!
251! 828 2012-02-21 12:00:36Z raasch
252! output of dissipation_classes + radius_classes
253!
254! 825 2012-02-19 03:03:44Z raasch
255! Output of cloud physics parameters/quantities complemented and restructured
256!
257! Revision 1.1  1997/08/11 06:17:20  raasch
258! Initial revision
259!
260!
261! Description:
262! ------------
263!> Writing a header with all important information about the current run.
264!> This subroutine is called three times, two times at the beginning
265!> (writing information on files RUN_CONTROL and HEADER) and one time at the
266!> end of the run, then writing additional information about CPU-usage on file
267!> header.
268!-----------------------------------------------------------------------------!
269 SUBROUTINE header
270 
271
272    USE arrays_3d,                                                             &
273        ONLY:  pt_init, qsws, q_init, s_init, sa_init, shf, ug, vg, w_subs, zu,&
274               zw
275       
276    USE control_parameters
277       
278    USE cloud_parameters,                                                      &
279        ONLY:  cp, l_v, r_d
280
281    USE cpulog,                                                                &
282        ONLY:  log_point_s
283       
284    USE dvrp_variables,                                                        &
285        ONLY:  use_seperate_pe_for_dvrp_output
286       
287    USE flight_mod,                                                            &
288        ONLY:  flight_header
289       
290    USE grid_variables,                                                        &
291        ONLY:  dx, dy
292       
293    USE indices,                                                               &
294        ONLY:  mg_loc_ind, nnx, nny, nnz, nx, ny, nxl_mg, nxr_mg, nyn_mg,      &
295               nys_mg, nzt, nzt_mg
296       
297    USE kinds
298 
299    USE land_surface_model_mod,                                                &
300        ONLY: land_surface, lsm_header
301
302    USE microphysics_mod,                                                      &
303        ONLY:  cloud_water_sedimentation, collision_turbulence,                &
304               c_sedimentation, limiter_sedimentation, nc_const,               &
305               ventilation_effect
306
307    USE model_1d,                                                              &
308        ONLY:  damp_level_ind_1d, dt_pr_1d, dt_run_control_1d, end_time_1d
309       
310    USE netcdf_interface,                                                      &
311        ONLY:  netcdf_data_format, netcdf_data_format_string, netcdf_deflate
312
313    USE particle_attributes,                                                   &
314        ONLY:  bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, collision_kernel,     &
315               curvature_solution_effects,                                     &
316               density_ratio, dissipation_classes, dt_min_part, dt_prel,       &
317               dt_write_particle_data, end_time_prel,                          &
318               number_of_particle_groups, particle_advection,                  &
319               particle_advection_start,                                       &
320               particles_per_point, pdx, pdy, pdz,  psb, psl, psn, psr, pss,   &
321               pst, radius, radius_classes, random_start_position,             &
322               seed_follows_topography,                                        &
323               total_number_of_particles, use_sgs_for_particles,               &
324               vertical_particle_advection, write_particle_statistics
325       
326    USE pegrid
327
328    USE plant_canopy_model_mod,                                                &
329        ONLY:  pcm_header, plant_canopy
330
331    USE pmc_handle_communicator,                                               &
332        ONLY:  pmc_get_model_info
333
334    USE pmc_interface,                                                         &
335        ONLY:  nested_run, nesting_datatransfer_mode, nesting_mode
336
337    USE radiation_model_mod,                                                   &
338        ONLY:  radiation, radiation_header
339   
340    USE spectra_mod,                                                           &
341        ONLY:  calculate_spectra, spectra_header
342
343    IMPLICIT NONE
344
345    CHARACTER (LEN=1)  ::  prec                !<
346   
347    CHARACTER (LEN=2)  ::  do2d_mode           !<
348   
349    CHARACTER (LEN=5)  ::  section_chr         !<
350   
351    CHARACTER (LEN=10) ::  coor_chr            !<
352    CHARACTER (LEN=10) ::  host_chr            !<
353   
354    CHARACTER (LEN=16) ::  begin_chr           !<
355   
356    CHARACTER (LEN=26) ::  ver_rev             !<
357
358    CHARACTER (LEN=32) ::  cpl_name            !<
359   
360    CHARACTER (LEN=40) ::  output_format       !<
361   
362    CHARACTER (LEN=70) ::  char1               !<
363    CHARACTER (LEN=70) ::  char2               !<
364    CHARACTER (LEN=70) ::  dopr_chr            !<
365    CHARACTER (LEN=70) ::  do2d_xy             !<
366    CHARACTER (LEN=70) ::  do2d_xz             !<
367    CHARACTER (LEN=70) ::  do2d_yz             !<
368    CHARACTER (LEN=70) ::  do3d_chr            !<
369    CHARACTER (LEN=70) ::  domask_chr          !<
370    CHARACTER (LEN=70) ::  run_classification  !<
371   
372    CHARACTER (LEN=85) ::  r_upper             !<
373    CHARACTER (LEN=85) ::  r_lower             !<
374   
375    CHARACTER (LEN=86) ::  coordinates         !<
376    CHARACTER (LEN=86) ::  gradients           !<
377    CHARACTER (LEN=86) ::  slices              !<
378    CHARACTER (LEN=86) ::  temperatures        !<
379    CHARACTER (LEN=86) ::  ugcomponent         !<
380    CHARACTER (LEN=86) ::  vgcomponent         !<
381
382    CHARACTER (LEN=1), DIMENSION(1:3) ::  dir = (/ 'x', 'y', 'z' /)  !<
383
384    INTEGER(iwp) ::  av             !<
385    INTEGER(iwp) ::  bh             !<
386    INTEGER(iwp) ::  blx            !<
387    INTEGER(iwp) ::  bly            !<
388    INTEGER(iwp) ::  bxl            !<
389    INTEGER(iwp) ::  bxr            !<
390    INTEGER(iwp) ::  byn            !<
391    INTEGER(iwp) ::  bys            !<
392    INTEGER(iwp) ::  ch             !<
393    INTEGER(iwp) ::  count          !<
394    INTEGER(iwp) ::  cpl_parent_id  !<
395    INTEGER(iwp) ::  cwx            !<
396    INTEGER(iwp) ::  cwy            !<
397    INTEGER(iwp) ::  cxl            !<
398    INTEGER(iwp) ::  cxr            !<
399    INTEGER(iwp) ::  cyn            !<
400    INTEGER(iwp) ::  cys            !<
401    INTEGER(iwp) ::  dim            !<
402    INTEGER(iwp) ::  i              !<
403    INTEGER(iwp) ::  io             !<
404    INTEGER(iwp) ::  j              !<
405    INTEGER(iwp) ::  k              !<
406    INTEGER(iwp) ::  l              !<
407    INTEGER(iwp) ::  ll             !<
408    INTEGER(iwp) ::  mpi_type       !<
409    INTEGER(iwp) ::  my_cpl_id      !<
410    INTEGER(iwp) ::  n              !<
411    INTEGER(iwp) ::  ncpl           !<
412    INTEGER(iwp) ::  npe_total      !<
413   
414
415    REAL(wp) ::  cpuseconds_per_simulated_second  !<
416    REAL(wp) ::  lower_left_coord_x               !< x-coordinate of nest domain
417    REAL(wp) ::  lower_left_coord_y               !< y-coordinate of nest domain
418
419!
420!-- Open the output file. At the end of the simulation, output is directed
421!-- to unit 19.
422    IF ( ( runnr == 0 .OR. force_print_header )  .AND. &
423         .NOT. simulated_time_at_begin /= simulated_time )  THEN
424       io = 15   !  header output on file RUN_CONTROL
425    ELSE
426       io = 19   !  header output on file HEADER
427    ENDIF
428    CALL check_open( io )
429
430!
431!-- At the end of the run, output file (HEADER) will be rewritten with
432!-- new information
433    IF ( io == 19 .AND. simulated_time_at_begin /= simulated_time ) REWIND( 19 )
434
435!
436!-- Determine kind of model run
437    IF ( TRIM( initializing_actions ) == 'read_restart_data' )  THEN
438       run_classification = 'restart run'
439    ELSEIF ( TRIM( initializing_actions ) == 'cyclic_fill' )  THEN
440       run_classification = 'run with cyclic fill of 3D - prerun data'
441    ELSEIF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 )  THEN
442       run_classification = 'run without 1D - prerun'
443    ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
444       run_classification = 'run with 1D - prerun'
445    ELSEIF ( INDEX( initializing_actions, 'by_user' ) /=0 )  THEN
446       run_classification = 'run initialized by user'
447    ELSE
448       message_string = ' unknown action(s): ' // TRIM( initializing_actions )
449       CALL message( 'header', 'PA0191', 0, 0, 0, 6, 0 )
450    ENDIF
451    IF ( nested_run )  run_classification = 'nested ' // run_classification
452    IF ( ocean )  THEN
453       run_classification = 'ocean - ' // run_classification
454    ELSE
455       run_classification = 'atmosphere - ' // run_classification
456    ENDIF
457
458!
459!-- Run-identification, date, time, host
460    host_chr = host(1:10)
461    ver_rev = TRIM( version ) // '  ' // TRIM( revision )
462    WRITE ( io, 100 )  ver_rev, TRIM( run_classification )
463    IF ( TRIM( coupling_mode ) /= 'uncoupled' )  THEN
464#if defined( __mpi2 )
465       mpi_type = 2
466#else
467       mpi_type = 1
468#endif
469       WRITE ( io, 101 )  mpi_type, coupling_mode
470    ENDIF
471#if defined( __parallel )
472    IF ( coupling_start_time /= 0.0_wp )  THEN
473       IF ( coupling_start_time > simulated_time_at_begin )  THEN
474          WRITE ( io, 109 )
475       ELSE
476          WRITE ( io, 114 )
477       ENDIF
478    ENDIF
479#endif
480    IF ( ensemble_member_nr /= 0 )  THEN
481       WRITE ( io, 512 )  run_date, run_identifier, run_time, runnr,           &
482                       ADJUSTR( host_chr ), ensemble_member_nr
483    ELSE
484       WRITE ( io, 102 )  run_date, run_identifier, run_time, runnr,           &
485                       ADJUSTR( host_chr )
486    ENDIF
487#if defined( __parallel )
488    IF ( npex == -1  .AND.  npey == -1 )  THEN
489       char1 = 'calculated'
490    ELSE
491       char1 = 'predefined'
492    ENDIF
493    IF ( threads_per_task == 1 )  THEN
494       WRITE ( io, 103 )  numprocs, pdims(1), pdims(2), TRIM( char1 )
495    ELSE
496       WRITE ( io, 104 )  numprocs*threads_per_task, numprocs, &
497                          threads_per_task, pdims(1), pdims(2), TRIM( char1 )
498    ENDIF
499    IF ( num_acc_per_node /= 0 )  WRITE ( io, 117 )  num_acc_per_node   
500    IF ( ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec'  .OR.    &
501           host(1:2) == 'lc'   .OR.  host(1:3) == 'dec' )  .AND. &
502         npex == -1  .AND.  pdims(2) == 1 )                      &
503    THEN
504       WRITE ( io, 106 )
505    ELSEIF ( pdims(2) == 1 )  THEN
506       WRITE ( io, 107 )  'x'
507    ELSEIF ( pdims(1) == 1 )  THEN
508       WRITE ( io, 107 )  'y'
509    ENDIF
510    IF ( use_seperate_pe_for_dvrp_output )  WRITE ( io, 105 )
511    IF ( numprocs /= maximum_parallel_io_streams )  THEN
512       WRITE ( io, 108 )  maximum_parallel_io_streams
513    ENDIF
514#else
515    IF ( num_acc_per_node /= 0 )  WRITE ( io, 120 )  num_acc_per_node
516#endif
517
518!
519!-- Nesting informations
520    IF ( nested_run )  THEN
521
522       WRITE ( io, 600 )  TRIM( nesting_mode ),                                &
523                          TRIM( nesting_datatransfer_mode )
524       CALL pmc_get_model_info( ncpl = ncpl, cpl_id = my_cpl_id )
525
526       DO  n = 1, ncpl
527          CALL pmc_get_model_info( request_for_cpl_id = n, cpl_name = cpl_name,&
528                                   cpl_parent_id = cpl_parent_id,              &
529                                   lower_left_x = lower_left_coord_x,          &
530                                   lower_left_y = lower_left_coord_y,          &
531                                   npe_total = npe_total )
532          IF ( n == my_cpl_id )  THEN
533             char1 = '*'
534          ELSE
535             char1 = ' '
536          ENDIF
537          WRITE ( io, 601 )  TRIM( char1 ), n, cpl_parent_id, npe_total,       &
538                             lower_left_coord_x, lower_left_coord_y,           &
539                             TRIM( cpl_name )
540       ENDDO
541    ENDIF
542    WRITE ( io, 99 )
543
544!
545!-- Numerical schemes
546    WRITE ( io, 110 )
547    IF ( psolver(1:7) == 'poisfft' )  THEN
548       WRITE ( io, 111 )  TRIM( fft_method )
549       IF ( transpose_compute_overlap )  WRITE( io, 115 )
550    ELSEIF ( psolver == 'sor' )  THEN
551       WRITE ( io, 112 )  nsor_ini, nsor, omega_sor
552    ELSEIF ( psolver(1:9) == 'multigrid' )  THEN
553       WRITE ( io, 135 )  TRIM(psolver), cycle_mg, maximum_grid_level, ngsrb
554       IF ( mg_cycles == -1 )  THEN
555          WRITE ( io, 140 )  residual_limit
556       ELSE
557          WRITE ( io, 141 )  mg_cycles
558       ENDIF
559       IF ( mg_switch_to_pe0_level == 0 )  THEN
560          WRITE ( io, 136 )  nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
561                             nzt_mg(1)
562       ELSEIF (  mg_switch_to_pe0_level /= -1 )  THEN
563          WRITE ( io, 137 )  mg_switch_to_pe0_level,            &
564                             mg_loc_ind(2,0)-mg_loc_ind(1,0)+1, &
565                             mg_loc_ind(4,0)-mg_loc_ind(3,0)+1, &
566                             nzt_mg(mg_switch_to_pe0_level),    &
567                             nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
568                             nzt_mg(1)
569       ENDIF
570       IF ( psolver == 'multigrid_noopt' .AND. masking_method )  WRITE ( io, 144 )
571    ENDIF
572    IF ( call_psolver_at_all_substeps  .AND. timestep_scheme(1:5) == 'runge' ) &
573    THEN
574       WRITE ( io, 142 )
575    ENDIF
576
577    IF ( momentum_advec == 'pw-scheme' )  THEN
578       WRITE ( io, 113 )
579    ELSEIF (momentum_advec == 'ws-scheme' )  THEN
580       WRITE ( io, 503 )
581    ENDIF
582    IF ( scalar_advec == 'pw-scheme' )  THEN
583       WRITE ( io, 116 )
584    ELSEIF ( scalar_advec == 'ws-scheme' )  THEN
585       WRITE ( io, 504 )
586    ELSEIF ( scalar_advec == 'ws-scheme-mono' )  THEN
587       WRITE ( io, 513 )
588    ELSE
589       WRITE ( io, 118 )
590    ENDIF
591
592    WRITE ( io, 139 )  TRIM( loop_optimization )
593
594    IF ( galilei_transformation )  THEN
595       IF ( use_ug_for_galilei_tr )  THEN
596          char1 = '0.6 * geostrophic wind'
597       ELSE
598          char1 = 'mean wind in model domain'
599       ENDIF
600       IF ( simulated_time_at_begin == simulated_time )  THEN
601          char2 = 'at the start of the run'
602       ELSE
603          char2 = 'at the end of the run'
604       ENDIF
605       WRITE ( io, 119 )  TRIM( char1 ), TRIM( char2 ),                        &
606                          advected_distance_x/1000.0_wp,                       &
607                          advected_distance_y/1000.0_wp
608    ENDIF
609    WRITE ( io, 122 )  timestep_scheme
610    IF ( use_upstream_for_tke )  WRITE ( io, 143 )
611    IF ( rayleigh_damping_factor /= 0.0_wp )  THEN
612       IF ( .NOT. ocean )  THEN
613          WRITE ( io, 123 )  'above', rayleigh_damping_height, &
614               rayleigh_damping_factor
615       ELSE
616          WRITE ( io, 123 )  'below', rayleigh_damping_height, &
617               rayleigh_damping_factor
618       ENDIF
619    ENDIF
620    IF ( neutral )  WRITE ( io, 131 )  pt_surface
621    IF ( humidity )  THEN
622       IF ( .NOT. cloud_physics )  THEN
623          WRITE ( io, 129 )
624       ELSE
625          WRITE ( io, 130 )
626       ENDIF
627    ENDIF
628    IF ( passive_scalar )  WRITE ( io, 134 )
629    IF ( conserve_volume_flow )  THEN
630       WRITE ( io, 150 )  conserve_volume_flow_mode
631       IF ( TRIM( conserve_volume_flow_mode ) == 'bulk_velocity' )  THEN
632          WRITE ( io, 151 )  u_bulk, v_bulk
633       ENDIF
634    ELSEIF ( dp_external )  THEN
635       IF ( dp_smooth )  THEN
636          WRITE ( io, 152 )  dpdxy, dp_level_b, ', vertically smoothed.'
637       ELSE
638          WRITE ( io, 152 )  dpdxy, dp_level_b, '.'
639       ENDIF
640    ENDIF
641    WRITE ( io, 99 )
642
643!
644!-- Runtime and timestep information
645    WRITE ( io, 200 )
646    IF ( .NOT. dt_fixed )  THEN
647       WRITE ( io, 201 )  dt_max, cfl_factor
648    ELSE
649       WRITE ( io, 202 )  dt
650    ENDIF
651    WRITE ( io, 203 )  simulated_time_at_begin, end_time
652
653    IF ( time_restart /= 9999999.9_wp  .AND. &
654         simulated_time_at_begin == simulated_time )  THEN
655       IF ( dt_restart == 9999999.9_wp )  THEN
656          WRITE ( io, 204 )  ' Restart at:       ',time_restart
657       ELSE
658          WRITE ( io, 205 )  ' Restart at:       ',time_restart, dt_restart
659       ENDIF
660    ENDIF
661
662    IF ( simulated_time_at_begin /= simulated_time )  THEN
663       i = MAX ( log_point_s(10)%counts, 1 )
664       IF ( ( simulated_time - simulated_time_at_begin ) == 0.0_wp )  THEN
665          cpuseconds_per_simulated_second = 0.0_wp
666       ELSE
667          cpuseconds_per_simulated_second = log_point_s(10)%sum / &
668                                            ( simulated_time -    &
669                                              simulated_time_at_begin )
670       ENDIF
671       WRITE ( io, 206 )  simulated_time, log_point_s(10)%sum,      &
672                          log_point_s(10)%sum / REAL( i, KIND=wp ), &
673                          cpuseconds_per_simulated_second
674       IF ( time_restart /= 9999999.9_wp  .AND.  time_restart < end_time )  THEN
675          IF ( dt_restart == 9999999.9_wp )  THEN
676             WRITE ( io, 204 )  ' Next restart at:     ',time_restart
677          ELSE
678             WRITE ( io, 205 )  ' Next restart at:     ',time_restart, dt_restart
679          ENDIF
680       ENDIF
681    ENDIF
682
683
684!
685!-- Start time for coupled runs, if independent precursor runs for atmosphere
686!-- and ocean are used or have been used. In this case, coupling_start_time
687!-- defines the time when the coupling is switched on.
688    IF ( coupling_start_time /= 0.0_wp )  THEN
689       WRITE ( io, 207 )  coupling_start_time
690    ENDIF
691
692!
693!-- Computational grid
694    IF ( .NOT. ocean )  THEN
695       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(nzt+1)
696       IF ( dz_stretch_level_index < nzt+1 )  THEN
697          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
698                             dz_stretch_factor, dz_max
699       ENDIF
700    ELSE
701       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(0)
702       IF ( dz_stretch_level_index > 0 )  THEN
703          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
704                             dz_stretch_factor, dz_max
705       ENDIF
706    ENDIF
707    WRITE ( io, 254 )  nx, ny, nzt+1, MIN( nnx, nx+1 ), MIN( nny, ny+1 ), &
708                       MIN( nnz+2, nzt+2 )
709    IF ( sloping_surface )  WRITE ( io, 260 )  alpha_surface
710
711!
712!-- Large scale forcing and nudging
713    WRITE ( io, 160 )
714    IF ( large_scale_forcing )  THEN
715       WRITE ( io, 162 )
716       WRITE ( io, 163 )
717
718       IF ( large_scale_subsidence )  THEN
719          IF ( .NOT. use_subsidence_tendencies )  THEN
720             WRITE ( io, 164 )
721          ELSE
722             WRITE ( io, 165 )
723          ENDIF
724       ENDIF
725
726       IF ( bc_pt_b == 'dirichlet' )  THEN
727          WRITE ( io, 180 )
728       ELSEIF ( bc_pt_b == 'neumann' )  THEN
729          WRITE ( io, 181 )
730       ENDIF
731
732       IF ( bc_q_b == 'dirichlet' )  THEN
733          WRITE ( io, 182 )
734       ELSEIF ( bc_q_b == 'neumann' )  THEN
735          WRITE ( io, 183 )
736       ENDIF
737
738       WRITE ( io, 167 )
739       IF ( nudging )  THEN
740          WRITE ( io, 170 )
741       ENDIF
742    ELSE
743       WRITE ( io, 161 )
744       WRITE ( io, 171 )
745    ENDIF
746    IF ( large_scale_subsidence )  THEN
747       WRITE ( io, 168 )
748       WRITE ( io, 169 )
749    ENDIF
750
751!
752!-- Profile for the large scale vertial velocity
753!-- Building output strings, starting with surface value
754    IF ( large_scale_subsidence )  THEN
755       temperatures = '   0.0'
756       gradients = '------'
757       slices = '     0'
758       coordinates = '   0.0'
759       i = 1
760       DO  WHILE ( subs_vertical_gradient_level_i(i) /= -9999 )
761
762          WRITE (coor_chr,'(E10.2,7X)')  &
763                                w_subs(subs_vertical_gradient_level_i(i))
764          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
765
766          WRITE (coor_chr,'(E10.2,7X)')  subs_vertical_gradient(i)
767          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
768
769          WRITE (coor_chr,'(I10,7X)')  subs_vertical_gradient_level_i(i)
770          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
771
772          WRITE (coor_chr,'(F10.2,7X)')  subs_vertical_gradient_level(i)
773          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
774
775          IF ( i == 10 )  THEN
776             EXIT
777          ELSE
778             i = i + 1
779          ENDIF
780
781       ENDDO
782
783 
784       IF ( .NOT. large_scale_forcing )  THEN
785          WRITE ( io, 426 )  TRIM( coordinates ), TRIM( temperatures ), &
786                             TRIM( gradients ), TRIM( slices )
787       ENDIF
788
789
790    ENDIF
791
792!-- Profile of the geostrophic wind (component ug)
793!-- Building output strings
794    WRITE ( ugcomponent, '(F6.2)' )  ug_surface
795    gradients = '------'
796    slices = '     0'
797    coordinates = '   0.0'
798    i = 1
799    DO  WHILE ( ug_vertical_gradient_level_ind(i) /= -9999 )
800     
801       WRITE (coor_chr,'(F6.2,1X)')  ug(ug_vertical_gradient_level_ind(i))
802       ugcomponent = TRIM( ugcomponent ) // '  ' // TRIM( coor_chr )
803
804       WRITE (coor_chr,'(F6.2,1X)')  ug_vertical_gradient(i)
805       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
806
807       WRITE (coor_chr,'(I6,1X)')  ug_vertical_gradient_level_ind(i)
808       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
809
810       WRITE (coor_chr,'(F6.1,1X)')  ug_vertical_gradient_level(i)
811       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
812
813       IF ( i == 10 )  THEN
814          EXIT
815       ELSE
816          i = i + 1
817       ENDIF
818
819    ENDDO
820
821    IF ( .NOT. large_scale_forcing )  THEN
822       WRITE ( io, 423 )  TRIM( coordinates ), TRIM( ugcomponent ), &
823                          TRIM( gradients ), TRIM( slices )
824    ENDIF
825
826!-- Profile of the geostrophic wind (component vg)
827!-- Building output strings
828    WRITE ( vgcomponent, '(F6.2)' )  vg_surface
829    gradients = '------'
830    slices = '     0'
831    coordinates = '   0.0'
832    i = 1
833    DO  WHILE ( vg_vertical_gradient_level_ind(i) /= -9999 )
834
835       WRITE (coor_chr,'(F6.2,1X)')  vg(vg_vertical_gradient_level_ind(i))
836       vgcomponent = TRIM( vgcomponent ) // '  ' // TRIM( coor_chr )
837
838       WRITE (coor_chr,'(F6.2,1X)')  vg_vertical_gradient(i)
839       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
840
841       WRITE (coor_chr,'(I6,1X)')  vg_vertical_gradient_level_ind(i)
842       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
843
844       WRITE (coor_chr,'(F6.1,1X)')  vg_vertical_gradient_level(i)
845       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
846
847       IF ( i == 10 )  THEN
848          EXIT
849       ELSE
850          i = i + 1
851       ENDIF
852 
853    ENDDO
854
855    IF ( .NOT. large_scale_forcing )  THEN
856       WRITE ( io, 424 )  TRIM( coordinates ), TRIM( vgcomponent ), &
857                          TRIM( gradients ), TRIM( slices )
858    ENDIF
859
860!
861!-- Topography
862    WRITE ( io, 270 )  topography
863    SELECT CASE ( TRIM( topography ) )
864
865       CASE ( 'flat' )
866          ! no actions necessary
867
868       CASE ( 'single_building' )
869          blx = INT( building_length_x / dx )
870          bly = INT( building_length_y / dy )
871          bh  = MINLOC( ABS( zw - building_height ), 1 ) - 1
872          IF ( ABS( zw(bh  ) - building_height ) == &
873               ABS( zw(bh+1) - building_height )    )  bh = bh + 1
874
875          IF ( building_wall_left == 9999999.9_wp )  THEN
876             building_wall_left = ( nx + 1 - blx ) / 2 * dx
877          ENDIF
878          bxl = INT ( building_wall_left / dx + 0.5_wp )
879          bxr = bxl + blx
880
881          IF ( building_wall_south == 9999999.9_wp )  THEN
882             building_wall_south = ( ny + 1 - bly ) / 2 * dy
883          ENDIF
884          bys = INT ( building_wall_south / dy + 0.5_wp )
885          byn = bys + bly
886
887          WRITE ( io, 271 )  building_length_x, building_length_y, &
888                             building_height, bxl, bxr, bys, byn
889
890       CASE ( 'single_street_canyon' )
891          ch  = MINLOC( ABS( zw - canyon_height ), 1 ) - 1
892          IF ( ABS( zw(ch  ) - canyon_height ) == &
893               ABS( zw(ch+1) - canyon_height )    )  ch = ch + 1
894          IF ( canyon_width_x /= 9999999.9_wp )  THEN
895!
896!--          Street canyon in y direction
897             cwx = NINT( canyon_width_x / dx )
898             IF ( canyon_wall_left == 9999999.9_wp )  THEN
899                canyon_wall_left = ( nx + 1 - cwx ) / 2 * dx
900             ENDIF
901             cxl = NINT( canyon_wall_left / dx )
902             cxr = cxl + cwx
903             WRITE ( io, 272 )  'y', canyon_height, ch, 'u', cxl, cxr
904
905          ELSEIF ( canyon_width_y /= 9999999.9_wp )  THEN
906!
907!--          Street canyon in x direction
908             cwy = NINT( canyon_width_y / dy )
909             IF ( canyon_wall_south == 9999999.9_wp )  THEN
910                canyon_wall_south = ( ny + 1 - cwy ) / 2 * dy
911             ENDIF
912             cys = NINT( canyon_wall_south / dy )
913             cyn = cys + cwy
914             WRITE ( io, 272 )  'x', canyon_height, ch, 'v', cys, cyn
915          ENDIF
916
917    END SELECT
918
919    IF ( TRIM( topography ) /= 'flat' )  THEN
920       IF ( TRIM( topography_grid_convention ) == ' ' )  THEN
921          IF ( TRIM( topography ) == 'single_building' .OR.  &
922               TRIM( topography ) == 'single_street_canyon' )  THEN
923             WRITE ( io, 278 )
924          ELSEIF ( TRIM( topography ) == 'read_from_file' )  THEN
925             WRITE ( io, 279 )
926          ENDIF
927       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_edge' )  THEN
928          WRITE ( io, 278 )
929       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_center' )  THEN
930          WRITE ( io, 279 )
931       ENDIF
932    ENDIF
933
934    IF ( plant_canopy )  CALL pcm_header ( io )
935
936    IF ( land_surface )  CALL lsm_header ( io )
937
938    IF ( radiation )  CALL radiation_header ( io )
939
940!
941!-- Boundary conditions
942    IF ( ibc_p_b == 0 )  THEN
943       r_lower = 'p(0)     = 0      |'
944    ELSEIF ( ibc_p_b == 1 )  THEN
945       r_lower = 'p(0)     = p(1)   |'
946    ENDIF
947    IF ( ibc_p_t == 0 )  THEN
948       r_upper  = 'p(nzt+1) = 0      |'
949    ELSE
950       r_upper  = 'p(nzt+1) = p(nzt) |'
951    ENDIF
952
953    IF ( ibc_uv_b == 0 )  THEN
954       r_lower = TRIM( r_lower ) // ' uv(0)     = -uv(1)                |'
955    ELSE
956       r_lower = TRIM( r_lower ) // ' uv(0)     = uv(1)                 |'
957    ENDIF
958    IF ( TRIM( bc_uv_t ) == 'dirichlet_0' )  THEN
959       r_upper  = TRIM( r_upper  ) // ' uv(nzt+1) = 0                     |'
960    ELSEIF ( ibc_uv_t == 0 )  THEN
961       r_upper  = TRIM( r_upper  ) // ' uv(nzt+1) = ug(nzt+1), vg(nzt+1)  |'
962    ELSE
963       r_upper  = TRIM( r_upper  ) // ' uv(nzt+1) = uv(nzt)               |'
964    ENDIF
965
966    IF ( ibc_pt_b == 0 )  THEN
967       IF ( land_surface )  THEN
968          r_lower = TRIM( r_lower ) // ' pt(0)     = from soil model'
969       ELSE
970          r_lower = TRIM( r_lower ) // ' pt(0)     = pt_surface'
971       ENDIF
972    ELSEIF ( ibc_pt_b == 1 )  THEN
973       r_lower = TRIM( r_lower ) // ' pt(0)     = pt(1)'
974    ELSEIF ( ibc_pt_b == 2 )  THEN
975       r_lower = TRIM( r_lower ) // ' pt(0)     = from coupled model'
976    ENDIF
977    IF ( ibc_pt_t == 0 )  THEN
978       r_upper  = TRIM( r_upper  ) // ' pt(nzt+1) = pt_top'
979    ELSEIF( ibc_pt_t == 1 )  THEN
980       r_upper  = TRIM( r_upper  ) // ' pt(nzt+1) = pt(nzt)'
981    ELSEIF( ibc_pt_t == 2 )  THEN
982       r_upper  = TRIM( r_upper  ) // ' pt(nzt+1) = pt(nzt) + dpt/dz_ini'
983
984    ENDIF
985
986    WRITE ( io, 300 )  r_lower, r_upper
987
988    IF ( .NOT. constant_diffusion )  THEN
989       IF ( ibc_e_b == 1 )  THEN
990          r_lower = 'e(0)     = e(1)'
991       ELSE
992          r_lower = 'e(0)     = e(1) = (u*/0.1)**2'
993       ENDIF
994       r_upper = 'e(nzt+1) = e(nzt) = e(nzt-1)'
995
996       WRITE ( io, 301 )  'e', r_lower, r_upper       
997
998    ENDIF
999
1000    IF ( ocean )  THEN
1001       r_lower = 'sa(0)    = sa(1)'
1002       IF ( ibc_sa_t == 0 )  THEN
1003          r_upper =  'sa(nzt+1) = sa_surface'
1004       ELSE
1005          r_upper =  'sa(nzt+1) = sa(nzt)'
1006       ENDIF
1007       WRITE ( io, 301 ) 'sa', r_lower, r_upper
1008    ENDIF
1009
1010    IF ( humidity )  THEN
1011       IF ( ibc_q_b == 0 )  THEN
1012          IF ( land_surface )  THEN
1013             r_lower = 'q(0)     = from soil model'
1014          ELSE
1015             r_lower = 'q(0)     = q_surface'
1016          ENDIF
1017
1018       ELSE
1019          r_lower = 'q(0)     = q(1)'
1020       ENDIF
1021       IF ( ibc_q_t == 0 )  THEN
1022          r_upper =  'q(nzt)   = q_top'
1023       ELSE
1024          r_upper =  'q(nzt)   = q(nzt-1) + dq/dz'
1025       ENDIF
1026       WRITE ( io, 301 ) 'q', r_lower, r_upper
1027    ENDIF
1028
1029    IF ( passive_scalar )  THEN
1030       IF ( ibc_s_b == 0 )  THEN
1031          r_lower = 's(0)     = s_surface'
1032       ELSE
1033          r_lower = 's(0)     = s(1)'
1034       ENDIF
1035       IF ( ibc_s_t == 0 )  THEN
1036          r_upper =  's(nzt)   = s_top'
1037       ELSE
1038          r_upper =  's(nzt)   = s(nzt-1) + ds/dz'
1039       ENDIF
1040       WRITE ( io, 301 ) 's', r_lower, r_upper
1041    ENDIF
1042
1043    IF ( use_surface_fluxes )  THEN
1044       WRITE ( io, 303 )
1045       IF ( constant_heatflux )  THEN
1046          IF ( large_scale_forcing .AND. lsf_surf )  THEN
1047             WRITE ( io, 306 )  shf(0,0)
1048          ELSE
1049             WRITE ( io, 306 )  surface_heatflux
1050          ENDIF
1051          IF ( random_heatflux )  WRITE ( io, 307 )
1052       ENDIF
1053       IF ( humidity  .AND.  constant_waterflux )  THEN
1054          IF ( large_scale_forcing .AND. lsf_surf )  THEN
1055             WRITE ( io, 311 ) qsws(0,0)
1056          ELSE
1057             WRITE ( io, 311 ) surface_waterflux
1058          ENDIF
1059       ENDIF
1060       IF ( passive_scalar  .AND.  constant_scalarflux )  THEN
1061          WRITE ( io, 313 ) surface_scalarflux
1062       ENDIF
1063    ENDIF
1064
1065    IF ( use_top_fluxes )  THEN
1066       WRITE ( io, 304 )
1067       IF ( coupling_mode == 'uncoupled' )  THEN
1068          WRITE ( io, 320 )  top_momentumflux_u, top_momentumflux_v
1069          IF ( constant_top_heatflux )  THEN
1070             WRITE ( io, 306 )  top_heatflux
1071          ENDIF
1072       ELSEIF ( coupling_mode == 'ocean_to_atmosphere' )  THEN
1073          WRITE ( io, 316 )
1074       ENDIF
1075       IF ( ocean  .AND.  constant_top_salinityflux )  THEN
1076          WRITE ( io, 309 )  top_salinityflux
1077       ENDIF
1078       IF ( humidity       )  WRITE ( io, 315 )
1079       IF ( passive_scalar )  WRITE ( io, 315 )
1080    ENDIF
1081
1082    IF ( constant_flux_layer )  THEN
1083       WRITE ( io, 305 )  (zu(1)-zu(0)), roughness_length,                     &
1084                          z0h_factor*roughness_length, kappa,                  &
1085                          zeta_min, zeta_max
1086       IF ( .NOT. constant_heatflux )  WRITE ( io, 308 )
1087       IF ( humidity  .AND.  .NOT. constant_waterflux )  THEN
1088          WRITE ( io, 312 )
1089       ENDIF
1090       IF ( passive_scalar  .AND.  .NOT. constant_scalarflux )  THEN
1091          WRITE ( io, 314 )
1092       ENDIF
1093    ELSE
1094       IF ( INDEX(initializing_actions, 'set_1d-model_profiles') /= 0 )  THEN
1095          WRITE ( io, 310 )  zeta_min, zeta_max
1096       ENDIF
1097    ENDIF
1098
1099    WRITE ( io, 317 )  bc_lr, bc_ns
1100    IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
1101       WRITE ( io, 318 )  use_cmax, pt_damping_width, pt_damping_factor       
1102       IF ( turbulent_inflow )  THEN
1103          IF ( .NOT. recycling_yshift ) THEN
1104             WRITE ( io, 319 )  recycling_width, recycling_plane, &
1105                                inflow_damping_height, inflow_damping_width
1106          ELSE
1107             WRITE ( io, 322 )  recycling_width, recycling_plane, &
1108                                inflow_damping_height, inflow_damping_width
1109          END IF
1110       ENDIF
1111    ENDIF
1112
1113!
1114!-- Initial Profiles
1115    WRITE ( io, 321 )
1116!
1117!-- Initial wind profiles
1118    IF ( u_profile(1) /= 9999999.9_wp )  WRITE ( io, 427 )
1119
1120!
1121!-- Initial temperature profile
1122!-- Building output strings, starting with surface temperature
1123    WRITE ( temperatures, '(F6.2)' )  pt_surface
1124    gradients = '------'
1125    slices = '     0'
1126    coordinates = '   0.0'
1127    i = 1
1128    DO  WHILE ( pt_vertical_gradient_level_ind(i) /= -9999 )
1129
1130       WRITE (coor_chr,'(F7.2)')  pt_init(pt_vertical_gradient_level_ind(i))
1131       temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1132
1133       WRITE (coor_chr,'(F7.2)')  pt_vertical_gradient(i)
1134       gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1135
1136       WRITE (coor_chr,'(I7)')  pt_vertical_gradient_level_ind(i)
1137       slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1138
1139       WRITE (coor_chr,'(F7.1)')  pt_vertical_gradient_level(i)
1140       coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1141
1142       IF ( i == 10 )  THEN
1143          EXIT
1144       ELSE
1145          i = i + 1
1146       ENDIF
1147
1148    ENDDO
1149
1150    IF ( .NOT. nudging )  THEN
1151       WRITE ( io, 420 )  TRIM( coordinates ), TRIM( temperatures ), &
1152                          TRIM( gradients ), TRIM( slices )
1153    ELSE
1154       WRITE ( io, 428 ) 
1155    ENDIF
1156
1157!
1158!-- Initial humidity profile
1159!-- Building output strings, starting with surface humidity
1160    IF ( humidity )  THEN
1161       WRITE ( temperatures, '(E8.1)' )  q_surface
1162       gradients = '--------'
1163       slices = '       0'
1164       coordinates = '     0.0'
1165       i = 1
1166       DO  WHILE ( q_vertical_gradient_level_ind(i) /= -9999 )
1167         
1168          WRITE (coor_chr,'(E8.1,4X)')  q_init(q_vertical_gradient_level_ind(i))
1169          temperatures = TRIM( temperatures ) // '  ' // TRIM( coor_chr )
1170
1171          WRITE (coor_chr,'(E8.1,4X)')  q_vertical_gradient(i)
1172          gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1173         
1174          WRITE (coor_chr,'(I8,4X)')  q_vertical_gradient_level_ind(i)
1175          slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1176         
1177          WRITE (coor_chr,'(F8.1,4X)')  q_vertical_gradient_level(i)
1178          coordinates = TRIM( coordinates ) // '  '  // TRIM( coor_chr )
1179
1180          IF ( i == 10 )  THEN
1181             EXIT
1182          ELSE
1183             i = i + 1
1184          ENDIF
1185
1186       ENDDO
1187
1188       IF ( .NOT. nudging )  THEN
1189          WRITE ( io, 421 )  TRIM( coordinates ), TRIM( temperatures ),        &
1190                             TRIM( gradients ), TRIM( slices )
1191       ENDIF
1192    ENDIF
1193!
1194!-- Initial scalar profile
1195!-- Building output strings, starting with surface humidity
1196    IF ( passive_scalar )  THEN
1197       WRITE ( temperatures, '(E8.1)' )  s_surface
1198       gradients = '--------'
1199       slices = '       0'
1200       coordinates = '     0.0'
1201       i = 1
1202       DO  WHILE ( s_vertical_gradient_level_ind(i) /= -9999 )
1203         
1204          WRITE (coor_chr,'(E8.1,4X)')  s_init(q_vertical_gradient_level_ind(i))
1205          temperatures = TRIM( temperatures ) // '  ' // TRIM( coor_chr )
1206
1207          WRITE (coor_chr,'(E8.1,4X)')  s_vertical_gradient(i)
1208          gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1209         
1210          WRITE (coor_chr,'(I8,4X)')  s_vertical_gradient_level_ind(i)
1211          slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1212         
1213          WRITE (coor_chr,'(F8.1,4X)')  s_vertical_gradient_level(i)
1214          coordinates = TRIM( coordinates ) // '  '  // TRIM( coor_chr )
1215
1216          IF ( i == 10 )  THEN
1217             EXIT
1218          ELSE
1219             i = i + 1
1220          ENDIF
1221
1222       ENDDO
1223
1224       WRITE ( io, 422 )  TRIM( coordinates ), TRIM( temperatures ),           &
1225                          TRIM( gradients ), TRIM( slices )
1226    ENDIF   
1227
1228!
1229!-- Initial salinity profile
1230!-- Building output strings, starting with surface salinity
1231    IF ( ocean )  THEN
1232       WRITE ( temperatures, '(F6.2)' )  sa_surface
1233       gradients = '------'
1234       slices = '     0'
1235       coordinates = '   0.0'
1236       i = 1
1237       DO  WHILE ( sa_vertical_gradient_level_ind(i) /= -9999 )
1238
1239          WRITE (coor_chr,'(F7.2)')  sa_init(sa_vertical_gradient_level_ind(i))
1240          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1241
1242          WRITE (coor_chr,'(F7.2)')  sa_vertical_gradient(i)
1243          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1244
1245          WRITE (coor_chr,'(I7)')  sa_vertical_gradient_level_ind(i)
1246          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1247
1248          WRITE (coor_chr,'(F7.1)')  sa_vertical_gradient_level(i)
1249          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1250
1251          IF ( i == 10 )  THEN
1252             EXIT
1253          ELSE
1254             i = i + 1
1255          ENDIF
1256
1257       ENDDO
1258
1259       WRITE ( io, 425 )  TRIM( coordinates ), TRIM( temperatures ), &
1260                          TRIM( gradients ), TRIM( slices )
1261    ENDIF
1262
1263
1264!
1265!-- Listing of 1D-profiles
1266    WRITE ( io, 325 )  dt_dopr_listing
1267    IF ( averaging_interval_pr /= 0.0_wp )  THEN
1268       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
1269    ENDIF
1270
1271!
1272!-- DATA output
1273    WRITE ( io, 330 )
1274    IF ( averaging_interval_pr /= 0.0_wp )  THEN
1275       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
1276    ENDIF
1277
1278!
1279!-- 1D-profiles
1280    dopr_chr = 'Profile:'
1281    IF ( dopr_n /= 0 )  THEN
1282       WRITE ( io, 331 )
1283
1284       output_format = ''
1285       output_format = netcdf_data_format_string
1286       IF ( netcdf_deflate == 0 )  THEN
1287          WRITE ( io, 344 )  output_format
1288       ELSE
1289          WRITE ( io, 354 )  TRIM( output_format ), netcdf_deflate
1290       ENDIF
1291
1292       DO  i = 1, dopr_n
1293          dopr_chr = TRIM( dopr_chr ) // ' ' // TRIM( data_output_pr(i) ) // ','
1294          IF ( LEN_TRIM( dopr_chr ) >= 60 )  THEN
1295             WRITE ( io, 332 )  dopr_chr
1296             dopr_chr = '       :'
1297          ENDIF
1298       ENDDO
1299
1300       IF ( dopr_chr /= '' )  THEN
1301          WRITE ( io, 332 )  dopr_chr
1302       ENDIF
1303       WRITE ( io, 333 )  dt_dopr, averaging_interval_pr, dt_averaging_input_pr
1304       IF ( skip_time_dopr /= 0.0_wp )  WRITE ( io, 339 )  skip_time_dopr
1305    ENDIF
1306
1307!
1308!-- 2D-arrays
1309    DO  av = 0, 1
1310
1311       i = 1
1312       do2d_xy = ''
1313       do2d_xz = ''
1314       do2d_yz = ''
1315       DO  WHILE ( do2d(av,i) /= ' ' )
1316
1317          l = MAX( 2, LEN_TRIM( do2d(av,i) ) )
1318          do2d_mode = do2d(av,i)(l-1:l)
1319
1320          SELECT CASE ( do2d_mode )
1321             CASE ( 'xy' )
1322                ll = LEN_TRIM( do2d_xy )
1323                do2d_xy = do2d_xy(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
1324             CASE ( 'xz' )
1325                ll = LEN_TRIM( do2d_xz )
1326                do2d_xz = do2d_xz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
1327             CASE ( 'yz' )
1328                ll = LEN_TRIM( do2d_yz )
1329                do2d_yz = do2d_yz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
1330          END SELECT
1331
1332          i = i + 1
1333
1334       ENDDO
1335
1336       IF ( ( ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  .OR.    &
1337              ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  .OR.    &
1338              ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 ) ) )  THEN
1339
1340          IF (  av == 0 )  THEN
1341             WRITE ( io, 334 )  ''
1342          ELSE
1343             WRITE ( io, 334 )  '(time-averaged)'
1344          ENDIF
1345
1346          IF ( do2d_at_begin )  THEN
1347             begin_chr = 'and at the start'
1348          ELSE
1349             begin_chr = ''
1350          ENDIF
1351
1352          output_format = ''
1353          output_format = netcdf_data_format_string
1354          IF ( netcdf_deflate == 0 )  THEN
1355             WRITE ( io, 344 )  output_format
1356          ELSE
1357             WRITE ( io, 354 )  TRIM( output_format ), netcdf_deflate
1358          ENDIF
1359
1360          IF ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  THEN
1361             i = 1
1362             slices = '/'
1363             coordinates = '/'
1364!
1365!--          Building strings with index and coordinate information of the
1366!--          slices
1367             DO  WHILE ( section(i,1) /= -9999 )
1368
1369                WRITE (section_chr,'(I5)')  section(i,1)
1370                section_chr = ADJUSTL( section_chr )
1371                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
1372
1373                IF ( section(i,1) == -1 )  THEN
1374                   WRITE (coor_chr,'(F10.1)')  -1.0_wp
1375                ELSE
1376                   WRITE (coor_chr,'(F10.1)')  zu(section(i,1))
1377                ENDIF
1378                coor_chr = ADJUSTL( coor_chr )
1379                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
1380
1381                i = i + 1
1382             ENDDO
1383             IF ( av == 0 )  THEN
1384                WRITE ( io, 335 )  'XY', do2d_xy, dt_do2d_xy, &
1385                                   TRIM( begin_chr ), 'k', TRIM( slices ), &
1386                                   TRIM( coordinates )
1387                IF ( skip_time_do2d_xy /= 0.0_wp )  THEN
1388                   WRITE ( io, 339 )  skip_time_do2d_xy
1389                ENDIF
1390             ELSE
1391                WRITE ( io, 342 )  'XY', do2d_xy, dt_data_output_av, &
1392                                   TRIM( begin_chr ), averaging_interval, &
1393                                   dt_averaging_input, 'k', TRIM( slices ), &
1394                                   TRIM( coordinates )
1395                IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1396                   WRITE ( io, 339 )  skip_time_data_output_av
1397                ENDIF
1398             ENDIF
1399             IF ( netcdf_data_format > 4 )  THEN
1400                WRITE ( io, 352 )  ntdim_2d_xy(av)
1401             ELSE
1402                WRITE ( io, 353 )
1403             ENDIF
1404          ENDIF
1405
1406          IF ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  THEN
1407             i = 1
1408             slices = '/'
1409             coordinates = '/'
1410!
1411!--          Building strings with index and coordinate information of the
1412!--          slices
1413             DO  WHILE ( section(i,2) /= -9999 )
1414
1415                WRITE (section_chr,'(I5)')  section(i,2)
1416                section_chr = ADJUSTL( section_chr )
1417                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
1418
1419                WRITE (coor_chr,'(F10.1)')  section(i,2) * dy
1420                coor_chr = ADJUSTL( coor_chr )
1421                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
1422
1423                i = i + 1
1424             ENDDO
1425             IF ( av == 0 )  THEN
1426                WRITE ( io, 335 )  'XZ', do2d_xz, dt_do2d_xz, &
1427                                   TRIM( begin_chr ), 'j', TRIM( slices ), &
1428                                   TRIM( coordinates )
1429                IF ( skip_time_do2d_xz /= 0.0_wp )  THEN
1430                   WRITE ( io, 339 )  skip_time_do2d_xz
1431                ENDIF
1432             ELSE
1433                WRITE ( io, 342 )  'XZ', do2d_xz, dt_data_output_av, &
1434                                   TRIM( begin_chr ), averaging_interval, &
1435                                   dt_averaging_input, 'j', TRIM( slices ), &
1436                                   TRIM( coordinates )
1437                IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1438                   WRITE ( io, 339 )  skip_time_data_output_av
1439                ENDIF
1440             ENDIF
1441             IF ( netcdf_data_format > 4 )  THEN
1442                WRITE ( io, 352 )  ntdim_2d_xz(av)
1443             ELSE
1444                WRITE ( io, 353 )
1445             ENDIF
1446          ENDIF
1447
1448          IF ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 )  THEN
1449             i = 1
1450             slices = '/'
1451             coordinates = '/'
1452!
1453!--          Building strings with index and coordinate information of the
1454!--          slices
1455             DO  WHILE ( section(i,3) /= -9999 )
1456
1457                WRITE (section_chr,'(I5)')  section(i,3)
1458                section_chr = ADJUSTL( section_chr )
1459                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
1460
1461                WRITE (coor_chr,'(F10.1)')  section(i,3) * dx
1462                coor_chr = ADJUSTL( coor_chr )
1463                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
1464
1465                i = i + 1
1466             ENDDO
1467             IF ( av == 0 )  THEN
1468                WRITE ( io, 335 )  'YZ', do2d_yz, dt_do2d_yz, &
1469                                   TRIM( begin_chr ), 'i', TRIM( slices ), &
1470                                   TRIM( coordinates )
1471                IF ( skip_time_do2d_yz /= 0.0_wp )  THEN
1472                   WRITE ( io, 339 )  skip_time_do2d_yz
1473                ENDIF
1474             ELSE
1475                WRITE ( io, 342 )  'YZ', do2d_yz, dt_data_output_av, &
1476                                   TRIM( begin_chr ), averaging_interval, &
1477                                   dt_averaging_input, 'i', TRIM( slices ), &
1478                                   TRIM( coordinates )
1479                IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1480                   WRITE ( io, 339 )  skip_time_data_output_av
1481                ENDIF
1482             ENDIF
1483             IF ( netcdf_data_format > 4 )  THEN
1484                WRITE ( io, 352 )  ntdim_2d_yz(av)
1485             ELSE
1486                WRITE ( io, 353 )
1487             ENDIF
1488          ENDIF
1489
1490       ENDIF
1491
1492    ENDDO
1493
1494!
1495!-- 3d-arrays
1496    DO  av = 0, 1
1497
1498       i = 1
1499       do3d_chr = ''
1500       DO  WHILE ( do3d(av,i) /= ' ' )
1501
1502          do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // ','
1503          i = i + 1
1504
1505       ENDDO
1506
1507       IF ( do3d_chr /= '' )  THEN
1508          IF ( av == 0 )  THEN
1509             WRITE ( io, 336 )  ''
1510          ELSE
1511             WRITE ( io, 336 )  '(time-averaged)'
1512          ENDIF
1513
1514          output_format = netcdf_data_format_string
1515          IF ( netcdf_deflate == 0 )  THEN
1516             WRITE ( io, 344 )  output_format
1517          ELSE
1518             WRITE ( io, 354 )  TRIM( output_format ), netcdf_deflate
1519          ENDIF
1520
1521          IF ( do3d_at_begin )  THEN
1522             begin_chr = 'and at the start'
1523          ELSE
1524             begin_chr = ''
1525          ENDIF
1526          IF ( av == 0 )  THEN
1527             WRITE ( io, 337 )  do3d_chr, dt_do3d, TRIM( begin_chr ), &
1528                                zu(nz_do3d), nz_do3d
1529          ELSE
1530             WRITE ( io, 343 )  do3d_chr, dt_data_output_av,           &
1531                                TRIM( begin_chr ), averaging_interval, &
1532                                dt_averaging_input, zu(nz_do3d), nz_do3d
1533          ENDIF
1534
1535          IF ( netcdf_data_format > 4 )  THEN
1536             WRITE ( io, 352 )  ntdim_3d(av)
1537          ELSE
1538             WRITE ( io, 353 )
1539          ENDIF
1540
1541          IF ( av == 0 )  THEN
1542             IF ( skip_time_do3d /= 0.0_wp )  THEN
1543                WRITE ( io, 339 )  skip_time_do3d
1544             ENDIF
1545          ELSE
1546             IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1547                WRITE ( io, 339 )  skip_time_data_output_av
1548             ENDIF
1549          ENDIF
1550
1551       ENDIF
1552
1553    ENDDO
1554
1555!
1556!-- masked arrays
1557    IF ( masks > 0 )  WRITE ( io, 345 )  &
1558         mask_scale_x, mask_scale_y, mask_scale_z
1559    DO  mid = 1, masks
1560       DO  av = 0, 1
1561
1562          i = 1
1563          domask_chr = ''
1564          DO  WHILE ( domask(mid,av,i) /= ' ' )
1565             domask_chr = TRIM( domask_chr ) // ' ' //  &
1566                          TRIM( domask(mid,av,i) ) // ','
1567             i = i + 1
1568          ENDDO
1569
1570          IF ( domask_chr /= '' )  THEN
1571             IF ( av == 0 )  THEN
1572                WRITE ( io, 346 )  '', mid
1573             ELSE
1574                WRITE ( io, 346 )  ' (time-averaged)', mid
1575             ENDIF
1576
1577             output_format = netcdf_data_format_string
1578!--          Parallel output not implemented for mask data, hence
1579!--          output_format must be adjusted.
1580             IF ( netcdf_data_format == 5 ) output_format = 'netCDF4/HDF5'
1581             IF ( netcdf_data_format == 6 ) output_format = 'netCDF4/HDF5 classic'
1582             IF ( netcdf_deflate == 0 )  THEN
1583                WRITE ( io, 344 )  output_format
1584             ELSE
1585                WRITE ( io, 354 )  TRIM( output_format ), netcdf_deflate
1586             ENDIF
1587
1588             IF ( av == 0 )  THEN
1589                WRITE ( io, 347 )  domask_chr, dt_domask(mid)
1590             ELSE
1591                WRITE ( io, 348 )  domask_chr, dt_data_output_av, &
1592                                   averaging_interval, dt_averaging_input
1593             ENDIF
1594
1595             IF ( av == 0 )  THEN
1596                IF ( skip_time_domask(mid) /= 0.0_wp )  THEN
1597                   WRITE ( io, 339 )  skip_time_domask(mid)
1598                ENDIF
1599             ELSE
1600                IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1601                   WRITE ( io, 339 )  skip_time_data_output_av
1602                ENDIF
1603             ENDIF
1604!
1605!--          output locations
1606             DO  dim = 1, 3
1607                IF ( mask(mid,dim,1) >= 0.0_wp )  THEN
1608                   count = 0
1609                   DO  WHILE ( mask(mid,dim,count+1) >= 0.0_wp )
1610                      count = count + 1
1611                   ENDDO
1612                   WRITE ( io, 349 )  dir(dim), dir(dim), mid, dir(dim), &
1613                                      mask(mid,dim,:count)
1614                ELSEIF ( mask_loop(mid,dim,1) < 0.0_wp .AND.  &
1615                         mask_loop(mid,dim,2) < 0.0_wp .AND.  &
1616                         mask_loop(mid,dim,3) == 0.0_wp )  THEN
1617                   WRITE ( io, 350 )  dir(dim), dir(dim)
1618                ELSEIF ( mask_loop(mid,dim,3) == 0.0_wp )  THEN
1619                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1620                                      mask_loop(mid,dim,1:2)
1621                ELSE
1622                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1623                                      mask_loop(mid,dim,1:3)
1624                ENDIF
1625             ENDDO
1626          ENDIF
1627
1628       ENDDO
1629    ENDDO
1630
1631!
1632!-- Timeseries
1633    IF ( dt_dots /= 9999999.9_wp )  THEN
1634       WRITE ( io, 340 )
1635
1636       output_format = netcdf_data_format_string
1637       IF ( netcdf_deflate == 0 )  THEN
1638          WRITE ( io, 344 )  output_format
1639       ELSE
1640          WRITE ( io, 354 )  TRIM( output_format ), netcdf_deflate
1641       ENDIF
1642       WRITE ( io, 341 )  dt_dots
1643    ENDIF
1644
1645#if defined( __dvrp_graphics )
1646!
1647!-- Dvrp-output
1648    IF ( dt_dvrp /= 9999999.9_wp )  THEN
1649       WRITE ( io, 360 )  dt_dvrp, TRIM( dvrp_output ), TRIM( dvrp_host ), &
1650                          TRIM( dvrp_username ), TRIM( dvrp_directory )
1651       i = 1
1652       l = 0
1653       m = 0
1654       DO WHILE ( mode_dvrp(i) /= ' ' )
1655          IF ( mode_dvrp(i)(1:10) == 'isosurface' )  THEN
1656             READ ( mode_dvrp(i), '(10X,I2)' )  j
1657             l = l + 1
1658             IF ( do3d(0,j) /= ' ' )  THEN
1659                WRITE ( io, 361 )  TRIM( do3d(0,j) ), threshold(l), &
1660                                   isosurface_color(:,l)
1661             ENDIF
1662          ELSEIF ( mode_dvrp(i)(1:6) == 'slicer' )  THEN
1663             READ ( mode_dvrp(i), '(6X,I2)' )  j
1664             m = m + 1
1665             IF ( do2d(0,j) /= ' ' )  THEN
1666                WRITE ( io, 362 )  TRIM( do2d(0,j) ), &
1667                                   slicer_range_limits_dvrp(:,m)
1668             ENDIF
1669          ENDIF
1670          i = i + 1
1671       ENDDO
1672
1673       WRITE ( io, 365 )  groundplate_color, superelevation_x, &
1674                          superelevation_y, superelevation, clip_dvrp_l, &
1675                          clip_dvrp_r, clip_dvrp_s, clip_dvrp_n
1676
1677       IF ( TRIM( topography ) /= 'flat' )  THEN
1678          WRITE ( io, 366 )  topography_color
1679          IF ( cluster_size > 1 )  THEN
1680             WRITE ( io, 367 )  cluster_size
1681          ENDIF
1682       ENDIF
1683
1684    ENDIF
1685#endif
1686!
1687!-- Output of virtual flight information
1688    IF ( virtual_flight )  CALL flight_header( io )
1689
1690!
1691!-- Output of spectra related quantities
1692    IF ( calculate_spectra )  CALL spectra_header( io )
1693
1694    WRITE ( io, 99 )
1695
1696!
1697!-- Physical quantities
1698    WRITE ( io, 400 )
1699
1700!
1701!-- Geostrophic parameters
1702    WRITE ( io, 410 )  phi, omega, f, fs
1703
1704!
1705!-- Other quantities
1706    WRITE ( io, 411 )  g
1707
1708    WRITE ( io, 412 )  TRIM( reference_state )
1709    IF ( use_single_reference_value )  THEN
1710       IF ( ocean )  THEN
1711          WRITE ( io, 413 )  prho_reference
1712       ELSE
1713          WRITE ( io, 414 )  pt_reference
1714       ENDIF
1715    ENDIF
1716
1717!
1718!-- Cloud physics parameters
1719    IF ( cloud_physics )  THEN
1720       WRITE ( io, 415 )
1721       WRITE ( io, 416 ) surface_pressure, r_d, rho_surface, cp, l_v
1722       IF ( microphysics_seifert )  THEN
1723          WRITE ( io, 510 ) 1.0E-6_wp * nc_const
1724          WRITE ( io, 511 ) c_sedimentation
1725       ENDIF
1726    ENDIF
1727
1728!
1729!-- Cloud physcis parameters / quantities / numerical methods
1730    WRITE ( io, 430 )
1731    IF ( humidity .AND. .NOT. cloud_physics .AND. .NOT. cloud_droplets)  THEN
1732       WRITE ( io, 431 )
1733    ELSEIF ( humidity  .AND.  cloud_physics )  THEN
1734       WRITE ( io, 432 )
1735       IF ( cloud_top_radiation )  WRITE ( io, 132 )
1736       IF ( microphysics_kessler )  THEN
1737          WRITE ( io, 133 )
1738       ELSEIF ( microphysics_seifert )  THEN
1739          IF ( cloud_water_sedimentation )  WRITE ( io, 506 )
1740          WRITE ( io, 505 )
1741          IF ( collision_turbulence )  WRITE ( io, 507 )
1742          IF ( ventilation_effect )  WRITE ( io, 508 )
1743          IF ( limiter_sedimentation )  WRITE ( io, 509 )
1744       ENDIF
1745    ELSEIF ( humidity  .AND.  cloud_droplets )  THEN
1746       WRITE ( io, 433 )
1747       IF ( curvature_solution_effects )  WRITE ( io, 434 )
1748       IF ( collision_kernel /= 'none' )  THEN
1749          WRITE ( io, 435 )  TRIM( collision_kernel )
1750          IF ( collision_kernel(6:9) == 'fast' )  THEN
1751             WRITE ( io, 436 )  radius_classes, dissipation_classes
1752          ENDIF
1753       ELSE
1754          WRITE ( io, 437 )
1755       ENDIF
1756    ENDIF
1757
1758!
1759!-- LES / turbulence parameters
1760    WRITE ( io, 450 )
1761
1762!--
1763! ... LES-constants used must still be added here
1764!--
1765    IF ( constant_diffusion )  THEN
1766       WRITE ( io, 451 )  km_constant, km_constant/prandtl_number, &
1767                          prandtl_number
1768    ENDIF
1769    IF ( .NOT. constant_diffusion)  THEN
1770       IF ( e_init > 0.0_wp )  WRITE ( io, 455 )  e_init
1771       IF ( e_min > 0.0_wp )  WRITE ( io, 454 )  e_min
1772       IF ( wall_adjustment )  WRITE ( io, 453 )  wall_adjustment_factor
1773    ENDIF
1774
1775!
1776!-- Special actions during the run
1777    WRITE ( io, 470 )
1778    IF ( create_disturbances )  THEN
1779       WRITE ( io, 471 )  dt_disturb, disturbance_amplitude,                   &
1780                          zu(disturbance_level_ind_b), disturbance_level_ind_b,&
1781                          zu(disturbance_level_ind_t), disturbance_level_ind_t
1782       IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
1783          WRITE ( io, 472 )  inflow_disturbance_begin, inflow_disturbance_end
1784       ELSE
1785          WRITE ( io, 473 )  disturbance_energy_limit
1786       ENDIF
1787       WRITE ( io, 474 )  TRIM( random_generator )
1788    ENDIF
1789    IF ( pt_surface_initial_change /= 0.0_wp )  THEN
1790       WRITE ( io, 475 )  pt_surface_initial_change
1791    ENDIF
1792    IF ( humidity  .AND.  q_surface_initial_change /= 0.0_wp )  THEN
1793       WRITE ( io, 476 )  q_surface_initial_change       
1794    ENDIF
1795    IF ( passive_scalar  .AND.  q_surface_initial_change /= 0.0_wp )  THEN
1796       WRITE ( io, 477 )  q_surface_initial_change       
1797    ENDIF
1798
1799    IF ( particle_advection )  THEN
1800!
1801!--    Particle attributes
1802       WRITE ( io, 480 )  particle_advection_start, dt_prel, bc_par_lr, &
1803                          bc_par_ns, bc_par_b, bc_par_t, particle_maximum_age, &
1804                          end_time_prel
1805       IF ( use_sgs_for_particles )  WRITE ( io, 488 )  dt_min_part
1806       IF ( random_start_position )  WRITE ( io, 481 )
1807       IF ( seed_follows_topography )  WRITE ( io, 496 )
1808       IF ( particles_per_point > 1 )  WRITE ( io, 489 )  particles_per_point
1809       WRITE ( io, 495 )  total_number_of_particles
1810       IF ( dt_write_particle_data /= 9999999.9_wp )  THEN
1811          WRITE ( io, 485 )  dt_write_particle_data
1812          IF ( netcdf_data_format > 1 )  THEN
1813             output_format = 'netcdf (64 bit offset) and binary'
1814          ELSE
1815             output_format = 'netcdf and binary'
1816          ENDIF
1817          IF ( netcdf_deflate == 0 )  THEN
1818             WRITE ( io, 344 )  output_format
1819          ELSE
1820             WRITE ( io, 354 )  TRIM( output_format ), netcdf_deflate
1821          ENDIF
1822       ENDIF
1823       IF ( dt_dopts /= 9999999.9_wp )  WRITE ( io, 494 )  dt_dopts
1824       IF ( write_particle_statistics )  WRITE ( io, 486 )
1825
1826       WRITE ( io, 487 )  number_of_particle_groups
1827
1828       DO  i = 1, number_of_particle_groups
1829          IF ( i == 1  .AND.  density_ratio(i) == 9999999.9_wp )  THEN
1830             WRITE ( io, 490 )  i, 0.0_wp
1831             WRITE ( io, 492 )
1832          ELSE
1833             WRITE ( io, 490 )  i, radius(i)
1834             IF ( density_ratio(i) /= 0.0_wp )  THEN
1835                WRITE ( io, 491 )  density_ratio(i)
1836             ELSE
1837                WRITE ( io, 492 )
1838             ENDIF
1839          ENDIF
1840          WRITE ( io, 493 )  psl(i), psr(i), pss(i), psn(i), psb(i), pst(i), &
1841                             pdx(i), pdy(i), pdz(i)
1842          IF ( .NOT. vertical_particle_advection(i) )  WRITE ( io, 482 )
1843       ENDDO
1844
1845    ENDIF
1846
1847
1848!
1849!-- Parameters of 1D-model
1850    IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
1851       WRITE ( io, 500 )  end_time_1d, dt_run_control_1d, dt_pr_1d, &
1852                          mixing_length_1d, dissipation_1d
1853       IF ( damp_level_ind_1d /= nzt+1 )  THEN
1854          WRITE ( io, 502 )  zu(damp_level_ind_1d), damp_level_ind_1d
1855       ENDIF
1856    ENDIF
1857
1858!
1859!-- User-defined information
1860    CALL user_header( io )
1861
1862    WRITE ( io, 99 )
1863
1864!
1865!-- Write buffer contents to disc immediately
1866    FLUSH( io )
1867
1868!
1869!-- Here the FORMATs start
1870
1871 99 FORMAT (1X,78('-'))
1872100 FORMAT (/1X,'******************************',4X,44('-')/        &
1873            1X,'* ',A,' *',4X,A/                               &
1874            1X,'******************************',4X,44('-'))
1875101 FORMAT (35X,'coupled run using MPI-',I1,': ',A/ &
1876            35X,42('-'))
1877102 FORMAT (/' Date:                 ',A8,4X,'Run:       ',A20/      &
1878            ' Time:                 ',A8,4X,'Run-No.:   ',I2.2/     &
1879            ' Run on host:        ',A10)
1880#if defined( __parallel )
1881103 FORMAT (' Number of PEs:',10X,I6,4X,'Processor grid (x,y): (',I4,',',I4, &
1882              ')',1X,A)
1883104 FORMAT (' Number of PEs:',10X,I6,4X,'Tasks:',I4,'   threads per task:',I4/ &
1884              35X,'Processor grid (x,y): (',I4,',',I4,')',1X,A)
1885105 FORMAT (35X,'One additional PE is used to handle'/37X,'the dvrp output!')
1886106 FORMAT (35X,'A 1d-decomposition along x is forced'/ &
1887            35X,'because the job is running on an SMP-cluster')
1888107 FORMAT (35X,'A 1d-decomposition along ',A,' is used')
1889108 FORMAT (35X,'Max. # of parallel I/O streams is ',I5)
1890109 FORMAT (35X,'Precursor run for coupled atmos-ocean run'/ &
1891            35X,42('-'))
1892114 FORMAT (35X,'Coupled atmosphere-ocean run following'/ &
1893            35X,'independent precursor runs'/             &
1894            35X,42('-'))
1895117 FORMAT (' Accelerator boards / node:  ',I2)
1896#endif
1897110 FORMAT (/' Numerical Schemes:'/ &
1898             ' -----------------'/)
1899111 FORMAT (' --> Solve perturbation pressure via FFT using ',A,' routines')
1900112 FORMAT (' --> Solve perturbation pressure via SOR-Red/Black-Schema'/ &
1901            '     Iterations (initial/other): ',I3,'/',I3,'  omega =',F6.3)
1902113 FORMAT (' --> Momentum advection via Piascek-Williams-Scheme (Form C3)', &
1903                  ' or Upstream')
1904115 FORMAT ('     FFT and transpositions are overlapping')
1905116 FORMAT (' --> Scalar advection via Piascek-Williams-Scheme (Form C3)', &
1906                  ' or Upstream')
1907118 FORMAT (' --> Scalar advection via Bott-Chlond-Scheme')
1908119 FORMAT (' --> Galilei-Transform applied to horizontal advection:'/ &
1909            '     translation velocity = ',A/ &
1910            '     distance advected ',A,':  ',F8.3,' km(x)  ',F8.3,' km(y)')
1911120 FORMAT (' Accelerator boards: ',8X,I2)
1912122 FORMAT (' --> Time differencing scheme: ',A)
1913123 FORMAT (' --> Rayleigh-Damping active, starts ',A,' z = ',F8.2,' m'/ &
1914            '     maximum damping coefficient:',F6.3, ' 1/s')
1915129 FORMAT (' --> Additional prognostic equation for the specific humidity')
1916130 FORMAT (' --> Additional prognostic equation for the total water content')
1917131 FORMAT (' --> No pt-equation solved. Neutral stratification with pt = ', &
1918                  F6.2, ' K assumed')
1919132 FORMAT ('     Parameterization of long-wave radiation processes via'/ &
1920            '     effective emissivity scheme')
1921133 FORMAT ('     Precipitation parameterization via Kessler-Scheme')
1922134 FORMAT (' --> Additional prognostic equation for a passive scalar')
1923135 FORMAT (' --> Solve perturbation pressure via ',A,' method (', &
1924                  A,'-cycle)'/ &
1925            '     number of grid levels:                   ',I2/ &
1926            '     Gauss-Seidel red/black iterations:       ',I2)
1927136 FORMAT ('     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1928                  I3,')')
1929137 FORMAT ('     level data gathered on PE0 at level:     ',I2/ &
1930            '     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1931                  I3,')'/ &
1932            '     gridpoints of coarsest domain (x,y,z):    (',I3,',',I3,',', &
1933                  I3,')')
1934139 FORMAT (' --> Loop optimization method: ',A)
1935140 FORMAT ('     maximum residual allowed:                ',E10.3)
1936141 FORMAT ('     fixed number of multigrid cycles:        ',I4)
1937142 FORMAT ('     perturbation pressure is calculated at every Runge-Kutta ', &
1938                  'step')
1939143 FORMAT ('     Euler/upstream scheme is used for the SGS turbulent ', &
1940                  'kinetic energy')
1941144 FORMAT ('     masking method is used')
1942150 FORMAT (' --> Volume flow at the right and north boundary will be ', &
1943                  'conserved'/ &
1944            '     using the ',A,' mode')
1945151 FORMAT ('     with u_bulk = ',F7.3,' m/s and v_bulk = ',F7.3,' m/s')
1946152 FORMAT (' --> External pressure gradient directly prescribed by the user:',&
1947           /'     ',2(1X,E12.5),'Pa/m in x/y direction', &
1948           /'     starting from dp_level_b =', F8.3, 'm', A /)
1949160 FORMAT (//' Large scale forcing and nudging:'/ &
1950              ' -------------------------------'/)
1951161 FORMAT (' --> No large scale forcing from external is used (default) ')
1952162 FORMAT (' --> Large scale forcing from external file LSF_DATA is used: ')
1953163 FORMAT ('     - large scale advection tendencies ')
1954164 FORMAT ('     - large scale subsidence velocity w_subs ')
1955165 FORMAT ('     - large scale subsidence tendencies ')
1956167 FORMAT ('     - and geostrophic wind components ug and vg')
1957168 FORMAT (' --> Large-scale vertical motion is used in the ', &
1958                  'prognostic equation(s) for')
1959169 FORMAT ('     the scalar(s) only')
1960170 FORMAT (' --> Nudging is used')
1961171 FORMAT (' --> No nudging is used (default) ')
1962180 FORMAT ('     - prescribed surface values for temperature')
1963181 FORMAT ('     - prescribed surface fluxes for temperature')
1964182 FORMAT ('     - prescribed surface values for humidity')
1965183 FORMAT ('     - prescribed surface fluxes for humidity')
1966200 FORMAT (//' Run time and time step information:'/ &
1967             ' ----------------------------------'/)
1968201 FORMAT ( ' Timestep:             variable     maximum value: ',F6.3,' s', &
1969             '    CFL-factor:',F5.2)
1970202 FORMAT ( ' Timestep:          dt = ',F6.3,' s'/)
1971203 FORMAT ( ' Start time:          ',F9.3,' s'/ &
1972             ' End time:            ',F9.3,' s')
1973204 FORMAT ( A,F9.3,' s')
1974205 FORMAT ( A,F9.3,' s',5X,'restart every',17X,F9.3,' s')
1975206 FORMAT (/' Time reached:        ',F9.3,' s'/ &
1976             ' CPU-time used:       ',F9.3,' s     per timestep:               ', &
1977               '  ',F9.3,' s'/                                                    &
1978             '                                      per second of simulated tim', &
1979               'e: ',F9.3,' s')
1980207 FORMAT ( ' Coupling start time: ',F9.3,' s')
1981250 FORMAT (//' Computational grid and domain size:'/ &
1982              ' ----------------------------------'// &
1983              ' Grid length:      dx =    ',F7.3,' m    dy =    ',F7.3, &
1984              ' m    dz =    ',F7.3,' m'/ &
1985              ' Domain size:       x = ',F10.3,' m     y = ',F10.3, &
1986              ' m  z(u) = ',F10.3,' m'/)
1987252 FORMAT (' dz constant up to ',F10.3,' m (k=',I4,'), then stretched by', &
1988              ' factor:',F6.3/ &
1989            ' maximum dz not to be exceeded is dz_max = ',F10.3,' m'/)
1990254 FORMAT (' Number of gridpoints (x,y,z):  (0:',I4,', 0:',I4,', 0:',I4,')'/ &
1991            ' Subdomain size (x,y,z):        (  ',I4,',   ',I4,',   ',I4,')'/)
1992260 FORMAT (/' The model has a slope in x-direction. Inclination angle: ',F6.2,&
1993             ' degrees')
1994270 FORMAT (//' Topography information:'/ &
1995              ' ----------------------'// &
1996              1X,'Topography: ',A)
1997271 FORMAT (  ' Building size (x/y/z) in m: ',F5.1,' / ',F5.1,' / ',F5.1/ &
1998              ' Horizontal index bounds (l/r/s/n): ',I4,' / ',I4,' / ',I4, &
1999                ' / ',I4)
2000272 FORMAT (  ' Single quasi-2D street canyon of infinite length in ',A, &
2001              ' direction' / &
2002              ' Canyon height: ', F6.2, 'm, ch = ', I4, '.'      / &
2003              ' Canyon position (',A,'-walls): cxl = ', I4,', cxr = ', I4, '.')
2004278 FORMAT (' Topography grid definition convention:'/ &
2005            ' cell edge (staggered grid points'/  &
2006            ' (u in x-direction, v in y-direction))' /)
2007279 FORMAT (' Topography grid definition convention:'/ &
2008            ' cell center (scalar grid points)' /)
2009300 FORMAT (//' Boundary conditions:'/ &
2010             ' -------------------'// &
2011             '                     p                    uv             ', &
2012             '                     pt'// &
2013             ' B. bound.: ',A/ &
2014             ' T. bound.: ',A)
2015301 FORMAT (/'                     ',A// &
2016             ' B. bound.: ',A/ &
2017             ' T. bound.: ',A)
2018303 FORMAT (/' Bottom surface fluxes are used in diffusion terms at k=1')
2019304 FORMAT (/' Top surface fluxes are used in diffusion terms at k=nzt')
2020305 FORMAT (//'    Prandtl-Layer between bottom surface and first ', &
2021               'computational u,v-level:'// &
2022             '       zp = ',F6.2,' m   z0 =',F7.4,' m   z0h =',F8.5,&
2023             ' m   kappa =',F5.2/ &
2024             '       Rif value range:   ',F8.2,' <= rif <=',F6.2)
2025306 FORMAT ('       Predefined constant heatflux:   ',F9.6,' K m/s')
2026307 FORMAT ('       Heatflux has a random normal distribution')
2027308 FORMAT ('       Predefined surface temperature')
2028309 FORMAT ('       Predefined constant salinityflux:   ',F9.6,' psu m/s')
2029310 FORMAT (//'    1D-Model:'// &
2030             '       Rif value range:   ',F6.2,' <= rif <=',F6.2)
2031311 FORMAT ('       Predefined constant humidity flux: ',E10.3,' kg/kg m/s')
2032312 FORMAT ('       Predefined surface humidity')
2033313 FORMAT ('       Predefined constant scalar flux: ',E10.3,' kg/(m**2 s)')
2034314 FORMAT ('       Predefined scalar value at the surface')
2035315 FORMAT ('       Humidity / scalar flux at top surface is 0.0')
2036316 FORMAT ('       Sensible heatflux and momentum flux from coupled ', &
2037                    'atmosphere model')
2038317 FORMAT (//' Lateral boundaries:'/ &
2039            '       left/right:  ',A/    &
2040            '       north/south: ',A)
2041318 FORMAT (/'       use_cmax: ',L1 / &
2042            '       pt damping layer width = ',F8.2,' m, pt ', &
2043                    'damping factor =',F7.4)
2044319 FORMAT ('       turbulence recycling at inflow switched on'/ &
2045            '       width of recycling domain: ',F7.1,' m   grid index: ',I4/ &
2046            '       inflow damping height: ',F6.1,' m   width: ',F6.1,' m')
2047320 FORMAT ('       Predefined constant momentumflux:  u: ',F9.6,' m**2/s**2'/ &
2048            '                                          v: ',F9.6,' m**2/s**2')
2049321 FORMAT (//' Initial profiles:'/ &
2050              ' ----------------')
2051322 FORMAT ('       turbulence recycling at inflow switched on'/ &
2052            '       y shift of the recycled inflow turbulence switched on'/ &
2053            '       width of recycling domain: ',F7.1,' m   grid index: ',I4/ &
2054            '       inflow damping height: ',F6.1,' m   width: ',F6.1,' m'/)
2055325 FORMAT (//' List output:'/ &
2056             ' -----------'//  &
2057            '    1D-Profiles:'/    &
2058            '       Output every             ',F8.2,' s')
2059326 FORMAT ('       Time averaged over       ',F8.2,' s'/ &
2060            '       Averaging input every    ',F8.2,' s')
2061330 FORMAT (//' Data output:'/ &
2062             ' -----------'/)
2063331 FORMAT (/'    1D-Profiles:')
2064332 FORMAT (/'       ',A)
2065333 FORMAT ('       Output every             ',F8.2,' s',/ &
2066            '       Time averaged over       ',F8.2,' s'/ &
2067            '       Averaging input every    ',F8.2,' s')
2068334 FORMAT (/'    2D-Arrays',A,':')
2069335 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
2070            '       Output every             ',F8.2,' s  ',A/ &
2071            '       Cross sections at ',A1,' = ',A/ &
2072            '       scalar-coordinates:   ',A,' m'/)
2073336 FORMAT (/'    3D-Arrays',A,':')
2074337 FORMAT (/'       Arrays: ',A/ &
2075            '       Output every             ',F8.2,' s  ',A/ &
2076            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
2077339 FORMAT ('       No output during initial ',F8.2,' s')
2078340 FORMAT (/'    Time series:')
2079341 FORMAT ('       Output every             ',F8.2,' s'/)
2080342 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
2081            '       Output every             ',F8.2,' s  ',A/ &
2082            '       Time averaged over       ',F8.2,' s'/ &
2083            '       Averaging input every    ',F8.2,' s'/ &
2084            '       Cross sections at ',A1,' = ',A/ &
2085            '       scalar-coordinates:   ',A,' m'/)
2086343 FORMAT (/'       Arrays: ',A/ &
2087            '       Output every             ',F8.2,' s  ',A/ &
2088            '       Time averaged over       ',F8.2,' s'/ &
2089            '       Averaging input every    ',F8.2,' s'/ &
2090            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
2091344 FORMAT ('       Output format: ',A/)
2092345 FORMAT (/'    Scaling lengths for output locations of all subsequent mask IDs:',/ &
2093            '       mask_scale_x (in x-direction): ',F9.3, ' m',/ &
2094            '       mask_scale_y (in y-direction): ',F9.3, ' m',/ &
2095            '       mask_scale_z (in z-direction): ',F9.3, ' m' )
2096346 FORMAT (/'    Masked data output',A,' for mask ID ',I2, ':')
2097347 FORMAT ('       Variables: ',A/ &
2098            '       Output every             ',F8.2,' s')
2099348 FORMAT ('       Variables: ',A/ &
2100            '       Output every             ',F8.2,' s'/ &
2101            '       Time averaged over       ',F8.2,' s'/ &
2102            '       Averaging input every    ',F8.2,' s')
2103349 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
2104            'mask_scale_',A,' predefined by array mask_',I2.2,'_',A,':'/ &
2105            13('       ',8(F8.2,',')/) )
2106350 FORMAT (/'       Output locations in ',A,'-direction: ', &
2107            'all gridpoints along ',A,'-direction (default).' )
2108351 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
2109            'mask_scale_',A,' constructed from array mask_',I2.2,'_',A,'_loop:'/ &
2110            '          loop begin:',F8.2,', end:',F8.2,', stride:',F8.2 )
2111352 FORMAT  (/'       Number of output time levels allowed: ',I3 /)
2112353 FORMAT  (/'       Number of output time levels allowed: unlimited' /)
2113354 FORMAT ('       Output format: ',A, '   compressed with level: ',I1/)
2114#if defined( __dvrp_graphics )
2115360 FORMAT ('    Plot-Sequence with dvrp-software:'/ &
2116            '       Output every      ',F7.1,' s'/ &
2117            '       Output mode:      ',A/ &
2118            '       Host / User:      ',A,' / ',A/ &
2119            '       Directory:        ',A// &
2120            '       The sequence contains:')
2121361 FORMAT (/'       Isosurface of "',A,'"    Threshold value: ', E12.3/ &
2122            '          Isosurface color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
2123362 FORMAT (/'       Slicer plane ',A/ &
2124            '       Slicer limits: [',F6.2,',',F6.2,']')
2125365 FORMAT (/'       Groundplate color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)'/ &
2126            '       Superelevation along (x,y,z): (',F4.1,',',F4.1,',',F4.1, &
2127                     ')'/ &
2128            '       Clipping limits: from x = ',F9.1,' m to x = ',F9.1,' m'/ &
2129            '                        from y = ',F9.1,' m to y = ',F9.1,' m')
2130366 FORMAT (/'       Topography color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
2131367 FORMAT ('       Polygon reduction for topography: cluster_size = ', I1)
2132#endif
2133400 FORMAT (//' Physical quantities:'/ &
2134              ' -------------------'/)
2135410 FORMAT ('    Geograph. latitude  :   phi    = ',F4.1,' degr'/   &
2136            '    Angular velocity    :   omega  =',E10.3,' rad/s'/  &
2137            '    Coriolis parameter  :   f      = ',F9.6,' 1/s'/    &
2138            '                            f*     = ',F9.6,' 1/s')
2139411 FORMAT (/'    Gravity             :   g      = ',F4.1,' m/s**2')
2140412 FORMAT (/'    Reference state used in buoyancy terms: ',A)
2141413 FORMAT ('       Reference density in buoyancy terms: ',F8.3,' kg/m**3')
2142414 FORMAT ('       Reference temperature in buoyancy terms: ',F8.4,' K')
2143415 FORMAT (/' Cloud physics parameters:'/ &
2144             ' ------------------------'/)
2145416 FORMAT ('    Surface pressure   :   p_0   = ',F7.2,' hPa'/      &
2146            '    Gas constant       :   R     = ',F5.1,' J/(kg K)'/ &
2147            '    Density of air     :   rho_0 =',F6.3,' kg/m**3'/  &
2148            '    Specific heat cap. :   c_p   = ',F6.1,' J/(kg K)'/ &
2149            '    Vapourization heat :   L_v   =',E9.2,' J/kg')
2150417 FORMAT ('    Geograph. longitude :   lambda = ',F4.1,' degr')
2151418 FORMAT (/'    Day of the year at model start :   day_init      =     ',I3 &
2152            /'    UTC time at model start        :   time_utc_init = ',F7.1' s')
2153420 FORMAT (/'    Characteristic levels of the initial temperature profile:'// &
2154            '       Height:        ',A,'  m'/ &
2155            '       Temperature:   ',A,'  K'/ &
2156            '       Gradient:      ',A,'  K/100m'/ &
2157            '       Gridpoint:     ',A)
2158421 FORMAT (/'    Characteristic levels of the initial humidity profile:'// &
2159            '       Height:      ',A,'  m'/ &
2160            '       Humidity:    ',A,'  kg/kg'/ &
2161            '       Gradient:    ',A,'  (kg/kg)/100m'/ &
2162            '       Gridpoint:   ',A)
2163422 FORMAT (/'    Characteristic levels of the initial scalar profile:'// &
2164            '       Height:                  ',A,'  m'/ &
2165            '       Scalar concentration:    ',A,'  kg/m**3'/ &
2166            '       Gradient:                ',A,'  (kg/m**3)/100m'/ &
2167            '       Gridpoint:               ',A)
2168423 FORMAT (/'    Characteristic levels of the geo. wind component ug:'// &
2169            '       Height:      ',A,'  m'/ &
2170            '       ug:          ',A,'  m/s'/ &
2171            '       Gradient:    ',A,'  1/100s'/ &
2172            '       Gridpoint:   ',A)
2173424 FORMAT (/'    Characteristic levels of the geo. wind component vg:'// &
2174            '       Height:      ',A,'  m'/ &
2175            '       vg:          ',A,'  m/s'/ &
2176            '       Gradient:    ',A,'  1/100s'/ &
2177            '       Gridpoint:   ',A)
2178425 FORMAT (/'    Characteristic levels of the initial salinity profile:'// &
2179            '       Height:     ',A,'  m'/ &
2180            '       Salinity:   ',A,'  psu'/ &
2181            '       Gradient:   ',A,'  psu/100m'/ &
2182            '       Gridpoint:  ',A)
2183426 FORMAT (/'    Characteristic levels of the subsidence/ascent profile:'// &
2184            '       Height:      ',A,'  m'/ &
2185            '       w_subs:      ',A,'  m/s'/ &
2186            '       Gradient:    ',A,'  (m/s)/100m'/ &
2187            '       Gridpoint:   ',A)
2188427 FORMAT (/'    Initial wind profiles (u,v) are interpolated from given'// &
2189                  ' profiles')
2190428 FORMAT (/'    Initial profiles (u, v, pt, q) are taken from file '/ &
2191             '    NUDGING_DATA')
2192430 FORMAT (//' Cloud physics quantities / methods:'/ &
2193              ' ----------------------------------'/)
2194431 FORMAT ('    Humidity is considered, bu no condensation')
2195432 FORMAT ('    Bulk scheme with liquid water potential temperature and'/ &
2196            '    total water content is used.'/ &
2197            '    Condensation is parameterized via 0% - or 100% scheme.')
2198433 FORMAT ('    Cloud droplets treated explicitly using the Lagrangian part', &
2199                 'icle model')
2200434 FORMAT ('    Curvature and solution effecs are considered for growth of', &
2201                 ' droplets < 1.0E-6 m')
2202435 FORMAT ('    Droplet collision is handled by ',A,'-kernel')
2203436 FORMAT ('       Fast kernel with fixed radius- and dissipation classes ', &
2204                    'are used'/ &
2205            '          number of radius classes:       ',I3,'    interval ', &
2206                       '[1.0E-6,2.0E-4] m'/ &
2207            '          number of dissipation classes:   ',I2,'    interval ', &
2208                       '[0,1000] cm**2/s**3')
2209437 FORMAT ('    Droplet collision is switched off')
2210450 FORMAT (//' LES / Turbulence quantities:'/ &
2211              ' ---------------------------'/)
2212451 FORMAT ('    Diffusion coefficients are constant:'/ &
2213            '    Km = ',F6.2,' m**2/s   Kh = ',F6.2,' m**2/s   Pr = ',F5.2)
2214453 FORMAT ('    Mixing length is limited to',F5.2,' * z')
2215454 FORMAT ('    TKE is not allowed to fall below ',E9.2,' (m/s)**2')
2216455 FORMAT ('    initial TKE is prescribed as ',E9.2,' (m/s)**2')
2217470 FORMAT (//' Actions during the simulation:'/ &
2218              ' -----------------------------'/)
2219471 FORMAT ('    Disturbance impulse (u,v) every :   ',F6.2,' s'/            &
2220            '    Disturbance amplitude           :    ',F5.2, ' m/s'/       &
2221            '    Lower disturbance level         : ',F8.2,' m (GP ',I4,')'/  &
2222            '    Upper disturbance level         : ',F8.2,' m (GP ',I4,')')
2223472 FORMAT ('    Disturbances continued during the run from i/j =',I4, &
2224                 ' to i/j =',I4)
2225473 FORMAT ('    Disturbances cease as soon as the disturbance energy exceeds',&
2226                 F6.3, ' m**2/s**2')
2227474 FORMAT ('    Random number generator used    : ',A/)
2228475 FORMAT ('    The surface temperature is increased (or decreased, ', &
2229                 'respectively, if'/ &
2230            '    the value is negative) by ',F5.2,' K at the beginning of the',&
2231                 ' 3D-simulation'/)
2232476 FORMAT ('    The surface humidity is increased (or decreased, ',&
2233                 'respectively, if the'/ &
2234            '    value is negative) by ',E8.1,' kg/kg at the beginning of', &
2235                 ' the 3D-simulation'/)
2236477 FORMAT ('    The scalar value is increased at the surface (or decreased, ',&
2237                 'respectively, if the'/ &
2238            '    value is negative) by ',E8.1,' kg/m**3 at the beginning of', &
2239                 ' the 3D-simulation'/)
2240480 FORMAT ('    Particles:'/ &
2241            '    ---------'// &
2242            '       Particle advection is active (switched on at t = ', F7.1, &
2243                    ' s)'/ &
2244            '       Start of new particle generations every  ',F6.1,' s'/ &
2245            '       Boundary conditions: left/right: ', A, ' north/south: ', A/&
2246            '                            bottom:     ', A, ' top:         ', A/&
2247            '       Maximum particle age:                 ',F9.1,' s'/ &
2248            '       Advection stopped at t = ',F9.1,' s'/)
2249481 FORMAT ('       Particles have random start positions'/)
2250482 FORMAT ('          Particles are advected only horizontally'/)
2251485 FORMAT ('       Particle data are written on file every ', F9.1, ' s')
2252486 FORMAT ('       Particle statistics are written on file'/)
2253487 FORMAT ('       Number of particle groups: ',I2/)
2254488 FORMAT ('       SGS velocity components are used for particle advection'/ &
2255            '          minimum timestep for advection:', F8.5/)
2256489 FORMAT ('       Number of particles simultaneously released at each ', &
2257                    'point: ', I5/)
2258490 FORMAT ('       Particle group ',I2,':'/ &
2259            '          Particle radius: ',E10.3, 'm')
2260491 FORMAT ('          Particle inertia is activated'/ &
2261            '             density_ratio (rho_fluid/rho_particle) =',F6.3/)
2262492 FORMAT ('          Particles are advected only passively (no inertia)'/)
2263493 FORMAT ('          Boundaries of particle source: x:',F8.1,' - ',F8.1,' m'/&
2264            '                                         y:',F8.1,' - ',F8.1,' m'/&
2265            '                                         z:',F8.1,' - ',F8.1,' m'/&
2266            '          Particle distances:  dx = ',F8.1,' m  dy = ',F8.1, &
2267                       ' m  dz = ',F8.1,' m'/)
2268494 FORMAT ('       Output of particle time series in NetCDF format every ', &
2269                    F8.2,' s'/)
2270495 FORMAT ('       Number of particles in total domain: ',I10/)
2271496 FORMAT ('       Initial vertical particle positions are interpreted ', &
2272                    'as relative to the given topography')
2273500 FORMAT (//' 1D-Model parameters:'/                           &
2274              ' -------------------'//                           &
2275            '    Simulation time:                   ',F8.1,' s'/ &
2276            '    Run-controll output every:         ',F8.1,' s'/ &
2277            '    Vertical profile output every:     ',F8.1,' s'/ &
2278            '    Mixing length calculation:         ',A/         &
2279            '    Dissipation calculation:           ',A/)
2280502 FORMAT ('    Damping layer starts from ',F7.1,' m (GP ',I4,')'/)
2281503 FORMAT (' --> Momentum advection via Wicker-Skamarock-Scheme 5th order')
2282504 FORMAT (' --> Scalar advection via Wicker-Skamarock-Scheme 5th order')
2283505 FORMAT ('    Precipitation parameterization via Seifert-Beheng-Scheme')
2284506 FORMAT ('    Cloud water sedimentation parameterization via Stokes law')
2285507 FORMAT ('    Turbulence effects on precipitation process')
2286508 FORMAT ('    Ventilation effects on evaporation of rain drops')
2287509 FORMAT ('    Slope limiter used for sedimentation process')
2288510 FORMAT ('    Droplet density    :   N_c   = ',F6.1,' 1/cm**3')
2289511 FORMAT ('    Sedimentation Courant number:                  '/&
2290            '                               C_s   =',F4.1,'        ')
2291512 FORMAT (/' Date:                 ',A8,6X,'Run:       ',A20/      &
2292            ' Time:                 ',A8,6X,'Run-No.:   ',I2.2/     &
2293            ' Run on host:        ',A10,6X,'En-No.:    ',I2.2)
2294513 FORMAT (' --> Scalar advection via Wicker-Skamarock-Scheme 5th order ' // & 
2295            '+ monotonic adjustment')
2296600 FORMAT (/' Nesting informations:'/ &
2297            ' --------------------'/ &
2298            ' Nesting mode:                     ',A/ &
2299            ' Nesting-datatransfer mode:        ',A// &
2300            ' Nest id  parent  number   lower left coordinates   name'/ &
2301            ' (*=me)     id    of PEs      x (m)     y (m)' )
2302601 FORMAT (2X,A1,1X,I2.2,6X,I2.2,5X,I5,5X,F8.2,2X,F8.2,5X,A)
2303
2304 END SUBROUTINE header
Note: See TracBrowser for help on using the repository browser.