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

Last change on this file since 1316 was 1313, checked in by fricke, 11 years ago

text correction

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