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

Last change on this file since 1108 was 1108, checked in by raasch, 9 years ago

bugfix for r1106 + coupled runs on lckyut/lckyuh

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