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

Last change on this file since 1435 was 1430, checked in by knoop, 10 years ago

last commit documented

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