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

Last change on this file since 1402 was 1377, checked in by boeske, 11 years ago

last commit documented

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