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

Last change on this file since 1239 was 1239, checked in by heinze, 10 years ago

routines for nudging and large scale forcing from external file added

  • Property svn:keywords set to Id
File size: 80.0 KB
RevLine 
[1]1 SUBROUTINE header
2
[1036]3!--------------------------------------------------------------------------------!
4! This file is part of PALM.
5!
6! PALM is free software: you can redistribute it and/or modify it under the terms
7! of the GNU General Public License as published by the Free Software Foundation,
8! either version 3 of the License, or (at your option) any later version.
9!
10! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
11! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13!
14! You should have received a copy of the GNU General Public License along with
15! PALM. If not, see <http://www.gnu.org/licenses/>.
16!
17! Copyright 1997-2012  Leibniz University Hannover
18!--------------------------------------------------------------------------------!
19!
[254]20! Current revisions:
[1]21! -----------------
[1239]22! output for nudging + large scale forcing from external file
[941]23!
[392]24! Former revisions:
25! -----------------
26! $Id: header.f90 1239 2013-10-29 10:11:53Z heinze $
27!
[1217]28! 1216 2013-08-26 09:31:42Z raasch
29! output for transpose_compute_overlap
30!
[1213]31! 1212 2013-08-15 08:46:27Z raasch
32! output for poisfft_hybrid removed
33!
[1182]34! 1179 2013-06-14 05:57:58Z raasch
35! output of reference_state, use_reference renamed use_single_reference_value
36!
[1160]37! 1159 2013-05-21 11:58:22Z fricke
38! +use_cmax
39!
[1116]40! 1115 2013-03-26 18:16:16Z hoffmann
41! descriptions for Seifert-Beheng-cloud-physics-scheme added
42!
[1112]43! 1111 2013-03-08 23:54:10Z raasch
44! output of accelerator board information
45! ibc_p_b = 2 removed
46!
[1109]47! 1108 2013-03-05 07:03:32Z raasch
48! bugfix for r1106
49!
[1107]50! 1106 2013-03-04 05:31:38Z raasch
51! some format changes for coupled runs
52!
[1093]53! 1092 2013-02-02 11:24:22Z raasch
54! unused variables removed
55!
[1037]56! 1036 2012-10-22 13:43:42Z raasch
57! code put under GPL (PALM 3.9)
58!
[1035]59! 1031 2012-10-19 14:35:30Z raasch
60! output of netCDF data format modified
61!
[1017]62! 1015 2012-09-27 09:23:24Z raasch
63! output of Aajustment of mixing length to the Prandtl mixing length at first
64! grid point above ground removed
65!
[1004]66! 1003 2012-09-14 14:35:53Z raasch
67! output of information about equal/unequal subdomain size removed
68!
[1002]69! 1001 2012-09-13 14:08:46Z raasch
70! all actions concerning leapfrog- and upstream-spline-scheme removed
71!
[979]72! 978 2012-08-09 08:28:32Z fricke
73! -km_damp_max, outflow_damping_width
74! +pt_damping_factor, pt_damping_width
75! +z0h
76!
[965]77! 964 2012-07-26 09:14:24Z raasch
78! output of profil-related quantities removed
79!
[941]80! 940 2012-07-09 14:31:00Z raasch
81! Output in case of simulations for pure neutral stratification (no pt-equation
82! solved)
83!
[928]84! 927 2012-06-06 19:15:04Z raasch
85! output of masking_method for mg-solver
86!
[869]87! 868 2012-03-28 12:21:07Z raasch
88! translation velocity in Galilean transformation changed to 0.6 * ug
89!
[834]90! 833 2012-02-22 08:55:55Z maronga
91! Adjusted format for leaf area density
92!
[829]93! 828 2012-02-21 12:00:36Z raasch
94! output of dissipation_classes + radius_classes
95!
[826]96! 825 2012-02-19 03:03:44Z raasch
97! Output of cloud physics parameters/quantities complemented and restructured
98!
[768]99! 767 2011-10-14 06:39:12Z raasch
100! Output of given initial u,v-profiles
101!
[760]102! 759 2011-09-15 13:58:31Z raasch
103! output of maximum number of parallel io streams
104!
[708]105! 707 2011-03-29 11:39:40Z raasch
106! bc_lr/ns replaced by bc_lr/ns_cyc
107!
[668]108! 667 2010-12-23 12:06:00Z suehring/gryschka
109! Output of advection scheme.
110! Modified output of Prandtl-layer height.
111!
[581]112! 580 2010-10-05 13:59:11Z heinze
113! Renaming of ws_vertical_gradient to subs_vertical_gradient,
114! ws_vertical_gradient_level to subs_vertical_gradient_level and
115! ws_vertical_gradient_level_ind to subs_vertical_gradient_level_i
116!
[494]117! 493 2010-03-01 08:30:24Z raasch
118! NetCDF data output format extendend for NetCDF4/HDF5
119!
[482]120! 449 2010-02-02 11:23:59Z raasch
121! +large scale vertical motion (subsidence/ascent)
122! Bugfix: index problem concerning gradient_level indices removed
123!
[449]124! 410 2009-12-04 17:05:40Z letzel
125! Masked data output: + dt_domask, mask_01~20_x|y|z, mask_01~20_x|y|z_loop,
[493]126! mask_scale|_x|y|z, masks, skip_time_domask
[449]127!
[392]128! 346 2009-07-06 10:13:41Z raasch
[328]129! initializing_actions='read_data_for_recycling' renamed to 'cyclic_fill'
[291]130! Coupling with independent precursor runs.
[254]131! Output of messages replaced by message handling routine.
[336]132! Output of several additional dvr parameters
[240]133! +canyon_height, canyon_width_x, canyon_width_y, canyon_wall_left,
[241]134! canyon_wall_south, conserve_volume_flow_mode, dp_external, dp_level_b,
135! dp_smooth, dpdxy, u_bulk, v_bulk
[256]136! topography_grid_convention moved from user_header
[292]137! small bugfix concerning 3d 64bit netcdf output format
[1]138!
[226]139! 206 2008-10-13 14:59:11Z raasch
140! Bugfix: error in zu index in case of section_xy = -1
141!
[200]142! 198 2008-09-17 08:55:28Z raasch
143! Format adjustments allowing output of larger revision numbers
144!
[198]145! 197 2008-09-16 15:29:03Z raasch
146! allow 100 spectra levels instead of 10 for consistency with
147! define_netcdf_header,
148! bugfix in the output of the characteristic levels of potential temperature,
149! geostrophic wind, scalar concentration, humidity and leaf area density,
150! output of turbulence recycling informations
151!
[139]152! 138 2007-11-28 10:03:58Z letzel
153! Allow new case bc_uv_t = 'dirichlet_0' for channel flow.
154! Allow two instead of one digit to specify isosurface and slicer variables.
155! Output of sorting frequency of particles
156!
[110]157! 108 2007-08-24 15:10:38Z letzel
158! Output of informations for coupled model runs (boundary conditions etc.)
159! + output of momentumfluxes at the top boundary
160! Rayleigh damping for ocean, e_init
161!
[98]162! 97 2007-06-21 08:23:15Z raasch
163! Adjustments for the ocean version.
164! use_pt_reference renamed use_reference
165!
[90]166! 87 2007-05-22 15:46:47Z raasch
167! Bugfix: output of use_upstream_for_tke
168!
[83]169! 82 2007-04-16 15:40:52Z raasch
170! Preprocessor strings for different linux clusters changed to "lc",
171! routine local_flush is used for buffer flushing
172!
[77]173! 76 2007-03-29 00:58:32Z raasch
174! Output of netcdf_64bit_3d, particles-package is now part of the default code,
175! output of the loop optimization method, moisture renamed humidity,
176! output of subversion revision number
177!
[39]178! 19 2007-02-23 04:53:48Z raasch
179! Output of scalar flux applied at top boundary
180!
[3]181! RCS Log replace by Id keyword, revision history cleaned up
182!
[1]183! Revision 1.63  2006/08/22 13:53:13  raasch
184! Output of dz_max
185!
186! Revision 1.1  1997/08/11 06:17:20  raasch
187! Initial revision
188!
189!
190! Description:
191! ------------
192! Writing a header with all important informations about the actual run.
193! This subroutine is called three times, two times at the beginning
194! (writing information on files RUN_CONTROL and HEADER) and one time at the
195! end of the run, then writing additional information about CPU-usage on file
196! header.
[411]197!-----------------------------------------------------------------------------!
[1]198
199    USE arrays_3d
200    USE control_parameters
201    USE cloud_parameters
202    USE cpulog
203    USE dvrp_variables
204    USE grid_variables
205    USE indices
206    USE model_1d
207    USE particle_attributes
208    USE pegrid
[411]209    USE subsidence_mod
[1]210    USE spectrum
211
212    IMPLICIT NONE
213
214    CHARACTER (LEN=1)  ::  prec
215    CHARACTER (LEN=2)  ::  do2d_mode
216    CHARACTER (LEN=5)  ::  section_chr
217    CHARACTER (LEN=10) ::  coor_chr, host_chr
218    CHARACTER (LEN=16) ::  begin_chr
[1106]219    CHARACTER (LEN=26) ::  ver_rev
[1]220    CHARACTER (LEN=40) ::  output_format
[167]221    CHARACTER (LEN=70) ::  char1, char2, dopr_chr, &
[1]222                           do2d_xy, do2d_xz, do2d_yz, do3d_chr, &
[410]223                           domask_chr, run_classification
[167]224    CHARACTER (LEN=86) ::  coordinates, gradients, learde, slices,  &
225                           temperatures, ugcomponent, vgcomponent
[1]226    CHARACTER (LEN=85) ::  roben, runten
227
[410]228    CHARACTER (LEN=1), DIMENSION(1:3) ::  dir = (/ 'x', 'y', 'z' /)
229
230    INTEGER ::  av, bh, blx, bly, bxl, bxr, byn, bys, ch, count, cwx, cwy,  &
[1092]231                cxl, cxr, cyn, cys, dim, i, io, j, l, ll, mpi_type
[1]232    REAL    ::  cpuseconds_per_simulated_second
233
234!
235!-- Open the output file. At the end of the simulation, output is directed
236!-- to unit 19.
237    IF ( ( runnr == 0 .OR. force_print_header )  .AND. &
238         .NOT. simulated_time_at_begin /= simulated_time )  THEN
239       io = 15   !  header output on file RUN_CONTROL
240    ELSE
241       io = 19   !  header output on file HEADER
242    ENDIF
243    CALL check_open( io )
244
245!
246!-- At the end of the run, output file (HEADER) will be rewritten with
247!-- new informations
248    IF ( io == 19 .AND. simulated_time_at_begin /= simulated_time ) REWIND( 19 )
249
250!
251!-- Determine kind of model run
252    IF ( TRIM( initializing_actions ) == 'read_restart_data' )  THEN
253       run_classification = '3D - restart run'
[328]254    ELSEIF ( TRIM( initializing_actions ) == 'cyclic_fill' )  THEN
255       run_classification = '3D - run with cyclic fill of 3D - prerun data'
[147]256    ELSEIF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 )  THEN
257       run_classification = '3D - run without 1D - prerun'
[197]258    ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
[147]259       run_classification = '3D - run with 1D - prerun'
[197]260    ELSEIF ( INDEX( initializing_actions, 'by_user' ) /=0 )  THEN
261       run_classification = '3D - run initialized by user'
[1]262    ELSE
[254]263       message_string = ' unknown action(s): ' // TRIM( initializing_actions )
264       CALL message( 'header', 'PA0191', 0, 0, 0, 6, 0 )
[1]265    ENDIF
[97]266    IF ( ocean )  THEN
267       run_classification = 'ocean - ' // run_classification
268    ELSE
269       run_classification = 'atmosphere - ' // run_classification
270    ENDIF
[1]271
272!
273!-- Run-identification, date, time, host
274    host_chr = host(1:10)
[75]275    ver_rev = TRIM( version ) // '  ' // TRIM( revision )
[102]276    WRITE ( io, 100 )  ver_rev, TRIM( run_classification )
[291]277    IF ( TRIM( coupling_mode ) /= 'uncoupled' )  THEN
278#if defined( __mpi2 )
279       mpi_type = 2
280#else
281       mpi_type = 1
282#endif
283       WRITE ( io, 101 )  mpi_type, coupling_mode
284    ENDIF
[1108]285#if defined( __parallel )
[1106]286    IF ( coupling_start_time /= 0.0 )  THEN
287       IF ( coupling_start_time > simulated_time_at_begin )  THEN
288          WRITE ( io, 109 )
289       ELSE
290          WRITE ( io, 114 )
291       ENDIF
292    ENDIF
[1108]293#endif
[102]294    WRITE ( io, 102 )  run_date, run_identifier, run_time, runnr, &
295                       ADJUSTR( host_chr )
[1]296#if defined( __parallel )
297    IF ( npex == -1  .AND.  pdims(2) /= 1 )  THEN
298       char1 = 'calculated'
299    ELSEIF ( ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec'  .OR.  &
300               host(1:2) == 'lc' )  .AND.                          &
301             npex == -1  .AND.  pdims(2) == 1 )  THEN
302       char1 = 'forced'
303    ELSE
304       char1 = 'predefined'
305    ENDIF
306    IF ( threads_per_task == 1 )  THEN
[102]307       WRITE ( io, 103 )  numprocs, pdims(1), pdims(2), TRIM( char1 )
[1]308    ELSE
[102]309       WRITE ( io, 104 )  numprocs*threads_per_task, numprocs, &
[1]310                          threads_per_task, pdims(1), pdims(2), TRIM( char1 )
311    ENDIF
[1111]312    IF ( num_acc_per_node /= 0 )  WRITE ( io, 117 )  num_acc_per_node   
[1]313    IF ( ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec'  .OR.    &
314           host(1:2) == 'lc'   .OR.  host(1:3) == 'dec' )  .AND. &
315         npex == -1  .AND.  pdims(2) == 1 )                      &
316    THEN
[102]317       WRITE ( io, 106 )
[1]318    ELSEIF ( pdims(2) == 1 )  THEN
[102]319       WRITE ( io, 107 )  'x'
[1]320    ELSEIF ( pdims(1) == 1 )  THEN
[102]321       WRITE ( io, 107 )  'y'
[1]322    ENDIF
[102]323    IF ( use_seperate_pe_for_dvrp_output )  WRITE ( io, 105 )
[759]324    IF ( numprocs /= maximum_parallel_io_streams )  THEN
325       WRITE ( io, 108 )  maximum_parallel_io_streams
326    ENDIF
[1111]327#else
328    IF ( num_acc_per_node /= 0 )  WRITE ( io, 120 )  num_acc_per_node
[1]329#endif
330    WRITE ( io, 99 )
331
332!
333!-- Numerical schemes
334    WRITE ( io, 110 )
335    IF ( psolver(1:7) == 'poisfft' )  THEN
336       WRITE ( io, 111 )  TRIM( fft_method )
[1216]337       IF ( transpose_compute_overlap )  WRITE( io, 115 )
[1]338    ELSEIF ( psolver == 'sor' )  THEN
339       WRITE ( io, 112 )  nsor_ini, nsor, omega_sor
340    ELSEIF ( psolver == 'multigrid' )  THEN
341       WRITE ( io, 135 )  cycle_mg, maximum_grid_level, ngsrb
342       IF ( mg_cycles == -1 )  THEN
343          WRITE ( io, 140 )  residual_limit
344       ELSE
345          WRITE ( io, 141 )  mg_cycles
346       ENDIF
347       IF ( mg_switch_to_pe0_level == 0 )  THEN
348          WRITE ( io, 136 )  nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
349                             nzt_mg(1)
[197]350       ELSEIF (  mg_switch_to_pe0_level /= -1 )  THEN
[1]351          WRITE ( io, 137 )  mg_switch_to_pe0_level,            &
352                             mg_loc_ind(2,0)-mg_loc_ind(1,0)+1, &
353                             mg_loc_ind(4,0)-mg_loc_ind(3,0)+1, &
354                             nzt_mg(mg_switch_to_pe0_level),    &
355                             nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
356                             nzt_mg(1)
357       ENDIF
[927]358       IF ( masking_method )  WRITE ( io, 144 )
[1]359    ENDIF
360    IF ( call_psolver_at_all_substeps  .AND. timestep_scheme(1:5) == 'runge' ) &
361    THEN
362       WRITE ( io, 142 )
363    ENDIF
364
365    IF ( momentum_advec == 'pw-scheme' )  THEN
366       WRITE ( io, 113 )
[667]367    ELSEIF (momentum_advec == 'ws-scheme' ) THEN
368       WRITE ( io, 503 )
[1]369    ENDIF
370    IF ( scalar_advec == 'pw-scheme' )  THEN
371       WRITE ( io, 116 )
[667]372    ELSEIF ( scalar_advec == 'ws-scheme' )  THEN
373       WRITE ( io, 504 )
[1]374    ELSE
375       WRITE ( io, 118 )
376    ENDIF
[63]377
378    WRITE ( io, 139 )  TRIM( loop_optimization )
379
[1]380    IF ( galilei_transformation )  THEN
381       IF ( use_ug_for_galilei_tr )  THEN
[868]382          char1 = '0.6 * geostrophic wind'
[1]383       ELSE
384          char1 = 'mean wind in model domain'
385       ENDIF
386       IF ( simulated_time_at_begin == simulated_time )  THEN
387          char2 = 'at the start of the run'
388       ELSE
389          char2 = 'at the end of the run'
390       ENDIF
391       WRITE ( io, 119 )  TRIM( char1 ), TRIM( char2 ), &
392                          advected_distance_x/1000.0, advected_distance_y/1000.0
393    ENDIF
[1001]394    WRITE ( io, 122 )  timestep_scheme
[87]395    IF ( use_upstream_for_tke )  WRITE ( io, 143 )
[1]396    IF ( rayleigh_damping_factor /= 0.0 )  THEN
[108]397       IF ( .NOT. ocean )  THEN
398          WRITE ( io, 123 )  'above', rayleigh_damping_height, &
399               rayleigh_damping_factor
400       ELSE
401          WRITE ( io, 123 )  'below', rayleigh_damping_height, &
402               rayleigh_damping_factor
403       ENDIF
[1]404    ENDIF
[940]405    IF ( neutral )  WRITE ( io, 131 )  pt_surface
[75]406    IF ( humidity )  THEN
[1]407       IF ( .NOT. cloud_physics )  THEN
408          WRITE ( io, 129 )
409       ELSE
410          WRITE ( io, 130 )
411       ENDIF
412    ENDIF
413    IF ( passive_scalar )  WRITE ( io, 134 )
[240]414    IF ( conserve_volume_flow )  THEN
[241]415       WRITE ( io, 150 )  conserve_volume_flow_mode
416       IF ( TRIM( conserve_volume_flow_mode ) == 'bulk_velocity' )  THEN
417          WRITE ( io, 151 )  u_bulk, v_bulk
418       ENDIF
[240]419    ELSEIF ( dp_external )  THEN
420       IF ( dp_smooth )  THEN
[241]421          WRITE ( io, 152 )  dpdxy, dp_level_b, ', vertically smoothed.'
[240]422       ELSE
[241]423          WRITE ( io, 152 )  dpdxy, dp_level_b, '.'
[240]424       ENDIF
425    ENDIF
[411]426    IF ( large_scale_subsidence )  THEN
427        WRITE ( io, 153 )
428        WRITE ( io, 154 )
429    ENDIF
[1239]430    IF ( nudging )  THEN
431        WRITE ( io, 155 )
432        WRITE ( io, 156 )
433    ENDIF
434    IF ( large_scale_forcing )  THEN
435        WRITE ( io, 157 )
436        WRITE ( io, 158 )
437    ENDIF
[1]438    WRITE ( io, 99 )
439
440!
441!-- Runtime and timestep informations
442    WRITE ( io, 200 )
443    IF ( .NOT. dt_fixed )  THEN
444       WRITE ( io, 201 )  dt_max, cfl_factor
445    ELSE
446       WRITE ( io, 202 )  dt
447    ENDIF
448    WRITE ( io, 203 )  simulated_time_at_begin, end_time
449
450    IF ( time_restart /= 9999999.9  .AND. &
451         simulated_time_at_begin == simulated_time )  THEN
452       IF ( dt_restart == 9999999.9 )  THEN
453          WRITE ( io, 204 )  ' Restart at:       ',time_restart
454       ELSE
455          WRITE ( io, 205 )  ' Restart at:       ',time_restart, dt_restart
456       ENDIF
457    ENDIF
458
459    IF ( simulated_time_at_begin /= simulated_time )  THEN
460       i = MAX ( log_point_s(10)%counts, 1 )
461       IF ( ( simulated_time - simulated_time_at_begin ) == 0.0 )  THEN
462          cpuseconds_per_simulated_second = 0.0
463       ELSE
464          cpuseconds_per_simulated_second = log_point_s(10)%sum / &
465                                            ( simulated_time -    &
466                                              simulated_time_at_begin )
467       ENDIF
468       WRITE ( io, 206 )  simulated_time, log_point_s(10)%sum, &
469                          log_point_s(10)%sum / REAL( i ),     &
470                          cpuseconds_per_simulated_second
471       IF ( time_restart /= 9999999.9  .AND.  time_restart < end_time )  THEN
472          IF ( dt_restart == 9999999.9 )  THEN
[1106]473             WRITE ( io, 204 )  ' Next restart at:     ',time_restart
[1]474          ELSE
[1106]475             WRITE ( io, 205 )  ' Next restart at:     ',time_restart, dt_restart
[1]476          ENDIF
477       ENDIF
478    ENDIF
479
480!
[291]481!-- Start time for coupled runs, if independent precursor runs for atmosphere
[1106]482!-- and ocean are used or have been used. In this case, coupling_start_time
483!-- defines the time when the coupling is switched on.
[291]484    IF ( coupling_start_time /= 0.0 )  THEN
[1106]485       WRITE ( io, 207 )  coupling_start_time
[291]486    ENDIF
487
488!
[1]489!-- Computational grid
[94]490    IF ( .NOT. ocean )  THEN
491       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(nzt+1)
492       IF ( dz_stretch_level_index < nzt+1 )  THEN
493          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
494                             dz_stretch_factor, dz_max
495       ENDIF
496    ELSE
497       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(0)
498       IF ( dz_stretch_level_index > 0 )  THEN
499          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
500                             dz_stretch_factor, dz_max
501       ENDIF
[1]502    ENDIF
503    WRITE ( io, 254 )  nx, ny, nzt+1, MIN( nnx, nx+1 ), MIN( nny, ny+1 ), &
504                       MIN( nnz+2, nzt+2 )
505    IF ( sloping_surface )  WRITE ( io, 260 )  alpha_surface
506
507!
508!-- Topography
509    WRITE ( io, 270 )  topography
510    SELECT CASE ( TRIM( topography ) )
511
512       CASE ( 'flat' )
513          ! no actions necessary
514
515       CASE ( 'single_building' )
516          blx = INT( building_length_x / dx )
517          bly = INT( building_length_y / dy )
518          bh  = INT( building_height / dz )
519
520          IF ( building_wall_left == 9999999.9 )  THEN
521             building_wall_left = ( nx + 1 - blx ) / 2 * dx
522          ENDIF
523          bxl = INT ( building_wall_left / dx + 0.5 )
524          bxr = bxl + blx
525
526          IF ( building_wall_south == 9999999.9 )  THEN
527             building_wall_south = ( ny + 1 - bly ) / 2 * dy
528          ENDIF
529          bys = INT ( building_wall_south / dy + 0.5 )
530          byn = bys + bly
531
532          WRITE ( io, 271 )  building_length_x, building_length_y, &
533                             building_height, bxl, bxr, bys, byn
534
[240]535       CASE ( 'single_street_canyon' )
536          ch  = NINT( canyon_height / dz )
537          IF ( canyon_width_x /= 9999999.9 )  THEN
538!
539!--          Street canyon in y direction
540             cwx = NINT( canyon_width_x / dx )
541             IF ( canyon_wall_left == 9999999.9 )  THEN
542                canyon_wall_left = ( nx + 1 - cwx ) / 2 * dx
543             ENDIF
544             cxl = NINT( canyon_wall_left / dx )
545             cxr = cxl + cwx
546             WRITE ( io, 272 )  'y', canyon_height, ch, 'u', cxl, cxr
547
548          ELSEIF ( canyon_width_y /= 9999999.9 )  THEN
549!
550!--          Street canyon in x direction
551             cwy = NINT( canyon_width_y / dy )
552             IF ( canyon_wall_south == 9999999.9 )  THEN
553                canyon_wall_south = ( ny + 1 - cwy ) / 2 * dy
554             ENDIF
555             cys = NINT( canyon_wall_south / dy )
556             cyn = cys + cwy
557             WRITE ( io, 272 )  'x', canyon_height, ch, 'v', cys, cyn
558          ENDIF
559
[1]560    END SELECT
561
[256]562    IF ( TRIM( topography ) /= 'flat' )  THEN
563       IF ( TRIM( topography_grid_convention ) == ' ' )  THEN
564          IF ( TRIM( topography ) == 'single_building' .OR.  &
565               TRIM( topography ) == 'single_street_canyon' )  THEN
566             WRITE ( io, 278 )
567          ELSEIF ( TRIM( topography ) == 'read_from_file' )  THEN
568             WRITE ( io, 279 )
569          ENDIF
570       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_edge' )  THEN
571          WRITE ( io, 278 )
572       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_center' )  THEN
573          WRITE ( io, 279 )
574       ENDIF
575    ENDIF
576
[138]577    IF ( plant_canopy ) THEN
578
579       WRITE ( io, 280 ) canopy_mode, pch_index, drag_coefficient
[153]580       IF ( passive_scalar ) THEN
581          WRITE ( io, 281 ) scalar_exchange_coefficient,   &
582                            leaf_surface_concentration
583       ENDIF
[138]584
[1]585!
[153]586!--    Heat flux at the top of vegetation
587       WRITE ( io, 282 ) cthf
588
589!
[138]590!--    Leaf area density profile
591!--    Building output strings, starting with surface value
[833]592       WRITE ( learde, '(F6.4)' )  lad_surface
[138]593       gradients = '------'
594       slices = '     0'
595       coordinates = '   0.0'
596       i = 1
597       DO  WHILE ( lad_vertical_gradient_level_ind(i) /= -9999 )
598
599          WRITE (coor_chr,'(F7.2)')  lad(lad_vertical_gradient_level_ind(i))
600          learde = TRIM( learde ) // ' ' // TRIM( coor_chr )
601
602          WRITE (coor_chr,'(F7.2)')  lad_vertical_gradient(i)
603          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
604
605          WRITE (coor_chr,'(I7)')  lad_vertical_gradient_level_ind(i)
606          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
607
608          WRITE (coor_chr,'(F7.1)')  lad_vertical_gradient_level(i)
609          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
610
611          i = i + 1
612       ENDDO
613
[153]614       WRITE ( io, 283 )  TRIM( coordinates ), TRIM( learde ), &
[138]615                          TRIM( gradients ), TRIM( slices )
616
617    ENDIF
618
619!
[1]620!-- Boundary conditions
621    IF ( ibc_p_b == 0 )  THEN
622       runten = 'p(0)     = 0      |'
623    ELSEIF ( ibc_p_b == 1 )  THEN
624       runten = 'p(0)     = p(1)   |'
625    ENDIF
626    IF ( ibc_p_t == 0 )  THEN
627       roben  = 'p(nzt+1) = 0      |'
628    ELSE
629       roben  = 'p(nzt+1) = p(nzt) |'
630    ENDIF
631
632    IF ( ibc_uv_b == 0 )  THEN
633       runten = TRIM( runten ) // ' uv(0)     = -uv(1)                |'
634    ELSE
635       runten = TRIM( runten ) // ' uv(0)     = uv(1)                 |'
636    ENDIF
[132]637    IF ( TRIM( bc_uv_t ) == 'dirichlet_0' )  THEN
638       roben  = TRIM( roben  ) // ' uv(nzt+1) = 0                     |'
639    ELSEIF ( ibc_uv_t == 0 )  THEN
[1]640       roben  = TRIM( roben  ) // ' uv(nzt+1) = ug(nzt+1), vg(nzt+1)  |'
641    ELSE
642       roben  = TRIM( roben  ) // ' uv(nzt+1) = uv(nzt)               |'
643    ENDIF
644
645    IF ( ibc_pt_b == 0 )  THEN
646       runten = TRIM( runten ) // ' pt(0)   = pt_surface'
[102]647    ELSEIF ( ibc_pt_b == 1 )  THEN
[1]648       runten = TRIM( runten ) // ' pt(0)   = pt(1)'
[102]649    ELSEIF ( ibc_pt_b == 2 )  THEN
650       runten = TRIM( runten ) // ' pt(0) = from coupled model'
[1]651    ENDIF
652    IF ( ibc_pt_t == 0 )  THEN
[19]653       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt_top'
654    ELSEIF( ibc_pt_t == 1 )  THEN
655       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt(nzt)'
656    ELSEIF( ibc_pt_t == 2 )  THEN
657       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt(nzt) + dpt/dz_ini'
[667]658
[1]659    ENDIF
660
661    WRITE ( io, 300 )  runten, roben
662
663    IF ( .NOT. constant_diffusion )  THEN
664       IF ( ibc_e_b == 1 )  THEN
665          runten = 'e(0)     = e(1)'
666       ELSE
667          runten = 'e(0)     = e(1) = (u*/0.1)**2'
668       ENDIF
669       roben = 'e(nzt+1) = e(nzt) = e(nzt-1)'
670
[97]671       WRITE ( io, 301 )  'e', runten, roben       
[1]672
673    ENDIF
674
[97]675    IF ( ocean )  THEN
676       runten = 'sa(0)    = sa(1)'
677       IF ( ibc_sa_t == 0 )  THEN
678          roben =  'sa(nzt+1) = sa_surface'
[1]679       ELSE
[97]680          roben =  'sa(nzt+1) = sa(nzt)'
[1]681       ENDIF
[97]682       WRITE ( io, 301 ) 'sa', runten, roben
683    ENDIF
[1]684
[97]685    IF ( humidity )  THEN
686       IF ( ibc_q_b == 0 )  THEN
687          runten = 'q(0)     = q_surface'
688       ELSE
689          runten = 'q(0)     = q(1)'
690       ENDIF
691       IF ( ibc_q_t == 0 )  THEN
692          roben =  'q(nzt)   = q_top'
693       ELSE
694          roben =  'q(nzt)   = q(nzt-1) + dq/dz'
695       ENDIF
696       WRITE ( io, 301 ) 'q', runten, roben
697    ENDIF
[1]698
[97]699    IF ( passive_scalar )  THEN
700       IF ( ibc_q_b == 0 )  THEN
701          runten = 's(0)     = s_surface'
702       ELSE
703          runten = 's(0)     = s(1)'
704       ENDIF
705       IF ( ibc_q_t == 0 )  THEN
706          roben =  's(nzt)   = s_top'
707       ELSE
708          roben =  's(nzt)   = s(nzt-1) + ds/dz'
709       ENDIF
710       WRITE ( io, 301 ) 's', runten, roben
[1]711    ENDIF
712
713    IF ( use_surface_fluxes )  THEN
714       WRITE ( io, 303 )
715       IF ( constant_heatflux )  THEN
[1239]716          IF ( large_scale_forcing .AND. lsf_surf ) THEN
717             WRITE ( io, 306 )  shf(0,0)
718          ELSE
719             WRITE ( io, 306 )  surface_heatflux
720          ENDIF
[1]721          IF ( random_heatflux )  WRITE ( io, 307 )
722       ENDIF
[75]723       IF ( humidity  .AND.  constant_waterflux )  THEN
[1239]724          IF ( large_scale_forcing .AND. lsf_surf ) THEN
725             WRITE ( io, 311 ) qsws(0,0)
726          ELSE
727             WRITE ( io, 311 ) surface_waterflux
728          ENDIF
[1]729       ENDIF
730       IF ( passive_scalar  .AND.  constant_waterflux )  THEN
731          WRITE ( io, 313 ) surface_waterflux
732       ENDIF
733    ENDIF
734
[19]735    IF ( use_top_fluxes )  THEN
736       WRITE ( io, 304 )
[102]737       IF ( coupling_mode == 'uncoupled' )  THEN
[151]738          WRITE ( io, 320 )  top_momentumflux_u, top_momentumflux_v
[102]739          IF ( constant_top_heatflux )  THEN
740             WRITE ( io, 306 )  top_heatflux
741          ENDIF
742       ELSEIF ( coupling_mode == 'ocean_to_atmosphere' )  THEN
743          WRITE ( io, 316 )
[19]744       ENDIF
[97]745       IF ( ocean  .AND.  constant_top_salinityflux )  THEN
746          WRITE ( io, 309 )  top_salinityflux
747       ENDIF
[75]748       IF ( humidity  .OR.  passive_scalar )  THEN
[19]749          WRITE ( io, 315 )
750       ENDIF
751    ENDIF
752
[1]753    IF ( prandtl_layer )  THEN
[978]754       WRITE ( io, 305 )  (zu(1)-zu(0)), roughness_length, &
755                          z0h_factor*roughness_length, kappa, &
[94]756                          rif_min, rif_max
[1]757       IF ( .NOT. constant_heatflux )  WRITE ( io, 308 )
[75]758       IF ( humidity  .AND.  .NOT. constant_waterflux )  THEN
[1]759          WRITE ( io, 312 )
760       ENDIF
761       IF ( passive_scalar  .AND.  .NOT. constant_waterflux )  THEN
762          WRITE ( io, 314 )
763       ENDIF
764    ELSE
765       IF ( INDEX(initializing_actions, 'set_1d-model_profiles') /= 0 )  THEN
766          WRITE ( io, 310 )  rif_min, rif_max
767       ENDIF
768    ENDIF
769
770    WRITE ( io, 317 )  bc_lr, bc_ns
[707]771    IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
[1159]772       WRITE ( io, 318 )  use_cmax, pt_damping_width, pt_damping_factor       
[151]773       IF ( turbulent_inflow )  THEN
774          WRITE ( io, 319 )  recycling_width, recycling_plane, &
775                             inflow_damping_height, inflow_damping_width
776       ENDIF
[1]777    ENDIF
778
779!
780!-- Listing of 1D-profiles
[151]781    WRITE ( io, 325 )  dt_dopr_listing
[1]782    IF ( averaging_interval_pr /= 0.0 )  THEN
[151]783       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
[1]784    ENDIF
785
786!
787!-- DATA output
788    WRITE ( io, 330 )
789    IF ( averaging_interval_pr /= 0.0 )  THEN
[151]790       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
[1]791    ENDIF
792
793!
794!-- 1D-profiles
[346]795    dopr_chr = 'Profile:'
[1]796    IF ( dopr_n /= 0 )  THEN
797       WRITE ( io, 331 )
798
799       output_format = ''
800       IF ( netcdf_output )  THEN
[1031]801          output_format = output_format_netcdf
[1]802       ENDIF
[292]803       WRITE ( io, 344 )  output_format
[1]804
805       DO  i = 1, dopr_n
806          dopr_chr = TRIM( dopr_chr ) // ' ' // TRIM( data_output_pr(i) ) // ','
807          IF ( LEN_TRIM( dopr_chr ) >= 60 )  THEN
808             WRITE ( io, 332 )  dopr_chr
809             dopr_chr = '       :'
810          ENDIF
811       ENDDO
812
813       IF ( dopr_chr /= '' )  THEN
814          WRITE ( io, 332 )  dopr_chr
815       ENDIF
816       WRITE ( io, 333 )  dt_dopr, averaging_interval_pr, dt_averaging_input_pr
817       IF ( skip_time_dopr /= 0.0 )  WRITE ( io, 339 )  skip_time_dopr
818    ENDIF
819
820!
821!-- 2D-arrays
822    DO  av = 0, 1
823
824       i = 1
825       do2d_xy = ''
826       do2d_xz = ''
827       do2d_yz = ''
828       DO  WHILE ( do2d(av,i) /= ' ' )
829
830          l = MAX( 2, LEN_TRIM( do2d(av,i) ) )
831          do2d_mode = do2d(av,i)(l-1:l)
832
833          SELECT CASE ( do2d_mode )
834             CASE ( 'xy' )
835                ll = LEN_TRIM( do2d_xy )
836                do2d_xy = do2d_xy(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
837             CASE ( 'xz' )
838                ll = LEN_TRIM( do2d_xz )
839                do2d_xz = do2d_xz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
840             CASE ( 'yz' )
841                ll = LEN_TRIM( do2d_yz )
842                do2d_yz = do2d_yz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
843          END SELECT
844
845          i = i + 1
846
847       ENDDO
848
849       IF ( ( ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  .OR.    &
850              ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  .OR.    &
851              ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 ) )  .AND. &
852            ( netcdf_output  .OR.  iso2d_output ) )  THEN
853
854          IF (  av == 0 )  THEN
855             WRITE ( io, 334 )  ''
856          ELSE
857             WRITE ( io, 334 )  '(time-averaged)'
858          ENDIF
859
860          IF ( do2d_at_begin )  THEN
861             begin_chr = 'and at the start'
862          ELSE
863             begin_chr = ''
864          ENDIF
865
866          output_format = ''
867          IF ( netcdf_output )  THEN
[1031]868             output_format = output_format_netcdf
[1]869          ENDIF
870          IF ( iso2d_output )  THEN
871             IF ( netcdf_output )  THEN
[1031]872                output_format = TRIM( output_format_netcdf ) // ' and iso2d'
[1]873             ELSE
874                output_format = 'iso2d'
875             ENDIF
876          ENDIF
[292]877          WRITE ( io, 344 )  output_format
[1]878
879          IF ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  THEN
880             i = 1
881             slices = '/'
882             coordinates = '/'
883!
884!--          Building strings with index and coordinate informations of the
885!--          slices
886             DO  WHILE ( section(i,1) /= -9999 )
887
888                WRITE (section_chr,'(I5)')  section(i,1)
889                section_chr = ADJUSTL( section_chr )
890                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
891
[206]892                IF ( section(i,1) == -1 )  THEN
893                   WRITE (coor_chr,'(F10.1)')  -1.0
894                ELSE
895                   WRITE (coor_chr,'(F10.1)')  zu(section(i,1))
896                ENDIF
[1]897                coor_chr = ADJUSTL( coor_chr )
898                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
899
900                i = i + 1
901             ENDDO
902             IF ( av == 0 )  THEN
903                WRITE ( io, 335 )  'XY', do2d_xy, dt_do2d_xy, &
904                                   TRIM( begin_chr ), 'k', TRIM( slices ), &
905                                   TRIM( coordinates )
906                IF ( skip_time_do2d_xy /= 0.0 )  THEN
907                   WRITE ( io, 339 )  skip_time_do2d_xy
908                ENDIF
909             ELSE
910                WRITE ( io, 342 )  'XY', do2d_xy, dt_data_output_av, &
911                                   TRIM( begin_chr ), averaging_interval, &
912                                   dt_averaging_input, 'k', TRIM( slices ), &
913                                   TRIM( coordinates )
914                IF ( skip_time_data_output_av /= 0.0 )  THEN
915                   WRITE ( io, 339 )  skip_time_data_output_av
916                ENDIF
917             ENDIF
918
919          ENDIF
920
921          IF ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  THEN
922             i = 1
923             slices = '/'
924             coordinates = '/'
925!
926!--          Building strings with index and coordinate informations of the
927!--          slices
928             DO  WHILE ( section(i,2) /= -9999 )
929
930                WRITE (section_chr,'(I5)')  section(i,2)
931                section_chr = ADJUSTL( section_chr )
932                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
933
934                WRITE (coor_chr,'(F10.1)')  section(i,2) * dy
935                coor_chr = ADJUSTL( coor_chr )
936                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
937
938                i = i + 1
939             ENDDO
940             IF ( av == 0 )  THEN
941                WRITE ( io, 335 )  'XZ', do2d_xz, dt_do2d_xz, &
942                                   TRIM( begin_chr ), 'j', TRIM( slices ), &
943                                   TRIM( coordinates )
944                IF ( skip_time_do2d_xz /= 0.0 )  THEN
945                   WRITE ( io, 339 )  skip_time_do2d_xz
946                ENDIF
947             ELSE
948                WRITE ( io, 342 )  'XZ', do2d_xz, dt_data_output_av, &
949                                   TRIM( begin_chr ), averaging_interval, &
950                                   dt_averaging_input, 'j', TRIM( slices ), &
951                                   TRIM( coordinates )
952                IF ( skip_time_data_output_av /= 0.0 )  THEN
953                   WRITE ( io, 339 )  skip_time_data_output_av
954                ENDIF
955             ENDIF
956          ENDIF
957
958          IF ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 )  THEN
959             i = 1
960             slices = '/'
961             coordinates = '/'
962!
963!--          Building strings with index and coordinate informations of the
964!--          slices
965             DO  WHILE ( section(i,3) /= -9999 )
966
967                WRITE (section_chr,'(I5)')  section(i,3)
968                section_chr = ADJUSTL( section_chr )
969                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
970
971                WRITE (coor_chr,'(F10.1)')  section(i,3) * dx
972                coor_chr = ADJUSTL( coor_chr )
973                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
974
975                i = i + 1
976             ENDDO
977             IF ( av == 0 )  THEN
978                WRITE ( io, 335 )  'YZ', do2d_yz, dt_do2d_yz, &
979                                   TRIM( begin_chr ), 'i', TRIM( slices ), &
980                                   TRIM( coordinates )
981                IF ( skip_time_do2d_yz /= 0.0 )  THEN
982                   WRITE ( io, 339 )  skip_time_do2d_yz
983                ENDIF
984             ELSE
985                WRITE ( io, 342 )  'YZ', do2d_yz, dt_data_output_av, &
986                                   TRIM( begin_chr ), averaging_interval, &
987                                   dt_averaging_input, 'i', TRIM( slices ), &
988                                   TRIM( coordinates )
989                IF ( skip_time_data_output_av /= 0.0 )  THEN
990                   WRITE ( io, 339 )  skip_time_data_output_av
991                ENDIF
992             ENDIF
993          ENDIF
994
995       ENDIF
996
997    ENDDO
998
999!
1000!-- 3d-arrays
1001    DO  av = 0, 1
1002
1003       i = 1
1004       do3d_chr = ''
1005       DO  WHILE ( do3d(av,i) /= ' ' )
1006
1007          do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // ','
1008          i = i + 1
1009
1010       ENDDO
1011
1012       IF ( do3d_chr /= '' )  THEN
1013          IF ( av == 0 )  THEN
1014             WRITE ( io, 336 )  ''
1015          ELSE
1016             WRITE ( io, 336 )  '(time-averaged)'
1017          ENDIF
1018
1019          output_format = ''
1020          IF ( netcdf_output )  THEN
[1031]1021             output_format = output_format_netcdf
[1]1022          ENDIF
1023          IF ( avs_output )  THEN
1024             IF ( netcdf_output )  THEN
[1031]1025                output_format = TRIM( output_format_netcdf ) // ' and avs'
[1]1026             ELSE
1027                output_format = 'avs'
1028             ENDIF
1029          ENDIF
[292]1030          WRITE ( io, 344 )  output_format
[1]1031
1032          IF ( do3d_at_begin )  THEN
1033             begin_chr = 'and at the start'
1034          ELSE
1035             begin_chr = ''
1036          ENDIF
1037          IF ( av == 0 )  THEN
1038             WRITE ( io, 337 )  do3d_chr, dt_do3d, TRIM( begin_chr ), &
1039                                zu(nz_do3d), nz_do3d
1040          ELSE
1041             WRITE ( io, 343 )  do3d_chr, dt_data_output_av,           &
1042                                TRIM( begin_chr ), averaging_interval, &
1043                                dt_averaging_input, zu(nz_do3d), nz_do3d
1044          ENDIF
1045
1046          IF ( do3d_compress )  THEN
1047             do3d_chr = ''
1048             i = 1
1049             DO WHILE ( do3d(av,i) /= ' ' )
1050
1051                SELECT CASE ( do3d(av,i) )
1052                   CASE ( 'u' )
1053                      j = 1
1054                   CASE ( 'v' )
1055                      j = 2
1056                   CASE ( 'w' )
1057                      j = 3
1058                   CASE ( 'p' )
1059                      j = 4
1060                   CASE ( 'pt' )
1061                      j = 5
1062                END SELECT
1063                WRITE ( prec, '(I1)' )  plot_3d_precision(j)%precision
1064                do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // &
1065                           ':' // prec // ','
1066                i = i + 1
1067
1068             ENDDO
1069             WRITE ( io, 338 )  do3d_chr
1070
1071          ENDIF
1072
1073          IF ( av == 0 )  THEN
1074             IF ( skip_time_do3d /= 0.0 )  THEN
1075                WRITE ( io, 339 )  skip_time_do3d
1076             ENDIF
1077          ELSE
1078             IF ( skip_time_data_output_av /= 0.0 )  THEN
1079                WRITE ( io, 339 )  skip_time_data_output_av
1080             ENDIF
1081          ENDIF
1082
1083       ENDIF
1084
1085    ENDDO
1086
1087!
[410]1088!-- masked arrays
1089    IF ( masks > 0 )  WRITE ( io, 345 )  &
1090         mask_scale_x, mask_scale_y, mask_scale_z
1091    DO  mid = 1, masks
1092       DO  av = 0, 1
1093
1094          i = 1
1095          domask_chr = ''
1096          DO  WHILE ( domask(mid,av,i) /= ' ' )
1097             domask_chr = TRIM( domask_chr ) // ' ' //  &
1098                          TRIM( domask(mid,av,i) ) // ','
1099             i = i + 1
1100          ENDDO
1101
1102          IF ( domask_chr /= '' )  THEN
1103             IF ( av == 0 )  THEN
1104                WRITE ( io, 346 )  '', mid
1105             ELSE
1106                WRITE ( io, 346 )  ' (time-averaged)', mid
1107             ENDIF
1108
[1031]1109             output_format = ' '
[410]1110             IF ( netcdf_output )  THEN
[1031]1111                output_format = output_format_netcdf
[410]1112             ENDIF
1113             WRITE ( io, 344 )  output_format
1114
1115             IF ( av == 0 )  THEN
1116                WRITE ( io, 347 )  domask_chr, dt_domask(mid)
1117             ELSE
1118                WRITE ( io, 348 )  domask_chr, dt_data_output_av, &
1119                                   averaging_interval, dt_averaging_input
1120             ENDIF
1121
1122             IF ( av == 0 )  THEN
1123                IF ( skip_time_domask(mid) /= 0.0 )  THEN
1124                   WRITE ( io, 339 )  skip_time_domask(mid)
1125                ENDIF
1126             ELSE
1127                IF ( skip_time_data_output_av /= 0.0 )  THEN
1128                   WRITE ( io, 339 )  skip_time_data_output_av
1129                ENDIF
1130             ENDIF
1131!
1132!--          output locations
1133             DO  dim = 1, 3
1134                IF ( mask(mid,dim,1) >= 0.0 )  THEN
1135                   count = 0
1136                   DO  WHILE ( mask(mid,dim,count+1) >= 0.0 )
1137                      count = count + 1
1138                   ENDDO
1139                   WRITE ( io, 349 )  dir(dim), dir(dim), mid, dir(dim), &
1140                                      mask(mid,dim,:count)
1141                ELSEIF ( mask_loop(mid,dim,1) < 0.0 .AND.  &
1142                         mask_loop(mid,dim,2) < 0.0 .AND.  &
1143                         mask_loop(mid,dim,3) == 0.0 )  THEN
1144                   WRITE ( io, 350 )  dir(dim), dir(dim)
1145                ELSEIF ( mask_loop(mid,dim,3) == 0.0 )  THEN
1146                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1147                                      mask_loop(mid,dim,1:2)
1148                ELSE
1149                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1150                                      mask_loop(mid,dim,1:3)
1151                ENDIF
1152             ENDDO
1153          ENDIF
1154
1155       ENDDO
1156    ENDDO
1157
1158!
[1]1159!-- Timeseries
1160    IF ( dt_dots /= 9999999.9 )  THEN
1161       WRITE ( io, 340 )
1162
1163       output_format = ''
1164       IF ( netcdf_output )  THEN
[1031]1165          output_format = output_format_netcdf
[1]1166       ENDIF
[292]1167       WRITE ( io, 344 )  output_format
[1]1168       WRITE ( io, 341 )  dt_dots
1169    ENDIF
1170
1171#if defined( __dvrp_graphics )
1172!
1173!-- Dvrp-output
1174    IF ( dt_dvrp /= 9999999.9 )  THEN
1175       WRITE ( io, 360 )  dt_dvrp, TRIM( dvrp_output ), TRIM( dvrp_host ), &
1176                          TRIM( dvrp_username ), TRIM( dvrp_directory )
1177       i = 1
1178       l = 0
[336]1179       m = 0
[1]1180       DO WHILE ( mode_dvrp(i) /= ' ' )
1181          IF ( mode_dvrp(i)(1:10) == 'isosurface' )  THEN
[130]1182             READ ( mode_dvrp(i), '(10X,I2)' )  j
[1]1183             l = l + 1
1184             IF ( do3d(0,j) /= ' ' )  THEN
[336]1185                WRITE ( io, 361 )  TRIM( do3d(0,j) ), threshold(l), &
1186                                   isosurface_color(:,l)
[1]1187             ENDIF
1188          ELSEIF ( mode_dvrp(i)(1:6) == 'slicer' )  THEN
[130]1189             READ ( mode_dvrp(i), '(6X,I2)' )  j
[336]1190             m = m + 1
1191             IF ( do2d(0,j) /= ' ' )  THEN
1192                WRITE ( io, 362 )  TRIM( do2d(0,j) ), &
1193                                   slicer_range_limits_dvrp(:,m)
1194             ENDIF
[1]1195          ELSEIF ( mode_dvrp(i)(1:9) == 'particles' )  THEN
[336]1196             WRITE ( io, 363 )  dvrp_psize
1197             IF ( particle_dvrpsize /= 'none' )  THEN
1198                WRITE ( io, 364 )  'size', TRIM( particle_dvrpsize ), &
1199                                   dvrpsize_interval
1200             ENDIF
1201             IF ( particle_color /= 'none' )  THEN
1202                WRITE ( io, 364 )  'color', TRIM( particle_color ), &
1203                                   color_interval
1204             ENDIF
[1]1205          ENDIF
1206          i = i + 1
1207       ENDDO
[237]1208
[336]1209       WRITE ( io, 365 )  groundplate_color, superelevation_x, &
1210                          superelevation_y, superelevation, clip_dvrp_l, &
1211                          clip_dvrp_r, clip_dvrp_s, clip_dvrp_n
1212
1213       IF ( TRIM( topography ) /= 'flat' )  THEN
1214          WRITE ( io, 366 )  topography_color
1215          IF ( cluster_size > 1 )  THEN
1216             WRITE ( io, 367 )  cluster_size
1217          ENDIF
[237]1218       ENDIF
1219
[1]1220    ENDIF
1221#endif
1222
1223#if defined( __spectra )
1224!
1225!-- Spectra output
1226    IF ( dt_dosp /= 9999999.9 ) THEN
1227       WRITE ( io, 370 )
1228
[1031]1229       output_format = ' '
[1]1230       IF ( netcdf_output )  THEN
[1031]1231          output_format = output_format_netcdf
[1]1232       ENDIF
[292]1233       WRITE ( io, 344 )  output_format
[1]1234       WRITE ( io, 371 )  dt_dosp
1235       IF ( skip_time_dosp /= 0.0 )  WRITE ( io, 339 )  skip_time_dosp
1236       WRITE ( io, 372 )  ( data_output_sp(i), i = 1,10 ),     &
1237                          ( spectra_direction(i), i = 1,10 ),  &
[189]1238                          ( comp_spectra_level(i), i = 1,100 ), &
1239                          ( plot_spectra_level(i), i = 1,100 ), &
[1]1240                          averaging_interval_sp, dt_averaging_input_pr
1241    ENDIF
1242#endif
1243
1244    WRITE ( io, 99 )
1245
1246!
1247!-- Physical quantities
1248    WRITE ( io, 400 )
1249
1250!
1251!-- Geostrophic parameters
1252    WRITE ( io, 410 )  omega, phi, f, fs
1253
1254!
1255!-- Other quantities
1256    WRITE ( io, 411 )  g
[1179]1257    WRITE ( io, 412 )  TRIM( reference_state )
1258    IF ( use_single_reference_value )  THEN
[97]1259       IF ( ocean )  THEN
[1179]1260          WRITE ( io, 413 )  prho_reference
[97]1261       ELSE
[1179]1262          WRITE ( io, 414 )  pt_reference
[97]1263       ENDIF
1264    ENDIF
[1]1265
1266!
1267!-- Cloud physics parameters
1268    IF ( cloud_physics ) THEN
[57]1269       WRITE ( io, 415 )
1270       WRITE ( io, 416 ) surface_pressure, r_d, rho_surface, cp, l_v
[1115]1271       IF ( icloud_scheme == 0 )  THEN
1272          WRITE ( io, 510 ) 1.0E-6 * nc_const
1273          IF ( precipitation )  WRITE ( io, 511 ) c_sedimentation
1274       ENDIF
[1]1275    ENDIF
1276
1277!-- Profile of the geostrophic wind (component ug)
1278!-- Building output strings
1279    WRITE ( ugcomponent, '(F6.2)' )  ug_surface
1280    gradients = '------'
1281    slices = '     0'
1282    coordinates = '   0.0'
1283    i = 1
1284    DO  WHILE ( ug_vertical_gradient_level_ind(i) /= -9999 )
1285     
[167]1286       WRITE (coor_chr,'(F6.2,1X)')  ug(ug_vertical_gradient_level_ind(i))
[1]1287       ugcomponent = TRIM( ugcomponent ) // '  ' // TRIM( coor_chr )
1288
[167]1289       WRITE (coor_chr,'(F6.2,1X)')  ug_vertical_gradient(i)
[1]1290       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1291
[167]1292       WRITE (coor_chr,'(I6,1X)')  ug_vertical_gradient_level_ind(i)
[1]1293       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1294
[167]1295       WRITE (coor_chr,'(F6.1,1X)')  ug_vertical_gradient_level(i)
[1]1296       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
1297
[430]1298       IF ( i == 10 )  THEN
1299          EXIT
1300       ELSE
1301          i = i + 1
1302       ENDIF
1303
[1]1304    ENDDO
1305
[1239]1306    IF ( .NOT. large_scale_forcing ) THEN
1307       WRITE ( io, 423 )  TRIM( coordinates ), TRIM( ugcomponent ), &
1308                          TRIM( gradients ), TRIM( slices )
1309    ELSE
1310       WRITE ( io, 429 ) 
1311    ENDIF
[1]1312
1313!-- Profile of the geostrophic wind (component vg)
1314!-- Building output strings
1315    WRITE ( vgcomponent, '(F6.2)' )  vg_surface
1316    gradients = '------'
1317    slices = '     0'
1318    coordinates = '   0.0'
1319    i = 1
1320    DO  WHILE ( vg_vertical_gradient_level_ind(i) /= -9999 )
1321
[167]1322       WRITE (coor_chr,'(F6.2,1X)')  vg(vg_vertical_gradient_level_ind(i))
[1]1323       vgcomponent = TRIM( vgcomponent ) // '  ' // TRIM( coor_chr )
1324
[167]1325       WRITE (coor_chr,'(F6.2,1X)')  vg_vertical_gradient(i)
[1]1326       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1327
[167]1328       WRITE (coor_chr,'(I6,1X)')  vg_vertical_gradient_level_ind(i)
[1]1329       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1330
[167]1331       WRITE (coor_chr,'(F6.1,1X)')  vg_vertical_gradient_level(i)
[1]1332       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
1333
[430]1334       IF ( i == 10 )  THEN
1335          EXIT
1336       ELSE
1337          i = i + 1
1338       ENDIF
1339 
[1]1340    ENDDO
1341
[1239]1342    IF ( .NOT. large_scale_forcing ) THEN
1343       WRITE ( io, 424 )  TRIM( coordinates ), TRIM( vgcomponent ), &
1344                          TRIM( gradients ), TRIM( slices )
1345    ENDIF
[1]1346
1347!
[767]1348!-- Initial wind profiles
1349    IF ( u_profile(1) /= 9999999.9 )  WRITE ( io, 427 )
1350
1351!
[1]1352!-- Initial temperature profile
1353!-- Building output strings, starting with surface temperature
1354    WRITE ( temperatures, '(F6.2)' )  pt_surface
1355    gradients = '------'
1356    slices = '     0'
1357    coordinates = '   0.0'
1358    i = 1
1359    DO  WHILE ( pt_vertical_gradient_level_ind(i) /= -9999 )
1360
[94]1361       WRITE (coor_chr,'(F7.2)')  pt_init(pt_vertical_gradient_level_ind(i))
1362       temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
[1]1363
[94]1364       WRITE (coor_chr,'(F7.2)')  pt_vertical_gradient(i)
1365       gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
[1]1366
[94]1367       WRITE (coor_chr,'(I7)')  pt_vertical_gradient_level_ind(i)
1368       slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
[1]1369
[94]1370       WRITE (coor_chr,'(F7.1)')  pt_vertical_gradient_level(i)
1371       coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
[1]1372
[430]1373       IF ( i == 10 )  THEN
1374          EXIT
1375       ELSE
1376          i = i + 1
1377       ENDIF
1378
[1]1379    ENDDO
1380
[1239]1381    IF ( .NOT. nudging ) THEN
1382       WRITE ( io, 420 )  TRIM( coordinates ), TRIM( temperatures ), &
1383                          TRIM( gradients ), TRIM( slices )
1384    ELSE
1385       WRITE ( io, 428 ) 
1386    ENDIF
[1]1387
1388!
1389!-- Initial humidity profile
1390!-- Building output strings, starting with surface humidity
[75]1391    IF ( humidity  .OR.  passive_scalar )  THEN
[1]1392       WRITE ( temperatures, '(E8.1)' )  q_surface
1393       gradients = '--------'
1394       slices = '       0'
1395       coordinates = '     0.0'
1396       i = 1
1397       DO  WHILE ( q_vertical_gradient_level_ind(i) /= -9999 )
1398         
1399          WRITE (coor_chr,'(E8.1,4X)')  q_init(q_vertical_gradient_level_ind(i))
1400          temperatures = TRIM( temperatures ) // '  ' // TRIM( coor_chr )
1401
1402          WRITE (coor_chr,'(E8.1,4X)')  q_vertical_gradient(i)
1403          gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1404         
1405          WRITE (coor_chr,'(I8,4X)')  q_vertical_gradient_level_ind(i)
1406          slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1407         
1408          WRITE (coor_chr,'(F8.1,4X)')  q_vertical_gradient_level(i)
1409          coordinates = TRIM( coordinates ) // '  '  // TRIM( coor_chr )
1410
[430]1411          IF ( i == 10 )  THEN
1412             EXIT
1413          ELSE
1414             i = i + 1
1415          ENDIF
1416
[1]1417       ENDDO
1418
[75]1419       IF ( humidity )  THEN
[1239]1420          IF ( .NOT. nudging ) THEN
1421             WRITE ( io, 421 )  TRIM( coordinates ), TRIM( temperatures ), &
1422                                TRIM( gradients ), TRIM( slices )
1423          ENDIF
[1]1424       ELSE
1425          WRITE ( io, 422 )  TRIM( coordinates ), TRIM( temperatures ), &
1426                             TRIM( gradients ), TRIM( slices )
1427       ENDIF
1428    ENDIF
1429
1430!
[97]1431!-- Initial salinity profile
1432!-- Building output strings, starting with surface salinity
1433    IF ( ocean )  THEN
1434       WRITE ( temperatures, '(F6.2)' )  sa_surface
1435       gradients = '------'
1436       slices = '     0'
1437       coordinates = '   0.0'
1438       i = 1
1439       DO  WHILE ( sa_vertical_gradient_level_ind(i) /= -9999 )
1440
1441          WRITE (coor_chr,'(F7.2)')  sa_init(sa_vertical_gradient_level_ind(i))
1442          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1443
1444          WRITE (coor_chr,'(F7.2)')  sa_vertical_gradient(i)
1445          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1446
1447          WRITE (coor_chr,'(I7)')  sa_vertical_gradient_level_ind(i)
1448          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1449
1450          WRITE (coor_chr,'(F7.1)')  sa_vertical_gradient_level(i)
1451          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1452
[430]1453          IF ( i == 10 )  THEN
1454             EXIT
1455          ELSE
1456             i = i + 1
1457          ENDIF
1458
[97]1459       ENDDO
1460
1461       WRITE ( io, 425 )  TRIM( coordinates ), TRIM( temperatures ), &
1462                          TRIM( gradients ), TRIM( slices )
1463    ENDIF
1464
1465!
[411]1466!-- Profile for the large scale vertial velocity
1467!-- Building output strings, starting with surface value
1468    IF ( large_scale_subsidence )  THEN
1469       temperatures = '   0.0'
1470       gradients = '------'
1471       slices = '     0'
1472       coordinates = '   0.0'
1473       i = 1
[580]1474       DO  WHILE ( subs_vertical_gradient_level_i(i) /= -9999 )
[411]1475
1476          WRITE (coor_chr,'(E10.2,7X)')  &
[580]1477                                w_subs(subs_vertical_gradient_level_i(i))
[411]1478          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1479
[580]1480          WRITE (coor_chr,'(E10.2,7X)')  subs_vertical_gradient(i)
[411]1481          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1482
[580]1483          WRITE (coor_chr,'(I10,7X)')  subs_vertical_gradient_level_i(i)
[411]1484          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1485
[580]1486          WRITE (coor_chr,'(F10.2,7X)')  subs_vertical_gradient_level(i)
[411]1487          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1488
[430]1489          IF ( i == 10 )  THEN
1490             EXIT
1491          ELSE
1492             i = i + 1
1493          ENDIF
1494
[411]1495       ENDDO
1496
1497       WRITE ( io, 426 )  TRIM( coordinates ), TRIM( temperatures ), &
1498                          TRIM( gradients ), TRIM( slices )
1499    ENDIF
1500
1501!
[824]1502!-- Cloud physcis parameters / quantities / numerical methods
1503    WRITE ( io, 430 )
1504    IF ( humidity .AND. .NOT. cloud_physics .AND. .NOT. cloud_droplets)  THEN
1505       WRITE ( io, 431 )
1506    ELSEIF ( humidity  .AND.  cloud_physics )  THEN
1507       WRITE ( io, 432 )
[1115]1508       IF ( radiation )  WRITE ( io, 132 )
1509       IF ( icloud_scheme == 1 )  THEN
1510          IF ( precipitation )  WRITE ( io, 133 )
1511       ELSEIF ( icloud_scheme == 0 )  THEN
1512          IF ( drizzle )  WRITE ( io, 506 )
1513          IF ( precipitation )  THEN
1514             WRITE ( io, 505 )
1515             IF ( turbulence )  WRITE ( io, 507 )
1516             IF ( ventilation_effect )  WRITE ( io, 508 )
1517             IF ( limiter_sedimentation )  WRITE ( io, 509 )
1518          ENDIF
1519       ENDIF
[824]1520    ELSEIF ( humidity  .AND.  cloud_droplets )  THEN
1521       WRITE ( io, 433 )
1522       IF ( curvature_solution_effects )  WRITE ( io, 434 )
[825]1523       IF ( collision_kernel /= 'none' )  THEN
1524          WRITE ( io, 435 )  TRIM( collision_kernel )
[828]1525          IF ( collision_kernel(6:9) == 'fast' )  THEN
1526             WRITE ( io, 436 )  radius_classes, dissipation_classes
1527          ENDIF
[825]1528       ELSE
[828]1529          WRITE ( io, 437 )
[825]1530       ENDIF
[824]1531    ENDIF
1532
1533!
[1]1534!-- LES / turbulence parameters
1535    WRITE ( io, 450 )
1536
1537!--
1538! ... LES-constants used must still be added here
1539!--
1540    IF ( constant_diffusion )  THEN
1541       WRITE ( io, 451 )  km_constant, km_constant/prandtl_number, &
1542                          prandtl_number
1543    ENDIF
1544    IF ( .NOT. constant_diffusion)  THEN
[108]1545       IF ( e_init > 0.0 )  WRITE ( io, 455 )  e_init
[1]1546       IF ( e_min > 0.0 )  WRITE ( io, 454 )  e_min
1547       IF ( wall_adjustment )  WRITE ( io, 453 )  wall_adjustment_factor
1548    ENDIF
1549
1550!
1551!-- Special actions during the run
1552    WRITE ( io, 470 )
1553    IF ( create_disturbances )  THEN
1554       WRITE ( io, 471 )  dt_disturb, disturbance_amplitude,                   &
1555                          zu(disturbance_level_ind_b), disturbance_level_ind_b,&
1556                          zu(disturbance_level_ind_t), disturbance_level_ind_t
[707]1557       IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
[1]1558          WRITE ( io, 472 )  inflow_disturbance_begin, inflow_disturbance_end
1559       ELSE
1560          WRITE ( io, 473 )  disturbance_energy_limit
1561       ENDIF
1562       WRITE ( io, 474 )  TRIM( random_generator )
1563    ENDIF
1564    IF ( pt_surface_initial_change /= 0.0 )  THEN
1565       WRITE ( io, 475 )  pt_surface_initial_change
1566    ENDIF
[75]1567    IF ( humidity  .AND.  q_surface_initial_change /= 0.0 )  THEN
[1]1568       WRITE ( io, 476 )  q_surface_initial_change       
1569    ENDIF
1570    IF ( passive_scalar  .AND.  q_surface_initial_change /= 0.0 )  THEN
1571       WRITE ( io, 477 )  q_surface_initial_change       
1572    ENDIF
1573
[60]1574    IF ( particle_advection )  THEN
[1]1575!
[60]1576!--    Particle attributes
1577       WRITE ( io, 480 )  particle_advection_start, dt_prel, bc_par_lr, &
1578                          bc_par_ns, bc_par_b, bc_par_t, particle_maximum_age, &
[117]1579                          end_time_prel, dt_sort_particles
[60]1580       IF ( use_sgs_for_particles )  WRITE ( io, 488 )  dt_min_part
1581       IF ( random_start_position )  WRITE ( io, 481 )
1582       IF ( particles_per_point > 1 )  WRITE ( io, 489 )  particles_per_point
1583       WRITE ( io, 495 )  total_number_of_particles
[824]1584       IF ( use_particle_tails  .AND.  maximum_number_of_tailpoints /= 0 )  THEN
[60]1585          WRITE ( io, 483 )  maximum_number_of_tailpoints
1586          IF ( minimum_tailpoint_distance /= 0 )  THEN
1587             WRITE ( io, 484 )  total_number_of_tails,      &
1588                                minimum_tailpoint_distance, &
1589                                maximum_tailpoint_age
1590          ENDIF
[1]1591       ENDIF
[60]1592       IF ( dt_write_particle_data /= 9999999.9 )  THEN
1593          WRITE ( io, 485 )  dt_write_particle_data
[1031]1594          output_format = ' '
[60]1595          IF ( netcdf_output )  THEN
[493]1596             IF ( netcdf_data_format > 1 )  THEN
[60]1597                output_format = 'netcdf (64 bit offset) and binary'
1598             ELSE
1599                output_format = 'netcdf and binary'
1600             ENDIF
[1]1601          ELSE
[60]1602             output_format = 'binary'
[1]1603          ENDIF
[292]1604          WRITE ( io, 344 )  output_format
[1]1605       ENDIF
[60]1606       IF ( dt_dopts /= 9999999.9 )  WRITE ( io, 494 )  dt_dopts
1607       IF ( write_particle_statistics )  WRITE ( io, 486 )
[1]1608
[60]1609       WRITE ( io, 487 )  number_of_particle_groups
[1]1610
[60]1611       DO  i = 1, number_of_particle_groups
1612          IF ( i == 1  .AND.  density_ratio(i) == 9999999.9 )  THEN
1613             WRITE ( io, 490 )  i, 0.0
1614             WRITE ( io, 492 )
[1]1615          ELSE
[60]1616             WRITE ( io, 490 )  i, radius(i)
1617             IF ( density_ratio(i) /= 0.0 )  THEN
1618                WRITE ( io, 491 )  density_ratio(i)
1619             ELSE
1620                WRITE ( io, 492 )
1621             ENDIF
[1]1622          ENDIF
[60]1623          WRITE ( io, 493 )  psl(i), psr(i), pss(i), psn(i), psb(i), pst(i), &
1624                             pdx(i), pdy(i), pdz(i)
[336]1625          IF ( .NOT. vertical_particle_advection(i) )  WRITE ( io, 482 )
[60]1626       ENDDO
[1]1627
[60]1628    ENDIF
[1]1629
[60]1630
[1]1631!
1632!-- Parameters of 1D-model
1633    IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
1634       WRITE ( io, 500 )  end_time_1d, dt_run_control_1d, dt_pr_1d, &
1635                          mixing_length_1d, dissipation_1d
1636       IF ( damp_level_ind_1d /= nzt+1 )  THEN
1637          WRITE ( io, 502 )  zu(damp_level_ind_1d), damp_level_ind_1d
1638       ENDIF
1639    ENDIF
1640
1641!
1642!-- User-defined informations
1643    CALL user_header( io )
1644
1645    WRITE ( io, 99 )
1646
1647!
1648!-- Write buffer contents to disc immediately
[82]1649    CALL local_flush( io )
[1]1650
1651!
1652!-- Here the FORMATs start
1653
1654 99 FORMAT (1X,78('-'))
[1106]1655100 FORMAT (/1X,'******************************',6X,42('-')/        &
1656            1X,'* ',A,' *',6X,A/                               &
1657            1X,'******************************',6X,42('-'))
[291]1658101 FORMAT (37X,'coupled run using MPI-',I1,': ',A/ &
[102]1659            37X,42('-'))
[1106]1660102 FORMAT (/' Date:                 ',A8,6X,'Run:       ',A20/      &
1661            ' Time:                 ',A8,6X,'Run-No.:   ',I2.2/     &
1662            ' Run on host:        ',A10)
[1]1663#if defined( __parallel )
[1106]1664103 FORMAT (' Number of PEs:',10X,I6,6X,'Processor grid (x,y): (',I3,',',I3, &
[1]1665              ')',1X,A)
[200]1666104 FORMAT (' Number of PEs:',8X,I5,9X,'Tasks:',I4,'   threads per task:',I4/ &
[1]1667              37X,'Processor grid (x,y): (',I3,',',I3,')',1X,A)
[102]1668105 FORMAT (37X,'One additional PE is used to handle'/37X,'the dvrp output!')
1669106 FORMAT (37X,'A 1d-decomposition along x is forced'/ &
[1]1670            37X,'because the job is running on an SMP-cluster')
[102]1671107 FORMAT (37X,'A 1d-decomposition along ',A,' is used')
[759]1672108 FORMAT (37X,'Max. # of parallel I/O streams is ',I5)
[1106]1673109 FORMAT (37X,'Precursor run for coupled atmos-ocean run'/ &
1674            37X,42('-'))
1675114 FORMAT (37X,'Coupled atmosphere-ocean run following'/ &
1676            37X,'independent precursor runs'/             &
1677            37X,42('-'))
[1111]1678117 FORMAT (' Accelerator boards / node:  ',I2)
[1]1679#endif
1680110 FORMAT (/' Numerical Schemes:'/ &
1681             ' -----------------'/)
1682111 FORMAT (' --> Solve perturbation pressure via FFT using ',A,' routines')
1683112 FORMAT (' --> Solve perturbation pressure via SOR-Red/Black-Schema'/ &
1684            '     Iterations (initial/other): ',I3,'/',I3,'  omega = ',F5.3)
1685113 FORMAT (' --> Momentum advection via Piascek-Williams-Scheme (Form C3)', &
1686                  ' or Upstream')
[1216]1687115 FORMAT ('     FFT and transpositions are overlapping')
[1]1688116 FORMAT (' --> Scalar advection via Piascek-Williams-Scheme (Form C3)', &
1689                  ' or Upstream')
1690118 FORMAT (' --> Scalar advection via Bott-Chlond-Scheme')
[1106]1691119 FORMAT (' --> Galilei-Transform applied to horizontal advection:'/ &
1692            '     translation velocity = ',A/ &
[1]1693            '     distance advected ',A,':  ',F8.3,' km(x)  ',F8.3,' km(y)')
[1111]1694120 FORMAT (' Accelerator boards: ',8X,I2)
[1]1695122 FORMAT (' --> Time differencing scheme: ',A)
[108]1696123 FORMAT (' --> Rayleigh-Damping active, starts ',A,' z = ',F8.2,' m'/ &
[1]1697            '     maximum damping coefficient: ',F5.3, ' 1/s')
1698129 FORMAT (' --> Additional prognostic equation for the specific humidity')
1699130 FORMAT (' --> Additional prognostic equation for the total water content')
[940]1700131 FORMAT (' --> No pt-equation solved. Neutral stratification with pt = ', &
1701                  F6.2, ' K assumed')
[824]1702132 FORMAT ('     Parameterization of long-wave radiation processes via'/ &
[1]1703            '     effective emissivity scheme')
[824]1704133 FORMAT ('     Precipitation parameterization via Kessler-Scheme')
[1]1705134 FORMAT (' --> Additional prognostic equation for a passive scalar')
1706135 FORMAT (' --> Solve perturbation pressure via multigrid method (', &
1707                  A,'-cycle)'/ &
1708            '     number of grid levels:                   ',I2/ &
1709            '     Gauss-Seidel red/black iterations:       ',I2)
1710136 FORMAT ('     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1711                  I3,')')
1712137 FORMAT ('     level data gathered on PE0 at level:     ',I2/ &
1713            '     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1714                  I3,')'/ &
1715            '     gridpoints of coarsest domain (x,y,z):    (',I3,',',I3,',', &
1716                  I3,')')
[63]1717139 FORMAT (' --> Loop optimization method: ',A)
[1]1718140 FORMAT ('     maximum residual allowed:                ',E10.3)
1719141 FORMAT ('     fixed number of multigrid cycles:        ',I4)
1720142 FORMAT ('     perturbation pressure is calculated at every Runge-Kutta ', &
1721                  'step')
[87]1722143 FORMAT ('     Euler/upstream scheme is used for the SGS turbulent ', &
1723                  'kinetic energy')
[927]1724144 FORMAT ('     masking method is used')
[1]1725150 FORMAT (' --> Volume flow at the right and north boundary will be ', &
[241]1726                  'conserved'/ &
1727            '     using the ',A,' mode')
1728151 FORMAT ('     with u_bulk = ',F7.3,' m/s and v_bulk = ',F7.3,' m/s')
[306]1729152 FORMAT (' --> External pressure gradient directly prescribed by the user:',&
1730           /'     ',2(1X,E12.5),'Pa/m in x/y direction', &
1731           /'     starting from dp_level_b =', F8.3, 'm', A /)
[411]1732153 FORMAT (' --> Large-scale vertical motion is used in the ', &
1733                  'prognostic equation for')
1734154 FORMAT ('     the potential temperature')
[1239]1735155 FORMAT (' --> Nudging is used - initial profiles for u, v, pt and q ',& 
1736                  'correspond to the')
1737156 FORMAT ('     first profiles in NUDGING_DATA')
1738157 FORMAT (' --> Large scale forcing from external file (LSF_DATA) is used: ')
1739158 FORMAT ('     prescribed surfaces fluxes and geostrophic wind components')
[1]1740200 FORMAT (//' Run time and time step information:'/ &
1741             ' ----------------------------------'/)
[1106]1742201 FORMAT ( ' Timestep:             variable     maximum value: ',F6.3,' s', &
[1]1743             '    CFL-factor: ',F4.2)
[1106]1744202 FORMAT ( ' Timestep:          dt = ',F6.3,' s'/)
1745203 FORMAT ( ' Start time:          ',F9.3,' s'/ &
1746             ' End time:            ',F9.3,' s')
[1]1747204 FORMAT ( A,F9.3,' s')
1748205 FORMAT ( A,F9.3,' s',5X,'restart every',17X,F9.3,' s')
[1106]1749206 FORMAT (/' Time reached:        ',F9.3,' s'/ &
1750             ' CPU-time used:       ',F9.3,' s     per timestep:               ', &
1751               '  ',F9.3,' s'/                                                    &
[1111]1752             '                                      per second of simulated tim', &
[1]1753               'e: ',F9.3,' s')
[1106]1754207 FORMAT ( ' Coupling start time: ',F9.3,' s')
[1]1755250 FORMAT (//' Computational grid and domain size:'/ &
1756              ' ----------------------------------'// &
1757              ' Grid length:      dx =    ',F7.3,' m    dy =    ',F7.3, &
1758              ' m    dz =    ',F7.3,' m'/ &
1759              ' Domain size:       x = ',F10.3,' m     y = ',F10.3, &
1760              ' m  z(u) = ',F10.3,' m'/)
1761252 FORMAT (' dz constant up to ',F10.3,' m (k=',I4,'), then stretched by', &
1762              ' factor: ',F5.3/ &
1763            ' maximum dz not to be exceeded is dz_max = ',F10.3,' m'/)
1764254 FORMAT (' Number of gridpoints (x,y,z):  (0:',I4,', 0:',I4,', 0:',I4,')'/ &
1765            ' Subdomain size (x,y,z):        (  ',I4,',   ',I4,',   ',I4,')'/)
1766260 FORMAT (/' The model has a slope in x-direction. Inclination angle: ',F6.2,&
1767             ' degrees')
1768270 FORMAT (//' Topography informations:'/ &
1769              ' -----------------------'// &
1770              1X,'Topography: ',A)
1771271 FORMAT (  ' Building size (x/y/z) in m: ',F5.1,' / ',F5.1,' / ',F5.1/ &
1772              ' Horizontal index bounds (l/r/s/n): ',I4,' / ',I4,' / ',I4, &
1773                ' / ',I4)
[240]1774272 FORMAT (  ' Single quasi-2D street canyon of infinite length in ',A, &
1775              ' direction' / &
1776              ' Canyon height: ', F6.2, 'm, ch = ', I4, '.'      / &
1777              ' Canyon position (',A,'-walls): cxl = ', I4,', cxr = ', I4, '.')
[256]1778278 FORMAT (' Topography grid definition convention:'/ &
1779            ' cell edge (staggered grid points'/  &
1780            ' (u in x-direction, v in y-direction))' /)
1781279 FORMAT (' Topography grid definition convention:'/ &
1782            ' cell center (scalar grid points)' /)
[138]1783280 FORMAT (//' Vegetation canopy (drag) model:'/ &
1784              ' ------------------------------'// &
1785              ' Canopy mode: ', A / &
1786              ' Canopy top: ',I4 / &
1787              ' Leaf drag coefficient: ',F6.2 /)
[153]1788281 FORMAT (/ ' Scalar_exchange_coefficient: ',F6.2 / &
1789              ' Scalar concentration at leaf surfaces in kg/m**3: ',F6.2 /)
1790282 FORMAT (' Predefined constant heatflux at the top of the vegetation: ',F6.2,' K m/s')
1791283 FORMAT (/ ' Characteristic levels of the leaf area density:'// &
[138]1792              ' Height:              ',A,'  m'/ &
1793              ' Leaf area density:   ',A,'  m**2/m**3'/ &
1794              ' Gradient:            ',A,'  m**2/m**4'/ &
1795              ' Gridpoint:           ',A)
1796               
[1]1797300 FORMAT (//' Boundary conditions:'/ &
1798             ' -------------------'// &
1799             '                     p                    uv             ', &
1800             '                   pt'// &
1801             ' B. bound.: ',A/ &
1802             ' T. bound.: ',A)
[97]1803301 FORMAT (/'                     ',A// &
[1]1804             ' B. bound.: ',A/ &
1805             ' T. bound.: ',A)
[19]1806303 FORMAT (/' Bottom surface fluxes are used in diffusion terms at k=1')
1807304 FORMAT (/' Top surface fluxes are used in diffusion terms at k=nzt')
1808305 FORMAT (//'    Prandtl-Layer between bottom surface and first ', &
1809               'computational u,v-level:'// &
[978]1810             '       zp = ',F6.2,' m   z0 = ',F6.4,' m   z0h = ',F7.5,&
1811             ' m   kappa = ',F4.2/ &
[1]1812             '       Rif value range:   ',F6.2,' <= rif <=',F6.2)
[97]1813306 FORMAT ('       Predefined constant heatflux:   ',F9.6,' K m/s')
[1]1814307 FORMAT ('       Heatflux has a random normal distribution')
1815308 FORMAT ('       Predefined surface temperature')
[97]1816309 FORMAT ('       Predefined constant salinityflux:   ',F9.6,' psu m/s')
[1]1817310 FORMAT (//'    1D-Model:'// &
1818             '       Rif value range:   ',F6.2,' <= rif <=',F6.2)
1819311 FORMAT ('       Predefined constant humidity flux: ',E10.3,' m/s')
1820312 FORMAT ('       Predefined surface humidity')
1821313 FORMAT ('       Predefined constant scalar flux: ',E10.3,' kg/(m**2 s)')
1822314 FORMAT ('       Predefined scalar value at the surface')
[19]1823315 FORMAT ('       Humidity / scalar flux at top surface is 0.0')
[102]1824316 FORMAT ('       Sensible heatflux and momentum flux from coupled ', &
1825                    'atmosphere model')
[1]1826317 FORMAT (//' Lateral boundaries:'/ &
1827            '       left/right:  ',A/    &
1828            '       north/south: ',A)
[1159]1829318 FORMAT (/'       use_cmax: ',L1 / &
1830            '       pt damping layer width = ',F8.2,' m, pt ', &
[978]1831                    'damping factor = ',F6.4)
[151]1832319 FORMAT ('       turbulence recycling at inflow switched on'/ &
1833            '       width of recycling domain: ',F7.1,' m   grid index: ',I4/ &
1834            '       inflow damping height: ',F6.1,' m   width: ',F6.1,' m')
1835320 FORMAT ('       Predefined constant momentumflux:  u: ',F9.6,' m**2/s**2'/ &
[103]1836            '                                          v: ',F9.6,' m**2/s**2')
[151]1837325 FORMAT (//' List output:'/ &
[1]1838             ' -----------'//  &
1839            '    1D-Profiles:'/    &
1840            '       Output every             ',F8.2,' s')
[151]1841326 FORMAT ('       Time averaged over       ',F8.2,' s'/ &
[1]1842            '       Averaging input every    ',F8.2,' s')
1843330 FORMAT (//' Data output:'/ &
1844             ' -----------'/)
1845331 FORMAT (/'    1D-Profiles:')
1846332 FORMAT (/'       ',A)
1847333 FORMAT ('       Output every             ',F8.2,' s',/ &
1848            '       Time averaged over       ',F8.2,' s'/ &
1849            '       Averaging input every    ',F8.2,' s')
1850334 FORMAT (/'    2D-Arrays',A,':')
1851335 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
1852            '       Output every             ',F8.2,' s  ',A/ &
1853            '       Cross sections at ',A1,' = ',A/ &
1854            '       scalar-coordinates:   ',A,' m'/)
1855336 FORMAT (/'    3D-Arrays',A,':')
1856337 FORMAT (/'       Arrays: ',A/ &
1857            '       Output every             ',F8.2,' s  ',A/ &
1858            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
1859338 FORMAT ('       Compressed data output'/ &
1860            '       Decimal precision: ',A/)
1861339 FORMAT ('       No output during initial ',F8.2,' s')
1862340 FORMAT (/'    Time series:')
1863341 FORMAT ('       Output every             ',F8.2,' s'/)
1864342 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
1865            '       Output every             ',F8.2,' s  ',A/ &
1866            '       Time averaged over       ',F8.2,' s'/ &
1867            '       Averaging input every    ',F8.2,' s'/ &
1868            '       Cross sections at ',A1,' = ',A/ &
1869            '       scalar-coordinates:   ',A,' m'/)
1870343 FORMAT (/'       Arrays: ',A/ &
1871            '       Output every             ',F8.2,' s  ',A/ &
1872            '       Time averaged over       ',F8.2,' s'/ &
1873            '       Averaging input every    ',F8.2,' s'/ &
1874            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
[292]1875344 FORMAT ('       Output format: ',A/)
[410]1876345 FORMAT (/'    Scaling lengths for output locations of all subsequent mask IDs:',/ &
1877            '       mask_scale_x (in x-direction): ',F9.3, ' m',/ &
1878            '       mask_scale_y (in y-direction): ',F9.3, ' m',/ &
1879            '       mask_scale_z (in z-direction): ',F9.3, ' m' )
1880346 FORMAT (/'    Masked data output',A,' for mask ID ',I2, ':')
1881347 FORMAT ('       Variables: ',A/ &
1882            '       Output every             ',F8.2,' s')
1883348 FORMAT ('       Variables: ',A/ &
1884            '       Output every             ',F8.2,' s'/ &
1885            '       Time averaged over       ',F8.2,' s'/ &
1886            '       Averaging input every    ',F8.2,' s')
1887349 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
1888            'mask_scale_',A,' predefined by array mask_',I2.2,'_',A,':'/ &
1889            13('       ',8(F8.2,',')/) )
1890350 FORMAT (/'       Output locations in ',A,'-direction: ', &
1891            'all gridpoints along ',A,'-direction (default).' )
1892351 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
1893            'mask_scale_',A,' constructed from array mask_',I2.2,'_',A,'_loop:'/ &
1894            '          loop begin:',F8.2,', end:',F8.2,', stride:',F8.2 )
[1]1895#if defined( __dvrp_graphics )
1896360 FORMAT ('    Plot-Sequence with dvrp-software:'/ &
1897            '       Output every      ',F7.1,' s'/ &
1898            '       Output mode:      ',A/ &
1899            '       Host / User:      ',A,' / ',A/ &
1900            '       Directory:        ',A// &
1901            '       The sequence contains:')
[337]1902361 FORMAT (/'       Isosurface of "',A,'"    Threshold value: ', E12.3/ &
1903            '          Isosurface color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
1904362 FORMAT (/'       Slicer plane ',A/ &
[336]1905            '       Slicer limits: [',F6.2,',',F6.2,']')
[337]1906363 FORMAT (/'       Particles'/ &
[336]1907            '          particle size:  ',F7.2,' m')
1908364 FORMAT ('          particle ',A,' controlled by "',A,'" with interval [', &
1909                       F6.2,',',F6.2,']')
[337]1910365 FORMAT (/'       Groundplate color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)'/ &
[336]1911            '       Superelevation along (x,y,z): (',F4.1,',',F4.1,',',F4.1, &
1912                     ')'/ &
1913            '       Clipping limits: from x = ',F9.1,' m to x = ',F9.1,' m'/ &
1914            '                        from y = ',F9.1,' m to y = ',F9.1,' m')
[337]1915366 FORMAT (/'       Topography color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
[336]1916367 FORMAT ('       Polygon reduction for topography: cluster_size = ', I1)
[1]1917#endif
1918#if defined( __spectra )
1919370 FORMAT ('    Spectra:')
1920371 FORMAT ('       Output every ',F7.1,' s'/)
1921372 FORMAT ('       Arrays:     ', 10(A5,',')/                         &
1922            '       Directions: ', 10(A5,',')/                         &
[189]1923            '       height levels  k = ', 20(I3,',')/                  &
1924            '                          ', 20(I3,',')/                  &
1925            '                          ', 20(I3,',')/                  &
1926            '                          ', 20(I3,',')/                  &
1927            '                          ', 19(I3,','),I3,'.'/           &
[1]1928            '       height levels selected for standard plot:'/        &
[189]1929            '                      k = ', 20(I3,',')/                  &
1930            '                          ', 20(I3,',')/                  &
1931            '                          ', 20(I3,',')/                  &
1932            '                          ', 20(I3,',')/                  &
1933            '                          ', 19(I3,','),I3,'.'/           &
[1]1934            '       Time averaged over ', F7.1, ' s,' /                &
1935            '       Profiles for the time averaging are taken every ', &
1936                    F6.1,' s')
1937#endif
1938400 FORMAT (//' Physical quantities:'/ &
1939              ' -------------------'/)
1940410 FORMAT ('    Angular velocity    :   omega = ',E9.3,' rad/s'/  &
1941            '    Geograph. latitude  :   phi   = ',F4.1,' degr'/   &
1942            '    Coriolis parameter  :   f     = ',F9.6,' 1/s'/    &
1943            '                            f*    = ',F9.6,' 1/s')
1944411 FORMAT (/'    Gravity             :   g     = ',F4.1,' m/s**2')
[1179]1945412 FORMAT (/'    Reference state used in buoyancy terms: ',A)
1946413 FORMAT ('       Reference density in buoyancy terms: ',F8.3,' kg/m**3')
1947414 FORMAT ('       Reference temperature in buoyancy terms: ',F8.4,' K')
[57]1948415 FORMAT (/'    Cloud physics parameters:'/ &
[1]1949             '    ------------------------'/)
[57]1950416 FORMAT ('        Surface pressure   :   p_0   = ',F7.2,' hPa'/      &
[1]1951            '        Gas constant       :   R     = ',F5.1,' J/(kg K)'/ &
1952            '        Density of air     :   rho_0 = ',F5.3,' kg/m**3'/  &
1953            '        Specific heat cap. :   c_p   = ',F6.1,' J/(kg K)'/ &
1954            '        Vapourization heat :   L_v   = ',E8.2,' J/kg')
1955420 FORMAT (/'    Characteristic levels of the initial temperature profile:'// &
1956            '       Height:        ',A,'  m'/ &
1957            '       Temperature:   ',A,'  K'/ &
1958            '       Gradient:      ',A,'  K/100m'/ &
1959            '       Gridpoint:     ',A)
1960421 FORMAT (/'    Characteristic levels of the initial humidity profile:'// &
1961            '       Height:      ',A,'  m'/ &
1962            '       Humidity:    ',A,'  kg/kg'/ &
1963            '       Gradient:    ',A,'  (kg/kg)/100m'/ &
1964            '       Gridpoint:   ',A)
1965422 FORMAT (/'    Characteristic levels of the initial scalar profile:'// &
1966            '       Height:                  ',A,'  m'/ &
1967            '       Scalar concentration:    ',A,'  kg/m**3'/ &
1968            '       Gradient:                ',A,'  (kg/m**3)/100m'/ &
1969            '       Gridpoint:               ',A)
1970423 FORMAT (/'    Characteristic levels of the geo. wind component ug:'// &
1971            '       Height:      ',A,'  m'/ &
1972            '       ug:          ',A,'  m/s'/ &
1973            '       Gradient:    ',A,'  1/100s'/ &
1974            '       Gridpoint:   ',A)
1975424 FORMAT (/'    Characteristic levels of the geo. wind component vg:'// &
1976            '       Height:      ',A,'  m'/ &
[97]1977            '       vg:          ',A,'  m/s'/ &
[1]1978            '       Gradient:    ',A,'  1/100s'/ &
1979            '       Gridpoint:   ',A)
[97]1980425 FORMAT (/'    Characteristic levels of the initial salinity profile:'// &
1981            '       Height:     ',A,'  m'/ &
1982            '       Salinity:   ',A,'  psu'/ &
1983            '       Gradient:   ',A,'  psu/100m'/ &
1984            '       Gridpoint:  ',A)
[411]1985426 FORMAT (/'    Characteristic levels of the subsidence/ascent profile:'// &
1986            '       Height:      ',A,'  m'/ &
1987            '       w_subs:      ',A,'  m/s'/ &
1988            '       Gradient:    ',A,'  (m/s)/100m'/ &
1989            '       Gridpoint:   ',A)
[767]1990427 FORMAT (/'    Initial wind profiles (u,v) are interpolated from given'// &
1991                  ' profiles')
[1239]1992428 FORMAT (/'    Initial profiles (u, v, pt, q) are taken from file '/ &
1993             '    NUDGING_DATA')
1994429 FORMAT (/'    Geostrophic wind profiles (ug, vg) are are taken from file '/ &
1995             '    LSF_DATA_DATA')
[824]1996430 FORMAT (//' Cloud physics quantities / methods:'/ &
1997              ' ----------------------------------'/)
1998431 FORMAT ('    Humidity is treated as purely passive scalar (no condensati', &
1999                 'on)')
2000432 FORMAT ('    Bulk scheme with liquid water potential temperature and'/ &
2001            '    total water content is used.'/ &
2002            '    Condensation is parameterized via 0% - or 100% scheme.')
2003433 FORMAT ('    Cloud droplets treated explicitly using the Lagrangian part', &
2004                 'icle model')
2005434 FORMAT ('    Curvature and solution effecs are considered for growth of', &
2006                 ' droplets < 1.0E-6 m')
[825]2007435 FORMAT ('    Droplet collision is handled by ',A,'-kernel')
[828]2008436 FORMAT ('       Fast kernel with fixed radius- and dissipation classes ', &
2009                    'are used'/ &
2010            '          number of radius classes:       ',I3,'    interval ', &
2011                       '[1.0E-6,2.0E-4] m'/ &
2012            '          number of dissipation classes:   ',I2,'    interval ', &
2013                       '[0,1000] cm**2/s**3')
2014437 FORMAT ('    Droplet collision is switched off')
[1]2015450 FORMAT (//' LES / Turbulence quantities:'/ &
2016              ' ---------------------------'/)
[824]2017451 FORMAT ('    Diffusion coefficients are constant:'/ &
2018            '    Km = ',F6.2,' m**2/s   Kh = ',F6.2,' m**2/s   Pr = ',F5.2)
2019453 FORMAT ('    Mixing length is limited to ',F4.2,' * z')
2020454 FORMAT ('    TKE is not allowed to fall below ',E9.2,' (m/s)**2')
2021455 FORMAT ('    initial TKE is prescribed as ',E9.2,' (m/s)**2')
[1]2022470 FORMAT (//' Actions during the simulation:'/ &
2023              ' -----------------------------'/)
[94]2024471 FORMAT ('    Disturbance impulse (u,v) every :   ',F6.2,' s'/            &
2025            '    Disturbance amplitude           :     ',F4.2, ' m/s'/       &
2026            '    Lower disturbance level         : ',F8.2,' m (GP ',I4,')'/  &
2027            '    Upper disturbance level         : ',F8.2,' m (GP ',I4,')')
[1]2028472 FORMAT ('    Disturbances continued during the run from i/j =',I4, &
2029                 ' to i/j =',I4)
2030473 FORMAT ('    Disturbances cease as soon as the disturbance energy exceeds',&
2031                 1X,F5.3, ' m**2/s**2')
2032474 FORMAT ('    Random number generator used    : ',A/)
2033475 FORMAT ('    The surface temperature is increased (or decreased, ', &
2034                 'respectively, if'/ &
2035            '    the value is negative) by ',F5.2,' K at the beginning of the',&
2036                 ' 3D-simulation'/)
2037476 FORMAT ('    The surface humidity is increased (or decreased, ',&
2038                 'respectively, if the'/ &
2039            '    value is negative) by ',E8.1,' kg/kg at the beginning of', &
2040                 ' the 3D-simulation'/)
2041477 FORMAT ('    The scalar value is increased at the surface (or decreased, ',&
2042                 'respectively, if the'/ &
2043            '    value is negative) by ',E8.1,' kg/m**3 at the beginning of', &
2044                 ' the 3D-simulation'/)
2045480 FORMAT ('    Particles:'/ &
2046            '    ---------'// &
2047            '       Particle advection is active (switched on at t = ', F7.1, &
2048                    ' s)'/ &
2049            '       Start of new particle generations every  ',F6.1,' s'/ &
2050            '       Boundary conditions: left/right: ', A, ' north/south: ', A/&
2051            '                            bottom:     ', A, ' top:         ', A/&
2052            '       Maximum particle age:                 ',F9.1,' s'/ &
[117]2053            '       Advection stopped at t = ',F9.1,' s'/ &
2054            '       Particles are sorted every ',F9.1,' s'/)
[1]2055481 FORMAT ('       Particles have random start positions'/)
[336]2056482 FORMAT ('          Particles are advected only horizontally'/)
[1]2057483 FORMAT ('       Particles have tails with a maximum of ',I3,' points')
2058484 FORMAT ('            Number of tails of the total domain: ',I10/ &
2059            '            Minimum distance between tailpoints: ',F8.2,' m'/ &
2060            '            Maximum age of the end of the tail:  ',F8.2,' s')
2061485 FORMAT ('       Particle data are written on file every ', F9.1, ' s')
2062486 FORMAT ('       Particle statistics are written on file'/)
2063487 FORMAT ('       Number of particle groups: ',I2/)
2064488 FORMAT ('       SGS velocity components are used for particle advection'/ &
2065            '          minimum timestep for advection: ', F7.5/)
2066489 FORMAT ('       Number of particles simultaneously released at each ', &
2067                    'point: ', I5/)
2068490 FORMAT ('       Particle group ',I2,':'/ &
2069            '          Particle radius: ',E10.3, 'm')
2070491 FORMAT ('          Particle inertia is activated'/ &
2071            '             density_ratio (rho_fluid/rho_particle) = ',F5.3/)
2072492 FORMAT ('          Particles are advected only passively (no inertia)'/)
2073493 FORMAT ('          Boundaries of particle source: x:',F8.1,' - ',F8.1,' m'/&
2074            '                                         y:',F8.1,' - ',F8.1,' m'/&
2075            '                                         z:',F8.1,' - ',F8.1,' m'/&
2076            '          Particle distances:  dx = ',F8.1,' m  dy = ',F8.1, &
2077                       ' m  dz = ',F8.1,' m'/)
2078494 FORMAT ('       Output of particle time series in NetCDF format every ', &
2079                    F8.2,' s'/)
2080495 FORMAT ('       Number of particles in total domain: ',I10/)
2081500 FORMAT (//' 1D-Model parameters:'/                           &
2082              ' -------------------'//                           &
2083            '    Simulation time:                   ',F8.1,' s'/ &
2084            '    Run-controll output every:         ',F8.1,' s'/ &
2085            '    Vertical profile output every:     ',F8.1,' s'/ &
2086            '    Mixing length calculation:         ',A/         &
2087            '    Dissipation calculation:           ',A/)
2088502 FORMAT ('    Damping layer starts from ',F7.1,' m (GP ',I4,')'/)
[667]2089503 FORMAT (' --> Momentum advection via Wicker-Skamarock-Scheme 5th order')
2090504 FORMAT (' --> Scalar advection via Wicker-Skamarock-Scheme 5th order')
[1115]2091505 FORMAT ('    Precipitation parameterization via Seifert-Beheng-Scheme')
2092506 FORMAT ('    Drizzle parameterization via Stokes law')
2093507 FORMAT ('    Turbulence effects on precipitation process')
2094508 FORMAT ('    Ventilation effects on evaporation of rain drops')
2095509 FORMAT ('    Slope limiter used for sedimentation process')
2096510 FORMAT ('        Droplet density    :   N_c   = ',F6.1,' 1/cm**3')
2097511 FORMAT ('        Sedimentation Courant number:                  '/&
2098            '                               C_s   = ',F3.1,'        ')
[1]2099
2100 END SUBROUTINE header
Note: See TracBrowser for help on using the repository browser.