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

Last change on this file since 2912 was 2912, checked in by knoop, 5 years ago

Added gust module interface calls to restart data modules

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