Ignore:
Timestamp:
Apr 13, 2020 8:11:20 PM (4 years ago)
Author:
raasch
Message:

restart data handling with MPI-IO added, first part

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/write_restart_data_mod.f90

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