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

Last change on this file since 1992 was 1992, checked in by suehring, 5 years ago

Prescribing scalar flux at model top; several bugfixes concering data output of scalars and output of flight data

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