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

Last change on this file since 2037 was 2037, checked in by knoop, 5 years ago

Anelastic approximation implemented

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