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

Last change on this file since 2410 was 2339, checked in by gronemeier, 7 years ago

corrected timestamp in header

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