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

Last change on this file since 4896 was 4893, checked in by raasch, 4 years ago

revised output of surface data via MPI-IO for better performance

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