source: palm/trunk/SOURCE/write_restart_data_mod.f90 @ 4558

Last change on this file since 4558 was 4536, checked in by raasch, 5 years ago

messages and debug output converted to PALM routines (restart_data_mpi_io_mod), binary version number set to 5.0, heeader output for restart data format added, restart data filesize and I/O transfer speed added in cpu_measures, handling of single restart files (created with MPI-I/O) added to palmrun, bugfix: preprocessor directive adjusted (virtual_measurement_mod), location message format changed

  • Property svn:keywords set to Id
File size: 54.6 KB
Line 
1!> @file write_restart_data_mod.f90
2!--------------------------------------------------------------------------------------------------!
3! This file is part of the PALM model system.
4!
5! PALM is free software: you can redistribute it and/or modify it under the terms of the GNU General
6! Public License as published by the Free Software Foundation, either version 3 of the License, or
7! (at your option) any later version.
8!
9! PALM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
10! implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11! Public License for more details.
12!
13! You should have received a copy of the GNU General Public License along with PALM. If not, see
14! <http://www.gnu.org/licenses/>.
15!
16! Copyright 1997-2020 Leibniz Universitaet Hannover
17!--------------------------------------------------------------------------------------------------!
18!
19! Current revisions:
20! -----------------
21!
22!
23! Former revisions:
24! -----------------
25! $Id: write_restart_data_mod.f90 4536 2020-05-17 17:24:13Z moh.hefny $
26! binary version incremented
27!
28! 4535 2020-05-15 12:07:23Z raasch
29! bugfix for restart data format query
30!
31! 4514 2020-04-30 16:29:59Z suehring
32! qsurf and ssurf added
33!
34! 4495 2020-04-13 20:11:20Z raasch
35! restart data handling with MPI-IO added
36!
37! 4489 2020-04-04 10:54:08Z raasch
38! file re-formatted to follow the PALM coding standard
39!
40! 4360 2020-01-07 11:25:50Z suehring
41! - Move 2-m potential temperature to diagnostic_output_quantities.
42!
43! 4301 2019-11-22 12:09:09Z oliver.maas
44! removed recycling_yshift
45!
46! 4227 2019-09-10 18:04:34Z gronemeier
47! implement new palm_date_time_mod and increased binary version
48!
49! 4146 2019-08-07 07:47:36Z gronemeier
50! Corrected "Former revisions" section
51!
52! 4101 2019-07-17 15:14:26Z gronemeier
53! remove old_dt
54!
55! 4039 2019-06-18 10:32:41Z suehring
56! Modularize diagnostic output
57!
58! 4017 2019-06-06 12:16:46Z schwenkel
59! output of turbulence intensity added
60!
61! 3988 2019-05-22 11:32:37Z kanani
62! + time_virtual_measurement (to enable steering of output interval)
63!
64! 3936 2019-04-26 15:38:02Z kanani
65! Enable time-averaged output of theta_2m* with restarts
66!
67! 3668 2019-01-14 12:49:24Z maronga
68! Implementation of the PALM module interface
69!
70! 2894 2018-03-15 09:17:58Z Giersch
71! Initial revision
72!
73!
74! Description:
75! ------------
76!> Writes restart data into binary file(s) for restart runs.
77!--------------------------------------------------------------------------------------------------!
78 MODULE write_restart_data_mod
79
80
81    USE arrays_3d,                                                                                 &
82        ONLY:  e, inflow_damping_factor, kh, km, mean_inflow_profiles, p, pt, pt_init, q, q_init,  &
83               ql, ref_state, s, s_init, u, u_init, ug, u_m_l, u_m_n, u_m_r, u_m_s, v, v_init, vg, &
84               v_m_l, v_m_n, v_m_r, v_m_s, vpt, w, w_m_l, w_m_n, w_m_r, w_m_s
85
86    USE averaging
87
88    USE bulk_cloud_model_mod,                                                                      &
89        ONLY:  bulk_cloud_model
90
91    USE control_parameters
92
93    USE grid_variables,                                                                            &
94        ONLY:  dx, dy
95
96    USE gust_mod,                                                                                  &
97        ONLY:  gust_module_enabled
98
99    USE indices,                                                                                   &
100        ONLY:  nx, nxl, nxr, ny, nys, nyn, nz, nzb, nzt
101
102    USE kinds
103
104    USE model_1d_mod,                                                                              &
105        ONLY:  damp_level_1d, dt_pr_1d, dt_run_control_1d, end_time_1d
106
107    USE module_interface,                                                                          &
108        ONLY:  module_interface_wrd_global,                                                        &
109               module_interface_wrd_local
110
111    USE netcdf_interface,                                                                          &
112        ONLY:  netcdf_precision, output_for_t0
113
114    USE particle_attributes,                                                                       &
115        ONLY:  particle_advection
116
117    USE pegrid,                                                                                    &
118        ONLY:  collective_wait, hor_index_bounds, myid, numprocs
119
120    USE radiation_model_mod,                                                                       &
121        ONLY:  time_radiation
122
123    USE random_function_mod,                                                                       &
124        ONLY:  random_iv, random_iy
125
126    USE random_generator_parallel,                                                                 &
127        ONLY:  id_random_array, seq_random_array
128
129    USE restart_data_mpi_io_mod,                                                                   &
130        ONLY:  wrd_mpi_io, wrd_mpi_io_global_array
131
132    USE spectra_mod,                                                                               &
133        ONLY:  average_count_sp, spectrum_x, spectrum_y
134
135    USE statistics,                                                                                &
136        ONLY:  hom, hom_sum, statistic_regions, u_max, u_max_ijk, v_max, v_max_ijk, w_max,         &
137        w_max_ijk, z_i
138
139    USE surface_mod,                                                                               &
140        ONLY:  surface_wrd_local
141
142    USE user,                                                                                      &
143        ONLY:  user_module_enabled
144
145    USE vertical_nesting_mod,                                                                      &
146        ONLY:  vnest_init
147
148    USE virtual_measurement_mod,                                                                   &
149        ONLY:  time_virtual_measurement
150
151
152    IMPLICIT NONE
153
154
155    INTERFACE wrd_global
156       MODULE PROCEDURE wrd_global
157    END INTERFACE wrd_global
158
159    INTERFACE wrd_local
160       MODULE PROCEDURE wrd_local
161    END INTERFACE wrd_local
162
163
164    PUBLIC wrd_local, wrd_global
165
166
167 CONTAINS
168
169
170! Description:
171! ------------
172!> Global data of control variables and arrays is written out for restarts.
173!> In case of output in Fortran binary format, this information is only written to the file
174!> opened by PE0.
175!--------------------------------------------------------------------------------------------------!
176
177
178 SUBROUTINE wrd_global
179
180
181    CHARACTER(LEN=10) ::  binary_version_global  !<
182    CHARACTER(LEN=20) ::  tmp_name               !< temporary variable
183
184    INTEGER ::  i                                !< loop index
185
186    binary_version_global = '5.0'
187
188    IF ( restart_data_format_output == 'fortran_binary' )  THEN
189!
190!--    Output in Fortran binary format
191       CALL wrd_write_string( 'binary_version_global' )
192       WRITE ( 14 )  binary_version_global
193
194       CALL wrd_write_string( 'numprocs' )
195       WRITE ( 14 )  numprocs
196
197       CALL wrd_write_string( 'hor_index_bounds' )
198       WRITE ( 14 )  hor_index_bounds
199
200       CALL wrd_write_string( 'nz' )
201       WRITE ( 14 )  nz
202
203       CALL wrd_write_string( 'max_pr_user' )
204       WRITE ( 14 )  max_pr_user
205
206       CALL wrd_write_string( 'statistic_regions' )
207       WRITE ( 14 )  statistic_regions
208
209!
210!--    Caution: After changes in the following parameter-list, the version number stored in the
211!--    -------- variable binary_version_global has to be increased. The same changes must also be
212!--             done in the parameter-list in rrd_global.
213       CALL wrd_write_string( 'advected_distance_x' )
214       WRITE ( 14 )  advected_distance_x
215
216       CALL wrd_write_string( 'advected_distance_y' )
217       WRITE ( 14 )  advected_distance_y
218
219       CALL wrd_write_string( 'alpha_surface' )
220       WRITE ( 14 )  alpha_surface
221
222       CALL wrd_write_string( 'average_count_pr' )
223       WRITE ( 14 )  average_count_pr
224
225       CALL wrd_write_string( 'average_count_sp' )
226       WRITE ( 14 )  average_count_sp
227
228       CALL wrd_write_string( 'average_count_3d' )
229       WRITE ( 14 )  average_count_3d
230
231       CALL wrd_write_string( 'bc_e_b' )
232       WRITE ( 14 )  bc_e_b
233
234       CALL wrd_write_string( 'bc_lr' )
235       WRITE ( 14 )  bc_lr
236
237       CALL wrd_write_string( 'bc_ns' )
238       WRITE ( 14 )  bc_ns
239
240       CALL wrd_write_string( 'bc_p_b' )
241       WRITE ( 14 )  bc_p_b
242
243       CALL wrd_write_string( 'bc_p_t' )
244       WRITE ( 14 )  bc_p_t
245
246       CALL wrd_write_string( 'bc_pt_b' )
247       WRITE ( 14 )  bc_pt_b
248
249       CALL wrd_write_string( 'bc_pt_t' )
250       WRITE ( 14 )  bc_pt_t
251
252       CALL wrd_write_string( 'bc_pt_t_val' )
253       WRITE ( 14 )  bc_pt_t_val
254
255       CALL wrd_write_string( 'bc_q_b' )
256       WRITE ( 14 )  bc_q_b
257
258       CALL wrd_write_string( 'bc_q_t' )
259       WRITE ( 14 )  bc_q_t
260
261       CALL wrd_write_string( 'bc_q_t_val' )
262       WRITE ( 14 )  bc_q_t_val
263
264       CALL wrd_write_string( 'bc_s_b' )
265       WRITE ( 14 )  bc_s_b
266
267       CALL wrd_write_string( 'bc_s_t' )
268       WRITE ( 14 )  bc_s_t
269
270       CALL wrd_write_string( 'bc_uv_b' )
271       WRITE ( 14 )  bc_uv_b
272
273       CALL wrd_write_string( 'bc_uv_t' )
274       WRITE ( 14 )  bc_uv_t
275
276       CALL wrd_write_string( 'building_height' )
277       WRITE ( 14 )  building_height
278
279       CALL wrd_write_string( 'building_length_x' )
280       WRITE ( 14 )  building_length_x
281
282       CALL wrd_write_string( 'building_length_y' )
283       WRITE ( 14 )  building_length_y
284
285       CALL wrd_write_string( 'building_wall_left' )
286       WRITE ( 14 )  building_wall_left
287
288       CALL wrd_write_string( 'building_wall_south' )
289       WRITE ( 14 )  building_wall_south
290
291       CALL wrd_write_string( 'call_psolver_at_all_substeps' )
292       WRITE ( 14 )  call_psolver_at_all_substeps
293
294       CALL wrd_write_string( 'canyon_height' )
295       WRITE ( 14 )  canyon_height
296
297       CALL wrd_write_string( 'canyon_wall_left' )
298       WRITE ( 14 )  canyon_wall_left
299
300       CALL wrd_write_string( 'canyon_wall_south' )
301       WRITE ( 14 )  canyon_wall_south
302
303       CALL wrd_write_string( 'canyon_width_x' )
304       WRITE ( 14 )  canyon_width_x
305
306       CALL wrd_write_string( 'canyon_width_y' )
307       WRITE ( 14 )  canyon_width_y
308
309       CALL wrd_write_string( 'cfl_factor' )
310       WRITE ( 14 )  cfl_factor
311
312       CALL wrd_write_string( 'cloud_droplets' )
313       WRITE ( 14 )  cloud_droplets
314
315       CALL wrd_write_string( 'collective_wait' )
316       WRITE ( 14 )  collective_wait
317
318       CALL wrd_write_string( 'conserve_volume_flow' )
319       WRITE ( 14 )  conserve_volume_flow
320
321       CALL wrd_write_string( 'conserve_volume_flow_mode' )
322       WRITE ( 14 )  conserve_volume_flow_mode
323
324       CALL wrd_write_string( 'constant_flux_layer' )
325       WRITE ( 14 )  constant_flux_layer
326
327       CALL wrd_write_string( 'coupling_start_time' )
328       WRITE ( 14 )  coupling_start_time
329
330       CALL wrd_write_string( 'current_timestep_number' )
331       WRITE ( 14 )  current_timestep_number
332
333       CALL wrd_write_string( 'cycle_mg' )
334       WRITE ( 14 )  cycle_mg
335
336       CALL wrd_write_string( 'damp_level_1d' )
337       WRITE ( 14 )  damp_level_1d
338
339       CALL wrd_write_string( 'origin_date_time' )
340       WRITE ( 14 )  origin_date_time
341
342       CALL wrd_write_string( 'dissipation_1d' )
343       WRITE ( 14 )  dissipation_1d
344
345       CALL wrd_write_string( 'do2d_xy_time_count' )
346       WRITE ( 14 )  do2d_xy_time_count
347
348       CALL wrd_write_string( 'do2d_xz_time_count' )
349       WRITE ( 14 )  do2d_xz_time_count
350
351       CALL wrd_write_string( 'do2d_yz_time_count' )
352       WRITE ( 14 )  do2d_yz_time_count
353
354       CALL wrd_write_string( 'do3d_time_count' )
355       WRITE ( 14 )  do3d_time_count
356
357       CALL wrd_write_string( 'dp_external' )
358       WRITE ( 14 )  dp_external
359
360       CALL wrd_write_string( 'dp_level_b' )
361       WRITE ( 14 )  dp_level_b
362
363       CALL wrd_write_string( 'dp_smooth' )
364       WRITE ( 14 )  dp_smooth
365
366       CALL wrd_write_string( 'dpdxy' )
367       WRITE ( 14 )  dpdxy
368
369       CALL wrd_write_string( 'dt_3d' )
370       WRITE ( 14 )  dt_3d
371
372    CALL wrd_write_string( 'dt_pr_1d' )
373    WRITE ( 14 )  dt_pr_1d
374
375       CALL wrd_write_string( 'dt_run_control_1d' )
376       WRITE ( 14 )  dt_run_control_1d
377
378       CALL wrd_write_string( 'dx' )
379       WRITE ( 14 )  dx
380
381       CALL wrd_write_string( 'dy' )
382       WRITE ( 14 )  dy
383
384       CALL wrd_write_string( 'dz' )
385       WRITE ( 14 )  dz
386
387       CALL wrd_write_string( 'dz_max' )
388       WRITE ( 14 )  dz_max
389
390       CALL wrd_write_string( 'dz_stretch_factor' )
391       WRITE ( 14 )  dz_stretch_factor
392
393       CALL wrd_write_string( 'dz_stretch_factor_array' )
394       WRITE ( 14 )  dz_stretch_factor_array
395
396       CALL wrd_write_string( 'dz_stretch_level' )
397       WRITE ( 14 )  dz_stretch_level
398
399       CALL wrd_write_string( 'dz_stretch_level_end' )
400       WRITE ( 14 )  dz_stretch_level_end
401
402       CALL wrd_write_string( 'dz_stretch_level_start' )
403       WRITE ( 14 )  dz_stretch_level_start
404
405       CALL wrd_write_string( 'e_min' )
406       WRITE ( 14 )  e_min
407
408       CALL wrd_write_string( 'end_time_1d' )
409       WRITE ( 14 )  end_time_1d
410
411       CALL wrd_write_string( 'fft_method' )
412       WRITE ( 14 )  fft_method
413
414       CALL wrd_write_string( 'first_call_lpm' )
415       WRITE ( 14 )  first_call_lpm
416
417       CALL wrd_write_string( 'galilei_transformation' )
418       WRITE ( 14 )  galilei_transformation
419
420       CALL wrd_write_string( 'hom' )
421       WRITE ( 14 )  hom
422
423       CALL wrd_write_string( 'hom_sum' )
424       WRITE ( 14 )  hom_sum
425
426       CALL wrd_write_string( 'humidity' )
427       WRITE ( 14 )  humidity
428
429       IF ( ALLOCATED( inflow_damping_factor ) )  THEN
430          CALL wrd_write_string( 'inflow_damping_factor' )
431          WRITE ( 14 )  inflow_damping_factor
432       ENDIF
433
434       CALL wrd_write_string( 'inflow_damping_height' )
435       WRITE ( 14 )  inflow_damping_height
436
437       CALL wrd_write_string( 'inflow_damping_width' )
438       WRITE ( 14 )  inflow_damping_width
439
440       CALL wrd_write_string( 'inflow_disturbance_begin' )
441       WRITE ( 14 )  inflow_disturbance_begin
442
443       CALL wrd_write_string( 'inflow_disturbance_end' )
444       WRITE ( 14 )  inflow_disturbance_end
445
446       CALL wrd_write_string( 'km_constant' )
447       WRITE ( 14 )  km_constant
448
449       CALL wrd_write_string( 'large_scale_forcing' )
450       WRITE ( 14 )  large_scale_forcing
451
452       CALL wrd_write_string( 'large_scale_subsidence' )
453       WRITE ( 14 )  large_scale_subsidence
454
455       CALL wrd_write_string( 'latitude' )
456       WRITE ( 14 )  latitude
457
458       CALL wrd_write_string( 'longitude' )
459       WRITE ( 14 )  longitude
460
461       CALL wrd_write_string( 'loop_optimization' )
462       WRITE ( 14 )  loop_optimization
463
464       CALL wrd_write_string( 'masking_method' )
465       WRITE ( 14 )  masking_method
466
467       IF ( ALLOCATED( mean_inflow_profiles ) )  THEN
468          CALL wrd_write_string( 'mean_inflow_profiles' )
469          WRITE ( 14 )  mean_inflow_profiles
470       ENDIF
471
472       CALL wrd_write_string( 'mg_cycles' )
473       WRITE ( 14 )  mg_cycles
474
475       CALL wrd_write_string( 'mg_switch_to_pe0_level' )
476       WRITE ( 14 )  mg_switch_to_pe0_level
477
478       CALL wrd_write_string( 'mixing_length_1d' )
479       WRITE ( 14 )  mixing_length_1d
480
481       CALL wrd_write_string( 'momentum_advec' )
482       WRITE ( 14 )  momentum_advec
483
484       CALL wrd_write_string( 'netcdf_precision' )
485       WRITE ( 14 )  netcdf_precision
486
487       CALL wrd_write_string( 'neutral' )
488       WRITE ( 14 )  neutral
489
490       CALL wrd_write_string( 'ngsrb' )
491       WRITE ( 14 )  ngsrb
492
493       CALL wrd_write_string( 'nsor' )
494       WRITE ( 14 )  nsor
495
496       CALL wrd_write_string( 'nsor_ini' )
497       WRITE ( 14 )  nsor_ini
498
499       CALL wrd_write_string( 'nudging' )
500       WRITE ( 14 )  nudging
501
502       CALL wrd_write_string( 'num_leg' )
503       WRITE ( 14 )  num_leg
504
505       CALL wrd_write_string( 'nx' )
506       WRITE ( 14 )  nx
507
508       CALL wrd_write_string( 'ny' )
509       WRITE ( 14 )  ny
510
511       CALL wrd_write_string( 'ocean_mode' )
512       WRITE ( 14 )  ocean_mode
513
514       CALL wrd_write_string( 'omega' )
515       WRITE ( 14 )  omega
516
517       CALL wrd_write_string( 'omega_sor' )
518       WRITE ( 14 )  omega_sor
519
520       CALL wrd_write_string( 'output_for_t0' )
521       WRITE ( 14 )  output_for_t0
522
523       CALL wrd_write_string( 'passive_scalar' )
524       WRITE ( 14 )  passive_scalar
525
526       CALL wrd_write_string( 'prandtl_number' )
527       WRITE ( 14 )  prandtl_number
528
529       CALL wrd_write_string( 'psolver' )
530       WRITE ( 14 )  psolver
531
532       CALL wrd_write_string( 'pt_damping_factor' )
533       WRITE ( 14 )  pt_damping_factor
534
535       CALL wrd_write_string( 'pt_damping_width' )
536       WRITE ( 14 )  pt_damping_width
537
538       CALL wrd_write_string( 'pt_init' )
539       WRITE ( 14 )  pt_init
540
541       CALL wrd_write_string( 'pt_reference' )
542       WRITE ( 14 )  pt_reference
543
544       CALL wrd_write_string( 'pt_surface' )
545       WRITE ( 14 )  pt_surface
546
547       CALL wrd_write_string( 'pt_surface_initial_change' )
548       WRITE ( 14 )  pt_surface_initial_change
549
550       CALL wrd_write_string( 'pt_vertical_gradient' )
551       WRITE ( 14 )  pt_vertical_gradient
552
553       CALL wrd_write_string( 'pt_vertical_gradient_level' )
554       WRITE ( 14 )  pt_vertical_gradient_level
555
556       CALL wrd_write_string( 'pt_vertical_gradient_level_ind' )
557       WRITE ( 14 )  pt_vertical_gradient_level_ind
558
559       CALL wrd_write_string( 'q_init' )
560       WRITE ( 14 )  q_init
561
562       CALL wrd_write_string( 'q_surface' )
563       WRITE ( 14 )  q_surface
564
565       CALL wrd_write_string( 'q_surface_initial_change' )
566       WRITE ( 14 )  q_surface_initial_change
567
568       CALL wrd_write_string( 'q_vertical_gradient' )
569       WRITE ( 14 )  q_vertical_gradient
570
571       CALL wrd_write_string( 'q_vertical_gradient_level' )
572       WRITE ( 14 )  q_vertical_gradient_level
573
574       CALL wrd_write_string( 'q_vertical_gradient_level_ind' )
575       WRITE ( 14 )  q_vertical_gradient_level_ind
576
577       CALL wrd_write_string( 'random_generator' )
578       WRITE ( 14 )  random_generator
579
580       CALL wrd_write_string( 'random_heatflux' )
581       WRITE ( 14 )  random_heatflux
582
583       CALL wrd_write_string( 'rans_mode' )
584       WRITE ( 14 )  rans_mode
585
586       CALL wrd_write_string( 'rayleigh_damping_factor' )
587       WRITE ( 14 )  rayleigh_damping_factor
588
589       CALL wrd_write_string( 'rayleigh_damping_height' )
590       WRITE ( 14 )  rayleigh_damping_height
591
592       CALL wrd_write_string( 'recycling_width' )
593       WRITE ( 14 )  recycling_width
594
595       CALL wrd_write_string( 'ref_state' )
596       WRITE ( 14 )  ref_state
597
598       CALL wrd_write_string( 'reference_state' )
599       WRITE ( 14 )  reference_state
600
601       CALL wrd_write_string( 'residual_limit' )
602       WRITE ( 14 )  residual_limit
603
604       CALL wrd_write_string( 'roughness_length' )
605       WRITE ( 14 )  roughness_length
606
607       CALL wrd_write_string( 'run_coupled' )
608       WRITE ( 14 )  run_coupled
609
610       CALL wrd_write_string( 'runnr' )
611       WRITE ( 14 )  runnr
612
613       CALL wrd_write_string( 's_init' )
614       WRITE ( 14 )  s_init
615
616       CALL wrd_write_string( 's_surface' )
617       WRITE ( 14 )  s_surface
618
619       CALL wrd_write_string( 's_surface_initial_change' )
620       WRITE ( 14 )  s_surface_initial_change
621
622       CALL wrd_write_string( 's_vertical_gradient' )
623       WRITE ( 14 )  s_vertical_gradient
624
625       CALL wrd_write_string( 's_vertical_gradient_level' )
626       WRITE ( 14 )  s_vertical_gradient_level
627
628       CALL wrd_write_string( 's_vertical_gradient_level_ind' )
629       WRITE ( 14 )  s_vertical_gradient_level_ind
630
631       CALL wrd_write_string( 'scalar_advec' )
632       WRITE ( 14 )  scalar_advec
633
634       CALL wrd_write_string( 'simulated_time' )
635       WRITE ( 14 )  simulated_time
636
637       IF ( ALLOCATED( spectrum_x ) )  THEN
638          CALL wrd_write_string( 'spectrum_x' )
639          WRITE ( 14 )  spectrum_x
640          CALL wrd_write_string( 'spectrum_y' )
641          WRITE ( 14 )  spectrum_y
642       ENDIF
643
644       CALL wrd_write_string( 'spinup_time ' )
645       WRITE ( 14 )  spinup_time
646
647       CALL wrd_write_string( 'subs_vertical_gradient' )
648       WRITE ( 14 )  subs_vertical_gradient
649
650       CALL wrd_write_string( 'subs_vertical_gradient_level' )
651       WRITE ( 14 )  subs_vertical_gradient_level
652
653       CALL wrd_write_string( 'subs_vertical_gradient_level_i' )
654       WRITE ( 14 )  subs_vertical_gradient_level_i
655
656       CALL wrd_write_string( 'surface_heatflux' )
657       WRITE ( 14 )  surface_heatflux
658
659       CALL wrd_write_string( 'surface_pressure' )
660       WRITE ( 14 )  surface_pressure
661
662       CALL wrd_write_string( 'surface_scalarflux' )
663       WRITE ( 14 )  surface_scalarflux
664
665       CALL wrd_write_string( 'surface_waterflux' )
666       WRITE ( 14 )  surface_waterflux
667
668       CALL wrd_write_string( 'time_coupling' )
669       WRITE ( 14 )  time_coupling
670
671       CALL wrd_write_string( 'time_disturb' )
672       WRITE ( 14 )  time_disturb
673
674       CALL wrd_write_string( 'time_do2d_xy' )
675       WRITE ( 14 )  time_do2d_xy
676
677       CALL wrd_write_string( 'time_do2d_xz' )
678       WRITE ( 14 )  time_do2d_xz
679
680       CALL wrd_write_string( 'time_do2d_yz' )
681       WRITE ( 14 )  time_do2d_yz
682
683       CALL wrd_write_string( 'time_do3d' )
684       WRITE ( 14 )  time_do3d
685
686       CALL wrd_write_string( 'time_do_av' )
687       WRITE ( 14 )  time_do_av
688
689       CALL wrd_write_string( 'time_do_sla' )
690       WRITE ( 14 )  time_do_sla
691
692       CALL wrd_write_string( 'time_domask' )
693       WRITE ( 14 )  time_domask
694
695       CALL wrd_write_string( 'time_dopr' )
696       WRITE ( 14 )  time_dopr
697
698       CALL wrd_write_string( 'time_dopr_av' )
699       WRITE ( 14 )  time_dopr_av
700
701       CALL wrd_write_string( 'time_dopr_listing' )
702       WRITE ( 14 )  time_dopr_listing
703
704       CALL wrd_write_string( 'time_dopts' )
705       WRITE ( 14 )  time_dopts
706
707       CALL wrd_write_string( 'time_dosp' )
708       WRITE ( 14 )  time_dosp
709
710       CALL wrd_write_string( 'time_dots' )
711       WRITE ( 14 )  time_dots
712
713       CALL wrd_write_string( 'time_radiation' )
714       WRITE ( 14 )  time_radiation
715
716       CALL wrd_write_string( 'time_restart' )
717       WRITE ( 14 )  time_restart
718
719       CALL wrd_write_string( 'time_run_control' )
720       WRITE ( 14 )  time_run_control
721
722       CALL wrd_write_string( 'time_since_reference_point' )
723       WRITE ( 14 )  time_since_reference_point
724
725       CALL wrd_write_string( 'time_virtual_measurement' )
726       WRITE ( 14 )  time_virtual_measurement
727
728       CALL wrd_write_string( 'timestep_scheme' )
729       WRITE ( 14 )  timestep_scheme
730
731       CALL wrd_write_string( 'top_heatflux' )
732       WRITE ( 14 )  top_heatflux
733
734       CALL wrd_write_string( 'top_momentumflux_u' )
735       WRITE ( 14 )  top_momentumflux_u
736
737       CALL wrd_write_string( 'top_momentumflux_v' )
738       WRITE ( 14 )  top_momentumflux_v
739
740       CALL wrd_write_string( 'top_scalarflux' )
741       WRITE ( 14 )  top_scalarflux
742
743       CALL wrd_write_string( 'topography' )
744       WRITE ( 14 )  topography
745
746       CALL wrd_write_string( 'topography_grid_convention' )
747       WRITE ( 14 )  topography_grid_convention
748
749       CALL wrd_write_string( 'tsc' )
750       WRITE ( 14 )  tsc
751
752       CALL wrd_write_string( 'tunnel_height' )
753       WRITE ( 14 )  tunnel_height
754
755       CALL wrd_write_string( 'tunnel_length' )
756       WRITE ( 14 )  tunnel_length
757
758       CALL wrd_write_string( 'tunnel_wall_depth' )
759       WRITE ( 14 )  tunnel_wall_depth
760
761       CALL wrd_write_string( 'tunnel_width_x' )
762       WRITE ( 14 )  tunnel_width_x
763
764       CALL wrd_write_string( 'tunnel_width_y' )
765       WRITE ( 14 )  tunnel_width_y
766
767       CALL wrd_write_string( 'turbulence_closure' )
768       WRITE ( 14 )  turbulence_closure
769
770       CALL wrd_write_string( 'turbulent_inflow' )
771       WRITE ( 14 )  turbulent_inflow
772
773       CALL wrd_write_string( 'u_bulk' )
774       WRITE ( 14 )  u_bulk
775
776       CALL wrd_write_string( 'u_init' )
777       WRITE ( 14 )  u_init
778
779       CALL wrd_write_string( 'u_max' )
780       WRITE ( 14 )  u_max
781
782       CALL wrd_write_string( 'u_max_ijk' )
783       WRITE ( 14 )  u_max_ijk
784
785       CALL wrd_write_string( 'ug' )
786       WRITE ( 14 )  ug
787
788       CALL wrd_write_string( 'ug_surface' )
789       WRITE ( 14 )  ug_surface
790
791       CALL wrd_write_string( 'ug_vertical_gradient' )
792       WRITE ( 14 )  ug_vertical_gradient
793
794       CALL wrd_write_string( 'ug_vertical_gradient_level' )
795       WRITE ( 14 )  ug_vertical_gradient_level
796
797       CALL wrd_write_string( 'ug_vertical_gradient_level_ind' )
798       WRITE ( 14 )  ug_vertical_gradient_level_ind
799
800       CALL wrd_write_string( 'use_surface_fluxes' )
801       WRITE ( 14 )  use_surface_fluxes
802
803       CALL wrd_write_string( 'use_top_fluxes' )
804       WRITE ( 14 )  use_top_fluxes
805
806       CALL wrd_write_string( 'use_ug_for_galilei_tr' )
807       WRITE ( 14 )  use_ug_for_galilei_tr
808
809       CALL wrd_write_string( 'use_upstream_for_tke' )
810       WRITE ( 14 )  use_upstream_for_tke
811
812       CALL wrd_write_string( 'v_bulk' )
813       WRITE ( 14 )  v_bulk
814
815       CALL wrd_write_string( 'v_init' )
816       WRITE ( 14 )  v_init
817
818       CALL wrd_write_string( 'v_max' )
819       WRITE ( 14 )  v_max
820
821       CALL wrd_write_string( 'v_max_ijk' )
822       WRITE ( 14 )  v_max_ijk
823
824       CALL wrd_write_string( 'vg' )
825       WRITE ( 14 )  vg
826
827       CALL wrd_write_string( 'vg_surface' )
828       WRITE ( 14 )  vg_surface
829
830       CALL wrd_write_string( 'vg_vertical_gradient' )
831       WRITE ( 14 ) vg_vertical_gradient
832
833       CALL wrd_write_string( 'vg_vertical_gradient_level' )
834       WRITE ( 14 )  vg_vertical_gradient_level
835
836       CALL wrd_write_string( 'vg_vertical_gradient_level_ind' )
837       WRITE ( 14 )  vg_vertical_gradient_level_ind
838
839       CALL wrd_write_string( 'virtual_flight' )
840       WRITE ( 14 )  virtual_flight
841
842       CALL wrd_write_string( 'vnest_init' )
843       WRITE ( 14 )  vnest_init
844
845       CALL wrd_write_string( 'volume_flow_area' )
846       WRITE ( 14 )  volume_flow_area
847
848       CALL wrd_write_string( 'volume_flow_initial' )
849       WRITE ( 14 )  volume_flow_initial
850
851       CALL wrd_write_string( 'w_max' )
852       WRITE ( 14 )  w_max
853
854       CALL wrd_write_string( 'w_max_ijk' )
855       WRITE ( 14 )  w_max_ijk
856
857       CALL wrd_write_string( 'wall_adjustment' )
858       WRITE ( 14 )  wall_adjustment
859
860       CALL wrd_write_string( 'wall_heatflux' )
861       WRITE ( 14 )  wall_heatflux
862
863       CALL wrd_write_string( 'wall_humidityflux' )
864       WRITE ( 14 )  wall_humidityflux
865
866       CALL wrd_write_string( 'wall_scalarflux' )
867       WRITE ( 14 )  wall_scalarflux
868
869       CALL wrd_write_string( 'y_shift' )
870       WRITE ( 14 )  y_shift
871
872       CALL wrd_write_string( 'z0h_factor' )
873       WRITE ( 14 )  z0h_factor
874
875       CALL wrd_write_string( 'zeta_max' )
876       WRITE ( 14 )  zeta_max
877
878       CALL wrd_write_string( 'zeta_min' )
879       WRITE ( 14 )  zeta_min
880
881       CALL wrd_write_string( 'z_i' )
882       WRITE ( 14 )  z_i
883
884    ELSEIF ( restart_data_format_output(1:3) == 'mpi' )  THEN
885!
886!--    Write global restart data using MPI-IO
887!--    ATTENTION: Arrays need to be written with routine wrd_mpi_io_global_array!
888       CALL wrd_mpi_io( 'binary_version_global',  binary_version_global )
889       CALL wrd_mpi_io( 'numprocs',  numprocs )
890       CALL wrd_mpi_io( 'nz' , nz )
891       CALL wrd_mpi_io( 'max_pr_user',  max_pr_user )
892       CALL wrd_mpi_io( 'statistic_regions', statistic_regions )
893
894!
895!--    Caution: After changes in the following parameter-list, the version number stored in the
896!--    -------- variable binary_version_global has to be increased. The same changes must also be
897!--             done in the parameter-list in rrd_global.
898       CALL wrd_mpi_io( 'advected_distance_x',  advected_distance_x )
899       CALL wrd_mpi_io( 'advected_distance_y', advected_distance_y )
900       CALL wrd_mpi_io( 'alpha_surface', alpha_surface )
901       CALL wrd_mpi_io( 'average_count_pr', average_count_pr )
902       CALL wrd_mpi_io( 'average_count_sp', average_count_sp )
903       CALL wrd_mpi_io( 'average_count_3d', average_count_3d )
904       CALL wrd_mpi_io( 'bc_e_b', bc_e_b )
905       CALL wrd_mpi_io( 'bc_lr', bc_lr )
906       CALL wrd_mpi_io( 'bc_ns', bc_ns )
907       CALL wrd_mpi_io( 'bc_p_b', bc_p_b )
908       CALL wrd_mpi_io( 'bc_p_t', bc_p_t )
909       CALL wrd_mpi_io( 'bc_pt_b', bc_pt_b )
910       CALL wrd_mpi_io( 'bc_pt_t', bc_pt_t )
911       CALL wrd_mpi_io( 'bc_pt_t_val', bc_pt_t_val )
912       CALL wrd_mpi_io( 'bc_q_b', bc_q_b )
913       CALL wrd_mpi_io( 'bc_q_t', bc_q_t )
914       CALL wrd_mpi_io( 'bc_q_t_val', bc_q_t_val )
915       CALL wrd_mpi_io( 'bc_s_b', bc_s_b )
916       CALL wrd_mpi_io( 'bc_s_t', bc_s_t )
917       CALL wrd_mpi_io( 'bc_uv_b', bc_uv_b )
918       CALL wrd_mpi_io( 'bc_uv_t', bc_uv_t )
919       CALL wrd_mpi_io( 'biometeorology', biometeorology )
920       CALL wrd_mpi_io( 'building_height', building_height )
921       CALL wrd_mpi_io( 'building_length_x', building_length_x )
922       CALL wrd_mpi_io( 'building_length_y', building_length_y )
923       CALL wrd_mpi_io( 'building_wall_left', building_wall_left )
924       CALL wrd_mpi_io( 'building_wall_south', building_wall_south )
925       CALL wrd_mpi_io( 'bulk_cloud_model', bulk_cloud_model )
926       CALL wrd_mpi_io( 'call_psolver_at_all_substeps', call_psolver_at_all_substeps )
927       CALL wrd_mpi_io( 'canyon_height', canyon_height )
928       CALL wrd_mpi_io( 'canyon_wall_left', canyon_wall_left )
929       CALL wrd_mpi_io( 'canyon_wall_south', canyon_wall_south )
930       CALL wrd_mpi_io( 'canyon_width_x',  canyon_width_x )
931       CALL wrd_mpi_io( 'canyon_width_y', canyon_width_y )
932       CALL wrd_mpi_io( 'cfl_factor', cfl_factor )
933       CALL wrd_mpi_io( 'cloud_droplets',  cloud_droplets )
934       CALL wrd_mpi_io( 'collective_wait', collective_wait )
935       CALL wrd_mpi_io( 'conserve_volume_flow', conserve_volume_flow )
936       CALL wrd_mpi_io( 'conserve_volume_flow_mode', conserve_volume_flow_mode )
937       CALL wrd_mpi_io( 'constant_flux_layer', constant_flux_layer )
938       CALL wrd_mpi_io( 'coupling_start_time', coupling_start_time )
939       CALL wrd_mpi_io( 'current_timestep_number', current_timestep_number )
940       CALL wrd_mpi_io( 'cycle_mg', cycle_mg )
941       CALL wrd_mpi_io( 'damp_level_1d', damp_level_1d )
942       CALL wrd_mpi_io( 'dissipation_1d', dissipation_1d )
943       CALL wrd_mpi_io_global_array( 'do2d_xy_time_count', do2d_xy_time_count )
944       CALL wrd_mpi_io_global_array( 'do2d_xz_time_count', do2d_xz_time_count )
945       CALL wrd_mpi_io_global_array( 'do2d_yz_time_count', do2d_yz_time_count )
946       CALL wrd_mpi_io_global_array( 'do3d_time_count', do3d_time_count )
947       CALL wrd_mpi_io( 'dp_external', dp_external )
948       CALL wrd_mpi_io( 'dp_level_b', dp_level_b )
949       CALL wrd_mpi_io( 'dp_smooth', dp_smooth )
950       CALL wrd_mpi_io_global_array( 'dpdxy', dpdxy )
951       CALL wrd_mpi_io( 'dt_3d', dt_3d )
952       CALL wrd_mpi_io( 'dt_pr_1d', dt_pr_1d )
953       CALL wrd_mpi_io( 'dt_run_control_1d', dt_run_control_1d )
954       CALL wrd_mpi_io( 'dx', dx )
955       CALL wrd_mpi_io( 'dy', dy )
956       CALL wrd_mpi_io_global_array( 'dz', dz )
957       CALL wrd_mpi_io( 'dz_max', dz_max )
958       CALL wrd_mpi_io( 'dz_stretch_factor', dz_stretch_factor )
959       CALL wrd_mpi_io_global_array( 'dz_stretch_factor_array', dz_stretch_factor_array )
960       CALL wrd_mpi_io( 'dz_stretch_level', dz_stretch_level )
961       CALL wrd_mpi_io_global_array( 'dz_stretch_level_end', dz_stretch_level_end )
962       CALL wrd_mpi_io_global_array( 'dz_stretch_level_start', dz_stretch_level_start )
963       CALL wrd_mpi_io( 'e_min', e_min )
964       CALL wrd_mpi_io( 'end_time_1d', end_time_1d )
965       CALL wrd_mpi_io( 'fft_method', fft_method )
966       CALL wrd_mpi_io( 'first_call_lpm', first_call_lpm )
967       CALL wrd_mpi_io( 'galilei_transformation', galilei_transformation )
968       CALL wrd_mpi_io( 'gust_module_enabled', gust_module_enabled )
969       CALL wrd_mpi_io_global_array( 'hom', hom )
970       CALL wrd_mpi_io_global_array( 'hom_sum', hom_sum )
971       CALL wrd_mpi_io( 'humidity', humidity )
972       IF ( ALLOCATED( inflow_damping_factor ) )  THEN
973          CALL wrd_mpi_io_global_array( 'inflow_damping_factor', inflow_damping_factor )
974       ENDIF
975       CALL wrd_mpi_io( 'inflow_damping_height', inflow_damping_height )
976       CALL wrd_mpi_io( 'inflow_damping_width', inflow_damping_width )
977       CALL wrd_mpi_io( 'inflow_disturbance_begin', inflow_disturbance_begin )
978       CALL wrd_mpi_io( 'inflow_disturbance_end', inflow_disturbance_end )
979       CALL wrd_mpi_io( 'km_constant', km_constant )
980       CALL wrd_mpi_io( 'large_scale_forcing', large_scale_forcing )
981       CALL wrd_mpi_io( 'large_scale_subsidence', large_scale_subsidence )
982       CALL wrd_mpi_io( 'latitude', latitude )
983       CALL wrd_mpi_io( 'longitude', longitude )
984       CALL wrd_mpi_io( 'loop_optimization', loop_optimization )
985       CALL wrd_mpi_io( 'masking_method', masking_method )
986       IF ( ALLOCATED( mean_inflow_profiles ) )  THEN
987          CALL wrd_mpi_io_global_array( 'mean_inflow_profiles', mean_inflow_profiles )
988       ENDIF
989       CALL wrd_mpi_io( 'mg_cycles', mg_cycles )
990       CALL wrd_mpi_io( 'mg_switch_to_pe0_level', mg_switch_to_pe0_level )
991       CALL wrd_mpi_io( 'mixing_length_1d', mixing_length_1d )
992       CALL wrd_mpi_io( 'momentum_advec', momentum_advec )
993!
994!--    There is no module procedure for CHARACTER arrays
995       DO  i = 1, SIZE( netcdf_precision, 1 )
996          WRITE ( tmp_name, '(A,I2.2)' )  'netcdf_precision_', i
997          CALL wrd_mpi_io( TRIM( tmp_name ), netcdf_precision(i) )
998       ENDDO
999       CALL wrd_mpi_io( 'neutral', neutral )
1000       CALL wrd_mpi_io( 'ngsrb', ngsrb )
1001       CALL wrd_mpi_io( 'nsor', nsor )
1002       CALL wrd_mpi_io( 'nsor_ini', nsor_ini )
1003       CALL wrd_mpi_io( 'nudging', nudging )
1004       CALL wrd_mpi_io( 'num_leg', num_leg )
1005       CALL wrd_mpi_io( 'nx', nx )
1006       CALL wrd_mpi_io( 'ny', ny )
1007       CALL wrd_mpi_io( 'ocean_mode', ocean_mode )
1008       CALL wrd_mpi_io( 'omega', omega )
1009       CALL wrd_mpi_io( 'omega_sor', omega_sor )
1010       CALL wrd_mpi_io( 'origin_date_time', origin_date_time )
1011       CALL wrd_mpi_io( 'output_for_t0', output_for_t0 )
1012       CALL wrd_mpi_io( 'particle_advection', particle_advection )
1013       CALL wrd_mpi_io( 'passive_scalar', passive_scalar )
1014       CALL wrd_mpi_io( 'prandtl_number', prandtl_number )
1015       CALL wrd_mpi_io( 'psolver', psolver )
1016       CALL wrd_mpi_io( 'pt_damping_factor', pt_damping_factor )
1017       CALL wrd_mpi_io( 'pt_damping_width', pt_damping_width )
1018       CALL wrd_mpi_io_global_array( 'pt_init', pt_init )
1019       CALL wrd_mpi_io( 'pt_reference', pt_reference )
1020       CALL wrd_mpi_io( 'pt_surface', pt_surface )
1021       CALL wrd_mpi_io( 'pt_surface_initial_change', pt_surface_initial_change )
1022       CALL wrd_mpi_io_global_array( 'pt_vertical_gradient', pt_vertical_gradient )
1023       CALL wrd_mpi_io_global_array( 'pt_vertical_gradient_level', pt_vertical_gradient_level )
1024       CALL wrd_mpi_io_global_array( 'pt_vertical_gradient_level_ind', pt_vertical_gradient_level_ind )
1025       CALL wrd_mpi_io_global_array( 'q_init', q_init )
1026       CALL wrd_mpi_io( 'q_surface', q_surface )
1027       CALL wrd_mpi_io( 'q_surface_initial_change', q_surface_initial_change )
1028       CALL wrd_mpi_io_global_array( 'q_vertical_gradient', q_vertical_gradient )
1029       CALL wrd_mpi_io_global_array( 'q_vertical_gradient_level', q_vertical_gradient_level )
1030       CALL wrd_mpi_io_global_array( 'q_vertical_gradient_level_ind', q_vertical_gradient_level_ind )
1031       CALL wrd_mpi_io( 'random_generator', random_generator )
1032       CALL wrd_mpi_io( 'random_heatflux', random_heatflux )
1033       CALL wrd_mpi_io( 'rans_mode', rans_mode )
1034       CALL wrd_mpi_io( 'rayleigh_damping_factor', rayleigh_damping_factor )
1035       CALL wrd_mpi_io( 'rayleigh_damping_height', rayleigh_damping_height )
1036       CALL wrd_mpi_io( 'recycling_width', recycling_width )
1037       CALL wrd_mpi_io_global_array( 'ref_state', ref_state )
1038       CALL wrd_mpi_io( 'reference_state', reference_state )
1039       CALL wrd_mpi_io( 'residual_limit', residual_limit )
1040       CALL wrd_mpi_io( 'roughness_length', roughness_length )
1041       CALL wrd_mpi_io( 'run_coupled', run_coupled )
1042       CALL wrd_mpi_io( 'runnr', runnr )
1043       CALL wrd_mpi_io_global_array( 's_init', s_init )
1044       CALL wrd_mpi_io( 's_surface', s_surface )
1045       CALL wrd_mpi_io( 's_surface_initial_change', s_surface_initial_change )
1046       CALL wrd_mpi_io_global_array( 's_vertical_gradient', s_vertical_gradient )
1047       CALL wrd_mpi_io_global_array( 's_vertical_gradient_level', s_vertical_gradient_level )
1048       CALL wrd_mpi_io_global_array( 's_vertical_gradient_level_ind', s_vertical_gradient_level_ind )
1049       CALL wrd_mpi_io( 'scalar_advec', scalar_advec )
1050       CALL wrd_mpi_io( 'simulated_time', simulated_time )
1051       IF ( ALLOCATED( spectrum_x ) )  THEN
1052          CALL wrd_mpi_io( 'spectrum_x', spectrum_x )
1053          CALL wrd_mpi_io( 'spectrum_y', spectrum_y )
1054       ENDIF
1055       CALL wrd_mpi_io( 'spinup_time ', spinup_time )
1056       CALL wrd_mpi_io_global_array( 'subs_vertical_gradient', subs_vertical_gradient )
1057       CALL wrd_mpi_io_global_array( 'subs_vertical_gradient_level', subs_vertical_gradient_level )
1058       CALL wrd_mpi_io_global_array( 'subs_vertical_gradient_level_i', subs_vertical_gradient_level_i )
1059       CALL wrd_mpi_io( 'surface_heatflux', surface_heatflux )
1060       CALL wrd_mpi_io( 'surface_output', surface_output )
1061       CALL wrd_mpi_io( 'surface_pressure', surface_pressure )
1062       CALL wrd_mpi_io( 'surface_scalarflux', surface_scalarflux )
1063       CALL wrd_mpi_io( 'surface_waterflux', surface_waterflux )
1064       CALL wrd_mpi_io( 'syn_turb_gen', syn_turb_gen )
1065       CALL wrd_mpi_io( 'time_coupling', time_coupling )
1066       CALL wrd_mpi_io( 'time_disturb', time_disturb )
1067       CALL wrd_mpi_io( 'time_do2d_xy', time_do2d_xy )
1068       CALL wrd_mpi_io( 'time_do2d_xz', time_do2d_xz )
1069       CALL wrd_mpi_io( 'time_do2d_yz', time_do2d_yz )
1070       CALL wrd_mpi_io( 'time_do3d', time_do3d )
1071       CALL wrd_mpi_io( 'time_do_av', time_do_av )
1072       CALL wrd_mpi_io( 'time_do_sla', time_do_sla )
1073       CALL wrd_mpi_io_global_array( 'time_domask', time_domask )
1074       CALL wrd_mpi_io( 'time_dopr', time_dopr )
1075       CALL wrd_mpi_io( 'time_dopr_av', time_dopr_av )
1076       CALL wrd_mpi_io( 'time_dopr_listing', time_dopr_listing )
1077       CALL wrd_mpi_io( 'time_dopts', time_dopts )
1078       CALL wrd_mpi_io( 'time_dosp', time_dosp )
1079       CALL wrd_mpi_io( 'time_dots', time_dots )
1080       CALL wrd_mpi_io( 'time_radiation', time_radiation )
1081       CALL wrd_mpi_io( 'time_restart', time_restart )
1082       CALL wrd_mpi_io( 'time_run_control', time_run_control )
1083       CALL wrd_mpi_io( 'time_since_reference_point', time_since_reference_point )
1084       CALL wrd_mpi_io( 'time_virtual_measurement', time_virtual_measurement )
1085       CALL wrd_mpi_io( 'timestep_scheme', timestep_scheme )
1086       CALL wrd_mpi_io( 'top_heatflux', top_heatflux )
1087       CALL wrd_mpi_io( 'top_momentumflux_u', top_momentumflux_u )
1088       CALL wrd_mpi_io( 'top_momentumflux_v', top_momentumflux_v )
1089       CALL wrd_mpi_io( 'top_scalarflux', top_scalarflux )
1090       CALL wrd_mpi_io( 'topography', topography )
1091       CALL wrd_mpi_io( 'topography_grid_convention', topography_grid_convention )
1092       CALL wrd_mpi_io_global_array( 'tsc', tsc )
1093       CALL wrd_mpi_io( 'tunnel_height', tunnel_height )
1094       CALL wrd_mpi_io( 'tunnel_length', tunnel_length )
1095       CALL wrd_mpi_io( 'tunnel_wall_depth', tunnel_wall_depth )
1096       CALL wrd_mpi_io( 'tunnel_width_x', tunnel_width_x )
1097       CALL wrd_mpi_io( 'tunnel_width_y', tunnel_width_y )
1098       CALL wrd_mpi_io( 'turbulence_closure', turbulence_closure )
1099       CALL wrd_mpi_io( 'turbulent_inflow', turbulent_inflow )
1100       CALL wrd_mpi_io( 'u_bulk', u_bulk )
1101       CALL wrd_mpi_io_global_array( 'u_init', u_init )
1102       CALL wrd_mpi_io( 'u_max', u_max )
1103       CALL wrd_mpi_io_global_array( 'u_max_ijk', u_max_ijk )
1104       CALL wrd_mpi_io_global_array( 'ug', ug )
1105       CALL wrd_mpi_io( 'ug_surface', ug_surface )
1106       CALL wrd_mpi_io_global_array( 'ug_vertical_gradient', ug_vertical_gradient )
1107       CALL wrd_mpi_io_global_array( 'ug_vertical_gradient_level', ug_vertical_gradient_level )
1108       CALL wrd_mpi_io_global_array( 'ug_vertical_gradient_level_ind', ug_vertical_gradient_level_ind )
1109       CALL wrd_mpi_io( 'use_surface_fluxes', use_surface_fluxes )
1110       CALL wrd_mpi_io( 'use_top_fluxes', use_top_fluxes )
1111       CALL wrd_mpi_io( 'use_ug_for_galilei_tr', use_ug_for_galilei_tr )
1112       CALL wrd_mpi_io( 'use_upstream_for_tke', use_upstream_for_tke )
1113       CALL wrd_mpi_io( 'user_module_enabled', user_module_enabled )
1114       CALL wrd_mpi_io( 'v_bulk', v_bulk )
1115       CALL wrd_mpi_io_global_array( 'v_init', v_init )
1116       CALL wrd_mpi_io( 'v_max', v_max )
1117       CALL wrd_mpi_io_global_array( 'v_max_ijk', v_max_ijk )
1118       CALL wrd_mpi_io_global_array( 'vg', vg )
1119       CALL wrd_mpi_io( 'vg_surface', vg_surface )
1120       CALL wrd_mpi_io_global_array( 'vg_vertical_gradient', vg_vertical_gradient )
1121       CALL wrd_mpi_io_global_array( 'vg_vertical_gradient_level', vg_vertical_gradient_level )
1122       CALL wrd_mpi_io_global_array( 'vg_vertical_gradient_level_ind', vg_vertical_gradient_level_ind )
1123       CALL wrd_mpi_io( 'virtual_flight', virtual_flight )
1124       CALL wrd_mpi_io( 'vnest_init', vnest_init )
1125       CALL wrd_mpi_io_global_array( 'volume_flow_area', volume_flow_area )
1126       CALL wrd_mpi_io_global_array( 'volume_flow_initial', volume_flow_initial )
1127       CALL wrd_mpi_io( 'w_max', w_max )
1128       CALL wrd_mpi_io_global_array( 'w_max_ijk', w_max_ijk )
1129       CALL wrd_mpi_io( 'wall_adjustment', wall_adjustment )
1130       CALL wrd_mpi_io_global_array( 'wall_heatflux', wall_heatflux )
1131       CALL wrd_mpi_io_global_array( 'wall_humidityflux', wall_humidityflux )
1132       CALL wrd_mpi_io_global_array( 'wall_scalarflux', wall_scalarflux )
1133       CALL wrd_mpi_io( 'y_shift', y_shift )
1134       CALL wrd_mpi_io( 'z0h_factor', z0h_factor )
1135       CALL wrd_mpi_io( 'zeta_max', zeta_max )
1136       CALL wrd_mpi_io( 'zeta_min', zeta_min )
1137       CALL wrd_mpi_io_global_array( 'z_i', z_i )
1138
1139    ENDIF
1140
1141!
1142!-- Write restart data of the other modules
1143    CALL module_interface_wrd_global
1144
1145
1146 END SUBROUTINE wrd_global
1147
1148
1149!--------------------------------------------------------------------------------------------------!
1150! Description:
1151! ------------
1152!> Processor specific data of variables and arrays is written out for restarts (binary format).
1153!> This information is written to the file opened by each PE.
1154!--------------------------------------------------------------------------------------------------!
1155
1156
1157 SUBROUTINE wrd_local
1158
1159
1160    CHARACTER(LEN=10) ::  binary_version_local  !<
1161    CHARACTER(LEN=20) ::  tmp_name              !<  temporary variable
1162
1163    INTEGER ::  i                               !<  loop index
1164
1165!
1166!-- Write arrays.
1167    binary_version_local = '5.0'
1168
1169    IF ( TRIM( restart_data_format_output ) == 'fortran_binary' )  THEN
1170!
1171!--    Output in Fortran binary format
1172
1173       CALL wrd_write_string( 'binary_version_local' )
1174       WRITE ( 14 )  binary_version_local
1175
1176       WRITE ( 14 )  numprocs, myid, nxl, nxr, nys, nyn, nzb, nzt
1177
1178!
1179!--    Attention: After changes to the following output commands the version number of the variable
1180!--    ---------- binary_version_local must be changed!
1181!--               Also, the list of arrays to be read in rrd_local must be adjusted accordingly.
1182       CALL wrd_write_string( 'e' )
1183       WRITE ( 14 )  e
1184
1185       IF ( ALLOCATED( e_av ) )  THEN
1186          CALL wrd_write_string( 'e_av' )
1187          WRITE ( 14 )  e_av
1188       ENDIF
1189
1190       CALL wrd_write_string( 'kh' )
1191       WRITE ( 14 )  kh
1192
1193
1194       IF ( ALLOCATED( kh_av ) )  THEN
1195          CALL wrd_write_string( 'kh_av' )
1196          WRITE ( 14 )  kh_av
1197       ENDIF
1198
1199       CALL wrd_write_string( 'km' )
1200       WRITE ( 14 )  km
1201
1202       IF ( ALLOCATED( km_av ) )  THEN
1203          CALL wrd_write_string( 'km_av' )
1204          WRITE ( 14 )  km_av
1205       ENDIF
1206
1207       IF ( ALLOCATED( lpt_av ) )  THEN
1208          CALL wrd_write_string( 'lpt_av' )
1209          WRITE ( 14 )  lpt_av
1210       ENDIF
1211
1212       IF ( ALLOCATED( lwp_av ) )  THEN
1213          CALL wrd_write_string( 'lwp_av' )
1214          WRITE ( 14 )  lwp_av
1215       ENDIF
1216
1217       CALL wrd_write_string( 'p' )
1218       WRITE ( 14 )  p
1219
1220       IF ( ALLOCATED( p_av ) )  THEN
1221          CALL wrd_write_string( 'p_av' )
1222          WRITE ( 14 )  p_av
1223       ENDIF
1224
1225       IF ( ALLOCATED( pc_av ) )  THEN
1226          CALL wrd_write_string( 'pc_av' )
1227          WRITE ( 14 )  pc_av
1228       ENDIF
1229
1230       IF ( ALLOCATED( pr_av ) )  THEN
1231          CALL wrd_write_string( 'pr_av' )
1232          WRITE ( 14 )  pr_av
1233       ENDIF
1234
1235       CALL wrd_write_string( 'pt' )
1236       WRITE ( 14 )  pt
1237
1238       IF ( ALLOCATED( pt_av ) )  THEN
1239          CALL wrd_write_string( 'pt_av' )
1240          WRITE ( 14 )  pt_av
1241       ENDIF
1242
1243       IF ( humidity )  THEN
1244
1245          CALL wrd_write_string( 'q' )
1246          WRITE ( 14 )  q
1247
1248          IF ( ALLOCATED( q_av ) )  THEN
1249             CALL wrd_write_string( 'q_av' )
1250             WRITE ( 14 )  q_av
1251          ENDIF
1252
1253          IF ( cloud_droplets )  THEN
1254
1255             CALL wrd_write_string( 'ql' )
1256             WRITE ( 14 )  ql
1257
1258             IF ( ALLOCATED( ql_av ) )  THEN
1259                CALL wrd_write_string( 'ql_av' )
1260                WRITE ( 14 )  ql_av
1261             ENDIF
1262
1263          ENDIF
1264
1265          IF ( ALLOCATED( qsurf_av ) )  THEN
1266             CALL wrd_write_string( 'qsurf_av' )
1267             WRITE ( 14 )  qsurf_av
1268          ENDIF
1269
1270          IF ( ALLOCATED( qsws_av ) )  THEN
1271             CALL wrd_write_string( 'qsws_av' )
1272             WRITE ( 14 )  qsws_av
1273          ENDIF
1274
1275       ENDIF
1276
1277       IF ( passive_scalar )  THEN
1278
1279          CALL wrd_write_string( 's' )
1280          WRITE ( 14 )  s
1281
1282          IF ( ALLOCATED( s_av ) )  THEN
1283             CALL wrd_write_string( 's_av' )
1284             WRITE ( 14 )  s_av
1285          ENDIF
1286
1287          IF ( ALLOCATED( ssurf_av ) )  THEN
1288             CALL wrd_write_string( 'ssurf_av' )
1289             WRITE ( 14 )  ssurf_av
1290          ENDIF
1291
1292          IF ( ALLOCATED( ssws_av ) )  THEN
1293             CALL wrd_write_string( 'ssws_av' )
1294             WRITE ( 14 )  ssws_av
1295          ENDIF
1296
1297       ENDIF
1298
1299       IF ( ALLOCATED( ql_c_av ) )  THEN
1300          CALL wrd_write_string( 'ql_c_av' )
1301          WRITE ( 14 )  ql_c_av
1302       ENDIF
1303
1304       IF ( ALLOCATED( ql_v_av ) )  THEN
1305          CALL wrd_write_string( 'ql_v_av' )
1306          WRITE ( 14 )  ql_v_av
1307       ENDIF
1308
1309       IF ( ALLOCATED( ql_vp_av ) )  THEN
1310          CALL wrd_write_string( 'ql_vp_av' )
1311          WRITE ( 14 )  ql_vp_av
1312       ENDIF
1313
1314       IF ( ALLOCATED( qv_av ) )  THEN
1315          CALL wrd_write_string( 'qv_av' )
1316          WRITE ( 14 )  qv_av
1317       ENDIF
1318
1319       CALL wrd_write_string( 'random_iv' )
1320       WRITE ( 14 )  random_iv
1321       WRITE ( 14 )  random_iy
1322
1323       IF ( ALLOCATED( seq_random_array ) )  THEN
1324          CALL wrd_write_string( 'seq_random_array' )
1325          WRITE ( 14 )  id_random_array
1326          WRITE ( 14 )  seq_random_array
1327       ENDIF
1328
1329       IF ( ALLOCATED( s_av ) )  THEN
1330          CALL wrd_write_string( 's_av' )
1331          WRITE ( 14 )  s_av
1332       ENDIF
1333
1334       IF ( ALLOCATED( shf_av ) )  THEN
1335          CALL wrd_write_string( 'shf_av' )
1336          WRITE ( 14 )  shf_av
1337       ENDIF
1338
1339       IF ( ALLOCATED( ts_av ) )  THEN
1340          CALL wrd_write_string( 'ts_av' )
1341          WRITE ( 14 ) ts_av
1342       ENDIF
1343
1344       CALL wrd_write_string( 'u' )
1345       WRITE ( 14 )  u
1346
1347       IF ( ALLOCATED( u_av ) )  THEN
1348          CALL wrd_write_string( 'u_av' )
1349          WRITE ( 14 )  u_av
1350       ENDIF
1351
1352       IF ( ALLOCATED( u_m_l ) )  THEN
1353          CALL wrd_write_string( 'u_m_l' )
1354          WRITE ( 14 )  u_m_l
1355       ENDIF
1356
1357       IF ( ALLOCATED( u_m_n ) )  THEN
1358          CALL wrd_write_string( 'u_m_n' )
1359          WRITE ( 14 )  u_m_n
1360       ENDIF
1361
1362       IF ( ALLOCATED( u_m_r ) )  THEN
1363          CALL wrd_write_string( 'u_m_r' )
1364          WRITE ( 14 )  u_m_r
1365       ENDIF
1366
1367       IF ( ALLOCATED( u_m_s ) )  THEN
1368          CALL wrd_write_string( 'u_m_s' )
1369          WRITE ( 14 )  u_m_s
1370       ENDIF
1371
1372       IF ( ALLOCATED( us_av ) )  THEN
1373          CALL wrd_write_string( 'us_av' )
1374          WRITE ( 14 )  us_av
1375       ENDIF
1376
1377       CALL wrd_write_string( 'v' )
1378       WRITE ( 14 )  v
1379
1380       IF ( ALLOCATED( v_av ) )  THEN
1381          CALL wrd_write_string( 'v_av' )
1382          WRITE ( 14 )  v_av
1383       ENDIF
1384
1385       IF ( ALLOCATED( v_m_l  ) )  THEN
1386          CALL wrd_write_string( 'v_m_l' )
1387          WRITE ( 14 )  v_m_l
1388       ENDIF
1389
1390       IF ( ALLOCATED( v_m_n ) )  THEN
1391          CALL wrd_write_string( 'v_m_n' )
1392         WRITE ( 14 )  v_m_n
1393       ENDIF
1394
1395       IF ( ALLOCATED( v_m_r ) )  THEN
1396          CALL wrd_write_string( 'v_m_r' )
1397          WRITE ( 14 )  v_m_r
1398       ENDIF
1399
1400       IF ( ALLOCATED( v_m_s ) )  THEN
1401          CALL wrd_write_string( 'v_m_s' )
1402          WRITE ( 14 )  v_m_s
1403       ENDIF
1404
1405       IF ( humidity )  THEN
1406
1407          CALL wrd_write_string( 'vpt' )
1408          WRITE ( 14 )  vpt
1409
1410          IF ( ALLOCATED( vpt_av ) )  THEN
1411             CALL wrd_write_string( 'vpt_av' )
1412             WRITE ( 14 ) vpt_av
1413          ENDIF
1414
1415       ENDIF
1416
1417       CALL wrd_write_string( 'w' )
1418       WRITE ( 14 )  w
1419
1420       IF ( ALLOCATED( w_av ) )  THEN
1421          CALL wrd_write_string( 'w_av' )
1422          WRITE ( 14 )  w_av
1423       ENDIF
1424
1425       IF ( ALLOCATED( w_m_l ) )  THEN
1426          CALL wrd_write_string( 'w_m_l' )
1427          WRITE ( 14 )  w_m_l
1428       ENDIF
1429
1430       IF ( ALLOCATED( w_m_n ) )  THEN
1431          CALL wrd_write_string( 'w_m_n' )
1432          WRITE ( 14 )  w_m_n
1433       ENDIF
1434
1435       IF ( ALLOCATED( w_m_r ) )  THEN
1436          CALL wrd_write_string( 'w_m_r' )
1437          WRITE ( 14 )  w_m_r
1438       ENDIF
1439
1440       IF ( ALLOCATED( w_m_s ) )  THEN
1441          CALL wrd_write_string( 'w_m_s' )
1442          WRITE ( 14 )  w_m_s
1443       ENDIF
1444
1445       IF ( ALLOCATED( z0_av ) )  THEN
1446          CALL wrd_write_string( 'z0_av' )
1447          WRITE ( 14 )  z0_av
1448       ENDIF
1449
1450      IF ( ALLOCATED( z0h_av ) )  THEN
1451          CALL wrd_write_string( 'z0h_av' )
1452          WRITE ( 14 )  z0h_av
1453       ENDIF
1454
1455       IF ( ALLOCATED( z0q_av ) )  THEN
1456          CALL wrd_write_string( 'z0q_av' )
1457          WRITE ( 14 )  z0q_av
1458       ENDIF
1459
1460       IF ( land_surface .OR. urban_surface )  THEN
1461
1462          IF ( ALLOCATED( ghf_av ) )  THEN
1463             CALL wrd_write_string( 'ghf_av' )
1464             WRITE ( 14 )  ghf_av
1465          ENDIF
1466
1467          IF ( ALLOCATED( r_a_av ) )  THEN
1468             CALL wrd_write_string( 'r_a_av' )
1469             WRITE ( 14 )  r_a_av
1470          ENDIF
1471
1472       ENDIF
1473
1474       IF ( ALLOCATED( tsurf_av ) )  THEN
1475          CALL wrd_write_string( 'tsurf_av' )
1476          WRITE ( 14 )  tsurf_av
1477       ENDIF
1478
1479    ELSEIF ( restart_data_format_output(1:3) == 'mpi' )  THEN
1480!
1481!--    Write local restart data using MPI-IO
1482!--    Attention: After changes to the following output commands the version number
1483!--    ---------  of the variable binary_version must be changed!
1484!--               Also, the list of arrays to be read in rrd_local must be adjusted accordingly.
1485       CALL wrd_mpi_io( 'e',  e)
1486       IF ( ALLOCATED( e_av ) )  CALL wrd_mpi_io( 'e_av',  e_av)
1487       CALL wrd_mpi_io( 'kh', kh )
1488       IF ( ALLOCATED( kh_av ) )  CALL wrd_mpi_io( 'kh_av', kh_av )
1489       CALL wrd_mpi_io( 'km' , km )
1490       IF ( ALLOCATED( km_av ) )  CALL wrd_mpi_io( 'km_av', km_av )
1491       IF ( ALLOCATED( lpt_av ) )  CALL wrd_mpi_io( 'lpt_av', lpt_av )
1492       IF ( ALLOCATED( lwp_av ) )  CALL wrd_mpi_io( 'lwp_av', lwp_av )
1493       CALL wrd_mpi_io( 'p', p )
1494       IF ( ALLOCATED( p_av ) )  CALL wrd_mpi_io( 'p_av', p_av )
1495       IF ( ALLOCATED( pc_av ) )  CALL wrd_mpi_io( 'pc_av', pc_av )
1496       IF ( ALLOCATED( pr_av ) )  CALL wrd_mpi_io( 'pr_av', pr_av )
1497       CALL wrd_mpi_io( 'pt', pt )
1498       IF ( ALLOCATED( pt_av ) )  CALL wrd_mpi_io( 'pt_av', pt_av )
1499
1500       IF ( humidity )  THEN
1501
1502          CALL wrd_mpi_io( 'q', q )
1503          IF ( ALLOCATED( q_av ) )  CALL wrd_mpi_io( 'q_av', q_av )
1504
1505          IF ( cloud_droplets )  THEN
1506
1507             CALL wrd_mpi_io( 'ql', ql )
1508             IF ( ALLOCATED( ql_av ) )  CALL wrd_mpi_io( 'ql_av', ql_av )
1509
1510          ENDIF
1511
1512          IF ( ALLOCATED( qsurf_av ) )  CALL wrd_mpi_io( 'qsurf_av', qsurf_av )
1513          IF ( ALLOCATED( qsws_av ) )  CALL wrd_mpi_io( 'qsws_av', qsws_av )
1514
1515       ENDIF
1516
1517       IF ( passive_scalar )  THEN
1518
1519          CALL wrd_mpi_io( 's', s )
1520          IF ( ALLOCATED( s_av ) )  CALL wrd_mpi_io( 's_av',  s_av )
1521          IF ( ALLOCATED( ssurf_av ) )  CALL wrd_mpi_io( 'ssurf_av', ssurf_av )
1522          IF ( ALLOCATED( ssws_av ) )  CALL wrd_mpi_io( 'ssws_av', ssws_av )
1523
1524       ENDIF
1525
1526       IF ( ALLOCATED( ql_c_av ) )  CALL wrd_mpi_io( 'ql_c_av', ql_c_av )
1527       IF ( ALLOCATED( ql_v_av ) )  CALL wrd_mpi_io( 'ql_v_av', ql_v_av )
1528       IF ( ALLOCATED( ql_vp_av ) )  CALL wrd_mpi_io( 'ql_vp_av', ql_vp_av )
1529       IF ( ALLOCATED( qv_av ) )  CALL wrd_mpi_io( 'qv_av', qv_av )
1530!
1531!--    Only PE0 writes random_iv and random_iy to restart file.
1532!--    ATTENTION: If one value for every PE is required, the general approach of PE indendent
1533!--    restart will be lost. That means that in general the parallel random number generator
1534!--    in random_generatot_parallel_mod should be used!
1535       CALL wrd_mpi_io_global_array( 'random_iv', random_iv )
1536       CALL wrd_mpi_io( 'random_iy', random_iy )
1537
1538       IF ( ALLOCATED( seq_random_array ) )  THEN
1539          CALL wrd_mpi_io( 'id_random_array', id_random_array )
1540          DO  i = 1, SIZE( seq_random_array, 1 )
1541             WRITE( tmp_name, '(A,I2.2)' )  'seq_random_array', i
1542             CALL wrd_mpi_io( TRIM( tmp_name ), seq_random_array(i,:,:) )
1543          ENDDO
1544       ENDIF
1545       IF ( ALLOCATED( s_av ) )  CALL wrd_mpi_io( 's_av', s_av )
1546       IF ( ALLOCATED( shf_av ) )  CALL wrd_mpi_io( 'shf_av', shf_av )
1547       IF ( ALLOCATED( ts_av ) )  CALL wrd_mpi_io( 'ts_av', ts_av )
1548       CALL wrd_mpi_io( 'u', u)
1549       IF ( ALLOCATED( u_av ) )  CALL wrd_mpi_io( 'u_av', u_av )
1550       IF ( ALLOCATED( u_m_l ) )  CALL wrd_mpi_io( 'u_m_l', u_m_l )
1551       IF ( ALLOCATED( u_m_n ) )  CALL wrd_mpi_io( 'u_m_n', u_m_n )
1552       IF ( ALLOCATED( u_m_r ) )  CALL wrd_mpi_io( 'u_m_r', u_m_r )
1553       IF ( ALLOCATED( u_m_s ) )  CALL wrd_mpi_io( 'u_m_s', u_m_s )
1554       IF ( ALLOCATED( us_av ) )  CALL wrd_mpi_io( 'us_av', us_av )
1555       CALL wrd_mpi_io( 'v', v )
1556       IF ( ALLOCATED( v_av ) )  CALL wrd_mpi_io( 'v_av', v_av )
1557       IF ( ALLOCATED( v_m_l ) )  CALL wrd_mpi_io( 'v_m_l', v_m_l )
1558       IF ( ALLOCATED( v_m_n ) )  CALL wrd_mpi_io( 'v_m_n', v_m_n )
1559       IF ( ALLOCATED( v_m_r ) )  CALL wrd_mpi_io( 'v_m_r', v_m_r )
1560       IF ( ALLOCATED( v_m_s ) )  CALL wrd_mpi_io( 'v_m_s', v_m_s )
1561       IF ( humidity )  THEN
1562          CALL wrd_mpi_io( 'vpt',  vpt )
1563          IF ( ALLOCATED( vpt_av ) )  CALL wrd_mpi_io( 'vpt_av', vpt_av )
1564       ENDIF
1565       CALL wrd_mpi_io( 'w', w)
1566       IF ( ALLOCATED( w_av ) )  CALL wrd_mpi_io( 'w_av', w_av )
1567       IF ( ALLOCATED( w_m_l ) )  CALL wrd_mpi_io( 'w_m_l', w_m_l )
1568       IF ( ALLOCATED( w_m_n ) )  CALL wrd_mpi_io( 'w_m_n', w_m_n )
1569       IF ( ALLOCATED( w_m_r ) )  CALL wrd_mpi_io( 'w_m_r', w_m_r )
1570       IF ( ALLOCATED( w_m_s ) )  CALL wrd_mpi_io( 'w_m_s', w_m_s )
1571       IF ( ALLOCATED( z0_av ) )  CALL wrd_mpi_io( 'z0_av', z0_av )
1572       IF ( ALLOCATED( z0h_av ) )  CALL wrd_mpi_io( 'z0h_av', z0h_av )
1573       IF ( ALLOCATED( z0q_av ) )  CALL wrd_mpi_io( 'z0q_av', z0q_av )
1574       IF ( land_surface  .OR.  urban_surface )  THEN
1575          IF ( ALLOCATED( ghf_av ) )  CALL wrd_mpi_io( 'ghf_av', ghf_av )
1576          IF ( ALLOCATED( r_a_av ) )  CALL wrd_mpi_io( 'r_a_av', r_a_av )
1577       ENDIF
1578       IF ( ALLOCATED( tsurf_av ) )  CALL wrd_mpi_io( 'tsurf_av', tsurf_av )
1579
1580    ENDIF
1581
1582    CALL surface_wrd_local
1583
1584!
1585!-- Write restart data of other modules
1586    CALL module_interface_wrd_local
1587
1588!
1589!-- Write end label
1590    IF (  restart_data_format_output == 'fortran_binary' )  THEN
1591       CALL wrd_write_string( '*** end ***' )
1592    ENDIF
1593
1594 END SUBROUTINE wrd_local
1595
1596
1597 END MODULE write_restart_data_mod
Note: See TracBrowser for help on using the repository browser.