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

Last change on this file since 1244 was 1242, checked in by heinze, 11 years ago

Last commmit documented

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