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

Last change on this file since 2805 was 2776, checked in by Giersch, 7 years ago

Skipping of module related restart data changed + adapting synthetic turbulence generator to current restart procedure

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