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

Last change on this file since 2963 was 2956, checked in by Giersch, 6 years ago

Bugfix of the allocation of spectrum_x and spectrum_y in case of restart runs, spectrum_x and spectrum_y are now treat as global restart data not local

  • Property svn:keywords set to Id
File size: 39.7 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
6! terms of the GNU General Public License as published by the Free Software
7! Foundation, either version 3 of the License, or (at your option) any later
8! version.
9!
10! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
11! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13!
14! You should have received a copy of the GNU General Public License along with
15! PALM. If not, see <http://www.gnu.org/licenses/>.
16!
17! Copyright 1997-2018 Leibniz Universitaet Hannover
18!------------------------------------------------------------------------------!
19!
20! Current revisions:
21! -----------------
22!
23!
24! Former revisions:
25! -----------------
26! $Id: write_restart_data_mod.f90 2956 2018-04-10 11:01:03Z suehring $
27! spectrum_x and spectrum_y have been moved to global data
28!
29! 2921 2018-03-22 15:05:23Z Giersch
30! spinup_time, day_of_year_init and time_utc_init are also written out now
31!
32! 2912 2018-03-20 13:00:05Z knoop
33! Added gust module interface calls
34!
35! 2894 2018-03-15 09:17:58Z Giersch
36! Initial revision
37!
38!
39! Description:
40! ------------
41!> Writes restart data into binary file(s) for restart runs.
42!------------------------------------------------------------------------------!
43 MODULE write_restart_data_mod
44
45
46    USE control_parameters
47 
48    USE kinds     
49
50    USE pegrid,                                                                &
51        ONLY:  myid, numprocs
52     
53
54    IMPLICIT NONE
55
56
57    INTERFACE wrd_global
58       MODULE PROCEDURE wrd_global
59    END INTERFACE wrd_global
60
61    INTERFACE wrd_local
62       MODULE PROCEDURE wrd_local
63    END INTERFACE wrd_local
64
65
66    PUBLIC wrd_local, wrd_global
67
68
69 CONTAINS
70
71
72! Description:
73! ------------
74!> Global data of control variables and arrays is written out for
75!> restarts (binary format).
76!> This information is only written to the file opened by PE0.
77!------------------------------------------------------------------------------!
78    SUBROUTINE wrd_global
79
80
81       USE arrays_3d,                                                          &
82           ONLY:  inflow_damping_factor, mean_inflow_profiles, pt_init,        &
83                  q_init, ref_state, s_init, sa_init, u_init, ug, v_init, vg
84
85       USE date_and_time_mod,                                                  &
86           ONLY:  day_of_year_init, time_utc_init
87
88       USE flight_mod,                                                         &
89           ONLY:  flight_wrd_global
90
91       USE grid_variables,                                                     &
92           ONLY:  dx, dy
93
94       USE gust_mod,                                                           &
95           ONLY :  gust_module_enabled, gust_wrd_global
96
97       USE indices,                                                            &
98           ONLY:  nx, ny, nz
99
100       USE microphysics_mod,                                                   &
101           ONLY:  c_sedimentation, cloud_water_sedimentation,                  &
102                  collision_turbulence, limiter_sedimentation, nc_const,       &
103                  ventilation_effect
104
105       USE model_1d_mod,                                                       &
106           ONLY:  damp_level_1d, dt_pr_1d, dt_run_control_1d, end_time_1d
107
108       USE netcdf_interface,                                                   &
109           ONLY:  netcdf_precision, output_for_t0
110
111       USE particle_attributes,                                                &
112           ONLY:  curvature_solution_effects
113
114       USE pegrid,                                                             &
115           ONLY:  hor_index_bounds, collective_wait                               
116
117       USE radiation_model_mod,                                                &
118           ONLY:  time_radiation
119
120       USE spectra_mod,                                                        &
121           ONLY:  average_count_sp, spectrum_x, spectrum_y
122
123       USE synthetic_turbulence_generator_mod,                                 &
124           ONLY:  stg_wrd_global
125
126       USE statistics,                                                         &
127           ONLY:  statistic_regions, hom, hom_sum, u_max, u_max_ijk, v_max,    &
128                  v_max_ijk, w_max, w_max_ijk
129
130       USE user_write_restart_data_mod,                                        &
131           ONLY:  user_wrd_global 
132
133       USE vertical_nesting_mod,                                               &
134           ONLY:  vnest_init
135
136       USE wind_turbine_model_mod,                                             &
137           ONLY:  wtm_wrd_global
138     
139
140       IMPLICIT NONE
141
142       CHARACTER (LEN=10)  ::  binary_version_global   !<
143
144
145       binary_version_global = '4.7'
146
147       CALL wrd_write_string( 'binary_version_global' )
148       WRITE ( 14 )  binary_version_global
149
150       CALL wrd_write_string( 'numprocs' )
151       WRITE ( 14 )  numprocs
152
153       CALL wrd_write_string( 'hor_index_bounds' ) 
154       WRITE ( 14 )  hor_index_bounds
155
156       CALL wrd_write_string( 'nz' ) 
157       WRITE ( 14 )  nz
158
159       CALL wrd_write_string( 'max_pr_user' ) 
160       WRITE ( 14 )  max_pr_user
161
162       CALL wrd_write_string( 'statistic_regions' ) 
163       WRITE ( 14 )  statistic_regions
164
165!
166!-- Caution: After changes in the following parameter-list, the
167!-- -------  version number stored in the variable binary_version_global has to
168!--          be increased. The same changes must also be done in the parameter-
169!--          list in rrd_global.
170
171       CALL wrd_write_string( 'advected_distance_x' ) 
172       WRITE ( 14 )  advected_distance_x
173
174       CALL wrd_write_string( 'advected_distance_y' ) 
175       WRITE ( 14 )  advected_distance_y
176
177       CALL wrd_write_string( 'alpha_surface' ) 
178       WRITE ( 14 )  alpha_surface 
179
180       CALL wrd_write_string( 'average_count_pr' ) 
181       WRITE ( 14 )  average_count_pr
182
183       CALL wrd_write_string( 'average_count_sp' ) 
184       WRITE ( 14 )  average_count_sp
185
186       CALL wrd_write_string( 'average_count_3d' ) 
187       WRITE ( 14 )  average_count_3d
188
189       CALL wrd_write_string( 'bc_e_b' ) 
190       WRITE ( 14 )  bc_e_b
191
192       CALL wrd_write_string( 'bc_lr' ) 
193       WRITE ( 14 )  bc_lr
194
195       CALL wrd_write_string( 'bc_ns' ) 
196       WRITE ( 14 )  bc_ns
197
198       CALL wrd_write_string( 'bc_p_b' ) 
199       WRITE ( 14 )  bc_p_b
200
201       CALL wrd_write_string( 'bc_p_t' ) 
202       WRITE ( 14 )  bc_p_t
203
204       CALL wrd_write_string( 'bc_pt_b' ) 
205       WRITE ( 14 )  bc_pt_b
206
207       CALL wrd_write_string( 'bc_pt_t' ) 
208       WRITE ( 14 )  bc_pt_t
209
210       CALL wrd_write_string( 'bc_pt_t_val' ) 
211       WRITE ( 14 )  bc_pt_t_val
212
213       CALL wrd_write_string( 'bc_q_b' ) 
214       WRITE ( 14 )  bc_q_b
215
216       CALL wrd_write_string( 'bc_q_t' ) 
217       WRITE ( 14 )  bc_q_t
218
219       CALL wrd_write_string( 'bc_q_t_val' ) 
220       WRITE ( 14 )  bc_q_t_val
221
222       CALL wrd_write_string( 'bc_s_b' ) 
223       WRITE ( 14 )  bc_s_b
224
225       CALL wrd_write_string( 'bc_s_t' ) 
226       WRITE ( 14 )  bc_s_t
227
228       CALL wrd_write_string( 'bc_sa_t' ) 
229       WRITE ( 14 )  bc_sa_t
230
231       CALL wrd_write_string( 'bc_uv_b' ) 
232       WRITE ( 14 )  bc_uv_b
233
234       CALL wrd_write_string( 'bc_uv_t' ) 
235       WRITE ( 14 )  bc_uv_t
236
237       CALL wrd_write_string( 'bottom_salinityflux' ) 
238       WRITE ( 14 )  bottom_salinityflux
239
240       CALL wrd_write_string( 'building_height' ) 
241       WRITE ( 14 )  building_height
242
243       CALL wrd_write_string( 'building_length_x' ) 
244       WRITE ( 14 )  building_length_x
245
246       CALL wrd_write_string( 'building_length_y' ) 
247       WRITE ( 14 )  building_length_y
248
249       CALL wrd_write_string( 'building_wall_left' ) 
250       WRITE ( 14 )  building_wall_left
251
252       CALL wrd_write_string( 'building_wall_south' ) 
253       WRITE ( 14 )  building_wall_south
254
255       CALL wrd_write_string( 'c_sedimentation' ) 
256       WRITE ( 14 )  c_sedimentation
257
258       CALL wrd_write_string( 'call_psolver_at_all_substeps' ) 
259       WRITE ( 14 )  call_psolver_at_all_substeps
260
261       CALL wrd_write_string( 'canyon_height' ) 
262       WRITE ( 14 )  canyon_height 
263
264       CALL wrd_write_string( 'canyon_wall_left' ) 
265       WRITE ( 14 )  canyon_wall_left
266
267       CALL wrd_write_string( 'canyon_wall_south' ) 
268       WRITE ( 14 )  canyon_wall_south
269
270       CALL wrd_write_string( 'canyon_width_x' ) 
271       WRITE ( 14 )  canyon_width_x
272
273       CALL wrd_write_string( 'canyon_width_y' ) 
274       WRITE ( 14 )  canyon_width_y
275
276       CALL wrd_write_string( 'cfl_factor' ) 
277       WRITE ( 14 )  cfl_factor
278
279       CALL wrd_write_string( 'cloud_droplets' ) 
280       WRITE ( 14 )  cloud_droplets
281
282       CALL wrd_write_string( 'cloud_physics' ) 
283       WRITE ( 14 )  cloud_physics
284
285       CALL wrd_write_string( 'cloud_scheme' ) 
286       WRITE ( 14 )  cloud_scheme
287
288       CALL wrd_write_string( 'cloud_top_radiation' ) 
289       WRITE ( 14 )  cloud_top_radiation
290
291       CALL wrd_write_string( 'cloud_water_sedimentation' ) 
292       WRITE ( 14 )  cloud_water_sedimentation
293
294       CALL wrd_write_string( 'collective_wait' ) 
295       WRITE ( 14 )  collective_wait
296
297       CALL wrd_write_string( 'collision_turbulence' ) 
298       WRITE ( 14 )  collision_turbulence
299
300       CALL wrd_write_string( 'conserve_volume_flow' ) 
301       WRITE ( 14 )  conserve_volume_flow
302
303       CALL wrd_write_string( 'conserve_volume_flow_mode' ) 
304       WRITE ( 14 )  conserve_volume_flow_mode
305
306       CALL wrd_write_string( 'constant_flux_layer' ) 
307       WRITE ( 14 )  constant_flux_layer
308
309       CALL wrd_write_string( 'coupling_start_time' ) 
310       WRITE ( 14 )  coupling_start_time
311
312       CALL wrd_write_string( 'current_timestep_number' ) 
313       WRITE ( 14 )  current_timestep_number
314
315       CALL wrd_write_string( 'curvature_solution_effects' ) 
316       WRITE ( 14 )  curvature_solution_effects
317
318       CALL wrd_write_string( 'cycle_mg' ) 
319       WRITE ( 14 )  cycle_mg
320
321       CALL wrd_write_string( 'damp_level_1d' ) 
322       WRITE ( 14 )  damp_level_1d
323
324       CALL wrd_write_string( 'day_of_year_init' ) 
325       WRITE ( 14 )  day_of_year_init
326
327       CALL wrd_write_string( 'dissipation_1d' ) 
328       WRITE ( 14 )  dissipation_1d
329
330       CALL wrd_write_string( 'do2d_xy_time_count' ) 
331       WRITE ( 14 )  do2d_xy_time_count
332
333       CALL wrd_write_string( 'do2d_xz_time_count' ) 
334       WRITE ( 14 )  do2d_xz_time_count
335
336       CALL wrd_write_string( 'do2d_yz_time_count' ) 
337       WRITE ( 14 )  do2d_yz_time_count
338
339       CALL wrd_write_string( 'do3d_time_count' ) 
340       WRITE ( 14 )  do3d_time_count
341
342       CALL wrd_write_string( 'dp_external' ) 
343       WRITE ( 14 )  dp_external
344
345       CALL wrd_write_string( 'dp_level_b' ) 
346       WRITE ( 14 )  dp_level_b
347
348       CALL wrd_write_string( 'dp_smooth' ) 
349       WRITE ( 14 )  dp_smooth
350
351       CALL wrd_write_string( 'dpdxy' ) 
352       WRITE ( 14 )  dpdxy
353
354       CALL wrd_write_string( 'dt_3d' ) 
355       WRITE ( 14 )  dt_3d
356
357       CALL wrd_write_string( 'dt_pr_1d' ) 
358       WRITE ( 14 )  dt_pr_1d
359
360       CALL wrd_write_string( 'dt_run_control_1d' ) 
361       WRITE ( 14 )  dt_run_control_1d
362
363       CALL wrd_write_string( 'dvrp_filecount' ) 
364       WRITE ( 14 )  dvrp_filecount
365
366       CALL wrd_write_string( 'dx' ) 
367       WRITE ( 14 )  dx
368
369       CALL wrd_write_string( 'dy' ) 
370       WRITE ( 14 )  dy
371
372       CALL wrd_write_string( 'dz' ) 
373       WRITE ( 14 )  dz
374
375       CALL wrd_write_string( 'dz_max' ) 
376       WRITE ( 14 )  dz_max
377
378       CALL wrd_write_string( 'dz_stretch_factor' ) 
379       WRITE ( 14 )  dz_stretch_factor
380
381       CALL wrd_write_string( 'dz_stretch_level' ) 
382       WRITE ( 14 )  dz_stretch_level
383
384       CALL wrd_write_string( 'e_min' ) 
385       WRITE ( 14 )  e_min
386
387       CALL wrd_write_string( 'end_time_1d' ) 
388       WRITE ( 14 )  end_time_1d
389
390       CALL wrd_write_string( 'fft_method' ) 
391       WRITE ( 14 )  fft_method
392
393       CALL wrd_write_string( 'first_call_lpm' ) 
394       WRITE ( 14 )  first_call_lpm
395
396       CALL wrd_write_string( 'galilei_transformation' ) 
397       WRITE ( 14 )  galilei_transformation
398
399       CALL wrd_write_string( 'hom' ) 
400       WRITE ( 14 )  hom
401
402       CALL wrd_write_string( 'hom_sum' ) 
403       WRITE ( 14 )  hom_sum
404
405       CALL wrd_write_string( 'humidity' ) 
406       WRITE ( 14 )  humidity
407
408       IF ( ALLOCATED( inflow_damping_factor ) )  THEN
409          CALL wrd_write_string( 'inflow_damping_factor' ) 
410          WRITE ( 14 )  inflow_damping_factor
411       ENDIF
412
413       CALL wrd_write_string( 'inflow_damping_height' ) 
414       WRITE ( 14 )  inflow_damping_height
415
416       CALL wrd_write_string( 'inflow_damping_width' ) 
417       WRITE ( 14 )  inflow_damping_width
418
419       CALL wrd_write_string( 'inflow_disturbance_begin' ) 
420       WRITE ( 14 )  inflow_disturbance_begin
421
422       CALL wrd_write_string( 'inflow_disturbance_end' ) 
423       WRITE ( 14 )  inflow_disturbance_end
424
425       CALL wrd_write_string( 'km_constant' ) 
426       WRITE ( 14 )  km_constant
427
428       CALL wrd_write_string( 'large_scale_forcing' ) 
429       WRITE ( 14 )  large_scale_forcing
430
431       CALL wrd_write_string( 'large_scale_subsidence' ) 
432       WRITE ( 14 )  large_scale_subsidence
433
434       CALL wrd_write_string( 'latitude' ) 
435       WRITE ( 14 )  latitude
436
437       CALL wrd_write_string( 'limiter_sedimentation' ) 
438       WRITE ( 14 )  limiter_sedimentation
439
440       CALL wrd_write_string( 'longitude' )
441       WRITE ( 14 )  longitude 
442
443       CALL wrd_write_string( 'loop_optimization' ) 
444       WRITE ( 14 )  loop_optimization
445
446       CALL wrd_write_string( 'masking_method' ) 
447       WRITE ( 14 )  masking_method
448
449       IF ( ALLOCATED( mean_inflow_profiles ) )  THEN
450          CALL wrd_write_string( 'mean_inflow_profiles' ) 
451          WRITE ( 14 )  mean_inflow_profiles
452       ENDIF
453
454       CALL wrd_write_string( 'mg_cycles' ) 
455       WRITE ( 14 )  mg_cycles
456
457       CALL wrd_write_string( 'mg_switch_to_pe0_level' ) 
458       WRITE ( 14 )  mg_switch_to_pe0_level
459
460       CALL wrd_write_string( 'mixing_length_1d' ) 
461       WRITE ( 14 )  mixing_length_1d
462
463       CALL wrd_write_string( 'momentum_advec' ) 
464       WRITE ( 14 )  momentum_advec
465
466       CALL wrd_write_string( 'most_method' ) 
467       WRITE ( 14 )  most_method
468
469       CALL wrd_write_string( 'nc_const' ) 
470       WRITE ( 14 )  nc_const
471
472       CALL wrd_write_string( 'netcdf_precision' ) 
473       WRITE ( 14 )  netcdf_precision
474
475       CALL wrd_write_string( 'neutral' ) 
476       WRITE ( 14 )  neutral
477
478       CALL wrd_write_string( 'ngsrb' ) 
479       WRITE ( 14 )  ngsrb
480
481       CALL wrd_write_string( 'nsor' ) 
482       WRITE ( 14 )  nsor
483
484       CALL wrd_write_string( 'nsor_ini' ) 
485       WRITE ( 14 )  nsor_ini
486
487       CALL wrd_write_string( 'nudging' ) 
488       WRITE ( 14 )  nudging
489
490       CALL wrd_write_string( 'num_leg' ) 
491       WRITE ( 14 )  num_leg
492
493       CALL wrd_write_string( 'nx' ) 
494       WRITE ( 14 )  nx
495
496       CALL wrd_write_string( 'ny' ) 
497       WRITE ( 14 )  ny
498
499       CALL wrd_write_string( 'ocean' ) 
500       WRITE ( 14 )  ocean
501
502       CALL wrd_write_string( 'old_dt' ) 
503       WRITE ( 14 )  old_dt
504
505       CALL wrd_write_string( 'omega' ) 
506       WRITE ( 14 )  omega
507
508       CALL wrd_write_string( 'omega_sor' ) 
509       WRITE ( 14 )  omega_sor
510
511       CALL wrd_write_string( 'output_for_t0' ) 
512       WRITE ( 14 )  output_for_t0
513
514       CALL wrd_write_string( 'passive_scalar' ) 
515       WRITE ( 14 )  passive_scalar
516
517       CALL wrd_write_string( 'prandtl_number' ) 
518       WRITE ( 14 )  prandtl_number
519
520       CALL wrd_write_string( 'precipitation' ) 
521       WRITE ( 14 )  precipitation
522
523       CALL wrd_write_string( 'psolver' )
524       WRITE ( 14 )  psolver 
525
526       CALL wrd_write_string( 'pt_damping_factor' ) 
527       WRITE ( 14 )  pt_damping_factor
528
529       CALL wrd_write_string( 'pt_damping_width' ) 
530       WRITE ( 14 )  pt_damping_width
531
532       CALL wrd_write_string( 'pt_init' ) 
533       WRITE ( 14 )  pt_init
534
535       CALL wrd_write_string( 'pt_reference' ) 
536       WRITE ( 14 )  pt_reference
537
538       CALL wrd_write_string( 'pt_surface' ) 
539       WRITE ( 14 )  pt_surface
540
541       CALL wrd_write_string( 'pt_surface_initial_change' ) 
542       WRITE ( 14 )  pt_surface_initial_change
543
544       CALL wrd_write_string( 'pt_vertical_gradient' ) 
545       WRITE ( 14 )  pt_vertical_gradient
546
547       CALL wrd_write_string( 'pt_vertical_gradient_level' ) 
548       WRITE ( 14 )  pt_vertical_gradient_level
549
550       CALL wrd_write_string( 'pt_vertical_gradient_level_ind' ) 
551       WRITE ( 14 )  pt_vertical_gradient_level_ind
552
553       CALL wrd_write_string( 'q_init' ) 
554       WRITE ( 14 )  q_init
555
556       CALL wrd_write_string( 'q_surface' ) 
557       WRITE ( 14 )  q_surface
558
559       CALL wrd_write_string( 'q_surface_initial_change' ) 
560       WRITE ( 14 )  q_surface_initial_change
561
562       CALL wrd_write_string( 'q_vertical_gradient' ) 
563       WRITE ( 14 )  q_vertical_gradient
564
565       CALL wrd_write_string( 'q_vertical_gradient_level' ) 
566       WRITE ( 14 )  q_vertical_gradient_level
567
568       CALL wrd_write_string( 'q_vertical_gradient_level_ind' ) 
569       WRITE ( 14 )  q_vertical_gradient_level_ind
570
571       CALL wrd_write_string( 'random_generator' ) 
572       WRITE ( 14 )  random_generator
573
574       CALL wrd_write_string( 'random_heatflux' ) 
575       WRITE ( 14 )  random_heatflux
576
577       CALL wrd_write_string( 'rans_mode' ) 
578       WRITE ( 14 )  rans_mode
579
580       CALL wrd_write_string( 'rayleigh_damping_factor' ) 
581       WRITE ( 14 )  rayleigh_damping_factor
582
583       CALL wrd_write_string( 'rayleigh_damping_height' ) 
584       WRITE ( 14 )  rayleigh_damping_height
585
586       CALL wrd_write_string( 'recycling_width' ) 
587       WRITE ( 14 )  recycling_width
588
589       CALL wrd_write_string( 'recycling_yshift' ) 
590       WRITE ( 14 )  recycling_yshift
591
592       CALL wrd_write_string( 'ref_state' ) 
593       WRITE ( 14 )  ref_state
594
595       CALL wrd_write_string( 'reference_state' ) 
596       WRITE ( 14 )  reference_state
597
598       CALL wrd_write_string( 'residual_limit' ) 
599       WRITE ( 14 )  residual_limit
600
601       CALL wrd_write_string( 'roughness_length' ) 
602       WRITE ( 14 )  roughness_length
603
604       CALL wrd_write_string( 'run_coupled' ) 
605       WRITE ( 14 )  run_coupled
606
607       CALL wrd_write_string( 'runnr' ) 
608       WRITE ( 14 )  runnr
609
610       CALL wrd_write_string( 's_init' ) 
611       WRITE ( 14 )  s_init
612
613       CALL wrd_write_string( 's_surface' ) 
614       WRITE ( 14 )  s_surface
615
616       CALL wrd_write_string( 's_surface_initial_change' ) 
617       WRITE ( 14 )  s_surface_initial_change
618
619       CALL wrd_write_string( 's_vertical_gradient' ) 
620       WRITE ( 14 )  s_vertical_gradient
621
622       CALL wrd_write_string( 's_vertical_gradient_level' ) 
623       WRITE ( 14 )  s_vertical_gradient_level
624
625       CALL wrd_write_string( 's_vertical_gradient_level_ind' ) 
626       WRITE ( 14 )  s_vertical_gradient_level_ind
627
628       CALL wrd_write_string( 'sa_init' ) 
629       WRITE ( 14 )  sa_init
630
631       CALL wrd_write_string( 'sa_surface' ) 
632       WRITE ( 14 )  sa_surface
633
634       CALL wrd_write_string( 'sa_vertical_gradient' ) 
635       WRITE ( 14 )  sa_vertical_gradient
636
637       CALL wrd_write_string( 'sa_vertical_gradient_level' ) 
638       WRITE ( 14 )  sa_vertical_gradient_level
639
640       CALL wrd_write_string( 'scalar_advec' ) 
641       WRITE ( 14 )  scalar_advec
642
643       CALL wrd_write_string( 'simulated_time' ) 
644       WRITE ( 14 )  simulated_time
645
646       IF ( ALLOCATED( spectrum_x ) )  THEN
647          CALL wrd_write_string( 'spectrum_x' ) 
648          WRITE ( 14 )  spectrum_x
649          CALL wrd_write_string( 'spectrum_y' ) 
650          WRITE ( 14 )  spectrum_y
651       ENDIF
652
653       CALL wrd_write_string( 'spinup_time ' ) 
654       WRITE ( 14 )  spinup_time 
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_dvrp' ) 
714       WRITE ( 14 )  time_dvrp
715
716       CALL wrd_write_string( 'time_radiation' ) 
717       WRITE ( 14 )  time_radiation
718
719       CALL wrd_write_string( 'time_restart' ) 
720       WRITE ( 14 )  time_restart
721
722       CALL wrd_write_string( 'time_run_control' ) 
723       WRITE ( 14 )  time_run_control
724
725       CALL wrd_write_string( 'time_since_reference_point' ) 
726       WRITE ( 14 )  time_since_reference_point
727
728       CALL wrd_write_string( 'time_utc_init' ) 
729       WRITE ( 14 )  time_utc_init
730
731       CALL wrd_write_string( 'timestep_scheme' ) 
732       WRITE ( 14 )  timestep_scheme
733
734       CALL wrd_write_string( 'top_heatflux' ) 
735       WRITE ( 14 )  top_heatflux
736
737       CALL wrd_write_string( 'top_momentumflux_u' ) 
738       WRITE ( 14 )  top_momentumflux_u
739
740       CALL wrd_write_string( 'top_momentumflux_v' ) 
741       WRITE ( 14 )  top_momentumflux_v
742
743       CALL wrd_write_string( 'top_salinityflux' ) 
744       WRITE ( 14 )  top_salinityflux
745
746       CALL wrd_write_string( 'top_scalarflux' ) 
747       WRITE ( 14 )  top_scalarflux
748
749       CALL wrd_write_string( 'topography' ) 
750       WRITE ( 14 )  topography
751
752       CALL wrd_write_string( 'topography_grid_convention' ) 
753       WRITE ( 14 )  topography_grid_convention
754
755       CALL wrd_write_string( 'tsc' ) 
756       WRITE ( 14 )  tsc
757
758       CALL wrd_write_string( 'tunnel_height' ) 
759       WRITE ( 14 )  tunnel_height
760
761       CALL wrd_write_string( 'tunnel_length' ) 
762       WRITE ( 14 )  tunnel_length
763
764       CALL wrd_write_string( 'tunnel_wall_depth' ) 
765       WRITE ( 14 )  tunnel_wall_depth
766
767       CALL wrd_write_string( 'tunnel_width_x' ) 
768       WRITE ( 14 )  tunnel_width_x
769
770       CALL wrd_write_string( 'tunnel_width_y' ) 
771       WRITE ( 14 )  tunnel_width_y
772
773       CALL wrd_write_string( 'turbulence_closure' ) 
774       WRITE ( 14 )  turbulence_closure
775
776       CALL wrd_write_string( 'turbulent_inflow' ) 
777       WRITE ( 14 )  turbulent_inflow
778
779       CALL wrd_write_string( 'u_bulk' ) 
780       WRITE ( 14 )  u_bulk
781
782       CALL wrd_write_string( 'u_init' ) 
783       WRITE ( 14 )  u_init
784
785       CALL wrd_write_string( 'u_max' ) 
786       WRITE ( 14 )  u_max
787
788       CALL wrd_write_string( 'u_max_ijk' ) 
789       WRITE ( 14 )  u_max_ijk
790
791       CALL wrd_write_string( 'ug' ) 
792       WRITE ( 14 )  ug
793
794       CALL wrd_write_string( 'ug_surface' ) 
795       WRITE ( 14 )  ug_surface
796
797       CALL wrd_write_string( 'ug_vertical_gradient' ) 
798       WRITE ( 14 )  ug_vertical_gradient
799
800       CALL wrd_write_string( 'ug_vertical_gradient_level' ) 
801       WRITE ( 14 )  ug_vertical_gradient_level
802
803       CALL wrd_write_string( 'ug_vertical_gradient_level_ind' ) 
804       WRITE ( 14 )  ug_vertical_gradient_level_ind
805
806       CALL wrd_write_string( 'use_surface_fluxes' ) 
807       WRITE ( 14 )  use_surface_fluxes
808
809       CALL wrd_write_string( 'use_top_fluxes' ) 
810       WRITE ( 14 )  use_top_fluxes
811
812       CALL wrd_write_string( 'use_ug_for_galilei_tr' ) 
813       WRITE ( 14 )  use_ug_for_galilei_tr
814
815       CALL wrd_write_string( 'use_upstream_for_tke' ) 
816       WRITE ( 14 )  use_upstream_for_tke
817
818       CALL wrd_write_string( 'v_bulk' ) 
819       WRITE ( 14 )  v_bulk
820
821       CALL wrd_write_string( 'v_init' ) 
822       WRITE ( 14 )  v_init
823
824       CALL wrd_write_string( 'v_max' ) 
825       WRITE ( 14 )  v_max
826
827       CALL wrd_write_string( 'v_max_ijk' ) 
828       WRITE ( 14 )  v_max_ijk
829
830       CALL wrd_write_string( 'ventilation_effect' ) 
831       WRITE ( 14 )  ventilation_effect
832
833       CALL wrd_write_string( 'vg' ) 
834       WRITE ( 14 )  vg
835
836       CALL wrd_write_string( 'vg_surface' ) 
837       WRITE ( 14 )  vg_surface
838
839       CALL wrd_write_string( 'vg_vertical_gradient' ) 
840       WRITE ( 14 ) vg_vertical_gradient
841
842       CALL wrd_write_string( 'vg_vertical_gradient_level' ) 
843       WRITE ( 14 )  vg_vertical_gradient_level
844
845       CALL wrd_write_string( 'vg_vertical_gradient_level_ind' ) 
846       WRITE ( 14 )  vg_vertical_gradient_level_ind
847
848       CALL wrd_write_string( 'virtual_flight' ) 
849       WRITE ( 14 )  virtual_flight
850
851       CALL wrd_write_string( 'vnest_init' ) 
852       WRITE ( 14 )  vnest_init
853
854       CALL wrd_write_string( 'volume_flow_area' ) 
855       WRITE ( 14 )  volume_flow_area
856
857       CALL wrd_write_string( 'volume_flow_initial' ) 
858       WRITE ( 14 )  volume_flow_initial
859
860       CALL wrd_write_string( 'subs_vertical_gradient' ) 
861       WRITE ( 14 )  subs_vertical_gradient
862
863       CALL wrd_write_string( 'subs_vertical_gradient_level' ) 
864       WRITE ( 14 )  subs_vertical_gradient_level
865
866       CALL wrd_write_string( 'subs_vertical_gradient_level_i' ) 
867       WRITE ( 14 )  subs_vertical_gradient_level_i
868
869       CALL wrd_write_string( 'w_max' ) 
870       WRITE ( 14 )  w_max
871
872       CALL wrd_write_string( 'w_max_ijk' ) 
873       WRITE ( 14 )  w_max_ijk
874
875       CALL wrd_write_string( 'wall_adjustment' ) 
876       WRITE ( 14 )  wall_adjustment
877
878       CALL wrd_write_string( 'wall_heatflux' ) 
879       WRITE ( 14 )  wall_heatflux
880
881       CALL wrd_write_string( 'wall_humidityflux' ) 
882       WRITE ( 14 )  wall_humidityflux
883
884       CALL wrd_write_string( 'wall_salinityflux' ) 
885       WRITE ( 14 )  wall_salinityflux
886
887       CALL wrd_write_string( 'wall_scalarflux' ) 
888       WRITE ( 14 )  wall_scalarflux
889
890       CALL wrd_write_string( 'y_shift' ) 
891       WRITE ( 14 )  y_shift
892
893       CALL wrd_write_string( 'z0h_factor' ) 
894       WRITE ( 14 )  z0h_factor
895
896       CALL wrd_write_string( 'zeta_max' ) 
897       WRITE ( 14 )  zeta_max
898
899       CALL wrd_write_string( 'zeta_min' ) 
900       WRITE ( 14 )  zeta_min
901
902
903!   
904!-- The order of the calls can be different as in read_restart_data_mod where
905!-- the restart data will be read
906!
907!-- If required, write restart data for wind turbine model.
908       IF ( wind_turbine )  CALL wtm_wrd_global
909
910!
911!-- If required, write restart data for virtual measurements.
912       IF ( virtual_flight )  CALL flight_wrd_global
913
914!
915!-- If required, write restart data for turbulence generator.
916       IF ( syn_turb_gen )  CALL stg_wrd_global
917!
918!-- If required, write restart data for gust module.
919       IF ( gust_module_enabled )  CALL gust_wrd_global
920
921!
922!-- Write restart data for user data.
923       CALL user_wrd_global
924
925
926    END SUBROUTINE wrd_global
927
928
929!------------------------------------------------------------------------------!
930! Description:
931! ------------
932!> Processor specific data of variables and arrays is written out for
933!> restarts (binary format).
934!> This information is written to the file opened by each PE.
935!------------------------------------------------------------------------------!
936    SUBROUTINE wrd_local
937 
938
939       USE arrays_3d,                                                          &
940           ONLY:  e, kh, km, p, pt, q, ql, qc, nc, nr, prr,                    &
941                  precipitation_amount, qr, s, sa, u, u_m_l, u_m_n, u_m_r,     &
942                  u_m_s, v, v_m_l, v_m_n, v_m_r, v_m_s, vpt, w, w_m_l, w_m_n,  &
943                  w_m_r, w_m_s
944       
945       USE averaging
946
947       USE chemistry_model_mod,                                                &
948           ONLY:  chem_wrd_local
949
950       USE gust_mod,                                                           &
951           ONLY :  gust_module_enabled, gust_wrd_local
952               
953       USE indices,                                                            &
954           ONLY:  nxl, nxr, nys, nyn, nzb, nzt
955
956       USE land_surface_model_mod,                                             &
957           ONLY:  lsm_wrd_local
958       
959       USE particle_attributes,                                                &
960           ONLY:  iran_part
961
962       USE radiation_model_mod,                                                &
963           ONLY:  radiation, radiation_wrd_local
964   
965       USE random_function_mod,                                                &
966           ONLY:  random_iv, random_iy
967
968       USE random_generator_parallel,                                          &
969           ONLY:  id_random_array, seq_random_array
970
971       USE surface_mod,                                                        &
972           ONLY :  surface_wrd_local
973
974       USE urban_surface_mod,                                                  &
975           ONLY:  usm_wrd_local   
976
977       USE user_write_restart_data_mod,                                        &
978           ONLY:  user_wrd_local 
979
980
981       IMPLICIT NONE
982
983       CHARACTER (LEN=10) ::  binary_version_local   !<
984
985
986!
987!-- Write arrays.
988       binary_version_local = '4.7'
989
990       CALL wrd_write_string( 'binary_version_local' )
991       WRITE ( 14 )  binary_version_local
992
993       WRITE ( 14 )  numprocs, myid, nxl, nxr, nys, nyn, nzb, nzt
994
995!
996!-- Attention: After changes to the following output commands the version number
997!-- ---------  of the variable binary_version_local must be changed!
998!--            Also, the list of arrays to be read in rrd_local must be
999!--            adjusted accordingly.
1000       CALL wrd_write_string( 'e' ) 
1001       WRITE ( 14 )  e
1002
1003       IF ( ALLOCATED( e_av ) )  THEN
1004          CALL wrd_write_string( 'e_av' ) 
1005          WRITE ( 14 )  e_av
1006       ENDIF
1007
1008       CALL wrd_write_string( 'iran' ) 
1009       WRITE ( 14 )  iran, iran_part 
1010
1011       CALL wrd_write_string( 'kh' ) 
1012       WRITE ( 14 )  kh
1013 
1014
1015       IF ( ALLOCATED( kh_av ) )  THEN
1016          CALL wrd_write_string( 'kh_av' ) 
1017          WRITE ( 14 )  kh_av
1018       ENDIF
1019
1020       CALL wrd_write_string( 'km' ) 
1021       WRITE ( 14 )  km
1022
1023       IF ( ALLOCATED( km_av ) )  THEN
1024          CALL wrd_write_string( 'km_av' ) 
1025          WRITE ( 14 )  km_av
1026       ENDIF
1027
1028       IF ( ALLOCATED( lpt_av ) )  THEN
1029          CALL wrd_write_string( 'lpt_av' ) 
1030          WRITE ( 14 )  lpt_av
1031       ENDIF
1032
1033       IF ( ALLOCATED( lwp_av ) )  THEN
1034          CALL wrd_write_string( 'lwp_av' ) 
1035          WRITE ( 14 )  lwp_av
1036       ENDIF
1037
1038       CALL wrd_write_string( 'p' ) 
1039       WRITE ( 14 )  p
1040
1041       IF ( ALLOCATED( p_av ) )  THEN
1042          CALL wrd_write_string( 'p_av' ) 
1043          WRITE ( 14 )  p_av
1044       ENDIF
1045
1046       IF ( ALLOCATED( pc_av ) )  THEN
1047          CALL wrd_write_string( 'pc_av' ) 
1048          WRITE ( 14 )  pc_av
1049       ENDIF
1050
1051       IF ( ALLOCATED( pr_av ) )  THEN
1052          CALL wrd_write_string( 'pr_av' ) 
1053          WRITE ( 14 )  pr_av
1054       ENDIF
1055
1056       IF ( ALLOCATED( prr ) )  THEN
1057          CALL wrd_write_string( 'prr' ) 
1058          WRITE ( 14 )  prr
1059       ENDIF
1060
1061       IF ( ALLOCATED( prr_av ) )  THEN
1062          CALL wrd_write_string( 'prr_av' ) 
1063          WRITE ( 14 )  prr_av
1064       ENDIF
1065
1066       IF ( ALLOCATED( precipitation_amount ) )  THEN
1067          CALL wrd_write_string( 'precipitation_amount' ) 
1068          WRITE ( 14 )  precipitation_amount
1069       ENDIF
1070
1071       IF ( ALLOCATED( precipitation_rate_av ) )  THEN
1072          CALL wrd_write_string( 'precipitation_rate_av' ) 
1073          WRITE ( 14 )  precipitation_rate_av
1074       ENDIF
1075
1076       CALL wrd_write_string( 'pt' ) 
1077       WRITE ( 14 )  pt
1078
1079       IF ( ALLOCATED( pt_av ) )  THEN
1080          CALL wrd_write_string( 'pt_av' ) 
1081          WRITE ( 14 )  pt_av
1082       ENDIF
1083
1084       IF ( humidity )  THEN
1085
1086          CALL wrd_write_string( 'q' ) 
1087          WRITE ( 14 )  q
1088
1089          IF ( ALLOCATED( q_av ) )  THEN
1090             CALL wrd_write_string( 'q_av' ) 
1091             WRITE ( 14 )  q_av
1092          ENDIF
1093
1094          IF ( cloud_physics  .OR.  cloud_droplets )  THEN
1095
1096             CALL wrd_write_string( 'ql' ) 
1097             WRITE ( 14 )  ql
1098
1099             IF ( ALLOCATED( ql_av ) )  THEN
1100                CALL wrd_write_string( 'ql_av' ) 
1101                WRITE ( 14 )  ql_av
1102             ENDIF
1103
1104             IF ( .NOT. cloud_droplets )  THEN
1105
1106                CALL wrd_write_string( 'qc' ) 
1107                WRITE ( 14 )  qc
1108
1109                IF ( ALLOCATED( qc_av ) )  THEN
1110                   CALL wrd_write_string( 'qc_av' ) 
1111                   WRITE ( 14 )  qc_av
1112                ENDIF
1113
1114                IF ( microphysics_morrison )  THEN
1115
1116                   CALL wrd_write_string( 'nc' ) 
1117                   WRITE ( 14 )  nc
1118
1119                   IF ( ALLOCATED( nc_av ) )  THEN
1120                      CALL wrd_write_string( 'nc_av' ) 
1121                      WRITE ( 14 )  nc_av
1122                   ENDIF
1123
1124                ENDIF
1125
1126                IF ( microphysics_seifert )  THEN
1127
1128                   CALL wrd_write_string( 'nr' ) 
1129                   WRITE ( 14 )  nr
1130
1131                   IF ( ALLOCATED( nr_av ) )  THEN
1132                      CALL wrd_write_string( 'nr_av' ) 
1133                      WRITE ( 14 )  nr_av
1134                   ENDIF
1135
1136                   CALL wrd_write_string( 'qr' ) 
1137                   WRITE ( 14 )  qr
1138
1139                   IF ( ALLOCATED( qr_av ) )  THEN
1140                      CALL wrd_write_string( 'qr_av' ) 
1141                      WRITE ( 14 )  qr_av
1142                   ENDIF
1143
1144                ENDIF
1145             ENDIF
1146          ENDIF
1147
1148          IF ( ALLOCATED( qsws_av ) )  THEN
1149             CALL wrd_write_string( 'qsws_av' ) 
1150             WRITE ( 14 )  qsws_av
1151          ENDIF
1152
1153       ENDIF
1154
1155       IF ( passive_scalar )  THEN
1156
1157          CALL wrd_write_string( 's' ) 
1158          WRITE ( 14 )  s
1159
1160          IF ( ALLOCATED( s_av ) )  THEN
1161             CALL wrd_write_string( 's_av' ) 
1162             WRITE ( 14 )  s_av
1163          ENDIF
1164
1165          IF ( ALLOCATED( ssws_av ) )  THEN
1166             CALL wrd_write_string( 'ssws_av' ) 
1167             WRITE ( 14 )  ssws_av
1168          ENDIF
1169
1170       ENDIF
1171       
1172       IF ( ocean )  THEN
1173
1174          IF ( ALLOCATED( rho_ocean_av ) )  THEN
1175             CALL wrd_write_string( 'rho_ocean_av' ) 
1176             WRITE ( 14 )  rho_ocean_av
1177          ENDIF
1178
1179          CALL wrd_write_string( 'sa' ) 
1180          WRITE ( 14 )  sa
1181
1182          IF ( ALLOCATED( sa_av ) )  THEN
1183             CALL wrd_write_string( 'sa_av' ) 
1184             WRITE ( 14 )  sa_av
1185          ENDIF
1186
1187       ENDIF
1188
1189       IF ( ALLOCATED( ql_c_av ) )  THEN
1190          CALL wrd_write_string( 'ql_c_av' ) 
1191          WRITE ( 14 )  ql_c_av
1192       ENDIF
1193
1194       IF ( ALLOCATED( ql_v_av ) )  THEN
1195          CALL wrd_write_string( 'ql_v_av' ) 
1196          WRITE ( 14 )  ql_v_av
1197       ENDIF
1198
1199       IF ( ALLOCATED( ql_vp_av ) )  THEN
1200          CALL wrd_write_string( 'ql_vp_av' ) 
1201          WRITE ( 14 )  ql_vp_av
1202       ENDIF
1203
1204       IF ( ALLOCATED( qv_av ) )  THEN
1205          CALL wrd_write_string( 'qv_av' ) 
1206          WRITE ( 14 )  qv_av
1207       ENDIF
1208
1209       CALL wrd_write_string( 'random_iv' ) 
1210       WRITE ( 14 )  random_iv
1211       WRITE ( 14 )  random_iy
1212
1213       IF ( ALLOCATED( seq_random_array ) )  THEN
1214          CALL wrd_write_string( 'seq_random_array' ) 
1215          WRITE ( 14 )  id_random_array
1216          WRITE ( 14 )  seq_random_array 
1217       ENDIF
1218
1219       IF ( ALLOCATED( s_av ) )  THEN
1220          CALL wrd_write_string( 's_av' ) 
1221          WRITE ( 14 )  s_av
1222       ENDIF
1223
1224       IF ( ALLOCATED( shf_av ) )  THEN
1225          CALL wrd_write_string( 'shf_av' ) 
1226          WRITE ( 14 )  shf_av
1227       ENDIF
1228
1229       IF ( ALLOCATED( ts_av ) )  THEN
1230          CALL wrd_write_string( 'ts_av' ) 
1231          WRITE ( 14 ) ts_av
1232       ENDIF
1233
1234       CALL wrd_write_string( 'u' ) 
1235       WRITE ( 14 )  u
1236
1237       IF ( ALLOCATED( u_av ) )  THEN
1238          CALL wrd_write_string( 'u_av' ) 
1239          WRITE ( 14 )  u_av
1240       ENDIF
1241
1242       IF ( ALLOCATED( u_m_l ) )  THEN
1243          CALL wrd_write_string( 'u_m_l' ) 
1244          WRITE ( 14 )  u_m_l
1245       ENDIF
1246
1247       IF ( ALLOCATED( u_m_n ) )  THEN
1248          CALL wrd_write_string( 'u_m_n' ) 
1249          WRITE ( 14 )  u_m_n
1250       ENDIF
1251
1252       IF ( ALLOCATED( u_m_r ) )  THEN
1253          CALL wrd_write_string( 'u_m_r' ) 
1254          WRITE ( 14 )  u_m_r
1255       ENDIF
1256
1257       IF ( ALLOCATED( u_m_s ) )  THEN
1258          CALL wrd_write_string( 'u_m_s' ) 
1259          WRITE ( 14 )  u_m_s
1260       ENDIF
1261
1262       IF ( ALLOCATED( us_av ) )  THEN
1263          CALL wrd_write_string( 'us_av' ) 
1264          WRITE ( 14 )  us_av
1265       ENDIF
1266
1267       CALL wrd_write_string( 'v' ) 
1268       WRITE ( 14 )  v
1269
1270       IF ( ALLOCATED( v_av ) )  THEN
1271          CALL wrd_write_string( 'v_av' ) 
1272          WRITE ( 14 )  v_av
1273       ENDIF
1274
1275       IF ( ALLOCATED( v_m_l  ) )  THEN
1276          CALL wrd_write_string( 'v_m_l' ) 
1277          WRITE ( 14 )  v_m_l
1278       ENDIF
1279
1280       IF ( ALLOCATED( v_m_n ) )  THEN
1281          CALL wrd_write_string( 'v_m_n' ) 
1282          WRITE ( 14 )  v_m_n
1283       ENDIF
1284
1285       IF ( ALLOCATED( v_m_r ) )  THEN
1286          CALL wrd_write_string( 'v_m_r' ) 
1287          WRITE ( 14 )  v_m_r
1288       ENDIF
1289
1290       IF ( ALLOCATED( v_m_s ) )  THEN
1291          CALL wrd_write_string( 'v_m_s' ) 
1292          WRITE ( 14 )  v_m_s
1293       ENDIF
1294
1295       IF ( humidity )  THEN
1296
1297          CALL wrd_write_string( 'vpt' ) 
1298          WRITE ( 14 )  vpt
1299
1300          IF ( ALLOCATED( vpt_av ) )  THEN
1301             CALL wrd_write_string( 'vpt_av' ) 
1302             WRITE ( 14 ) vpt_av
1303          ENDIF
1304
1305       ENDIF
1306
1307       CALL wrd_write_string( 'w' ) 
1308       WRITE ( 14 )  w
1309
1310       IF ( ALLOCATED( w_av ) )  THEN
1311          CALL wrd_write_string( 'w_av' ) 
1312          WRITE ( 14 )  w_av
1313       ENDIF
1314
1315       IF ( ALLOCATED( w_m_l ) )  THEN
1316          CALL wrd_write_string( 'w_m_l' ) 
1317          WRITE ( 14 )  w_m_l
1318       ENDIF
1319
1320       IF ( ALLOCATED( w_m_n ) )  THEN
1321          CALL wrd_write_string( 'w_m_n' ) 
1322          WRITE ( 14 )  w_m_n
1323       ENDIF
1324
1325       IF ( ALLOCATED( w_m_r ) )  THEN
1326          CALL wrd_write_string( 'w_m_r' ) 
1327          WRITE ( 14 )  w_m_r
1328       ENDIF
1329
1330       IF ( ALLOCATED( w_m_s ) )  THEN
1331          CALL wrd_write_string( 'w_m_s' ) 
1332          WRITE ( 14 )  w_m_s
1333       ENDIF
1334
1335       IF ( ALLOCATED( z0_av ) )  THEN
1336          CALL wrd_write_string( 'z0_av' ) 
1337          WRITE ( 14 )  z0_av
1338       ENDIF
1339
1340       IF ( ALLOCATED( z0h_av ) )  THEN
1341          CALL wrd_write_string( 'z0h_av' ) 
1342          WRITE ( 14 )  z0h_av
1343       ENDIF
1344
1345       IF ( ALLOCATED( z0q_av ) )  THEN
1346          CALL wrd_write_string( 'z0q_av' ) 
1347          WRITE ( 14 )  z0q_av
1348       ENDIF
1349
1350       IF ( land_surface  .OR.  urban_surface )  THEN
1351
1352          IF ( ALLOCATED( ghf_av ) )  THEN
1353             CALL wrd_write_string( 'ghf_av' ) 
1354             WRITE ( 14 )  ghf_av
1355          ENDIF
1356
1357          IF ( ALLOCATED( r_a_av ) )  THEN
1358             CALL wrd_write_string( 'r_a_av' ) 
1359             WRITE ( 14 )  r_a_av
1360          ENDIF
1361
1362       ENDIF
1363
1364       IF ( ALLOCATED( tsurf_av ) )  THEN
1365          CALL wrd_write_string( 'tsurf_av' ) 
1366          WRITE ( 14 )  tsurf_av
1367       ENDIF
1368
1369!
1370!-- Write surface-related restart data.
1371       CALL surface_wrd_local
1372
1373!
1374!-- If required, write restart data for urban surface model.
1375       IF ( urban_surface )  THEN
1376          CALL usm_wrd_local
1377       ENDIF
1378
1379!
1380!-- If required, write restart data for land surface model.
1381       IF ( land_surface )  THEN
1382          CALL lsm_wrd_local
1383       ENDIF
1384
1385!
1386!-- If required, write restart data for radiation model.
1387       IF ( radiation )  THEN
1388          CALL radiation_wrd_local
1389       ENDIF
1390
1391!
1392!-- If required, write restart data for chemistry model.
1393       IF ( air_chemistry )  THEN
1394          CALL chem_wrd_local
1395       ENDIF
1396
1397!
1398!-- If required, write restart data for gust module.
1399       IF ( gust_module_enabled )  THEN
1400          CALL gust_wrd_local
1401       ENDIF
1402
1403!
1404!-- Write user-related restart data.
1405       CALL user_wrd_local
1406
1407!--    Write end label.
1408       CALL wrd_write_string( '*** end ***' )
1409
1410    END SUBROUTINE wrd_local
1411
1412
1413 END MODULE write_restart_data_mod
Note: See TracBrowser for help on using the repository browser.