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

Last change on this file since 4810 was 4802, checked in by suehring, 4 years ago

Bugfix in time-control of indoor model in case of restarts and at the very first time step

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