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

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

last commit documented
example_cbl_rc updated

  • Property svn:keywords set to Id
File size: 92.5 KB
Line 
1!> @file header.f90
2!--------------------------------------------------------------------------------!
3! This file is part of PALM.
4!
5! PALM is free software: you can redistribute it and/or modify it under the terms
6! of the GNU General Public License as published by the Free Software Foundation,
7! either version 3 of the License, or (at your option) any later version.
8!
9! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
10! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
11! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
12!
13! You should have received a copy of the GNU General Public License along with
14! PALM. If not, see <http://www.gnu.org/licenses/>.
15!
16! Copyright 1997-2015 Leibniz Universitaet Hannover
17!--------------------------------------------------------------------------------!
18!
19! Current revisions:
20! -----------------
21!
22!
23! Former revisions:
24! -----------------
25! $Id: header.f90 1698 2015-10-28 17:26:17Z maronga $
26!
27! 1697 2015-10-28 17:14:10Z raasch
28! small E- and F-FORMAT changes to avoid informative compiler messages about
29! insufficient field width
30!
31! 1691 2015-10-26 16:17:44Z maronga
32! Renamed prandtl_layer to constant_flux_layer, renames rif_min/rif_max to
33! zeta_min/zeta_max.
34!
35! 1682 2015-10-07 23:56:08Z knoop
36! Code annotations made doxygen readable
37!
38! 1675 2015-10-02 08:28:59Z gronemeier
39! Bugfix: Definition of topography grid levels
40!
41! 1660 2015-09-21 08:15:16Z gronemeier
42! Bugfix: Definition of building/street canyon height if vertical grid stretching
43!         starts below the maximum topography height.
44!
45! 1590 2015-05-08 13:56:27Z maronga
46! Bugfix: Added TRIM statements for character strings for LSM and radiation code
47!
48! 1585 2015-04-30 07:05:52Z maronga
49! Further output for radiation model(s).
50!
51! 1575 2015-03-27 09:56:27Z raasch
52! adjustments for psolver-queries, output of seed_follows_topography
53!
54! 1560 2015-03-06 10:48:54Z keck
55! output for recycling y shift
56!
57! 1557 2015-03-05 16:43:04Z suehring
58! output for monotonic limiter
59!
60! 1551 2015-03-03 14:18:16Z maronga
61! Added informal output for land surface model and radiation model. Removed typo.
62!
63! 1496 2014-12-02 17:25:50Z maronga
64! Renamed: "radiation -> "cloud_top_radiation"
65!
66! 1484 2014-10-21 10:53:05Z kanani
67! Changes due to new module structure of the plant canopy model:
68!   module plant_canopy_model_mod and output for new canopy model parameters
69!   (alpha_lad, beta_lad, lai_beta,...) added,
70!   drag_coefficient, leaf_surface_concentration and scalar_exchange_coefficient
71!   renamed to canopy_drag_coeff, leaf_surface_conc and leaf_scalar_exch_coeff,
72!   learde renamed leaf_area_density.
73! Bugfix: DO-WHILE-loop for lad header information additionally restricted
74! by maximum number of gradient levels (currently 10)
75!
76! 1482 2014-10-18 12:34:45Z raasch
77! information about calculated or predefined virtual processor topology adjusted
78!
79! 1468 2014-09-24 14:06:57Z maronga
80! Adapted for use on up to 6-digit processor cores
81!
82! 1429 2014-07-15 12:53:45Z knoop
83! header exended to provide ensemble_member_nr if specified
84!
85! 1376 2014-04-26 11:21:22Z boeske
86! Correction of typos
87!
88! 1365 2014-04-22 15:03:56Z boeske
89! New section 'Large scale forcing and nudging':
90! output of large scale forcing and nudging information,
91! new section for initial profiles created
92!
93! 1359 2014-04-11 17:15:14Z hoffmann
94! dt_sort_particles removed
95!
96! 1353 2014-04-08 15:21:23Z heinze
97! REAL constants provided with KIND-attribute
98!
99! 1327 2014-03-21 11:00:16Z raasch
100! parts concerning iso2d and avs output removed,
101! -netcdf output queries
102!
103! 1324 2014-03-21 09:13:16Z suehring
104! Bugfix: module spectrum added
105!
106! 1322 2014-03-20 16:38:49Z raasch
107! REAL functions provided with KIND-attribute,
108! some REAL constants defined as wp-kind
109!
110! 1320 2014-03-20 08:40:49Z raasch
111! ONLY-attribute added to USE-statements,
112! kind-parameters added to all INTEGER and REAL declaration statements,
113! kinds are defined in new module kinds,
114! revision history before 2012 removed,
115! comment fields (!:) to be used for variable explanations added to
116! all variable declaration statements
117!
118! 1308 2014-03-13 14:58:42Z fricke
119! output of the fixed number of output time levels
120! output_format adjusted for masked data if netcdf_data_format > 5
121!
122! 1299 2014-03-06 13:15:21Z heinze
123! output for using large_scale subsidence in combination
124! with large_scale_forcing
125! reformatting, more detailed explanations
126!
127! 1241 2013-10-30 11:36:58Z heinze
128! output for nudging + large scale forcing from external file
129!
130! 1216 2013-08-26 09:31:42Z raasch
131! output for transpose_compute_overlap
132!
133! 1212 2013-08-15 08:46:27Z raasch
134! output for poisfft_hybrid removed
135!
136! 1179 2013-06-14 05:57:58Z raasch
137! output of reference_state, use_reference renamed use_single_reference_value
138!
139! 1159 2013-05-21 11:58:22Z fricke
140! +use_cmax
141!
142! 1115 2013-03-26 18:16:16Z hoffmann
143! descriptions for Seifert-Beheng-cloud-physics-scheme added
144!
145! 1111 2013-03-08 23:54:10Z raasch
146! output of accelerator board information
147! ibc_p_b = 2 removed
148!
149! 1108 2013-03-05 07:03:32Z raasch
150! bugfix for r1106
151!
152! 1106 2013-03-04 05:31:38Z raasch
153! some format changes for coupled runs
154!
155! 1092 2013-02-02 11:24:22Z raasch
156! unused variables removed
157!
158! 1036 2012-10-22 13:43:42Z raasch
159! code put under GPL (PALM 3.9)
160!
161! 1031 2012-10-19 14:35:30Z raasch
162! output of netCDF data format modified
163!
164! 1015 2012-09-27 09:23:24Z raasch
165! output of Adjustment of mixing length to the Prandtl mixing length at first
166! grid point above ground removed
167!
168! 1003 2012-09-14 14:35:53Z raasch
169! output of information about equal/unequal subdomain size removed
170!
171! 1001 2012-09-13 14:08:46Z raasch
172! all actions concerning leapfrog- and upstream-spline-scheme removed
173!
174! 978 2012-08-09 08:28:32Z fricke
175! -km_damp_max, outflow_damping_width
176! +pt_damping_factor, pt_damping_width
177! +z0h
178!
179! 964 2012-07-26 09:14:24Z raasch
180! output of profil-related quantities removed
181!
182! 940 2012-07-09 14:31:00Z raasch
183! Output in case of simulations for pure neutral stratification (no pt-equation
184! solved)
185!
186! 927 2012-06-06 19:15:04Z raasch
187! output of masking_method for mg-solver
188!
189! 868 2012-03-28 12:21:07Z raasch
190! translation velocity in Galilean transformation changed to 0.6 * ug
191!
192! 833 2012-02-22 08:55:55Z maronga
193! Adjusted format for leaf area density
194!
195! 828 2012-02-21 12:00:36Z raasch
196! output of dissipation_classes + radius_classes
197!
198! 825 2012-02-19 03:03:44Z raasch
199! Output of cloud physics parameters/quantities complemented and restructured
200!
201! Revision 1.1  1997/08/11 06:17:20  raasch
202! Initial revision
203!
204!
205! Description:
206! ------------
207!> Writing a header with all important information about the actual run.
208!> This subroutine is called three times, two times at the beginning
209!> (writing information on files RUN_CONTROL and HEADER) and one time at the
210!> end of the run, then writing additional information about CPU-usage on file
211!> header.
212!-----------------------------------------------------------------------------!
213 SUBROUTINE header
214 
215
216    USE arrays_3d,                                                             &
217        ONLY:  pt_init, qsws, q_init, sa_init, shf, ug, vg, w_subs, zu, zw
218       
219    USE control_parameters
220       
221    USE cloud_parameters,                                                      &
222        ONLY:  cp, curvature_solution_effects, c_sedimentation,                &
223               limiter_sedimentation, l_v, nc_const, r_d, ventilation_effect
224       
225    USE cpulog,                                                                &
226        ONLY:  log_point_s
227       
228    USE dvrp_variables,                                                        &
229        ONLY:  use_seperate_pe_for_dvrp_output
230       
231    USE grid_variables,                                                        &
232        ONLY:  dx, dy
233       
234    USE indices,                                                               &
235        ONLY:  mg_loc_ind, nnx, nny, nnz, nx, ny, nxl_mg, nxr_mg, nyn_mg,      &
236               nys_mg, nzt, nzt_mg
237       
238    USE kinds
239   
240    USE land_surface_model_mod,                                                &
241        ONLY:  conserve_water_content, dewfall, land_surface, nzb_soil,        &
242               nzt_soil, root_fraction, soil_moisture, soil_temperature,       &
243               soil_type, soil_type_name, veg_type, veg_type_name, zs
244 
245    USE model_1d,                                                              &
246        ONLY:  damp_level_ind_1d, dt_pr_1d, dt_run_control_1d, end_time_1d
247       
248    USE particle_attributes,                                                   &
249        ONLY:  bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, collision_kernel,     &
250               density_ratio, dissipation_classes, dt_min_part, dt_prel,       &
251               dt_write_particle_data, end_time_prel,                          &
252               maximum_number_of_tailpoints, maximum_tailpoint_age,            &
253               minimum_tailpoint_distance, number_of_particle_groups,          &
254               particle_advection, particle_advection_start,                   &
255               particles_per_point, pdx, pdy, pdz,  psb, psl, psn, psr, pss,   &
256               pst, radius, radius_classes, random_start_position,             &
257               seed_follows_topography,                                        &
258               total_number_of_particles, use_particle_tails,                  &
259               use_sgs_for_particles, total_number_of_tails,                   &
260               vertical_particle_advection, write_particle_statistics
261       
262    USE pegrid
263
264    USE plant_canopy_model_mod,                                                &
265        ONLY:  alpha_lad, beta_lad, calc_beta_lad_profile, canopy_drag_coeff,  &
266               canopy_mode, cthf, lad, lad_surface, lad_vertical_gradient,     &
267               lad_vertical_gradient_level, lad_vertical_gradient_level_ind,   &
268               lai_beta, leaf_scalar_exch_coeff, leaf_surface_conc, pch_index, &
269               plant_canopy
270
271    USE radiation_model_mod,                                                   &
272        ONLY:  albedo, albedo_type, albedo_type_name, constant_albedo,         &
273               day_init, dt_radiation, lambda, lw_radiation, net_radiation,    &
274               radiation, radiation_scheme, sw_radiation, time_utc_init
275   
276    USE spectrum,                                                              &
277        ONLY:  comp_spectra_level, data_output_sp, plot_spectra_level,         &
278               spectra_direction
279
280    IMPLICIT NONE
281
282    CHARACTER (LEN=1)  ::  prec                !<
283   
284    CHARACTER (LEN=2)  ::  do2d_mode           !<
285   
286    CHARACTER (LEN=5)  ::  section_chr         !<
287   
288    CHARACTER (LEN=10) ::  coor_chr            !<
289    CHARACTER (LEN=10) ::  host_chr            !<
290   
291    CHARACTER (LEN=16) ::  begin_chr           !<
292   
293    CHARACTER (LEN=26) ::  ver_rev             !<
294   
295    CHARACTER (LEN=40) ::  output_format       !<
296   
297    CHARACTER (LEN=70) ::  char1               !<
298    CHARACTER (LEN=70) ::  char2               !<
299    CHARACTER (LEN=70) ::  dopr_chr            !<
300    CHARACTER (LEN=70) ::  do2d_xy             !<
301    CHARACTER (LEN=70) ::  do2d_xz             !<
302    CHARACTER (LEN=70) ::  do2d_yz             !<
303    CHARACTER (LEN=70) ::  do3d_chr            !<
304    CHARACTER (LEN=70) ::  domask_chr          !<
305    CHARACTER (LEN=70) ::  run_classification  !<
306   
307    CHARACTER (LEN=85) ::  roben               !<
308    CHARACTER (LEN=85) ::  runten              !<
309   
310    CHARACTER (LEN=86) ::  coordinates         !<
311    CHARACTER (LEN=86) ::  gradients           !<
312    CHARACTER (LEN=86) ::  leaf_area_density   !<
313    CHARACTER (LEN=86) ::  roots               !<
314    CHARACTER (LEN=86) ::  slices              !<
315    CHARACTER (LEN=86) ::  temperatures        !<
316    CHARACTER (LEN=86) ::  ugcomponent         !<
317    CHARACTER (LEN=86) ::  vgcomponent         !<
318
319    CHARACTER (LEN=1), DIMENSION(1:3) ::  dir = (/ 'x', 'y', 'z' /)  !<
320
321    INTEGER(iwp) ::  av        !<
322    INTEGER(iwp) ::  bh        !<
323    INTEGER(iwp) ::  blx       !<
324    INTEGER(iwp) ::  bly       !<
325    INTEGER(iwp) ::  bxl       !<
326    INTEGER(iwp) ::  bxr       !<
327    INTEGER(iwp) ::  byn       !<
328    INTEGER(iwp) ::  bys       !<
329    INTEGER(iwp) ::  ch        !<
330    INTEGER(iwp) ::  count     !<
331    INTEGER(iwp) ::  cwx       !<
332    INTEGER(iwp) ::  cwy       !<
333    INTEGER(iwp) ::  cxl       !<
334    INTEGER(iwp) ::  cxr       !<
335    INTEGER(iwp) ::  cyn       !<
336    INTEGER(iwp) ::  cys       !<
337    INTEGER(iwp) ::  dim       !<
338    INTEGER(iwp) ::  i         !<
339    INTEGER(iwp) ::  io        !<
340    INTEGER(iwp) ::  j         !<
341    INTEGER(iwp) ::  k         !<
342    INTEGER(iwp) ::  l         !<
343    INTEGER(iwp) ::  ll        !<
344    INTEGER(iwp) ::  mpi_type  !<
345   
346    REAL(wp) ::  canopy_height                    !< canopy height (in m)
347    REAL(wp) ::  cpuseconds_per_simulated_second  !<
348
349!
350!-- Open the output file. At the end of the simulation, output is directed
351!-- to unit 19.
352    IF ( ( runnr == 0 .OR. force_print_header )  .AND. &
353         .NOT. simulated_time_at_begin /= simulated_time )  THEN
354       io = 15   !  header output on file RUN_CONTROL
355    ELSE
356       io = 19   !  header output on file HEADER
357    ENDIF
358    CALL check_open( io )
359
360!
361!-- At the end of the run, output file (HEADER) will be rewritten with
362!-- new information
363    IF ( io == 19 .AND. simulated_time_at_begin /= simulated_time ) REWIND( 19 )
364
365!
366!-- Determine kind of model run
367    IF ( TRIM( initializing_actions ) == 'read_restart_data' )  THEN
368       run_classification = '3D - restart run'
369    ELSEIF ( TRIM( initializing_actions ) == 'cyclic_fill' )  THEN
370       run_classification = '3D - run with cyclic fill of 3D - prerun data'
371    ELSEIF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 )  THEN
372       run_classification = '3D - run without 1D - prerun'
373    ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
374       run_classification = '3D - run with 1D - prerun'
375    ELSEIF ( INDEX( initializing_actions, 'by_user' ) /=0 )  THEN
376       run_classification = '3D - run initialized by user'
377    ELSE
378       message_string = ' unknown action(s): ' // TRIM( initializing_actions )
379       CALL message( 'header', 'PA0191', 0, 0, 0, 6, 0 )
380    ENDIF
381    IF ( ocean )  THEN
382       run_classification = 'ocean - ' // run_classification
383    ELSE
384       run_classification = 'atmosphere - ' // run_classification
385    ENDIF
386
387!
388!-- Run-identification, date, time, host
389    host_chr = host(1:10)
390    ver_rev = TRIM( version ) // '  ' // TRIM( revision )
391    WRITE ( io, 100 )  ver_rev, TRIM( run_classification )
392    IF ( TRIM( coupling_mode ) /= 'uncoupled' )  THEN
393#if defined( __mpi2 )
394       mpi_type = 2
395#else
396       mpi_type = 1
397#endif
398       WRITE ( io, 101 )  mpi_type, coupling_mode
399    ENDIF
400#if defined( __parallel )
401    IF ( coupling_start_time /= 0.0_wp )  THEN
402       IF ( coupling_start_time > simulated_time_at_begin )  THEN
403          WRITE ( io, 109 )
404       ELSE
405          WRITE ( io, 114 )
406       ENDIF
407    ENDIF
408#endif
409    IF ( ensemble_member_nr /= 0 )  THEN
410       WRITE ( io, 512 )  run_date, run_identifier, run_time, runnr,           &
411                       ADJUSTR( host_chr ), ensemble_member_nr
412    ELSE
413       WRITE ( io, 102 )  run_date, run_identifier, run_time, runnr,           &
414                       ADJUSTR( host_chr )
415    ENDIF
416#if defined( __parallel )
417    IF ( npex == -1  .AND.  npey == -1 )  THEN
418       char1 = 'calculated'
419    ELSE
420       char1 = 'predefined'
421    ENDIF
422    IF ( threads_per_task == 1 )  THEN
423       WRITE ( io, 103 )  numprocs, pdims(1), pdims(2), TRIM( char1 )
424    ELSE
425       WRITE ( io, 104 )  numprocs*threads_per_task, numprocs, &
426                          threads_per_task, pdims(1), pdims(2), TRIM( char1 )
427    ENDIF
428    IF ( num_acc_per_node /= 0 )  WRITE ( io, 117 )  num_acc_per_node   
429    IF ( ( host(1:3) == 'ibm'  .OR.  host(1:3) == 'nec'  .OR.    &
430           host(1:2) == 'lc'   .OR.  host(1:3) == 'dec' )  .AND. &
431         npex == -1  .AND.  pdims(2) == 1 )                      &
432    THEN
433       WRITE ( io, 106 )
434    ELSEIF ( pdims(2) == 1 )  THEN
435       WRITE ( io, 107 )  'x'
436    ELSEIF ( pdims(1) == 1 )  THEN
437       WRITE ( io, 107 )  'y'
438    ENDIF
439    IF ( use_seperate_pe_for_dvrp_output )  WRITE ( io, 105 )
440    IF ( numprocs /= maximum_parallel_io_streams )  THEN
441       WRITE ( io, 108 )  maximum_parallel_io_streams
442    ENDIF
443#else
444    IF ( num_acc_per_node /= 0 )  WRITE ( io, 120 )  num_acc_per_node
445#endif
446    WRITE ( io, 99 )
447
448!
449!-- Numerical schemes
450    WRITE ( io, 110 )
451    IF ( psolver(1:7) == 'poisfft' )  THEN
452       WRITE ( io, 111 )  TRIM( fft_method )
453       IF ( transpose_compute_overlap )  WRITE( io, 115 )
454    ELSEIF ( psolver == 'sor' )  THEN
455       WRITE ( io, 112 )  nsor_ini, nsor, omega_sor
456    ELSEIF ( psolver(1:9) == 'multigrid' )  THEN
457       WRITE ( io, 135 )  TRIM(psolver), cycle_mg, maximum_grid_level, ngsrb
458       IF ( mg_cycles == -1 )  THEN
459          WRITE ( io, 140 )  residual_limit
460       ELSE
461          WRITE ( io, 141 )  mg_cycles
462       ENDIF
463       IF ( mg_switch_to_pe0_level == 0 )  THEN
464          WRITE ( io, 136 )  nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
465                             nzt_mg(1)
466       ELSEIF (  mg_switch_to_pe0_level /= -1 )  THEN
467          WRITE ( io, 137 )  mg_switch_to_pe0_level,            &
468                             mg_loc_ind(2,0)-mg_loc_ind(1,0)+1, &
469                             mg_loc_ind(4,0)-mg_loc_ind(3,0)+1, &
470                             nzt_mg(mg_switch_to_pe0_level),    &
471                             nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, &
472                             nzt_mg(1)
473       ENDIF
474       IF ( masking_method )  WRITE ( io, 144 )
475    ENDIF
476    IF ( call_psolver_at_all_substeps  .AND. timestep_scheme(1:5) == 'runge' ) &
477    THEN
478       WRITE ( io, 142 )
479    ENDIF
480
481    IF ( momentum_advec == 'pw-scheme' )  THEN
482       WRITE ( io, 113 )
483    ELSEIF (momentum_advec == 'ws-scheme' )  THEN
484       WRITE ( io, 503 )
485    ENDIF
486    IF ( scalar_advec == 'pw-scheme' )  THEN
487       WRITE ( io, 116 )
488    ELSEIF ( scalar_advec == 'ws-scheme' )  THEN
489       WRITE ( io, 504 )
490    ELSEIF ( scalar_advec == 'ws-scheme-mono' )  THEN
491       WRITE ( io, 513 )
492    ELSE
493       WRITE ( io, 118 )
494    ENDIF
495
496    WRITE ( io, 139 )  TRIM( loop_optimization )
497
498    IF ( galilei_transformation )  THEN
499       IF ( use_ug_for_galilei_tr )  THEN
500          char1 = '0.6 * geostrophic wind'
501       ELSE
502          char1 = 'mean wind in model domain'
503       ENDIF
504       IF ( simulated_time_at_begin == simulated_time )  THEN
505          char2 = 'at the start of the run'
506       ELSE
507          char2 = 'at the end of the run'
508       ENDIF
509       WRITE ( io, 119 )  TRIM( char1 ), TRIM( char2 ),                        &
510                          advected_distance_x/1000.0_wp,                       &
511                          advected_distance_y/1000.0_wp
512    ENDIF
513    WRITE ( io, 122 )  timestep_scheme
514    IF ( use_upstream_for_tke )  WRITE ( io, 143 )
515    IF ( rayleigh_damping_factor /= 0.0_wp )  THEN
516       IF ( .NOT. ocean )  THEN
517          WRITE ( io, 123 )  'above', rayleigh_damping_height, &
518               rayleigh_damping_factor
519       ELSE
520          WRITE ( io, 123 )  'below', rayleigh_damping_height, &
521               rayleigh_damping_factor
522       ENDIF
523    ENDIF
524    IF ( neutral )  WRITE ( io, 131 )  pt_surface
525    IF ( humidity )  THEN
526       IF ( .NOT. cloud_physics )  THEN
527          WRITE ( io, 129 )
528       ELSE
529          WRITE ( io, 130 )
530       ENDIF
531    ENDIF
532    IF ( passive_scalar )  WRITE ( io, 134 )
533    IF ( conserve_volume_flow )  THEN
534       WRITE ( io, 150 )  conserve_volume_flow_mode
535       IF ( TRIM( conserve_volume_flow_mode ) == 'bulk_velocity' )  THEN
536          WRITE ( io, 151 )  u_bulk, v_bulk
537       ENDIF
538    ELSEIF ( dp_external )  THEN
539       IF ( dp_smooth )  THEN
540          WRITE ( io, 152 )  dpdxy, dp_level_b, ', vertically smoothed.'
541       ELSE
542          WRITE ( io, 152 )  dpdxy, dp_level_b, '.'
543       ENDIF
544    ENDIF
545    WRITE ( io, 99 )
546
547!
548!-- Runtime and timestep information
549    WRITE ( io, 200 )
550    IF ( .NOT. dt_fixed )  THEN
551       WRITE ( io, 201 )  dt_max, cfl_factor
552    ELSE
553       WRITE ( io, 202 )  dt
554    ENDIF
555    WRITE ( io, 203 )  simulated_time_at_begin, end_time
556
557    IF ( time_restart /= 9999999.9_wp  .AND. &
558         simulated_time_at_begin == simulated_time )  THEN
559       IF ( dt_restart == 9999999.9_wp )  THEN
560          WRITE ( io, 204 )  ' Restart at:       ',time_restart
561       ELSE
562          WRITE ( io, 205 )  ' Restart at:       ',time_restart, dt_restart
563       ENDIF
564    ENDIF
565
566    IF ( simulated_time_at_begin /= simulated_time )  THEN
567       i = MAX ( log_point_s(10)%counts, 1 )
568       IF ( ( simulated_time - simulated_time_at_begin ) == 0.0_wp )  THEN
569          cpuseconds_per_simulated_second = 0.0_wp
570       ELSE
571          cpuseconds_per_simulated_second = log_point_s(10)%sum / &
572                                            ( simulated_time -    &
573                                              simulated_time_at_begin )
574       ENDIF
575       WRITE ( io, 206 )  simulated_time, log_point_s(10)%sum,      &
576                          log_point_s(10)%sum / REAL( i, KIND=wp ), &
577                          cpuseconds_per_simulated_second
578       IF ( time_restart /= 9999999.9_wp  .AND.  time_restart < end_time )  THEN
579          IF ( dt_restart == 9999999.9_wp )  THEN
580             WRITE ( io, 204 )  ' Next restart at:     ',time_restart
581          ELSE
582             WRITE ( io, 205 )  ' Next restart at:     ',time_restart, dt_restart
583          ENDIF
584       ENDIF
585    ENDIF
586
587
588!
589!-- Start time for coupled runs, if independent precursor runs for atmosphere
590!-- and ocean are used or have been used. In this case, coupling_start_time
591!-- defines the time when the coupling is switched on.
592    IF ( coupling_start_time /= 0.0_wp )  THEN
593       WRITE ( io, 207 )  coupling_start_time
594    ENDIF
595
596!
597!-- Computational grid
598    IF ( .NOT. ocean )  THEN
599       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(nzt+1)
600       IF ( dz_stretch_level_index < nzt+1 )  THEN
601          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
602                             dz_stretch_factor, dz_max
603       ENDIF
604    ELSE
605       WRITE ( io, 250 )  dx, dy, dz, (nx+1)*dx, (ny+1)*dy, zu(0)
606       IF ( dz_stretch_level_index > 0 )  THEN
607          WRITE ( io, 252 )  dz_stretch_level, dz_stretch_level_index, &
608                             dz_stretch_factor, dz_max
609       ENDIF
610    ENDIF
611    WRITE ( io, 254 )  nx, ny, nzt+1, MIN( nnx, nx+1 ), MIN( nny, ny+1 ), &
612                       MIN( nnz+2, nzt+2 )
613    IF ( sloping_surface )  WRITE ( io, 260 )  alpha_surface
614
615!
616!-- Large scale forcing and nudging
617    WRITE ( io, 160 )
618    IF ( large_scale_forcing )  THEN
619       WRITE ( io, 162 )
620       WRITE ( io, 163 )
621
622       IF ( large_scale_subsidence )  THEN
623          IF ( .NOT. use_subsidence_tendencies )  THEN
624             WRITE ( io, 164 )
625          ELSE
626             WRITE ( io, 165 )
627          ENDIF
628       ENDIF
629
630       IF ( bc_pt_b == 'dirichlet' )  THEN
631          WRITE ( io, 180 )
632       ELSEIF ( bc_pt_b == 'neumann' )  THEN
633          WRITE ( io, 181 )
634       ENDIF
635
636       IF ( bc_q_b == 'dirichlet' )  THEN
637          WRITE ( io, 182 )
638       ELSEIF ( bc_q_b == 'neumann' )  THEN
639          WRITE ( io, 183 )
640       ENDIF
641
642       WRITE ( io, 167 )
643       IF ( nudging )  THEN
644          WRITE ( io, 170 )
645       ENDIF
646    ELSE
647       WRITE ( io, 161 )
648       WRITE ( io, 171 )
649    ENDIF
650    IF ( large_scale_subsidence )  THEN
651       WRITE ( io, 168 )
652       WRITE ( io, 169 )
653    ENDIF
654
655!
656!-- Profile for the large scale vertial velocity
657!-- Building output strings, starting with surface value
658    IF ( large_scale_subsidence )  THEN
659       temperatures = '   0.0'
660       gradients = '------'
661       slices = '     0'
662       coordinates = '   0.0'
663       i = 1
664       DO  WHILE ( subs_vertical_gradient_level_i(i) /= -9999 )
665
666          WRITE (coor_chr,'(E10.2,7X)')  &
667                                w_subs(subs_vertical_gradient_level_i(i))
668          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
669
670          WRITE (coor_chr,'(E10.2,7X)')  subs_vertical_gradient(i)
671          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
672
673          WRITE (coor_chr,'(I10,7X)')  subs_vertical_gradient_level_i(i)
674          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
675
676          WRITE (coor_chr,'(F10.2,7X)')  subs_vertical_gradient_level(i)
677          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
678
679          IF ( i == 10 )  THEN
680             EXIT
681          ELSE
682             i = i + 1
683          ENDIF
684
685       ENDDO
686
687 
688       IF ( .NOT. large_scale_forcing )  THEN
689          WRITE ( io, 426 )  TRIM( coordinates ), TRIM( temperatures ), &
690                             TRIM( gradients ), TRIM( slices )
691       ENDIF
692
693
694    ENDIF
695
696!-- Profile of the geostrophic wind (component ug)
697!-- Building output strings
698    WRITE ( ugcomponent, '(F6.2)' )  ug_surface
699    gradients = '------'
700    slices = '     0'
701    coordinates = '   0.0'
702    i = 1
703    DO  WHILE ( ug_vertical_gradient_level_ind(i) /= -9999 )
704     
705       WRITE (coor_chr,'(F6.2,1X)')  ug(ug_vertical_gradient_level_ind(i))
706       ugcomponent = TRIM( ugcomponent ) // '  ' // TRIM( coor_chr )
707
708       WRITE (coor_chr,'(F6.2,1X)')  ug_vertical_gradient(i)
709       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
710
711       WRITE (coor_chr,'(I6,1X)')  ug_vertical_gradient_level_ind(i)
712       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
713
714       WRITE (coor_chr,'(F6.1,1X)')  ug_vertical_gradient_level(i)
715       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
716
717       IF ( i == 10 )  THEN
718          EXIT
719       ELSE
720          i = i + 1
721       ENDIF
722
723    ENDDO
724
725    IF ( .NOT. large_scale_forcing )  THEN
726       WRITE ( io, 423 )  TRIM( coordinates ), TRIM( ugcomponent ), &
727                          TRIM( gradients ), TRIM( slices )
728    ENDIF
729
730!-- Profile of the geostrophic wind (component vg)
731!-- Building output strings
732    WRITE ( vgcomponent, '(F6.2)' )  vg_surface
733    gradients = '------'
734    slices = '     0'
735    coordinates = '   0.0'
736    i = 1
737    DO  WHILE ( vg_vertical_gradient_level_ind(i) /= -9999 )
738
739       WRITE (coor_chr,'(F6.2,1X)')  vg(vg_vertical_gradient_level_ind(i))
740       vgcomponent = TRIM( vgcomponent ) // '  ' // TRIM( coor_chr )
741
742       WRITE (coor_chr,'(F6.2,1X)')  vg_vertical_gradient(i)
743       gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
744
745       WRITE (coor_chr,'(I6,1X)')  vg_vertical_gradient_level_ind(i)
746       slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
747
748       WRITE (coor_chr,'(F6.1,1X)')  vg_vertical_gradient_level(i)
749       coordinates = TRIM( coordinates ) // '  ' // TRIM( coor_chr )
750
751       IF ( i == 10 )  THEN
752          EXIT
753       ELSE
754          i = i + 1
755       ENDIF
756 
757    ENDDO
758
759    IF ( .NOT. large_scale_forcing )  THEN
760       WRITE ( io, 424 )  TRIM( coordinates ), TRIM( vgcomponent ), &
761                          TRIM( gradients ), TRIM( slices )
762    ENDIF
763
764!
765!-- Topography
766    WRITE ( io, 270 )  topography
767    SELECT CASE ( TRIM( topography ) )
768
769       CASE ( 'flat' )
770          ! no actions necessary
771
772       CASE ( 'single_building' )
773          blx = INT( building_length_x / dx )
774          bly = INT( building_length_y / dy )
775          bh  = MINLOC( ABS( zw - building_height ), 1 ) - 1
776          IF ( ABS( zw(bh  ) - building_height ) == &
777               ABS( zw(bh+1) - building_height )    )  bh = bh + 1
778
779          IF ( building_wall_left == 9999999.9_wp )  THEN
780             building_wall_left = ( nx + 1 - blx ) / 2 * dx
781          ENDIF
782          bxl = INT ( building_wall_left / dx + 0.5_wp )
783          bxr = bxl + blx
784
785          IF ( building_wall_south == 9999999.9_wp )  THEN
786             building_wall_south = ( ny + 1 - bly ) / 2 * dy
787          ENDIF
788          bys = INT ( building_wall_south / dy + 0.5_wp )
789          byn = bys + bly
790
791          WRITE ( io, 271 )  building_length_x, building_length_y, &
792                             building_height, bxl, bxr, bys, byn
793
794       CASE ( 'single_street_canyon' )
795          ch  = MINLOC( ABS( zw - canyon_height ), 1 ) - 1
796          IF ( ABS( zw(ch  ) - canyon_height ) == &
797               ABS( zw(ch+1) - canyon_height )    )  ch = ch + 1
798          IF ( canyon_width_x /= 9999999.9_wp )  THEN
799!
800!--          Street canyon in y direction
801             cwx = NINT( canyon_width_x / dx )
802             IF ( canyon_wall_left == 9999999.9_wp )  THEN
803                canyon_wall_left = ( nx + 1 - cwx ) / 2 * dx
804             ENDIF
805             cxl = NINT( canyon_wall_left / dx )
806             cxr = cxl + cwx
807             WRITE ( io, 272 )  'y', canyon_height, ch, 'u', cxl, cxr
808
809          ELSEIF ( canyon_width_y /= 9999999.9_wp )  THEN
810!
811!--          Street canyon in x direction
812             cwy = NINT( canyon_width_y / dy )
813             IF ( canyon_wall_south == 9999999.9_wp )  THEN
814                canyon_wall_south = ( ny + 1 - cwy ) / 2 * dy
815             ENDIF
816             cys = NINT( canyon_wall_south / dy )
817             cyn = cys + cwy
818             WRITE ( io, 272 )  'x', canyon_height, ch, 'v', cys, cyn
819          ENDIF
820
821    END SELECT
822
823    IF ( TRIM( topography ) /= 'flat' )  THEN
824       IF ( TRIM( topography_grid_convention ) == ' ' )  THEN
825          IF ( TRIM( topography ) == 'single_building' .OR.  &
826               TRIM( topography ) == 'single_street_canyon' )  THEN
827             WRITE ( io, 278 )
828          ELSEIF ( TRIM( topography ) == 'read_from_file' )  THEN
829             WRITE ( io, 279 )
830          ENDIF
831       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_edge' )  THEN
832          WRITE ( io, 278 )
833       ELSEIF ( TRIM( topography_grid_convention ) == 'cell_center' )  THEN
834          WRITE ( io, 279 )
835       ENDIF
836    ENDIF
837
838    IF ( plant_canopy )  THEN
839   
840       canopy_height = pch_index * dz
841
842       WRITE ( io, 280 )  canopy_mode, canopy_height, pch_index,               &
843                          canopy_drag_coeff
844       IF ( passive_scalar )  THEN
845          WRITE ( io, 281 )  leaf_scalar_exch_coeff,                           &
846                             leaf_surface_conc
847       ENDIF
848
849!
850!--    Heat flux at the top of vegetation
851       WRITE ( io, 282 )  cthf
852
853!
854!--    Leaf area density profile, calculated either from given vertical
855!--    gradients or from beta probability density function.
856       IF (  .NOT.  calc_beta_lad_profile )  THEN
857
858!--       Building output strings, starting with surface value
859          WRITE ( leaf_area_density, '(F7.4)' )  lad_surface
860          gradients = '------'
861          slices = '     0'
862          coordinates = '   0.0'
863          i = 1
864          DO  WHILE ( i < 11  .AND.  lad_vertical_gradient_level_ind(i) /= -9999 )
865
866             WRITE (coor_chr,'(F7.2)')  lad(lad_vertical_gradient_level_ind(i))
867             leaf_area_density = TRIM( leaf_area_density ) // ' ' // TRIM( coor_chr )
868 
869             WRITE (coor_chr,'(F7.2)')  lad_vertical_gradient(i)
870             gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
871
872             WRITE (coor_chr,'(I7)')  lad_vertical_gradient_level_ind(i)
873             slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
874
875             WRITE (coor_chr,'(F7.1)')  lad_vertical_gradient_level(i)
876             coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
877
878             i = i + 1
879          ENDDO
880
881          WRITE ( io, 283 )  TRIM( coordinates ), TRIM( leaf_area_density ),              &
882                             TRIM( gradients ), TRIM( slices )
883
884       ELSE
885       
886          WRITE ( leaf_area_density, '(F7.4)' )  lad_surface
887          coordinates = '   0.0'
888         
889          DO  k = 1, pch_index
890
891             WRITE (coor_chr,'(F7.2)')  lad(k)
892             leaf_area_density = TRIM( leaf_area_density ) // ' ' // TRIM( coor_chr )
893 
894             WRITE (coor_chr,'(F7.1)')  zu(k)
895             coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
896
897          ENDDO       
898
899          WRITE ( io, 284 ) TRIM( coordinates ), TRIM( leaf_area_density ), alpha_lad,    &
900                            beta_lad, lai_beta
901
902       ENDIF 
903
904    ENDIF
905
906
907    IF ( land_surface )  THEN
908
909       temperatures = ''
910       gradients    = '' ! use for humidity here
911       coordinates  = '' ! use for height
912       roots        = '' ! use for root fraction
913       slices       = '' ! use for index
914
915       i = 1
916       DO i = nzb_soil, nzt_soil
917          WRITE (coor_chr,'(F10.2,7X)') soil_temperature(i)
918          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
919
920          WRITE (coor_chr,'(F10.2,7X)') soil_moisture(i)
921          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
922
923          WRITE (coor_chr,'(F10.2,7X)')  - zs(i)
924          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
925
926          WRITE (coor_chr,'(F10.2,7X)')  root_fraction(i)
927          roots = TRIM( roots ) // ' '  // TRIM( coor_chr )
928
929          WRITE (coor_chr,'(I10,7X)')  i
930          slices = TRIM( slices ) // ' '  // TRIM( coor_chr )
931
932
933       ENDDO
934
935!
936!--    Write land surface model header
937       WRITE( io, 419 )
938       IF ( conserve_water_content )  THEN
939          WRITE( io, 440 )
940       ELSE
941          WRITE( io, 441 )
942       ENDIF
943
944       IF ( dewfall )  THEN
945          WRITE( io, 442 )
946       ELSE
947          WRITE( io, 443 )
948       ENDIF
949
950       WRITE( io, 438 ) TRIM( veg_type_name(veg_type) ),                       &
951                        TRIM (soil_type_name(soil_type) )
952       WRITE( io, 439 ) TRIM( coordinates ), TRIM( temperatures ),             &
953                        TRIM( gradients ), TRIM( roots ), TRIM( slices )
954
955
956    ENDIF
957
958    IF ( radiation )  THEN
959!
960!--    Write radiation model header
961       WRITE( io, 444 )
962
963       IF ( radiation_scheme == "constant" )  THEN
964          WRITE( io, 445 ) net_radiation
965       ELSEIF ( radiation_scheme == "clear-sky" )  THEN
966          WRITE( io, 446 )
967       ELSEIF ( radiation_scheme == "rrtmg" )  THEN
968          WRITE( io, 447 )
969          IF ( .NOT. lw_radiation )  WRITE( io, 458 )
970          IF ( .NOT. sw_radiation )  WRITE( io, 459 )
971       ENDIF
972
973       IF ( albedo_type == 0 )  THEN
974          WRITE( io, 448 ) albedo
975       ELSE
976          WRITE( io, 456 ) TRIM( albedo_type_name(albedo_type) )
977       ENDIF
978       IF ( constant_albedo )  THEN
979          WRITE( io, 457 )
980       ENDIF
981       WRITE( io, 449 ) dt_radiation
982    ENDIF
983
984
985!
986!-- Boundary conditions
987    IF ( ibc_p_b == 0 )  THEN
988       runten = 'p(0)     = 0      |'
989    ELSEIF ( ibc_p_b == 1 )  THEN
990       runten = 'p(0)     = p(1)   |'
991    ENDIF
992    IF ( ibc_p_t == 0 )  THEN
993       roben  = 'p(nzt+1) = 0      |'
994    ELSE
995       roben  = 'p(nzt+1) = p(nzt) |'
996    ENDIF
997
998    IF ( ibc_uv_b == 0 )  THEN
999       runten = TRIM( runten ) // ' uv(0)     = -uv(1)                |'
1000    ELSE
1001       runten = TRIM( runten ) // ' uv(0)     = uv(1)                 |'
1002    ENDIF
1003    IF ( TRIM( bc_uv_t ) == 'dirichlet_0' )  THEN
1004       roben  = TRIM( roben  ) // ' uv(nzt+1) = 0                     |'
1005    ELSEIF ( ibc_uv_t == 0 )  THEN
1006       roben  = TRIM( roben  ) // ' uv(nzt+1) = ug(nzt+1), vg(nzt+1)  |'
1007    ELSE
1008       roben  = TRIM( roben  ) // ' uv(nzt+1) = uv(nzt)               |'
1009    ENDIF
1010
1011    IF ( ibc_pt_b == 0 )  THEN
1012       IF ( land_surface )  THEN
1013          runten = TRIM( runten ) // ' pt(0)     = from soil model'
1014       ELSE
1015          runten = TRIM( runten ) // ' pt(0)     = pt_surface'
1016       ENDIF
1017    ELSEIF ( ibc_pt_b == 1 )  THEN
1018       runten = TRIM( runten ) // ' pt(0)     = pt(1)'
1019    ELSEIF ( ibc_pt_b == 2 )  THEN
1020       runten = TRIM( runten ) // ' pt(0)     = from coupled model'
1021    ENDIF
1022    IF ( ibc_pt_t == 0 )  THEN
1023       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt_top'
1024    ELSEIF( ibc_pt_t == 1 )  THEN
1025       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt(nzt)'
1026    ELSEIF( ibc_pt_t == 2 )  THEN
1027       roben  = TRIM( roben  ) // ' pt(nzt+1) = pt(nzt) + dpt/dz_ini'
1028
1029    ENDIF
1030
1031    WRITE ( io, 300 )  runten, roben
1032
1033    IF ( .NOT. constant_diffusion )  THEN
1034       IF ( ibc_e_b == 1 )  THEN
1035          runten = 'e(0)     = e(1)'
1036       ELSE
1037          runten = 'e(0)     = e(1) = (u*/0.1)**2'
1038       ENDIF
1039       roben = 'e(nzt+1) = e(nzt) = e(nzt-1)'
1040
1041       WRITE ( io, 301 )  'e', runten, roben       
1042
1043    ENDIF
1044
1045    IF ( ocean )  THEN
1046       runten = 'sa(0)    = sa(1)'
1047       IF ( ibc_sa_t == 0 )  THEN
1048          roben =  'sa(nzt+1) = sa_surface'
1049       ELSE
1050          roben =  'sa(nzt+1) = sa(nzt)'
1051       ENDIF
1052       WRITE ( io, 301 ) 'sa', runten, roben
1053    ENDIF
1054
1055    IF ( humidity )  THEN
1056       IF ( ibc_q_b == 0 )  THEN
1057          IF ( land_surface )  THEN
1058             runten = 'q(0)     = from soil model'
1059          ELSE
1060             runten = 'q(0)     = q_surface'
1061          ENDIF
1062
1063       ELSE
1064          runten = 'q(0)     = q(1)'
1065       ENDIF
1066       IF ( ibc_q_t == 0 )  THEN
1067          roben =  'q(nzt)   = q_top'
1068       ELSE
1069          roben =  'q(nzt)   = q(nzt-1) + dq/dz'
1070       ENDIF
1071       WRITE ( io, 301 ) 'q', runten, roben
1072    ENDIF
1073
1074    IF ( passive_scalar )  THEN
1075       IF ( ibc_q_b == 0 )  THEN
1076          runten = 's(0)     = s_surface'
1077       ELSE
1078          runten = 's(0)     = s(1)'
1079       ENDIF
1080       IF ( ibc_q_t == 0 )  THEN
1081          roben =  's(nzt)   = s_top'
1082       ELSE
1083          roben =  's(nzt)   = s(nzt-1) + ds/dz'
1084       ENDIF
1085       WRITE ( io, 301 ) 's', runten, roben
1086    ENDIF
1087
1088    IF ( use_surface_fluxes )  THEN
1089       WRITE ( io, 303 )
1090       IF ( constant_heatflux )  THEN
1091          IF ( large_scale_forcing .AND. lsf_surf )  THEN
1092             WRITE ( io, 306 )  shf(0,0)
1093          ELSE
1094             WRITE ( io, 306 )  surface_heatflux
1095          ENDIF
1096          IF ( random_heatflux )  WRITE ( io, 307 )
1097       ENDIF
1098       IF ( humidity  .AND.  constant_waterflux )  THEN
1099          IF ( large_scale_forcing .AND. lsf_surf )  THEN
1100             WRITE ( io, 311 ) qsws(0,0)
1101          ELSE
1102             WRITE ( io, 311 ) surface_waterflux
1103          ENDIF
1104       ENDIF
1105       IF ( passive_scalar  .AND.  constant_waterflux )  THEN
1106          WRITE ( io, 313 ) surface_waterflux
1107       ENDIF
1108    ENDIF
1109
1110    IF ( use_top_fluxes )  THEN
1111       WRITE ( io, 304 )
1112       IF ( coupling_mode == 'uncoupled' )  THEN
1113          WRITE ( io, 320 )  top_momentumflux_u, top_momentumflux_v
1114          IF ( constant_top_heatflux )  THEN
1115             WRITE ( io, 306 )  top_heatflux
1116          ENDIF
1117       ELSEIF ( coupling_mode == 'ocean_to_atmosphere' )  THEN
1118          WRITE ( io, 316 )
1119       ENDIF
1120       IF ( ocean  .AND.  constant_top_salinityflux )  THEN
1121          WRITE ( io, 309 )  top_salinityflux
1122       ENDIF
1123       IF ( humidity  .OR.  passive_scalar )  THEN
1124          WRITE ( io, 315 )
1125       ENDIF
1126    ENDIF
1127
1128    IF ( constant_flux_layer )  THEN
1129       WRITE ( io, 305 )  (zu(1)-zu(0)), roughness_length,                     &
1130                          z0h_factor*roughness_length, kappa,                  &
1131                          zeta_min, zeta_max
1132       IF ( .NOT. constant_heatflux )  WRITE ( io, 308 )
1133       IF ( humidity  .AND.  .NOT. constant_waterflux )  THEN
1134          WRITE ( io, 312 )
1135       ENDIF
1136       IF ( passive_scalar  .AND.  .NOT. constant_waterflux )  THEN
1137          WRITE ( io, 314 )
1138       ENDIF
1139    ELSE
1140       IF ( INDEX(initializing_actions, 'set_1d-model_profiles') /= 0 )  THEN
1141          WRITE ( io, 310 )  zeta_min, zeta_max
1142       ENDIF
1143    ENDIF
1144
1145    WRITE ( io, 317 )  bc_lr, bc_ns
1146    IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
1147       WRITE ( io, 318 )  use_cmax, pt_damping_width, pt_damping_factor       
1148       IF ( turbulent_inflow )  THEN
1149          IF ( .NOT. recycling_yshift ) THEN
1150             WRITE ( io, 319 )  recycling_width, recycling_plane, &
1151                                inflow_damping_height, inflow_damping_width
1152          ELSE
1153             WRITE ( io, 322 )  recycling_width, recycling_plane, &
1154                                inflow_damping_height, inflow_damping_width
1155          END IF
1156       ENDIF
1157    ENDIF
1158
1159!
1160!-- Initial Profiles
1161    WRITE ( io, 321 )
1162!
1163!-- Initial wind profiles
1164    IF ( u_profile(1) /= 9999999.9_wp )  WRITE ( io, 427 )
1165
1166!
1167!-- Initial temperature profile
1168!-- Building output strings, starting with surface temperature
1169    WRITE ( temperatures, '(F6.2)' )  pt_surface
1170    gradients = '------'
1171    slices = '     0'
1172    coordinates = '   0.0'
1173    i = 1
1174    DO  WHILE ( pt_vertical_gradient_level_ind(i) /= -9999 )
1175
1176       WRITE (coor_chr,'(F7.2)')  pt_init(pt_vertical_gradient_level_ind(i))
1177       temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1178
1179       WRITE (coor_chr,'(F7.2)')  pt_vertical_gradient(i)
1180       gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1181
1182       WRITE (coor_chr,'(I7)')  pt_vertical_gradient_level_ind(i)
1183       slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1184
1185       WRITE (coor_chr,'(F7.1)')  pt_vertical_gradient_level(i)
1186       coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1187
1188       IF ( i == 10 )  THEN
1189          EXIT
1190       ELSE
1191          i = i + 1
1192       ENDIF
1193
1194    ENDDO
1195
1196    IF ( .NOT. nudging )  THEN
1197       WRITE ( io, 420 )  TRIM( coordinates ), TRIM( temperatures ), &
1198                          TRIM( gradients ), TRIM( slices )
1199    ELSE
1200       WRITE ( io, 428 ) 
1201    ENDIF
1202
1203!
1204!-- Initial humidity profile
1205!-- Building output strings, starting with surface humidity
1206    IF ( humidity  .OR.  passive_scalar )  THEN
1207       WRITE ( temperatures, '(E8.1)' )  q_surface
1208       gradients = '--------'
1209       slices = '       0'
1210       coordinates = '     0.0'
1211       i = 1
1212       DO  WHILE ( q_vertical_gradient_level_ind(i) /= -9999 )
1213         
1214          WRITE (coor_chr,'(E8.1,4X)')  q_init(q_vertical_gradient_level_ind(i))
1215          temperatures = TRIM( temperatures ) // '  ' // TRIM( coor_chr )
1216
1217          WRITE (coor_chr,'(E8.1,4X)')  q_vertical_gradient(i)
1218          gradients = TRIM( gradients ) // '  ' // TRIM( coor_chr )
1219         
1220          WRITE (coor_chr,'(I8,4X)')  q_vertical_gradient_level_ind(i)
1221          slices = TRIM( slices ) // '  ' // TRIM( coor_chr )
1222         
1223          WRITE (coor_chr,'(F8.1,4X)')  q_vertical_gradient_level(i)
1224          coordinates = TRIM( coordinates ) // '  '  // TRIM( coor_chr )
1225
1226          IF ( i == 10 )  THEN
1227             EXIT
1228          ELSE
1229             i = i + 1
1230          ENDIF
1231
1232       ENDDO
1233
1234       IF ( humidity )  THEN
1235          IF ( .NOT. nudging )  THEN
1236             WRITE ( io, 421 )  TRIM( coordinates ), TRIM( temperatures ), &
1237                                TRIM( gradients ), TRIM( slices )
1238          ENDIF
1239       ELSE
1240          WRITE ( io, 422 )  TRIM( coordinates ), TRIM( temperatures ), &
1241                             TRIM( gradients ), TRIM( slices )
1242       ENDIF
1243    ENDIF
1244
1245!
1246!-- Initial salinity profile
1247!-- Building output strings, starting with surface salinity
1248    IF ( ocean )  THEN
1249       WRITE ( temperatures, '(F6.2)' )  sa_surface
1250       gradients = '------'
1251       slices = '     0'
1252       coordinates = '   0.0'
1253       i = 1
1254       DO  WHILE ( sa_vertical_gradient_level_ind(i) /= -9999 )
1255
1256          WRITE (coor_chr,'(F7.2)')  sa_init(sa_vertical_gradient_level_ind(i))
1257          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
1258
1259          WRITE (coor_chr,'(F7.2)')  sa_vertical_gradient(i)
1260          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
1261
1262          WRITE (coor_chr,'(I7)')  sa_vertical_gradient_level_ind(i)
1263          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
1264
1265          WRITE (coor_chr,'(F7.1)')  sa_vertical_gradient_level(i)
1266          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
1267
1268          IF ( i == 10 )  THEN
1269             EXIT
1270          ELSE
1271             i = i + 1
1272          ENDIF
1273
1274       ENDDO
1275
1276       WRITE ( io, 425 )  TRIM( coordinates ), TRIM( temperatures ), &
1277                          TRIM( gradients ), TRIM( slices )
1278    ENDIF
1279
1280
1281!
1282!-- Listing of 1D-profiles
1283    WRITE ( io, 325 )  dt_dopr_listing
1284    IF ( averaging_interval_pr /= 0.0_wp )  THEN
1285       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
1286    ENDIF
1287
1288!
1289!-- DATA output
1290    WRITE ( io, 330 )
1291    IF ( averaging_interval_pr /= 0.0_wp )  THEN
1292       WRITE ( io, 326 )  averaging_interval_pr, dt_averaging_input_pr
1293    ENDIF
1294
1295!
1296!-- 1D-profiles
1297    dopr_chr = 'Profile:'
1298    IF ( dopr_n /= 0 )  THEN
1299       WRITE ( io, 331 )
1300
1301       output_format = ''
1302       output_format = output_format_netcdf
1303       WRITE ( io, 344 )  output_format
1304
1305       DO  i = 1, dopr_n
1306          dopr_chr = TRIM( dopr_chr ) // ' ' // TRIM( data_output_pr(i) ) // ','
1307          IF ( LEN_TRIM( dopr_chr ) >= 60 )  THEN
1308             WRITE ( io, 332 )  dopr_chr
1309             dopr_chr = '       :'
1310          ENDIF
1311       ENDDO
1312
1313       IF ( dopr_chr /= '' )  THEN
1314          WRITE ( io, 332 )  dopr_chr
1315       ENDIF
1316       WRITE ( io, 333 )  dt_dopr, averaging_interval_pr, dt_averaging_input_pr
1317       IF ( skip_time_dopr /= 0.0_wp )  WRITE ( io, 339 )  skip_time_dopr
1318    ENDIF
1319
1320!
1321!-- 2D-arrays
1322    DO  av = 0, 1
1323
1324       i = 1
1325       do2d_xy = ''
1326       do2d_xz = ''
1327       do2d_yz = ''
1328       DO  WHILE ( do2d(av,i) /= ' ' )
1329
1330          l = MAX( 2, LEN_TRIM( do2d(av,i) ) )
1331          do2d_mode = do2d(av,i)(l-1:l)
1332
1333          SELECT CASE ( do2d_mode )
1334             CASE ( 'xy' )
1335                ll = LEN_TRIM( do2d_xy )
1336                do2d_xy = do2d_xy(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
1337             CASE ( 'xz' )
1338                ll = LEN_TRIM( do2d_xz )
1339                do2d_xz = do2d_xz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
1340             CASE ( 'yz' )
1341                ll = LEN_TRIM( do2d_yz )
1342                do2d_yz = do2d_yz(1:ll) // ' ' // do2d(av,i)(1:l-3) // ','
1343          END SELECT
1344
1345          i = i + 1
1346
1347       ENDDO
1348
1349       IF ( ( ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  .OR.    &
1350              ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  .OR.    &
1351              ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 ) ) )  THEN
1352
1353          IF (  av == 0 )  THEN
1354             WRITE ( io, 334 )  ''
1355          ELSE
1356             WRITE ( io, 334 )  '(time-averaged)'
1357          ENDIF
1358
1359          IF ( do2d_at_begin )  THEN
1360             begin_chr = 'and at the start'
1361          ELSE
1362             begin_chr = ''
1363          ENDIF
1364
1365          output_format = ''
1366          output_format = output_format_netcdf
1367          WRITE ( io, 344 )  output_format
1368
1369          IF ( do2d_xy /= ''  .AND.  section(1,1) /= -9999 )  THEN
1370             i = 1
1371             slices = '/'
1372             coordinates = '/'
1373!
1374!--          Building strings with index and coordinate information of the
1375!--          slices
1376             DO  WHILE ( section(i,1) /= -9999 )
1377
1378                WRITE (section_chr,'(I5)')  section(i,1)
1379                section_chr = ADJUSTL( section_chr )
1380                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
1381
1382                IF ( section(i,1) == -1 )  THEN
1383                   WRITE (coor_chr,'(F10.1)')  -1.0_wp
1384                ELSE
1385                   WRITE (coor_chr,'(F10.1)')  zu(section(i,1))
1386                ENDIF
1387                coor_chr = ADJUSTL( coor_chr )
1388                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
1389
1390                i = i + 1
1391             ENDDO
1392             IF ( av == 0 )  THEN
1393                WRITE ( io, 335 )  'XY', do2d_xy, dt_do2d_xy, &
1394                                   TRIM( begin_chr ), 'k', TRIM( slices ), &
1395                                   TRIM( coordinates )
1396                IF ( skip_time_do2d_xy /= 0.0_wp )  THEN
1397                   WRITE ( io, 339 )  skip_time_do2d_xy
1398                ENDIF
1399             ELSE
1400                WRITE ( io, 342 )  'XY', do2d_xy, dt_data_output_av, &
1401                                   TRIM( begin_chr ), averaging_interval, &
1402                                   dt_averaging_input, 'k', TRIM( slices ), &
1403                                   TRIM( coordinates )
1404                IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1405                   WRITE ( io, 339 )  skip_time_data_output_av
1406                ENDIF
1407             ENDIF
1408             IF ( netcdf_data_format > 4 )  THEN
1409                WRITE ( io, 352 )  ntdim_2d_xy(av)
1410             ELSE
1411                WRITE ( io, 353 )
1412             ENDIF
1413          ENDIF
1414
1415          IF ( do2d_xz /= ''  .AND.  section(1,2) /= -9999 )  THEN
1416             i = 1
1417             slices = '/'
1418             coordinates = '/'
1419!
1420!--          Building strings with index and coordinate information of the
1421!--          slices
1422             DO  WHILE ( section(i,2) /= -9999 )
1423
1424                WRITE (section_chr,'(I5)')  section(i,2)
1425                section_chr = ADJUSTL( section_chr )
1426                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
1427
1428                WRITE (coor_chr,'(F10.1)')  section(i,2) * dy
1429                coor_chr = ADJUSTL( coor_chr )
1430                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
1431
1432                i = i + 1
1433             ENDDO
1434             IF ( av == 0 )  THEN
1435                WRITE ( io, 335 )  'XZ', do2d_xz, dt_do2d_xz, &
1436                                   TRIM( begin_chr ), 'j', TRIM( slices ), &
1437                                   TRIM( coordinates )
1438                IF ( skip_time_do2d_xz /= 0.0_wp )  THEN
1439                   WRITE ( io, 339 )  skip_time_do2d_xz
1440                ENDIF
1441             ELSE
1442                WRITE ( io, 342 )  'XZ', do2d_xz, dt_data_output_av, &
1443                                   TRIM( begin_chr ), averaging_interval, &
1444                                   dt_averaging_input, 'j', TRIM( slices ), &
1445                                   TRIM( coordinates )
1446                IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1447                   WRITE ( io, 339 )  skip_time_data_output_av
1448                ENDIF
1449             ENDIF
1450             IF ( netcdf_data_format > 4 )  THEN
1451                WRITE ( io, 352 )  ntdim_2d_xz(av)
1452             ELSE
1453                WRITE ( io, 353 )
1454             ENDIF
1455          ENDIF
1456
1457          IF ( do2d_yz /= ''  .AND.  section(1,3) /= -9999 )  THEN
1458             i = 1
1459             slices = '/'
1460             coordinates = '/'
1461!
1462!--          Building strings with index and coordinate information of the
1463!--          slices
1464             DO  WHILE ( section(i,3) /= -9999 )
1465
1466                WRITE (section_chr,'(I5)')  section(i,3)
1467                section_chr = ADJUSTL( section_chr )
1468                slices = TRIM( slices ) // TRIM( section_chr ) // '/'
1469
1470                WRITE (coor_chr,'(F10.1)')  section(i,3) * dx
1471                coor_chr = ADJUSTL( coor_chr )
1472                coordinates = TRIM( coordinates ) // TRIM( coor_chr ) // '/'
1473
1474                i = i + 1
1475             ENDDO
1476             IF ( av == 0 )  THEN
1477                WRITE ( io, 335 )  'YZ', do2d_yz, dt_do2d_yz, &
1478                                   TRIM( begin_chr ), 'i', TRIM( slices ), &
1479                                   TRIM( coordinates )
1480                IF ( skip_time_do2d_yz /= 0.0_wp )  THEN
1481                   WRITE ( io, 339 )  skip_time_do2d_yz
1482                ENDIF
1483             ELSE
1484                WRITE ( io, 342 )  'YZ', do2d_yz, dt_data_output_av, &
1485                                   TRIM( begin_chr ), averaging_interval, &
1486                                   dt_averaging_input, 'i', TRIM( slices ), &
1487                                   TRIM( coordinates )
1488                IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1489                   WRITE ( io, 339 )  skip_time_data_output_av
1490                ENDIF
1491             ENDIF
1492             IF ( netcdf_data_format > 4 )  THEN
1493                WRITE ( io, 352 )  ntdim_2d_yz(av)
1494             ELSE
1495                WRITE ( io, 353 )
1496             ENDIF
1497          ENDIF
1498
1499       ENDIF
1500
1501    ENDDO
1502
1503!
1504!-- 3d-arrays
1505    DO  av = 0, 1
1506
1507       i = 1
1508       do3d_chr = ''
1509       DO  WHILE ( do3d(av,i) /= ' ' )
1510
1511          do3d_chr = TRIM( do3d_chr ) // ' ' // TRIM( do3d(av,i) ) // ','
1512          i = i + 1
1513
1514       ENDDO
1515
1516       IF ( do3d_chr /= '' )  THEN
1517          IF ( av == 0 )  THEN
1518             WRITE ( io, 336 )  ''
1519          ELSE
1520             WRITE ( io, 336 )  '(time-averaged)'
1521          ENDIF
1522
1523          output_format = output_format_netcdf
1524          WRITE ( io, 344 )  output_format
1525
1526          IF ( do3d_at_begin )  THEN
1527             begin_chr = 'and at the start'
1528          ELSE
1529             begin_chr = ''
1530          ENDIF
1531          IF ( av == 0 )  THEN
1532             WRITE ( io, 337 )  do3d_chr, dt_do3d, TRIM( begin_chr ), &
1533                                zu(nz_do3d), nz_do3d
1534          ELSE
1535             WRITE ( io, 343 )  do3d_chr, dt_data_output_av,           &
1536                                TRIM( begin_chr ), averaging_interval, &
1537                                dt_averaging_input, zu(nz_do3d), nz_do3d
1538          ENDIF
1539
1540          IF ( netcdf_data_format > 4 )  THEN
1541             WRITE ( io, 352 )  ntdim_3d(av)
1542          ELSE
1543             WRITE ( io, 353 )
1544          ENDIF
1545
1546          IF ( av == 0 )  THEN
1547             IF ( skip_time_do3d /= 0.0_wp )  THEN
1548                WRITE ( io, 339 )  skip_time_do3d
1549             ENDIF
1550          ELSE
1551             IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1552                WRITE ( io, 339 )  skip_time_data_output_av
1553             ENDIF
1554          ENDIF
1555
1556       ENDIF
1557
1558    ENDDO
1559
1560!
1561!-- masked arrays
1562    IF ( masks > 0 )  WRITE ( io, 345 )  &
1563         mask_scale_x, mask_scale_y, mask_scale_z
1564    DO  mid = 1, masks
1565       DO  av = 0, 1
1566
1567          i = 1
1568          domask_chr = ''
1569          DO  WHILE ( domask(mid,av,i) /= ' ' )
1570             domask_chr = TRIM( domask_chr ) // ' ' //  &
1571                          TRIM( domask(mid,av,i) ) // ','
1572             i = i + 1
1573          ENDDO
1574
1575          IF ( domask_chr /= '' )  THEN
1576             IF ( av == 0 )  THEN
1577                WRITE ( io, 346 )  '', mid
1578             ELSE
1579                WRITE ( io, 346 )  ' (time-averaged)', mid
1580             ENDIF
1581
1582             output_format = output_format_netcdf
1583!--          Parallel output not implemented for mask data, hence
1584!--          output_format must be adjusted.
1585             IF ( netcdf_data_format == 5 ) output_format = 'netCDF4/HDF5'
1586             IF ( netcdf_data_format == 6 ) output_format = 'netCDF4/HDF5 classic'
1587             WRITE ( io, 344 )  output_format
1588
1589             IF ( av == 0 )  THEN
1590                WRITE ( io, 347 )  domask_chr, dt_domask(mid)
1591             ELSE
1592                WRITE ( io, 348 )  domask_chr, dt_data_output_av, &
1593                                   averaging_interval, dt_averaging_input
1594             ENDIF
1595
1596             IF ( av == 0 )  THEN
1597                IF ( skip_time_domask(mid) /= 0.0_wp )  THEN
1598                   WRITE ( io, 339 )  skip_time_domask(mid)
1599                ENDIF
1600             ELSE
1601                IF ( skip_time_data_output_av /= 0.0_wp )  THEN
1602                   WRITE ( io, 339 )  skip_time_data_output_av
1603                ENDIF
1604             ENDIF
1605!
1606!--          output locations
1607             DO  dim = 1, 3
1608                IF ( mask(mid,dim,1) >= 0.0_wp )  THEN
1609                   count = 0
1610                   DO  WHILE ( mask(mid,dim,count+1) >= 0.0_wp )
1611                      count = count + 1
1612                   ENDDO
1613                   WRITE ( io, 349 )  dir(dim), dir(dim), mid, dir(dim), &
1614                                      mask(mid,dim,:count)
1615                ELSEIF ( mask_loop(mid,dim,1) < 0.0_wp .AND.  &
1616                         mask_loop(mid,dim,2) < 0.0_wp .AND.  &
1617                         mask_loop(mid,dim,3) == 0.0_wp )  THEN
1618                   WRITE ( io, 350 )  dir(dim), dir(dim)
1619                ELSEIF ( mask_loop(mid,dim,3) == 0.0_wp )  THEN
1620                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1621                                      mask_loop(mid,dim,1:2)
1622                ELSE
1623                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
1624                                      mask_loop(mid,dim,1:3)
1625                ENDIF
1626             ENDDO
1627          ENDIF
1628
1629       ENDDO
1630    ENDDO
1631
1632!
1633!-- Timeseries
1634    IF ( dt_dots /= 9999999.9_wp )  THEN
1635       WRITE ( io, 340 )
1636
1637       output_format = output_format_netcdf
1638       WRITE ( io, 344 )  output_format
1639       WRITE ( io, 341 )  dt_dots
1640    ENDIF
1641
1642#if defined( __dvrp_graphics )
1643!
1644!-- Dvrp-output
1645    IF ( dt_dvrp /= 9999999.9_wp )  THEN
1646       WRITE ( io, 360 )  dt_dvrp, TRIM( dvrp_output ), TRIM( dvrp_host ), &
1647                          TRIM( dvrp_username ), TRIM( dvrp_directory )
1648       i = 1
1649       l = 0
1650       m = 0
1651       DO WHILE ( mode_dvrp(i) /= ' ' )
1652          IF ( mode_dvrp(i)(1:10) == 'isosurface' )  THEN
1653             READ ( mode_dvrp(i), '(10X,I2)' )  j
1654             l = l + 1
1655             IF ( do3d(0,j) /= ' ' )  THEN
1656                WRITE ( io, 361 )  TRIM( do3d(0,j) ), threshold(l), &
1657                                   isosurface_color(:,l)
1658             ENDIF
1659          ELSEIF ( mode_dvrp(i)(1:6) == 'slicer' )  THEN
1660             READ ( mode_dvrp(i), '(6X,I2)' )  j
1661             m = m + 1
1662             IF ( do2d(0,j) /= ' ' )  THEN
1663                WRITE ( io, 362 )  TRIM( do2d(0,j) ), &
1664                                   slicer_range_limits_dvrp(:,m)
1665             ENDIF
1666          ELSEIF ( mode_dvrp(i)(1:9) == 'particles' )  THEN
1667             WRITE ( io, 363 )  dvrp_psize
1668             IF ( particle_dvrpsize /= 'none' )  THEN
1669                WRITE ( io, 364 )  'size', TRIM( particle_dvrpsize ), &
1670                                   dvrpsize_interval
1671             ENDIF
1672             IF ( particle_color /= 'none' )  THEN
1673                WRITE ( io, 364 )  'color', TRIM( particle_color ), &
1674                                   color_interval
1675             ENDIF
1676          ENDIF
1677          i = i + 1
1678       ENDDO
1679
1680       WRITE ( io, 365 )  groundplate_color, superelevation_x, &
1681                          superelevation_y, superelevation, clip_dvrp_l, &
1682                          clip_dvrp_r, clip_dvrp_s, clip_dvrp_n
1683
1684       IF ( TRIM( topography ) /= 'flat' )  THEN
1685          WRITE ( io, 366 )  topography_color
1686          IF ( cluster_size > 1 )  THEN
1687             WRITE ( io, 367 )  cluster_size
1688          ENDIF
1689       ENDIF
1690
1691    ENDIF
1692#endif
1693
1694#if defined( __spectra )
1695!
1696!-- Spectra output
1697    IF ( dt_dosp /= 9999999.9_wp )  THEN
1698       WRITE ( io, 370 )
1699
1700       output_format = output_format_netcdf
1701       WRITE ( io, 344 )  output_format
1702       WRITE ( io, 371 )  dt_dosp
1703       IF ( skip_time_dosp /= 0.0_wp )  WRITE ( io, 339 )  skip_time_dosp
1704       WRITE ( io, 372 )  ( data_output_sp(i), i = 1,10 ),     &
1705                          ( spectra_direction(i), i = 1,10 ),  &
1706                          ( comp_spectra_level(i), i = 1,100 ), &
1707                          ( plot_spectra_level(i), i = 1,100 ), &
1708                          averaging_interval_sp, dt_averaging_input_pr
1709    ENDIF
1710#endif
1711
1712    WRITE ( io, 99 )
1713
1714!
1715!-- Physical quantities
1716    WRITE ( io, 400 )
1717
1718!
1719!-- Geostrophic parameters
1720    IF ( radiation .AND. radiation_scheme /= 'constant' )  THEN
1721       WRITE ( io, 417 )  lambda
1722    ENDIF
1723    WRITE ( io, 410 )  phi, omega, f, fs
1724
1725!
1726!-- Other quantities
1727    WRITE ( io, 411 )  g
1728    IF ( radiation .AND. radiation_scheme /= 'constant' )  THEN
1729       WRITE ( io, 418 )  day_init, time_utc_init
1730    ENDIF
1731
1732    WRITE ( io, 412 )  TRIM( reference_state )
1733    IF ( use_single_reference_value )  THEN
1734       IF ( ocean )  THEN
1735          WRITE ( io, 413 )  prho_reference
1736       ELSE
1737          WRITE ( io, 414 )  pt_reference
1738       ENDIF
1739    ENDIF
1740
1741!
1742!-- Cloud physics parameters
1743    IF ( cloud_physics )  THEN
1744       WRITE ( io, 415 )
1745       WRITE ( io, 416 ) surface_pressure, r_d, rho_surface, cp, l_v
1746       IF ( icloud_scheme == 0 )  THEN
1747          WRITE ( io, 510 ) 1.0E-6_wp * nc_const
1748          IF ( precipitation )  WRITE ( io, 511 ) c_sedimentation
1749       ENDIF
1750    ENDIF
1751
1752!
1753!-- Cloud physcis parameters / quantities / numerical methods
1754    WRITE ( io, 430 )
1755    IF ( humidity .AND. .NOT. cloud_physics .AND. .NOT. cloud_droplets)  THEN
1756       WRITE ( io, 431 )
1757    ELSEIF ( humidity  .AND.  cloud_physics )  THEN
1758       WRITE ( io, 432 )
1759       IF ( cloud_top_radiation )  WRITE ( io, 132 )
1760       IF ( icloud_scheme == 1 )  THEN
1761          IF ( precipitation )  WRITE ( io, 133 )
1762       ELSEIF ( icloud_scheme == 0 )  THEN
1763          IF ( drizzle )  WRITE ( io, 506 )
1764          IF ( precipitation )  THEN
1765             WRITE ( io, 505 )
1766             IF ( turbulence )  WRITE ( io, 507 )
1767             IF ( ventilation_effect )  WRITE ( io, 508 )
1768             IF ( limiter_sedimentation )  WRITE ( io, 509 )
1769          ENDIF
1770       ENDIF
1771    ELSEIF ( humidity  .AND.  cloud_droplets )  THEN
1772       WRITE ( io, 433 )
1773       IF ( curvature_solution_effects )  WRITE ( io, 434 )
1774       IF ( collision_kernel /= 'none' )  THEN
1775          WRITE ( io, 435 )  TRIM( collision_kernel )
1776          IF ( collision_kernel(6:9) == 'fast' )  THEN
1777             WRITE ( io, 436 )  radius_classes, dissipation_classes
1778          ENDIF
1779       ELSE
1780          WRITE ( io, 437 )
1781       ENDIF
1782    ENDIF
1783
1784!
1785!-- LES / turbulence parameters
1786    WRITE ( io, 450 )
1787
1788!--
1789! ... LES-constants used must still be added here
1790!--
1791    IF ( constant_diffusion )  THEN
1792       WRITE ( io, 451 )  km_constant, km_constant/prandtl_number, &
1793                          prandtl_number
1794    ENDIF
1795    IF ( .NOT. constant_diffusion)  THEN
1796       IF ( e_init > 0.0_wp )  WRITE ( io, 455 )  e_init
1797       IF ( e_min > 0.0_wp )  WRITE ( io, 454 )  e_min
1798       IF ( wall_adjustment )  WRITE ( io, 453 )  wall_adjustment_factor
1799    ENDIF
1800
1801!
1802!-- Special actions during the run
1803    WRITE ( io, 470 )
1804    IF ( create_disturbances )  THEN
1805       WRITE ( io, 471 )  dt_disturb, disturbance_amplitude,                   &
1806                          zu(disturbance_level_ind_b), disturbance_level_ind_b,&
1807                          zu(disturbance_level_ind_t), disturbance_level_ind_t
1808       IF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
1809          WRITE ( io, 472 )  inflow_disturbance_begin, inflow_disturbance_end
1810       ELSE
1811          WRITE ( io, 473 )  disturbance_energy_limit
1812       ENDIF
1813       WRITE ( io, 474 )  TRIM( random_generator )
1814    ENDIF
1815    IF ( pt_surface_initial_change /= 0.0_wp )  THEN
1816       WRITE ( io, 475 )  pt_surface_initial_change
1817    ENDIF
1818    IF ( humidity  .AND.  q_surface_initial_change /= 0.0_wp )  THEN
1819       WRITE ( io, 476 )  q_surface_initial_change       
1820    ENDIF
1821    IF ( passive_scalar  .AND.  q_surface_initial_change /= 0.0_wp )  THEN
1822       WRITE ( io, 477 )  q_surface_initial_change       
1823    ENDIF
1824
1825    IF ( particle_advection )  THEN
1826!
1827!--    Particle attributes
1828       WRITE ( io, 480 )  particle_advection_start, dt_prel, bc_par_lr, &
1829                          bc_par_ns, bc_par_b, bc_par_t, particle_maximum_age, &
1830                          end_time_prel
1831       IF ( use_sgs_for_particles )  WRITE ( io, 488 )  dt_min_part
1832       IF ( random_start_position )  WRITE ( io, 481 )
1833       IF ( seed_follows_topography )  WRITE ( io, 496 )
1834       IF ( particles_per_point > 1 )  WRITE ( io, 489 )  particles_per_point
1835       WRITE ( io, 495 )  total_number_of_particles
1836       IF ( use_particle_tails  .AND.  maximum_number_of_tailpoints /= 0 )  THEN
1837          WRITE ( io, 483 )  maximum_number_of_tailpoints
1838          IF ( minimum_tailpoint_distance /= 0 )  THEN
1839             WRITE ( io, 484 )  total_number_of_tails,      &
1840                                minimum_tailpoint_distance, &
1841                                maximum_tailpoint_age
1842          ENDIF
1843       ENDIF
1844       IF ( dt_write_particle_data /= 9999999.9_wp )  THEN
1845          WRITE ( io, 485 )  dt_write_particle_data
1846          IF ( netcdf_data_format > 1 )  THEN
1847             output_format = 'netcdf (64 bit offset) and binary'
1848          ELSE
1849             output_format = 'netcdf and binary'
1850          ENDIF
1851          WRITE ( io, 344 )  output_format
1852       ENDIF
1853       IF ( dt_dopts /= 9999999.9_wp )  WRITE ( io, 494 )  dt_dopts
1854       IF ( write_particle_statistics )  WRITE ( io, 486 )
1855
1856       WRITE ( io, 487 )  number_of_particle_groups
1857
1858       DO  i = 1, number_of_particle_groups
1859          IF ( i == 1  .AND.  density_ratio(i) == 9999999.9_wp )  THEN
1860             WRITE ( io, 490 )  i, 0.0_wp
1861             WRITE ( io, 492 )
1862          ELSE
1863             WRITE ( io, 490 )  i, radius(i)
1864             IF ( density_ratio(i) /= 0.0_wp )  THEN
1865                WRITE ( io, 491 )  density_ratio(i)
1866             ELSE
1867                WRITE ( io, 492 )
1868             ENDIF
1869          ENDIF
1870          WRITE ( io, 493 )  psl(i), psr(i), pss(i), psn(i), psb(i), pst(i), &
1871                             pdx(i), pdy(i), pdz(i)
1872          IF ( .NOT. vertical_particle_advection(i) )  WRITE ( io, 482 )
1873       ENDDO
1874
1875    ENDIF
1876
1877
1878!
1879!-- Parameters of 1D-model
1880    IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
1881       WRITE ( io, 500 )  end_time_1d, dt_run_control_1d, dt_pr_1d, &
1882                          mixing_length_1d, dissipation_1d
1883       IF ( damp_level_ind_1d /= nzt+1 )  THEN
1884          WRITE ( io, 502 )  zu(damp_level_ind_1d), damp_level_ind_1d
1885       ENDIF
1886    ENDIF
1887
1888!
1889!-- User-defined information
1890    CALL user_header( io )
1891
1892    WRITE ( io, 99 )
1893
1894!
1895!-- Write buffer contents to disc immediately
1896    CALL local_flush( io )
1897
1898!
1899!-- Here the FORMATs start
1900
1901 99 FORMAT (1X,78('-'))
1902100 FORMAT (/1X,'******************************',4X,44('-')/        &
1903            1X,'* ',A,' *',4X,A/                               &
1904            1X,'******************************',4X,44('-'))
1905101 FORMAT (35X,'coupled run using MPI-',I1,': ',A/ &
1906            35X,42('-'))
1907102 FORMAT (/' Date:                 ',A8,4X,'Run:       ',A20/      &
1908            ' Time:                 ',A8,4X,'Run-No.:   ',I2.2/     &
1909            ' Run on host:        ',A10)
1910#if defined( __parallel )
1911103 FORMAT (' Number of PEs:',10X,I6,4X,'Processor grid (x,y): (',I4,',',I4, &
1912              ')',1X,A)
1913104 FORMAT (' Number of PEs:',10X,I6,4X,'Tasks:',I4,'   threads per task:',I4/ &
1914              35X,'Processor grid (x,y): (',I4,',',I4,')',1X,A)
1915105 FORMAT (35X,'One additional PE is used to handle'/37X,'the dvrp output!')
1916106 FORMAT (35X,'A 1d-decomposition along x is forced'/ &
1917            35X,'because the job is running on an SMP-cluster')
1918107 FORMAT (35X,'A 1d-decomposition along ',A,' is used')
1919108 FORMAT (35X,'Max. # of parallel I/O streams is ',I5)
1920109 FORMAT (35X,'Precursor run for coupled atmos-ocean run'/ &
1921            35X,42('-'))
1922114 FORMAT (35X,'Coupled atmosphere-ocean run following'/ &
1923            35X,'independent precursor runs'/             &
1924            35X,42('-'))
1925117 FORMAT (' Accelerator boards / node:  ',I2)
1926#endif
1927110 FORMAT (/' Numerical Schemes:'/ &
1928             ' -----------------'/)
1929111 FORMAT (' --> Solve perturbation pressure via FFT using ',A,' routines')
1930112 FORMAT (' --> Solve perturbation pressure via SOR-Red/Black-Schema'/ &
1931            '     Iterations (initial/other): ',I3,'/',I3,'  omega =',F6.3)
1932113 FORMAT (' --> Momentum advection via Piascek-Williams-Scheme (Form C3)', &
1933                  ' or Upstream')
1934115 FORMAT ('     FFT and transpositions are overlapping')
1935116 FORMAT (' --> Scalar advection via Piascek-Williams-Scheme (Form C3)', &
1936                  ' or Upstream')
1937118 FORMAT (' --> Scalar advection via Bott-Chlond-Scheme')
1938119 FORMAT (' --> Galilei-Transform applied to horizontal advection:'/ &
1939            '     translation velocity = ',A/ &
1940            '     distance advected ',A,':  ',F8.3,' km(x)  ',F8.3,' km(y)')
1941120 FORMAT (' Accelerator boards: ',8X,I2)
1942122 FORMAT (' --> Time differencing scheme: ',A)
1943123 FORMAT (' --> Rayleigh-Damping active, starts ',A,' z = ',F8.2,' m'/ &
1944            '     maximum damping coefficient:',F6.3, ' 1/s')
1945129 FORMAT (' --> Additional prognostic equation for the specific humidity')
1946130 FORMAT (' --> Additional prognostic equation for the total water content')
1947131 FORMAT (' --> No pt-equation solved. Neutral stratification with pt = ', &
1948                  F6.2, ' K assumed')
1949132 FORMAT ('     Parameterization of long-wave radiation processes via'/ &
1950            '     effective emissivity scheme')
1951133 FORMAT ('     Precipitation parameterization via Kessler-Scheme')
1952134 FORMAT (' --> Additional prognostic equation for a passive scalar')
1953135 FORMAT (' --> Solve perturbation pressure via ',A,' method (', &
1954                  A,'-cycle)'/ &
1955            '     number of grid levels:                   ',I2/ &
1956            '     Gauss-Seidel red/black iterations:       ',I2)
1957136 FORMAT ('     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1958                  I3,')')
1959137 FORMAT ('     level data gathered on PE0 at level:     ',I2/ &
1960            '     gridpoints of coarsest subdomain (x,y,z): (',I3,',',I3,',', &
1961                  I3,')'/ &
1962            '     gridpoints of coarsest domain (x,y,z):    (',I3,',',I3,',', &
1963                  I3,')')
1964139 FORMAT (' --> Loop optimization method: ',A)
1965140 FORMAT ('     maximum residual allowed:                ',E10.3)
1966141 FORMAT ('     fixed number of multigrid cycles:        ',I4)
1967142 FORMAT ('     perturbation pressure is calculated at every Runge-Kutta ', &
1968                  'step')
1969143 FORMAT ('     Euler/upstream scheme is used for the SGS turbulent ', &
1970                  'kinetic energy')
1971144 FORMAT ('     masking method is used')
1972150 FORMAT (' --> Volume flow at the right and north boundary will be ', &
1973                  'conserved'/ &
1974            '     using the ',A,' mode')
1975151 FORMAT ('     with u_bulk = ',F7.3,' m/s and v_bulk = ',F7.3,' m/s')
1976152 FORMAT (' --> External pressure gradient directly prescribed by the user:',&
1977           /'     ',2(1X,E12.5),'Pa/m in x/y direction', &
1978           /'     starting from dp_level_b =', F8.3, 'm', A /)
1979160 FORMAT (//' Large scale forcing and nudging:'/ &
1980              ' -------------------------------'/)
1981161 FORMAT (' --> No large scale forcing from external is used (default) ')
1982162 FORMAT (' --> Large scale forcing from external file LSF_DATA is used: ')
1983163 FORMAT ('     - large scale advection tendencies ')
1984164 FORMAT ('     - large scale subsidence velocity w_subs ')
1985165 FORMAT ('     - large scale subsidence tendencies ')
1986167 FORMAT ('     - and geostrophic wind components ug and vg')
1987168 FORMAT (' --> Large-scale vertical motion is used in the ', &
1988                  'prognostic equation(s) for')
1989169 FORMAT ('     the scalar(s) only')
1990170 FORMAT (' --> Nudging is used')
1991171 FORMAT (' --> No nudging is used (default) ')
1992180 FORMAT ('     - prescribed surface values for temperature')
1993181 FORMAT ('     - prescribed surface fluxes for temperature')
1994182 FORMAT ('     - prescribed surface values for humidity')
1995183 FORMAT ('     - prescribed surface fluxes for humidity')
1996200 FORMAT (//' Run time and time step information:'/ &
1997             ' ----------------------------------'/)
1998201 FORMAT ( ' Timestep:             variable     maximum value: ',F6.3,' s', &
1999             '    CFL-factor:',F5.2)
2000202 FORMAT ( ' Timestep:          dt = ',F6.3,' s'/)
2001203 FORMAT ( ' Start time:          ',F9.3,' s'/ &
2002             ' End time:            ',F9.3,' s')
2003204 FORMAT ( A,F9.3,' s')
2004205 FORMAT ( A,F9.3,' s',5X,'restart every',17X,F9.3,' s')
2005206 FORMAT (/' Time reached:        ',F9.3,' s'/ &
2006             ' CPU-time used:       ',F9.3,' s     per timestep:               ', &
2007               '  ',F9.3,' s'/                                                    &
2008             '                                      per second of simulated tim', &
2009               'e: ',F9.3,' s')
2010207 FORMAT ( ' Coupling start time: ',F9.3,' s')
2011250 FORMAT (//' Computational grid and domain size:'/ &
2012              ' ----------------------------------'// &
2013              ' Grid length:      dx =    ',F7.3,' m    dy =    ',F7.3, &
2014              ' m    dz =    ',F7.3,' m'/ &
2015              ' Domain size:       x = ',F10.3,' m     y = ',F10.3, &
2016              ' m  z(u) = ',F10.3,' m'/)
2017252 FORMAT (' dz constant up to ',F10.3,' m (k=',I4,'), then stretched by', &
2018              ' factor:',F6.3/ &
2019            ' maximum dz not to be exceeded is dz_max = ',F10.3,' m'/)
2020254 FORMAT (' Number of gridpoints (x,y,z):  (0:',I4,', 0:',I4,', 0:',I4,')'/ &
2021            ' Subdomain size (x,y,z):        (  ',I4,',   ',I4,',   ',I4,')'/)
2022260 FORMAT (/' The model has a slope in x-direction. Inclination angle: ',F6.2,&
2023             ' degrees')
2024270 FORMAT (//' Topography information:'/ &
2025              ' ----------------------'// &
2026              1X,'Topography: ',A)
2027271 FORMAT (  ' Building size (x/y/z) in m: ',F5.1,' / ',F5.1,' / ',F5.1/ &
2028              ' Horizontal index bounds (l/r/s/n): ',I4,' / ',I4,' / ',I4, &
2029                ' / ',I4)
2030272 FORMAT (  ' Single quasi-2D street canyon of infinite length in ',A, &
2031              ' direction' / &
2032              ' Canyon height: ', F6.2, 'm, ch = ', I4, '.'      / &
2033              ' Canyon position (',A,'-walls): cxl = ', I4,', cxr = ', I4, '.')
2034278 FORMAT (' Topography grid definition convention:'/ &
2035            ' cell edge (staggered grid points'/  &
2036            ' (u in x-direction, v in y-direction))' /)
2037279 FORMAT (' Topography grid definition convention:'/ &
2038            ' cell center (scalar grid points)' /)
2039280 FORMAT (//' Vegetation canopy (drag) model:'/ &
2040              ' ------------------------------'// &
2041              ' Canopy mode: ', A / &
2042              ' Canopy height: ',F6.2,'m (',I4,' grid points)' / &
2043              ' Leaf drag coefficient: ',F6.2 /)
2044281 FORMAT (/ ' Scalar exchange coefficient: ',F6.2 / &
2045              ' Scalar concentration at leaf surfaces in kg/m**3: ',F6.2 /)
2046282 FORMAT (' Predefined constant heatflux at the top of the vegetation: ',F6.2,' K m/s')
2047283 FORMAT (/ ' Characteristic levels of the leaf area density:'// &
2048              ' Height:              ',A,'  m'/ &
2049              ' Leaf area density:   ',A,'  m**2/m**3'/ &
2050              ' Gradient:            ',A,'  m**2/m**4'/ &
2051              ' Gridpoint:           ',A)
2052284 FORMAT (//' Characteristic levels of the leaf area density and coefficients:'// &
2053              ' Height:              ',A,'  m'/ &
2054              ' Leaf area density:   ',A,'  m**2/m**3'/ &
2055              ' Coefficient alpha: ',F6.2 / &
2056              ' Coefficient beta: ',F6.2 / &
2057              ' Leaf area index: ',F6.2,'  m**2/m**2' /)
2058               
2059300 FORMAT (//' Boundary conditions:'/ &
2060             ' -------------------'// &
2061             '                     p                    uv             ', &
2062             '                     pt'// &
2063             ' B. bound.: ',A/ &
2064             ' T. bound.: ',A)
2065301 FORMAT (/'                     ',A// &
2066             ' B. bound.: ',A/ &
2067             ' T. bound.: ',A)
2068303 FORMAT (/' Bottom surface fluxes are used in diffusion terms at k=1')
2069304 FORMAT (/' Top surface fluxes are used in diffusion terms at k=nzt')
2070305 FORMAT (//'    Prandtl-Layer between bottom surface and first ', &
2071               'computational u,v-level:'// &
2072             '       zp = ',F6.2,' m   z0 =',F7.4,' m   z0h =',F8.5,&
2073             ' m   kappa =',F5.2/ &
2074             '       Rif value range:   ',F8.2,' <= rif <=',F6.2)
2075306 FORMAT ('       Predefined constant heatflux:   ',F9.6,' K m/s')
2076307 FORMAT ('       Heatflux has a random normal distribution')
2077308 FORMAT ('       Predefined surface temperature')
2078309 FORMAT ('       Predefined constant salinityflux:   ',F9.6,' psu m/s')
2079310 FORMAT (//'    1D-Model:'// &
2080             '       Rif value range:   ',F6.2,' <= rif <=',F6.2)
2081311 FORMAT ('       Predefined constant humidity flux: ',E10.3,' m/s')
2082312 FORMAT ('       Predefined surface humidity')
2083313 FORMAT ('       Predefined constant scalar flux: ',E10.3,' kg/(m**2 s)')
2084314 FORMAT ('       Predefined scalar value at the surface')
2085315 FORMAT ('       Humidity / scalar flux at top surface is 0.0')
2086316 FORMAT ('       Sensible heatflux and momentum flux from coupled ', &
2087                    'atmosphere model')
2088317 FORMAT (//' Lateral boundaries:'/ &
2089            '       left/right:  ',A/    &
2090            '       north/south: ',A)
2091318 FORMAT (/'       use_cmax: ',L1 / &
2092            '       pt damping layer width = ',F8.2,' m, pt ', &
2093                    'damping factor =',F7.4)
2094319 FORMAT ('       turbulence recycling at inflow switched on'/ &
2095            '       width of recycling domain: ',F7.1,' m   grid index: ',I4/ &
2096            '       inflow damping height: ',F6.1,' m   width: ',F6.1,' m')
2097320 FORMAT ('       Predefined constant momentumflux:  u: ',F9.6,' m**2/s**2'/ &
2098            '                                          v: ',F9.6,' m**2/s**2')
2099321 FORMAT (//' Initial profiles:'/ &
2100              ' ----------------')
2101322 FORMAT ('       turbulence recycling at inflow switched on'/ &
2102            '       y shift of the recycled inflow turbulence switched on'/ &
2103            '       width of recycling domain: ',F7.1,' m   grid index: ',I4/ &
2104            '       inflow damping height: ',F6.1,' m   width: ',F6.1,' m'/)
2105325 FORMAT (//' List output:'/ &
2106             ' -----------'//  &
2107            '    1D-Profiles:'/    &
2108            '       Output every             ',F8.2,' s')
2109326 FORMAT ('       Time averaged over       ',F8.2,' s'/ &
2110            '       Averaging input every    ',F8.2,' s')
2111330 FORMAT (//' Data output:'/ &
2112             ' -----------'/)
2113331 FORMAT (/'    1D-Profiles:')
2114332 FORMAT (/'       ',A)
2115333 FORMAT ('       Output every             ',F8.2,' s',/ &
2116            '       Time averaged over       ',F8.2,' s'/ &
2117            '       Averaging input every    ',F8.2,' s')
2118334 FORMAT (/'    2D-Arrays',A,':')
2119335 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
2120            '       Output every             ',F8.2,' s  ',A/ &
2121            '       Cross sections at ',A1,' = ',A/ &
2122            '       scalar-coordinates:   ',A,' m'/)
2123336 FORMAT (/'    3D-Arrays',A,':')
2124337 FORMAT (/'       Arrays: ',A/ &
2125            '       Output every             ',F8.2,' s  ',A/ &
2126            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
2127339 FORMAT ('       No output during initial ',F8.2,' s')
2128340 FORMAT (/'    Time series:')
2129341 FORMAT ('       Output every             ',F8.2,' s'/)
2130342 FORMAT (/'       ',A2,'-cross-section  Arrays: ',A/ &
2131            '       Output every             ',F8.2,' s  ',A/ &
2132            '       Time averaged over       ',F8.2,' s'/ &
2133            '       Averaging input every    ',F8.2,' s'/ &
2134            '       Cross sections at ',A1,' = ',A/ &
2135            '       scalar-coordinates:   ',A,' m'/)
2136343 FORMAT (/'       Arrays: ',A/ &
2137            '       Output every             ',F8.2,' s  ',A/ &
2138            '       Time averaged over       ',F8.2,' s'/ &
2139            '       Averaging input every    ',F8.2,' s'/ &
2140            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
2141344 FORMAT ('       Output format: ',A/)
2142345 FORMAT (/'    Scaling lengths for output locations of all subsequent mask IDs:',/ &
2143            '       mask_scale_x (in x-direction): ',F9.3, ' m',/ &
2144            '       mask_scale_y (in y-direction): ',F9.3, ' m',/ &
2145            '       mask_scale_z (in z-direction): ',F9.3, ' m' )
2146346 FORMAT (/'    Masked data output',A,' for mask ID ',I2, ':')
2147347 FORMAT ('       Variables: ',A/ &
2148            '       Output every             ',F8.2,' s')
2149348 FORMAT ('       Variables: ',A/ &
2150            '       Output every             ',F8.2,' s'/ &
2151            '       Time averaged over       ',F8.2,' s'/ &
2152            '       Averaging input every    ',F8.2,' s')
2153349 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
2154            'mask_scale_',A,' predefined by array mask_',I2.2,'_',A,':'/ &
2155            13('       ',8(F8.2,',')/) )
2156350 FORMAT (/'       Output locations in ',A,'-direction: ', &
2157            'all gridpoints along ',A,'-direction (default).' )
2158351 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
2159            'mask_scale_',A,' constructed from array mask_',I2.2,'_',A,'_loop:'/ &
2160            '          loop begin:',F8.2,', end:',F8.2,', stride:',F8.2 )
2161352 FORMAT  (/'       Number of output time levels allowed: ',I3 /)
2162353 FORMAT  (/'       Number of output time levels allowed: unlimited' /)
2163#if defined( __dvrp_graphics )
2164360 FORMAT ('    Plot-Sequence with dvrp-software:'/ &
2165            '       Output every      ',F7.1,' s'/ &
2166            '       Output mode:      ',A/ &
2167            '       Host / User:      ',A,' / ',A/ &
2168            '       Directory:        ',A// &
2169            '       The sequence contains:')
2170361 FORMAT (/'       Isosurface of "',A,'"    Threshold value: ', E12.3/ &
2171            '          Isosurface color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
2172362 FORMAT (/'       Slicer plane ',A/ &
2173            '       Slicer limits: [',F6.2,',',F6.2,']')
2174363 FORMAT (/'       Particles'/ &
2175            '          particle size:  ',F7.2,' m')
2176364 FORMAT ('          particle ',A,' controlled by "',A,'" with interval [', &
2177                       F6.2,',',F6.2,']')
2178365 FORMAT (/'       Groundplate color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)'/ &
2179            '       Superelevation along (x,y,z): (',F4.1,',',F4.1,',',F4.1, &
2180                     ')'/ &
2181            '       Clipping limits: from x = ',F9.1,' m to x = ',F9.1,' m'/ &
2182            '                        from y = ',F9.1,' m to y = ',F9.1,' m')
2183366 FORMAT (/'       Topography color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
2184367 FORMAT ('       Polygon reduction for topography: cluster_size = ', I1)
2185#endif
2186#if defined( __spectra )
2187370 FORMAT ('    Spectra:')
2188371 FORMAT ('       Output every ',F7.1,' s'/)
2189372 FORMAT ('       Arrays:     ', 10(A5,',')/                         &
2190            '       Directions: ', 10(A5,',')/                         &
2191            '       height levels  k = ', 20(I3,',')/                  &
2192            '                          ', 20(I3,',')/                  &
2193            '                          ', 20(I3,',')/                  &
2194            '                          ', 20(I3,',')/                  &
2195            '                          ', 19(I3,','),I3,'.'/           &
2196            '       height levels selected for standard plot:'/        &
2197            '                      k = ', 20(I3,',')/                  &
2198            '                          ', 20(I3,',')/                  &
2199            '                          ', 20(I3,',')/                  &
2200            '                          ', 20(I3,',')/                  &
2201            '                          ', 19(I3,','),I3,'.'/           &
2202            '       Time averaged over ', F7.1, ' s,' /                &
2203            '       Profiles for the time averaging are taken every ', &
2204                    F6.1,' s')
2205#endif
2206400 FORMAT (//' Physical quantities:'/ &
2207              ' -------------------'/)
2208410 FORMAT ('    Geograph. latitude  :   phi    = ',F4.1,' degr'/   &
2209            '    Angular velocity    :   omega  =',E10.3,' rad/s'/  &
2210            '    Coriolis parameter  :   f      = ',F9.6,' 1/s'/    &
2211            '                            f*     = ',F9.6,' 1/s')
2212411 FORMAT (/'    Gravity             :   g      = ',F4.1,' m/s**2')
2213412 FORMAT (/'    Reference state used in buoyancy terms: ',A)
2214413 FORMAT ('       Reference density in buoyancy terms: ',F8.3,' kg/m**3')
2215414 FORMAT ('       Reference temperature in buoyancy terms: ',F8.4,' K')
2216415 FORMAT (/' Cloud physics parameters:'/ &
2217             ' ------------------------'/)
2218416 FORMAT ('    Surface pressure   :   p_0   = ',F7.2,' hPa'/      &
2219            '    Gas constant       :   R     = ',F5.1,' J/(kg K)'/ &
2220            '    Density of air     :   rho_0 =',F6.3,' kg/m**3'/  &
2221            '    Specific heat cap. :   c_p   = ',F6.1,' J/(kg K)'/ &
2222            '    Vapourization heat :   L_v   =',E9.2,' J/kg')
2223417 FORMAT ('    Geograph. longitude :   lambda = ',F4.1,' degr')
2224418 FORMAT (/'    Day of the year at model start :   day_init      =     ',I3 &
2225            /'    UTC time at model start        :   time_utc_init = ',F7.1' s')
2226419 FORMAT (//' Land surface model information:'/ &
2227              ' ------------------------------'/)
2228420 FORMAT (/'    Characteristic levels of the initial temperature profile:'// &
2229            '       Height:        ',A,'  m'/ &
2230            '       Temperature:   ',A,'  K'/ &
2231            '       Gradient:      ',A,'  K/100m'/ &
2232            '       Gridpoint:     ',A)
2233421 FORMAT (/'    Characteristic levels of the initial humidity profile:'// &
2234            '       Height:      ',A,'  m'/ &
2235            '       Humidity:    ',A,'  kg/kg'/ &
2236            '       Gradient:    ',A,'  (kg/kg)/100m'/ &
2237            '       Gridpoint:   ',A)
2238422 FORMAT (/'    Characteristic levels of the initial scalar profile:'// &
2239            '       Height:                  ',A,'  m'/ &
2240            '       Scalar concentration:    ',A,'  kg/m**3'/ &
2241            '       Gradient:                ',A,'  (kg/m**3)/100m'/ &
2242            '       Gridpoint:               ',A)
2243423 FORMAT (/'    Characteristic levels of the geo. wind component ug:'// &
2244            '       Height:      ',A,'  m'/ &
2245            '       ug:          ',A,'  m/s'/ &
2246            '       Gradient:    ',A,'  1/100s'/ &
2247            '       Gridpoint:   ',A)
2248424 FORMAT (/'    Characteristic levels of the geo. wind component vg:'// &
2249            '       Height:      ',A,'  m'/ &
2250            '       vg:          ',A,'  m/s'/ &
2251            '       Gradient:    ',A,'  1/100s'/ &
2252            '       Gridpoint:   ',A)
2253425 FORMAT (/'    Characteristic levels of the initial salinity profile:'// &
2254            '       Height:     ',A,'  m'/ &
2255            '       Salinity:   ',A,'  psu'/ &
2256            '       Gradient:   ',A,'  psu/100m'/ &
2257            '       Gridpoint:  ',A)
2258426 FORMAT (/'    Characteristic levels of the subsidence/ascent profile:'// &
2259            '       Height:      ',A,'  m'/ &
2260            '       w_subs:      ',A,'  m/s'/ &
2261            '       Gradient:    ',A,'  (m/s)/100m'/ &
2262            '       Gridpoint:   ',A)
2263427 FORMAT (/'    Initial wind profiles (u,v) are interpolated from given'// &
2264                  ' profiles')
2265428 FORMAT (/'    Initial profiles (u, v, pt, q) are taken from file '/ &
2266             '    NUDGING_DATA')
2267430 FORMAT (//' Cloud physics quantities / methods:'/ &
2268              ' ----------------------------------'/)
2269431 FORMAT ('    Humidity is treated as purely passive scalar (no condensati', &
2270                 'on)')
2271432 FORMAT ('    Bulk scheme with liquid water potential temperature and'/ &
2272            '    total water content is used.'/ &
2273            '    Condensation is parameterized via 0% - or 100% scheme.')
2274433 FORMAT ('    Cloud droplets treated explicitly using the Lagrangian part', &
2275                 'icle model')
2276434 FORMAT ('    Curvature and solution effecs are considered for growth of', &
2277                 ' droplets < 1.0E-6 m')
2278435 FORMAT ('    Droplet collision is handled by ',A,'-kernel')
2279436 FORMAT ('       Fast kernel with fixed radius- and dissipation classes ', &
2280                    'are used'/ &
2281            '          number of radius classes:       ',I3,'    interval ', &
2282                       '[1.0E-6,2.0E-4] m'/ &
2283            '          number of dissipation classes:   ',I2,'    interval ', &
2284                       '[0,1000] cm**2/s**3')
2285437 FORMAT ('    Droplet collision is switched off')
2286438 FORMAT (' --> Land surface type  : ',A,/ &
2287            ' --> Soil porosity type : ',A)
2288439 FORMAT (/'    Initial soil temperature and moisture profile:'// &
2289            '       Height:        ',A,'  m'/ &
2290            '       Temperature:   ',A,'  K'/ &
2291            '       Moisture:      ',A,'  m**3/m**3'/ &
2292            '       Root fraction: ',A,'  '/ &
2293            '       Gridpoint:     ',A)
2294440 FORMAT (/' --> Dewfall is allowed (default)')
2295441 FORMAT (' --> Dewfall is inhibited')
2296442 FORMAT (' --> Soil bottom is closed (water content is conserved, default)')
2297443 FORMAT (' --> Soil bottom is open (water content is not conserved)')
2298444 FORMAT (//' Radiation model information:'/                                 &
2299              ' ----------------------------'/)
2300445 FORMAT (' --> Using constant net radiation: net_radiation = ', F6.2, '  W/m**2')
2301446 FORMAT (' --> Simple radiation scheme for clear sky is used (no clouds,',  &
2302                   ' default)')
2303447 FORMAT (' --> RRTMG scheme is used')
2304448 FORMAT (/'     User-specific surface albedo: albedo =', F6.3)
2305449 FORMAT  ('     Timestep: dt_radiation = ', F5.2, '  s')
2306
2307450 FORMAT (//' LES / Turbulence quantities:'/ &
2308              ' ---------------------------'/)
2309451 FORMAT ('    Diffusion coefficients are constant:'/ &
2310            '    Km = ',F6.2,' m**2/s   Kh = ',F6.2,' m**2/s   Pr = ',F5.2)
2311453 FORMAT ('    Mixing length is limited to',F5.2,' * z')
2312454 FORMAT ('    TKE is not allowed to fall below ',E9.2,' (m/s)**2')
2313455 FORMAT ('    initial TKE is prescribed as ',E9.2,' (m/s)**2')
2314456 FORMAT (/'    Albedo is set for land surface type: ', A)
2315457 FORMAT (/'    --> Albedo is fixed during the run')
2316458 FORMAT (/'    --> Longwave radiation is disabled')
2317459 FORMAT (/'    --> Shortwave radiation is disabled.')
2318470 FORMAT (//' Actions during the simulation:'/ &
2319              ' -----------------------------'/)
2320471 FORMAT ('    Disturbance impulse (u,v) every :   ',F6.2,' s'/            &
2321            '    Disturbance amplitude           :    ',F5.2, ' m/s'/       &
2322            '    Lower disturbance level         : ',F8.2,' m (GP ',I4,')'/  &
2323            '    Upper disturbance level         : ',F8.2,' m (GP ',I4,')')
2324472 FORMAT ('    Disturbances continued during the run from i/j =',I4, &
2325                 ' to i/j =',I4)
2326473 FORMAT ('    Disturbances cease as soon as the disturbance energy exceeds',&
2327                 F6.3, ' m**2/s**2')
2328474 FORMAT ('    Random number generator used    : ',A/)
2329475 FORMAT ('    The surface temperature is increased (or decreased, ', &
2330                 'respectively, if'/ &
2331            '    the value is negative) by ',F5.2,' K at the beginning of the',&
2332                 ' 3D-simulation'/)
2333476 FORMAT ('    The surface humidity is increased (or decreased, ',&
2334                 'respectively, if the'/ &
2335            '    value is negative) by ',E8.1,' kg/kg at the beginning of', &
2336                 ' the 3D-simulation'/)
2337477 FORMAT ('    The scalar value is increased at the surface (or decreased, ',&
2338                 'respectively, if the'/ &
2339            '    value is negative) by ',E8.1,' kg/m**3 at the beginning of', &
2340                 ' the 3D-simulation'/)
2341480 FORMAT ('    Particles:'/ &
2342            '    ---------'// &
2343            '       Particle advection is active (switched on at t = ', F7.1, &
2344                    ' s)'/ &
2345            '       Start of new particle generations every  ',F6.1,' s'/ &
2346            '       Boundary conditions: left/right: ', A, ' north/south: ', A/&
2347            '                            bottom:     ', A, ' top:         ', A/&
2348            '       Maximum particle age:                 ',F9.1,' s'/ &
2349            '       Advection stopped at t = ',F9.1,' s'/)
2350481 FORMAT ('       Particles have random start positions'/)
2351482 FORMAT ('          Particles are advected only horizontally'/)
2352483 FORMAT ('       Particles have tails with a maximum of ',I3,' points')
2353484 FORMAT ('            Number of tails of the total domain: ',I10/ &
2354            '            Minimum distance between tailpoints: ',F8.2,' m'/ &
2355            '            Maximum age of the end of the tail:  ',F8.2,' s')
2356485 FORMAT ('       Particle data are written on file every ', F9.1, ' s')
2357486 FORMAT ('       Particle statistics are written on file'/)
2358487 FORMAT ('       Number of particle groups: ',I2/)
2359488 FORMAT ('       SGS velocity components are used for particle advection'/ &
2360            '          minimum timestep for advection:', F8.5/)
2361489 FORMAT ('       Number of particles simultaneously released at each ', &
2362                    'point: ', I5/)
2363490 FORMAT ('       Particle group ',I2,':'/ &
2364            '          Particle radius: ',E10.3, 'm')
2365491 FORMAT ('          Particle inertia is activated'/ &
2366            '             density_ratio (rho_fluid/rho_particle) =',F6.3/)
2367492 FORMAT ('          Particles are advected only passively (no inertia)'/)
2368493 FORMAT ('          Boundaries of particle source: x:',F8.1,' - ',F8.1,' m'/&
2369            '                                         y:',F8.1,' - ',F8.1,' m'/&
2370            '                                         z:',F8.1,' - ',F8.1,' m'/&
2371            '          Particle distances:  dx = ',F8.1,' m  dy = ',F8.1, &
2372                       ' m  dz = ',F8.1,' m'/)
2373494 FORMAT ('       Output of particle time series in NetCDF format every ', &
2374                    F8.2,' s'/)
2375495 FORMAT ('       Number of particles in total domain: ',I10/)
2376496 FORMAT ('       Initial vertical particle positions are interpreted ', &
2377                    'as relative to the given topography')
2378500 FORMAT (//' 1D-Model parameters:'/                           &
2379              ' -------------------'//                           &
2380            '    Simulation time:                   ',F8.1,' s'/ &
2381            '    Run-controll output every:         ',F8.1,' s'/ &
2382            '    Vertical profile output every:     ',F8.1,' s'/ &
2383            '    Mixing length calculation:         ',A/         &
2384            '    Dissipation calculation:           ',A/)
2385502 FORMAT ('    Damping layer starts from ',F7.1,' m (GP ',I4,')'/)
2386503 FORMAT (' --> Momentum advection via Wicker-Skamarock-Scheme 5th order')
2387504 FORMAT (' --> Scalar advection via Wicker-Skamarock-Scheme 5th order')
2388505 FORMAT ('    Precipitation parameterization via Seifert-Beheng-Scheme')
2389506 FORMAT ('    Drizzle parameterization via Stokes law')
2390507 FORMAT ('    Turbulence effects on precipitation process')
2391508 FORMAT ('    Ventilation effects on evaporation of rain drops')
2392509 FORMAT ('    Slope limiter used for sedimentation process')
2393510 FORMAT ('    Droplet density    :   N_c   = ',F6.1,' 1/cm**3')
2394511 FORMAT ('    Sedimentation Courant number:                  '/&
2395            '                               C_s   =',F4.1,'        ')
2396512 FORMAT (/' Date:                 ',A8,6X,'Run:       ',A20/      &
2397            ' Time:                 ',A8,6X,'Run-No.:   ',I2.2/     &
2398            ' Run on host:        ',A10,6X,'En-No.:    ',I2.2)
2399513 FORMAT (' --> Scalar advection via Wicker-Skamarock-Scheme 5th order ' // & 
2400            '+ monotonic adjustment')
2401
2402
2403 END SUBROUTINE header
Note: See TracBrowser for help on using the repository browser.