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

Last change on this file since 1216 was 1216, checked in by raasch, 8 years ago

overlapping execution of fft and transpositions (MPI_ALLTOALL), but real overlapping is not activated so far,
fftw implemented for 1D-decomposition
resorting of arrays moved to separate routines resort_for_...
bugfix in mbuild concerning Makefile_check

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