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

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

enable usage of large_scale subsidence in combination with large_scale_forcing

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