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

Last change on this file since 1818 was 1818, checked in by maronga, 5 years ago

last commit documented / copyright update

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