Changeset 2277


Ignore:
Timestamp:
Jun 12, 2017 10:47:51 AM (4 years ago)
Author:
kanani
Message:

code documentation and cleanup

Location:
palm/trunk/SOURCE
Files:
5 edited

Legend:

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

    r2101 r2277  
    2525! -----------------
    2626! $Id$
     27! Removed unused variables do2d_xy_n, do2d_xz_n, do2d_yz_n, do3d_avs_n
     28!
     29! 2101 2017-01-05 16:42:31Z suehring
    2730!
    2831! 2000 2016-08-20 18:09:15Z knoop
     
    7679
    7780    USE control_parameters,                                                    &
    78         ONLY:  do2d_xz_n, do2d_xy_n, do2d_yz_n, do3d_avs_n, host, max_masks,   &
     81        ONLY:  host, max_masks,                                                &
    7982               mid, nz_do3d, openfile, run_description_header, z_max_do2d
    8083               
  • palm/trunk/SOURCE/data_output_2d.f90

    r2233 r2277  
    2525! -----------------
    2626! $Id$
     27! Removed unused variables do2d_xy_n, do2d_xz_n, do2d_yz_n
     28!
     29! 2233 2017-05-30 18:08:54Z suehring
    2730!
    2831! 2232 2017-05-30 17:47:52Z suehring
     
    178181        ONLY:  cloud_physics, data_output_2d_on_each_pe, data_output_xy,       &
    179182               data_output_xz, data_output_yz, do2d,                           &
    180                do2d_xy_last_time, do2d_xy_n, do2d_xy_time_count,               &
    181                do2d_xz_last_time, do2d_xz_n, do2d_xz_time_count,               &
    182                do2d_yz_last_time, do2d_yz_n, do2d_yz_time_count,               &
     183               do2d_xy_last_time, do2d_xy_time_count,                          &
     184               do2d_xz_last_time, do2d_xz_time_count,                          &
     185               do2d_yz_last_time, do2d_yz_time_count,                          &
    183186               ibc_uv_b, io_blocks, io_group, land_surface, message_string,    &
    184187               ntdim_2d_xy, ntdim_2d_xz, ntdim_2d_yz,                          &
     
    14021405#endif
    14031406#endif
    1404                    do2d_xy_n = do2d_xy_n + 1
     1407
    14051408!
    14061409!--                For 2D-arrays (e.g. u*) only one cross-section is available.
     
    16281631#endif
    16291632#endif
    1630                    do2d_xz_n = do2d_xz_n + 1
    16311633
    16321634                CASE ( 'yz' )
     
    18471849#endif
    18481850#endif
    1849                    do2d_yz_n = do2d_yz_n + 1
    18501851
    18511852             END SELECT
  • palm/trunk/SOURCE/init_3d_model.f90

    r2270 r2277  
    2525! -----------------
    2626! $Id$
     27! Removed unused variable sums_up_fraction_l
     28!
     29! 2270 2017-06-09 12:18:47Z maronga
    2730! dots_num must be increased when LSM and/or radiation is used
    2831!
     
    394397        ONLY:  hom, hom_sum, mean_surface_level_height, pr_palm, rmask,        &
    395398               statistic_regions, sums, sums_divnew_l, sums_divold_l, sums_l,  &
    396                sums_l_l, sums_up_fraction_l, sums_wsts_bc_l, ts_value,         &
     399               sums_l_l, sums_wsts_bc_l, ts_value,                             &
    397400               weight_pres, weight_substep
    398401
     
    468471              sums_l(nzb:nzt+1,pr_palm+max_pr_user,0:threads_per_task-1),      &
    469472              sums_l_l(nzb:nzt+1,0:statistic_regions,0:threads_per_task-1),    &
    470               sums_up_fraction_l(10,3,0:statistic_regions),                    &
    471473              sums_wsts_bc_l(nzb:nzt+1,0:statistic_regions),                   &
    472474              ts_value(dots_max,0:statistic_regions) )
     
    942944    sums_divold_l      = 0.0_wp
    943945    sums_l_l           = 0.0_wp
    944     sums_up_fraction_l = 0.0_wp
    945946    sums_wsts_bc_l     = 0.0_wp
    946947
  • palm/trunk/SOURCE/modules.f90

    r2259 r2277  
    2525! -----------------
    2626! $Id$
     27! Added doxygen comments for variables/parameters,
     28! removed unused variables dissipation_control, do2d_xy_n, do2d_xz_n, do2d_yz_n,
     29! do3d_avs_n, lptnudge, lqnudge, lunudge, lvnudge, lwnudge, skip_do_avs,
     30! sums_up_fraction_l.
     31!
     32! 2259 2017-06-08 09:09:11Z gronemeier
    2733! Implemented synthetic turbulence generator
    2834!
     
    458464!> Definition of all variables
    459465!>
    460 !> @todo Add description for each variable
     466!> @todo Add missing variable descriptions (Siggi)
    461467!------------------------------------------------------------------------------!
    462468
     
    471477    USE kinds
    472478
    473     REAL(wp), DIMENSION(:), ALLOCATABLE ::  aex  !<
    474     REAL(wp), DIMENSION(:), ALLOCATABLE ::  bex  !<
    475     REAL(wp), DIMENSION(:), ALLOCATABLE ::  dex  !<
    476     REAL(wp), DIMENSION(:), ALLOCATABLE ::  eex  !<
     479    REAL(wp), DIMENSION(:), ALLOCATABLE ::  aex  !< Siggi
     480    REAL(wp), DIMENSION(:), ALLOCATABLE ::  bex  !< Siggi
     481    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dex  !< Siggi
     482    REAL(wp), DIMENSION(:), ALLOCATABLE ::  eex  !< Siggi
    477483   
    478484    SAVE
     
    490496    USE kinds
    491497
    492     REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_u_m                  !<
    493     REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_u_m_l                !<
    494     REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_v_m                  !<
    495     REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_v_m_l                !<
    496     REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_w_m                  !<
    497     REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_w_m_l                !<    
    498     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzu                   !<
    499     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzu_pres              !<
    500     REAL(wp), DIMENSION(:), ALLOCATABLE ::  dd2zu                  !<
    501     REAL(wp), DIMENSION(:), ALLOCATABLE ::  dzu                    !<
    502     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzw                   !<
    503     REAL(wp), DIMENSION(:), ALLOCATABLE ::  dzw                    !<
    504     REAL(wp), DIMENSION(:), ALLOCATABLE ::  hyp                    !<
    505     REAL(wp), DIMENSION(:), ALLOCATABLE ::  inflow_damping_factor  !<
    506     REAL(wp), DIMENSION(:), ALLOCATABLE ::  l_grid                 !<
    507     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ptdf_x                 !<
    508     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ptdf_y                 !<
    509     REAL(wp), DIMENSION(:), ALLOCATABLE ::  p_surf                 !<
    510     REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_surf                !<
    511     REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_init                !<
    512     REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_surf              !<
    513     REAL(wp), DIMENSION(:), ALLOCATABLE ::  q_init                 !<
    514     REAL(wp), DIMENSION(:), ALLOCATABLE ::  q_surf                 !<
    515     REAL(wp), DIMENSION(:), ALLOCATABLE ::  rdf                    !<
    516     REAL(wp), DIMENSION(:), ALLOCATABLE ::  rdf_sc                 !<
    517     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ref_state              !<
    518     REAL(wp), DIMENSION(:), ALLOCATABLE ::  s_init                 !<
    519     REAL(wp), DIMENSION(:), ALLOCATABLE ::  s_surf                 !<
    520     REAL(wp), DIMENSION(:), ALLOCATABLE ::  sa_init                !<
    521     REAL(wp), DIMENSION(:), ALLOCATABLE ::  shf_surf               !<
    522     REAL(wp), DIMENSION(:), ALLOCATABLE ::  timenudge              !<
    523     REAL(wp), DIMENSION(:), ALLOCATABLE ::  time_surf              !<
    524     REAL(wp), DIMENSION(:), ALLOCATABLE ::  time_vert              !<
    525     REAL(wp), DIMENSION(:), ALLOCATABLE ::  tmp_tnudge             !<
    526     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ug                     !<
    527     REAL(wp), DIMENSION(:), ALLOCATABLE ::  u_init                 !<
    528     REAL(wp), DIMENSION(:), ALLOCATABLE ::  u_nzb_p1_for_vfc       !<
    529     REAL(wp), DIMENSION(:), ALLOCATABLE ::  vg                     !<
    530     REAL(wp), DIMENSION(:), ALLOCATABLE ::  v_init                 !<
    531     REAL(wp), DIMENSION(:), ALLOCATABLE ::  v_nzb_p1_for_vfc       !<
    532     REAL(wp), DIMENSION(:), ALLOCATABLE ::  w_subs                 !<
    533     REAL(wp), DIMENSION(:), ALLOCATABLE ::  zu                     !<
    534     REAL(wp), DIMENSION(:), ALLOCATABLE ::  zw                     !<
    535 
    536     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_u                   !<
    537     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_v                   !<
    538     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_w                   !<
    539     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_e              !<
    540     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_nr             !<   
    541     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_pt             !<
    542     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_q              !<
    543     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_qr             !<
    544     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_s              !<
    545     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_sa             !<
    546     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_u              !<
    547     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_v              !<
    548     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_w              !<
    549     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dzu_mg                !<
    550     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dzw_mg                !<
    551     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_e              !<
    552     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_nr             !<
    553     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_pt             !<
    554     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_q              !<
    555     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_qr             !<
    556     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_s              !<
    557     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_sa             !<
    558     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_u              !<
    559     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_v              !<
    560     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_w              !<
    561     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f1_mg                 !<
    562     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f2_mg                 !<
    563     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f3_mg                 !<
    564     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  mean_inflow_profiles  !<
    565     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_amount  !<
    566     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_rate    !<
    567     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ptnudge               !<
    568     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  pt_slope_ref          !<
    569     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qnudge                !<
    570     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tnudge                !<
    571     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_lsa_lpt            !<
    572     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_lsa_q              !<
    573     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_sub_lpt            !<
    574     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_sub_q              !<
    575     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  total_2d_a            !<
    576     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  total_2d_o            !<
    577     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ug_vert               !<
    578     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  unudge                !<
    579     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vnudge                !<
    580     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vg_vert               !<
    581     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wnudge                !<
    582     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wsubs_vert            !<
     498    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_u_m                  !< Siggi
     499    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_u_m_l                !< Siggi
     500    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_v_m                  !< Siggi
     501    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_v_m_l                !< Siggi
     502    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_w_m                  !< Siggi
     503    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_w_m_l                !< Siggi    
     504    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzu                   !< 1/dzu
     505    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzu_pres              !< modified ddzu for pressure solver
     506    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dd2zu                  !< 1/(dzu(k)+dzu(k+1))
     507    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dzu                    !< vertical grid size (u-grid)
     508    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzw                   !< 1/dzw
     509    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dzw                    !< vertical grid size (w-grid)
     510    REAL(wp), DIMENSION(:), ALLOCATABLE ::  hyp                    !< hydrostatic pressure
     511    REAL(wp), DIMENSION(:), ALLOCATABLE ::  inflow_damping_factor  !< used for turbulent inflow (non-cyclic boundary conditions)
     512    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l_grid                 !< geometric mean of grid sizes dx, dy, dz
     513    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ptdf_x                 !< damping factor for potential temperature in x-direction
     514    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ptdf_y                 !< damping factor for potential temperature in y-direction
     515    REAL(wp), DIMENSION(:), ALLOCATABLE ::  p_surf                 !< time-dependent surface pressure (large scale forcing)
     516    REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_surf                !< time-dependent surface temperature (large scale forcing)
     517    REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_init                !< initial profile of potential temperature
     518    REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_surf              !< time-dependent surface latent heat flux (large scale forcing)
     519    REAL(wp), DIMENSION(:), ALLOCATABLE ::  q_init                 !< initial profile of specific humidity
     520                                                                   !< (or total water content with active cloud physics)
     521    REAL(wp), DIMENSION(:), ALLOCATABLE ::  q_surf                 !< time-dependent surface specific humidity (large scale forcing)
     522    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rdf                    !< rayleigh damping factor for velocity components
     523    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rdf_sc                 !< rayleigh damping factor for scalar quantities
     524    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ref_state              !< reference state of potential temperature
     525                                                                   !< (and density in case of ocean simulation)
     526    REAL(wp), DIMENSION(:), ALLOCATABLE ::  s_init                 !< initial profile of passive scalar concentration
     527    REAL(wp), DIMENSION(:), ALLOCATABLE ::  sa_init                !< initial profile of salinity (ocean)
     528    REAL(wp), DIMENSION(:), ALLOCATABLE ::  shf_surf               !< time-dependent surface sensible heat flux (large scale forcing)
     529    REAL(wp), DIMENSION(:), ALLOCATABLE ::  timenudge              !< times at which vertical profiles are defined in NUDGING_DATA (nudging)
     530    REAL(wp), DIMENSION(:), ALLOCATABLE ::  time_surf              !< times at which surface values/fluxes are defined in LSF_DATA (large scale forcing)
     531    REAL(wp), DIMENSION(:), ALLOCATABLE ::  time_vert              !< times at which vertical profiles are defined in LSF_DATA (large scale forcing)
     532    REAL(wp), DIMENSION(:), ALLOCATABLE ::  tmp_tnudge             !< current nudging time scale
     533    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ug                     !< geostrophic wind component in x-direction
     534    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u_init                 !< initial profile of horizontal velocity component u
     535    REAL(wp), DIMENSION(:), ALLOCATABLE ::  vg                     !< geostrophic wind component in y-direction
     536    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v_init                 !< initial profile of horizontal velocity component v
     537    REAL(wp), DIMENSION(:), ALLOCATABLE ::  w_subs                 !< subsidence/ascent velocity
     538    REAL(wp), DIMENSION(:), ALLOCATABLE ::  zu                     !< vertical grid coordinate of u-grid (in m)
     539    REAL(wp), DIMENSION(:), ALLOCATABLE ::  zw                     !< vertical grid coordinate of w-grid (in m)
     540
     541    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_u                   !< phase speed of u-velocity component
     542    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_v                   !< phase speed of v-velocity component
     543    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_w                   !< phase speed of w-velocity component
     544    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_e              !< artificial numerical dissipation flux at south face of grid box - subgrid-scale TKE
     545    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_nr             !< artificial numerical dissipation flux at south face of grid box - raindrop-number concentration   
     546    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_pt             !< artificial numerical dissipation flux at south face of grid box - potential temperature
     547    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_q              !< artificial numerical dissipation flux at south face of grid box - mixing ratio
     548    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_qr             !< artificial numerical dissipation flux at south face of grid box - rainwater
     549    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_s              !< artificial numerical dissipation flux at south face of grid box - passive scalar
     550    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_sa             !< artificial numerical dissipation flux at south face of grid box - salinity
     551    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_u              !< artificial numerical dissipation flux at south face of grid box - u-component
     552    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_v              !< artificial numerical dissipation flux at south face of grid box - v-component
     553    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_w              !< artificial numerical dissipation flux at south face of grid box - w-component
     554    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dzu_mg                !< vertical grid size (u-grid) for multigrid pressure solver
     555    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dzw_mg                !< vertical grid size (w-grid) for multigrid pressure solver
     556    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_e              !< 6th-order advective flux at south face of grid box - subgrid-scale TKE
     557    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_nr             !< 6th-order advective flux at south face of grid box - raindrop-number concentration
     558    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_pt             !< 6th-order advective flux at south face of grid box - potential temperature
     559    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_q              !< 6th-order advective flux at south face of grid box - mixing ratio
     560    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_qr             !< 6th-order advective flux at south face of grid box - rainwater
     561    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_s              !< 6th-order advective flux at south face of grid box - passive scalar
     562    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_sa             !< 6th-order advective flux at south face of grid box - salinity
     563    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_u              !< 6th-order advective flux at south face of grid box - u-component
     564    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_v              !< 6th-order advective flux at south face of grid box - v-component
     565    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_w              !< 6th-order advective flux at south face of grid box - w-component
     566    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f1_mg                 !< Siggi
     567    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f2_mg                 !< Siggi
     568    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f3_mg                 !< Siggi
     569    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  mean_inflow_profiles  !< used for turbulent inflow (non-cyclic boundary conditions)
     570    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_amount  !< precipitation amount due to gravitational settling (bulk microphysics)
     571    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_rate    !< precipitation rate (bulk microphysics)
     572    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ptnudge               !< vertical profile of pot. temperature interpolated to vertical grid (nudging)
     573    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  pt_slope_ref          !< potential temperature in rotated coordinate system
     574                                                                    !< (in case of sloped surface)
     575    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qnudge                !< vertical profile of specific humidity interpolated to vertical grid (nudging)
     576    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tnudge                !< vertical profile of nudging time scale interpolated to vertical grid (nudging) 
     577    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_lsa_lpt            !< temperature tendency due to large scale advection (large scale forcing)
     578    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_lsa_q              !< specific humidity tendency due to large scale advection (large scale forcing)
     579    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_sub_lpt            !< temperature tendency due to subsidence/ascent (large scale forcing)
     580    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_sub_q              !< specific humidity tendency due to subsidence/ascent (large scale forcing)
     581    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  total_2d_a            !< Siggi
     582    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  total_2d_o            !< Siggi
     583    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ug_vert               !< vertical profile of geostrophic wind component in x-direction interpolated to vertical grid (large scale forcing)
     584    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  unudge                !< vertical profile of wind component in x-direction interpolated to vertical grid (nudging)
     585    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vnudge                !< vertical profile of wind component in y-direction interpolated to vertical grid (nudging)
     586    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vg_vert               !< vertical profile of geostrophic wind component in y-direction interpolated to vertical grid (large scale forcing)
     587    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wnudge                !< vertical profile of subsidence/ascent velocity interpolated to vertical grid (nudging) ???
     588    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wsubs_vert            !< vertical profile of wind component in z-direction interpolated to vertical grid (nudging) ???
    583589   
    584     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  d          !<
    585     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dx      !<
    586     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dy      !<
    587     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dz      !<
    588     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss       !<
    589     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_e   !<
    590     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_nr  !<
    591     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_pt  !<
    592     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_q   !<
    593     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_qr  !<
    594     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_s   !<
    595     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_sa  !<
    596     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_u   !<
    597     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_v   !<
    598     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_w   !<
    599     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_e   !<
    600     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_nr  !<
    601     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_pt  !<
    602     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_q   !<
    603     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_qr  !<
    604     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_s   !<
    605     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_sa  !<
    606     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_u   !<
    607     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_v   !<
    608     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_w   !<
    609     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  kh         !<
    610     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  km         !<
    611     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  l_wall     !<
    612     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  prr        !<
    613     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p_loc      !<
    614     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tend       !<
    615     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tric       !<
    616     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_l      !<
    617     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_n      !<
    618     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_r      !<
    619     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_s      !<
    620     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_l      !<
    621     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_n      !<
    622     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_r      !<
    623     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_s      !<
    624     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_l      !<
    625     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_n      !<
    626     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_r      !<
    627     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_s      !<
     590    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  d          !< divergence
     591    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dx      !< gradient of sgs tke in x-direction (lpm)
     592    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dy      !< gradient of sgs tke in y-direction (lpm)
     593    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dz      !< gradient of sgs tke in z-direction (lpm)
     594    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss       !< TKE dissipation rate
     595    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_e   !< artificial numerical dissipation flux at left face of grid box - subgrid-scale TKE
     596    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_nr  !< artificial numerical dissipation flux at left face of grid box - raindrop-number concentration
     597    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_pt  !< artificial numerical dissipation flux at left face of grid box - potential temperature
     598    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_q   !< artificial numerical dissipation flux at left face of grid box - mixing ratio
     599    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_qr  !< artificial numerical dissipation flux at left face of grid box - rainwater
     600    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_s   !< artificial numerical dissipation flux at left face of grid box - passive scalar
     601    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_sa  !< artificial numerical dissipation flux at left face of grid box - salinity
     602    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_u   !< artificial numerical dissipation flux at left face of grid box - u-component
     603    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_v   !< artificial numerical dissipation flux at left face of grid box - v-component
     604    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_w   !< artificial numerical dissipation flux at left face of grid box - w-component
     605    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_e   !< 6th-order advective flux at south face of grid box - subgrid-scale TKE
     606    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_nr  !< 6th-order advective flux at south face of grid box - raindrop-number concentration
     607    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_pt  !< 6th-order advective flux at south face of grid box - potential temperature
     608    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_q   !< 6th-order advective flux at south face of grid box - mixing ratio
     609    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_qr  !< 6th-order advective flux at south face of grid box - rainwater
     610    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_s   !< 6th-order advective flux at south face of grid box - passive scalar
     611    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_sa  !< 6th-order advective flux at south face of grid box - salinity
     612    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_u   !< 6th-order advective flux at south face of grid box - u-component
     613    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_v   !< 6th-order advective flux at south face of grid box - v-component
     614    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_w   !< 6th-order advective flux at south face of grid box - w-component
     615    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  kh         !< eddy diffusivity for heat
     616    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  km         !< eddy diffusivity for momentum
     617    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  l_wall     !< near-wall mixing length
     618    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  prr        !< rain rate
     619    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p_loc      !< Siggi
     620    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tend       !< tendency field (time integration)
     621    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tric       !< Siggi
     622    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_l      !< Siggi
     623    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_n      !< Siggi
     624    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_r      !< Siggi
     625    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_s      !< Siggi
     626    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_l      !< Siggi
     627    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_n      !< Siggi
     628    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_r      !< Siggi
     629    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_s      !< Siggi
     630    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_l      !< Siggi
     631    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_n      !< Siggi
     632    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_r      !< Siggi
     633    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_s      !< Siggi
    628634
    629635#if defined( __nopointer )
    630     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e          !<
    631     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_p        !<
    632     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr         !<
    633     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_p       !<
    634     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p          !<
    635     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prho       !<
    636     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt         !<
    637     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_p       !<
    638     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q          !<
    639     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_p        !<
    640     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc         !<
    641     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql         !<
    642     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_c       !<
    643     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v       !<
    644     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp      !<
    645     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr         !<
    646     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_p       !<
    647     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_ocean  !<
    648     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s          !<
    649     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_p        !<
    650     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa         !<
    651     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_p       !<
    652     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  te_m       !<
    653     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tnr_m      !<
    654     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tpt_m      !<
    655     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tq_m       !<
    656     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tqr_m      !<
    657     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ts_m       !<
    658     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tsa_m      !<
    659     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tu_m       !<
    660     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tv_m       !<
    661     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tw_m       !< 
    662     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u          !<
    663     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_p        !<
    664     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v          !<
    665     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_p        !<
    666     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt        !<
    667     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w          !<
    668     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_p        !<
     636    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e          !< subgrid-scale turbulence kinetic energy (sgs tke)
     637    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_p        !< prognostic value of sgs tke
     638    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr         !< rain drop number density
     639    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_p       !< prognostic value of rain drop number density
     640    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p          !< perturbation pressure
     641    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prho       !< potential density
     642    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt         !< potential temperature
     643    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_p       !< prognostic value of potential temperature
     644    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q          !< specific humidity
     645                                                                   !< (or total water content with active cloud physics)
     646    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_p        !< prognostic value of specific humidity
     647    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc         !< cloud water content
     648    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql         !< liquid water content
     649    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_c       !< change in liquid water content due to
     650                                                                   !< condensation/evaporation during last time step
     651    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v       !< volume of liquid water
     652    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp      !< liquid water weighting factor
     653    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr         !< rain water content
     654    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_p       !< prognostic value of rain water content
     655    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_ocean  !< density of ocean
     656    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s          !< passive scalar
     657    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_p        !< prognostic value of passive scalar
     658    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa         !< ocean salinity
     659    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_p       !< prognostic value of ocean salinity
     660    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  te_m       !< weighted tendency of e for previous sub-timestep (Runge-Kutta)
     661    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tnr_m      !< weighted tendency of nr for previous sub-timestep (Runge-Kutta)
     662    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tpt_m      !< weighted tendency of pt for previous sub-timestep (Runge-Kutta)
     663    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tq_m       !< weighted tendency of q for previous sub-timestep (Runge-Kutta)
     664    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tqr_m      !< weighted tendency of qr for previous sub-timestep (Runge-Kutta)
     665    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ts_m       !< weighted tendency of s for previous sub-timestep (Runge-Kutta)
     666    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tsa_m      !< weighted tendency of sa for previous sub-timestep (Runge-Kutta)
     667    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tu_m       !< weighted tendency of u for previous sub-timestep (Runge-Kutta)
     668    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tv_m       !< weighted tendency of v for previous sub-timestep (Runge-Kutta)
     669    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tw_m       !< weighted tendency of w for previous sub-timestep (Runge-Kutta)
     670    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u          !< horizontal velocity component u (x-direction)
     671    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_p        !< prognostic value of u
     672    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v          !< horizontal velocity component v (y-direction)
     673    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_p        !< prognostic value of v
     674    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt        !< virtual potential temperature
     675    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w          !< vertical velocity component w (z-direction)
     676    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_p        !< prognostic value of w
    669677#else
    670     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_1     !<
    671     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_2     !<
    672     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_3     !<
    673     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p       !<
    674     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prho_1  !<
    675     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_1    !<
    676     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_2    !<
    677     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_3    !<
    678     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_1    !<
    679     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_2    !<
    680     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_3    !<
    681     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_1     !<
    682     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_2     !<
    683     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_3     !<
    684     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc_1    !<
    685     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v    !<
    686     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp   !<
    687     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_1    !<
    688     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_2    !<
    689     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_1    !<
    690     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_2    !<
    691     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_3    !<
    692     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_1   !<
    693     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_1     !<
    694     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_2     !<
    695     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_3     !<
    696     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_1    !<
    697     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_2    !<
    698     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_3    !<
    699     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_1     !<
    700     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_2     !<
    701     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_3     !<
    702     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_1     !<
    703     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_2     !<
    704     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_3     !<
    705     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt_1   !<
    706     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_1     !<
    707     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_2     !<
    708     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_3     !<
    709 
    710     REAL(wp), DIMENSION(:,:,:), POINTER ::  e          !<
    711     REAL(wp), DIMENSION(:,:,:), POINTER ::  e_p        !<
    712     REAL(wp), DIMENSION(:,:,:), POINTER ::  nr         !<
    713     REAL(wp), DIMENSION(:,:,:), POINTER ::  nr_p       !<
    714     REAL(wp), DIMENSION(:,:,:), POINTER ::  prho       !<
    715     REAL(wp), DIMENSION(:,:,:), POINTER ::  pt         !<
    716     REAL(wp), DIMENSION(:,:,:), POINTER ::  pt_p       !<
    717     REAL(wp), DIMENSION(:,:,:), POINTER ::  q          !<
    718     REAL(wp), DIMENSION(:,:,:), POINTER ::  q_p        !<
    719     REAL(wp), DIMENSION(:,:,:), POINTER ::  qc         !<
    720     REAL(wp), DIMENSION(:,:,:), POINTER ::  ql         !<
    721     REAL(wp), DIMENSION(:,:,:), POINTER ::  ql_c       !<
    722     REAL(wp), DIMENSION(:,:,:), POINTER ::  qr         !<
    723     REAL(wp), DIMENSION(:,:,:), POINTER ::  qr_p       !<
    724     REAL(wp), DIMENSION(:,:,:), POINTER ::  rho_ocean  !<
    725     REAL(wp), DIMENSION(:,:,:), POINTER ::  s          !<
    726     REAL(wp), DIMENSION(:,:,:), POINTER ::  s_p        !<
    727     REAL(wp), DIMENSION(:,:,:), POINTER ::  sa         !<
    728     REAL(wp), DIMENSION(:,:,:), POINTER ::  sa_p       !<
    729     REAL(wp), DIMENSION(:,:,:), POINTER ::  te_m       !<
    730     REAL(wp), DIMENSION(:,:,:), POINTER ::  tnr_m      !<
    731     REAL(wp), DIMENSION(:,:,:), POINTER ::  tpt_m      !<
    732     REAL(wp), DIMENSION(:,:,:), POINTER ::  tq_m       !<
    733     REAL(wp), DIMENSION(:,:,:), POINTER ::  tqr_m      !<
    734     REAL(wp), DIMENSION(:,:,:), POINTER ::  ts_m       !<
    735     REAL(wp), DIMENSION(:,:,:), POINTER ::  tsa_m      !<
    736     REAL(wp), DIMENSION(:,:,:), POINTER ::  tu_m       !<
    737     REAL(wp), DIMENSION(:,:,:), POINTER ::  tv_m       !<
    738     REAL(wp), DIMENSION(:,:,:), POINTER ::  tw_m       !<
    739     REAL(wp), DIMENSION(:,:,:), POINTER ::  u          !<
    740     REAL(wp), DIMENSION(:,:,:), POINTER ::  u_p        !<
    741     REAL(wp), DIMENSION(:,:,:), POINTER ::  v          !<
    742     REAL(wp), DIMENSION(:,:,:), POINTER ::  v_p        !<
    743     REAL(wp), DIMENSION(:,:,:), POINTER ::  vpt        !<
    744     REAL(wp), DIMENSION(:,:,:), POINTER ::  w          !<
    745     REAL(wp), DIMENSION(:,:,:), POINTER ::  w_p        !<
     678    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_1     !< pointer for swapping of timelevels for respective quantity
     679    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_2     !< pointer for swapping of timelevels for respective quantity
     680    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_3     !< pointer for swapping of timelevels for respective quantity
     681    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p       !< pointer: perturbation pressure
     682    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prho_1  !< pointer for swapping of timelevels for respective quantity
     683    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_1    !< pointer for swapping of timelevels for respective quantity
     684    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_2    !< pointer for swapping of timelevels for respective quantity
     685    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_3    !< pointer for swapping of timelevels for respective quantity
     686    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_1    !< pointer for swapping of timelevels for respective quantity
     687    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_2    !< pointer for swapping of timelevels for respective quantity
     688    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_3    !< pointer for swapping of timelevels for respective quantity
     689    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_1     !< pointer for swapping of timelevels for respective quantity
     690    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_2     !< pointer for swapping of timelevels for respective quantity
     691    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_3     !< pointer for swapping of timelevels for respective quantity
     692    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc_1    !< pointer for swapping of timelevels for respective quantity
     693    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v    !< pointer: volume of liquid water
     694    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp   !< pointer: liquid water weighting factor
     695    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_1    !< pointer for swapping of timelevels for respective quantity
     696    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_2    !< pointer for swapping of timelevels for respective quantity
     697    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_1    !< pointer for swapping of timelevels for respective quantity
     698    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_2    !< pointer for swapping of timelevels for respective quantity
     699    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_3    !< pointer for swapping of timelevels for respective quantity
     700    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_1   !< pointer for swapping of timelevels for respective quantity
     701    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_1     !< pointer for swapping of timelevels for respective quantity
     702    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_2     !< pointer for swapping of timelevels for respective quantity
     703    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_3     !< pointer for swapping of timelevels for respective quantity
     704    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_1    !< pointer for swapping of timelevels for respective quantity
     705    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_2    !< pointer for swapping of timelevels for respective quantity
     706    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_3    !< pointer for swapping of timelevels for respective quantity
     707    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_1     !< pointer for swapping of timelevels for respective quantity
     708    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_2     !< pointer for swapping of timelevels for respective quantity
     709    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_3     !< pointer for swapping of timelevels for respective quantity
     710    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_1     !< pointer for swapping of timelevels for respective quantity
     711    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_2     !< pointer for swapping of timelevels for respective quantity
     712    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_3     !< pointer for swapping of timelevels for respective quantity
     713    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt_1   !< pointer for swapping of timelevels for respective quantity
     714    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_1     !< pointer for swapping of timelevels for respective quantity
     715    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_2     !< pointer for swapping of timelevels for respective quantity
     716    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_3     !< pointer for swapping of timelevels for respective quantity
     717
     718    REAL(wp), DIMENSION(:,:,:), POINTER ::  e          !< pointer: subgrid-scale turbulence kinetic energy (sgs tke)
     719    REAL(wp), DIMENSION(:,:,:), POINTER ::  e_p        !< pointer: prognostic value of sgs tke
     720    REAL(wp), DIMENSION(:,:,:), POINTER ::  nr         !< pointer: rain drop number density
     721    REAL(wp), DIMENSION(:,:,:), POINTER ::  nr_p       !< pointer: prognostic value of rain drop number density
     722    REAL(wp), DIMENSION(:,:,:), POINTER ::  prho       !< pointer: potential density
     723    REAL(wp), DIMENSION(:,:,:), POINTER ::  pt         !< pointer: potential temperature
     724    REAL(wp), DIMENSION(:,:,:), POINTER ::  pt_p       !< pointer: prognostic value of potential temperature
     725    REAL(wp), DIMENSION(:,:,:), POINTER ::  q          !< pointer: specific humidity
     726    REAL(wp), DIMENSION(:,:,:), POINTER ::  q_p        !< pointer: prognostic value of specific humidity
     727    REAL(wp), DIMENSION(:,:,:), POINTER ::  qc         !< pointer: cloud water content
     728    REAL(wp), DIMENSION(:,:,:), POINTER ::  ql         !< pointer: liquid water content
     729    REAL(wp), DIMENSION(:,:,:), POINTER ::  ql_c       !< pointer: change in liquid water content due to
     730                                                       !< condensation/evaporation during last time step
     731    REAL(wp), DIMENSION(:,:,:), POINTER ::  qr         !< pointer: rain water content
     732    REAL(wp), DIMENSION(:,:,:), POINTER ::  qr_p       !< pointer: prognostic value of rain water content
     733    REAL(wp), DIMENSION(:,:,:), POINTER ::  rho_ocean  !< pointer: density of ocean
     734    REAL(wp), DIMENSION(:,:,:), POINTER ::  s          !< pointer: passive scalar
     735    REAL(wp), DIMENSION(:,:,:), POINTER ::  s_p        !< pointer: prognostic value of passive scalar
     736    REAL(wp), DIMENSION(:,:,:), POINTER ::  sa         !< pointer: ocean salinity
     737    REAL(wp), DIMENSION(:,:,:), POINTER ::  sa_p       !< pointer: prognostic value of ocean salinity
     738    REAL(wp), DIMENSION(:,:,:), POINTER ::  te_m       !< pointer: weighted tendency of e for previous sub-timestep (Runge-Kutta)
     739    REAL(wp), DIMENSION(:,:,:), POINTER ::  tnr_m      !< pointer: weighted tendency of nr for previous sub-timestep (Runge-Kutta)
     740    REAL(wp), DIMENSION(:,:,:), POINTER ::  tpt_m      !< pointer: weighted tendency of pt for previous sub-timestep (Runge-Kutta)
     741    REAL(wp), DIMENSION(:,:,:), POINTER ::  tq_m       !< pointer: weighted tendency of q for previous sub-timestep (Runge-Kutta)
     742    REAL(wp), DIMENSION(:,:,:), POINTER ::  tqr_m      !< pointer: weighted tendency of qr for previous sub-timestep (Runge-Kutta)
     743    REAL(wp), DIMENSION(:,:,:), POINTER ::  ts_m       !< pointer: weighted tendency of s for previous sub-timestep (Runge-Kutta)
     744    REAL(wp), DIMENSION(:,:,:), POINTER ::  tsa_m      !< pointer: weighted tendency of sa for previous sub-timestep (Runge-Kutta)
     745    REAL(wp), DIMENSION(:,:,:), POINTER ::  tu_m       !< pointer: weighted tendency of u for previous sub-timestep (Runge-Kutta)
     746    REAL(wp), DIMENSION(:,:,:), POINTER ::  tv_m       !< pointer: weighted tendency of v for previous sub-timestep (Runge-Kutta)
     747    REAL(wp), DIMENSION(:,:,:), POINTER ::  tw_m       !< pointer: weighted tendency of w for previous sub-timestep (Runge-Kutta)
     748    REAL(wp), DIMENSION(:,:,:), POINTER ::  u          !< pointer: horizontal velocity component u (x-direction)
     749    REAL(wp), DIMENSION(:,:,:), POINTER ::  u_p        !< pointer: prognostic value of u
     750    REAL(wp), DIMENSION(:,:,:), POINTER ::  v          !< pointer: horizontal velocity component v (y-direction)
     751    REAL(wp), DIMENSION(:,:,:), POINTER ::  v_p        !< pointer: prognostic value of v
     752    REAL(wp), DIMENSION(:,:,:), POINTER ::  vpt        !< pointer: virtual potential temperature
     753    REAL(wp), DIMENSION(:,:,:), POINTER ::  w          !< pointer: vertical velocity component w (z-direction)
     754    REAL(wp), DIMENSION(:,:,:), POINTER ::  w_p        !< pointer: prognostic value of w
    746755#endif
    747756
    748     REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  tri      !<
     757    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  tri      !< Siggi
    749758
    750759    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rho_air      !< air density profile on the uv grid
     
    777786    USE kinds
    778787
    779     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lwp_av                 !< Avg. liquid water path
    780     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_rate_av  !< Avg. of precipitation rate
    781     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ol_av                  !< Avg. of Obukhov length
    782     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qsws_av                !< Avg. of surface moisture flux
    783     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ssws_av                !< Avg. of surface scalar flux
    784     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  shf_av                 !< Avg. of surface heat flux
    785     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ts_av                  !< Avg. of characteristic temperature scale
    786     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  us_av                  !< Avg. of friction velocity
    787     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0_av                  !< Avg. of roughness length for momentum
    788     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0h_av                 !< Avg. of roughness length for heat
    789     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0q_av                 !< Avg. of roughness length for moisture
    790 
    791     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_av          !<
    792     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  lpt_av        !<
    793     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_av         !<
    794     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p_av          !<
    795     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pc_av         !<
    796     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pr_av         !<
    797     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prr_av        !<
    798     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_av         !<
    799     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_av          !<
    800     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc_av         !<
    801     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_av         !<
    802     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_c_av       !<
    803     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v_av       !<
    804     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp_av      !<
    805     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_av         !<
    806     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qv_av         !<
    807     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_ocean_av  !<
    808     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_av          !<
    809     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_av         !<
    810     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_av          !<
    811     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_av          !<
    812     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt_av        !<
    813     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_av          !<
     788    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lwp_av                 !< avg. liquid water path
     789    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_rate_av  !< avg. precipitation rate
     790    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ol_av                  !< avg. Obukhov length
     791    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qsws_av                !< avg. surface moisture flux
     792    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ssws_av                !< avg. surface scalar flux
     793    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  shf_av                 !< avg. surface heat flux
     794    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ts_av                  !< avg. characteristic temperature scale
     795    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  us_av                  !< avg. friction velocity
     796    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0_av                  !< avg. roughness length for momentum
     797    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0h_av                 !< avg. roughness length for heat
     798    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0q_av                 !< avg. roughness length for moisture
     799
     800    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_av          !< avg. subgrid-scale tke
     801    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  lpt_av        !< avg. liquid water potential temperature
     802    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_av         !< avg. rain drop number density
     803    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p_av          !< avg. perturbation pressure
     804    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pc_av         !< avg. particle/droplet concentration
     805    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pr_av         !< avg. particle/droplet radius
     806    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prr_av        !< avg. precipitation rate
     807    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_av         !< avg. potential temperature
     808    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_av          !< avg. specific humidity
     809                                                                      !< (or total water content with active cloud physics)
     810    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc_av         !< avg. cloud water content
     811    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_av         !< avg. liquid water content
     812    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_c_av       !< avg. change in liquid water content due to
     813                                                                      !< condensation/evaporation during last time step
     814    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v_av       !< avg. volume of liquid water
     815    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp_av      !< avg. liquid water weighting factor
     816    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_av         !< avg. rain water content
     817    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qv_av         !< avg. water vapor content (specific humidity)
     818    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_ocean_av  !< avg. ocean density
     819    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_av          !< avg. passive scalar
     820    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_av         !< avg. salinity
     821    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_av          !< avg. horizontal velocity component u
     822    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_av          !< avg. horizontal velocity component v
     823    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt_av        !< avg. virtual potential temperature
     824    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_av          !< avg. vertical velocity component
    814825 
    815826 END MODULE averaging
     
    835846
    836847
    837     REAL(wp), DIMENSION(:), ALLOCATABLE ::  hyrho   !<
    838     REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_d_t  !<
    839     REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_d_pt  !<
     848    REAL(wp), DIMENSION(:), ALLOCATABLE ::  hyrho   !< density of air calculated with hydrostatic pressure
     849    REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_d_t  !< ratio of potential and actual temperature
     850    REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_d_pt  !< ratio of actual and potential temperature
    840851
    841852    SAVE
     
    853864    USE kinds
    854865
    855     REAL(wp) ::  pi = 3.141592654_wp  !<
    856     REAL(wp) ::  adv_mom_1            !<
    857     REAL(wp) ::  adv_mom_3            !<
    858     REAL(wp) ::  adv_mom_5            !<
    859     REAL(wp) ::  adv_sca_1            !<
    860     REAL(wp) ::  adv_sca_3            !<
    861     REAL(wp) ::  adv_sca_5            !<
     866    REAL(wp) ::  pi = 3.141592654_wp  !< PI
     867    REAL(wp) ::  adv_mom_1            !< 1/4 - constant used in 5th-order advection scheme for momentum advection (1st-order part)
     868    REAL(wp) ::  adv_mom_3            !< 1/24 - constant used in 5th-order advection scheme for momentum advection (3rd-order part)
     869    REAL(wp) ::  adv_mom_5            !< 1/120 - constant used in 5th-order advection scheme for momentum advection (5th-order part)
     870    REAL(wp) ::  adv_sca_1            !< 1/2 - constant used in 5th-order advection scheme for scalar advection (1st-order part)
     871    REAL(wp) ::  adv_sca_3            !< 1/12 - constant used in 5th-order advection scheme for scalar advection (3rd-order part)
     872    REAL(wp) ::  adv_sca_5            !< 1/60 - constant used in 5th-order advection scheme for scalar advection (5th-order part)
    862873   
    863874    SAVE
     
    876887
    877888    TYPE plot_precision
    878        CHARACTER (LEN=8) ::  variable   !<
    879        INTEGER(iwp)      ::  precision  !<
     889       CHARACTER (LEN=8) ::  variable   !< Siggi
     890       INTEGER(iwp)      ::  precision  !< Siggi
    880891    END TYPE plot_precision
    881892
    882     TYPE(plot_precision), DIMENSION(100) ::  plot_3d_precision =               &  !<
     893    TYPE(plot_precision), DIMENSION(100) ::  plot_3d_precision =               &  !< Siggi
    883894                        (/ plot_precision( 'u', 2 ), plot_precision( 'v', 2 ), &
    884895                           plot_precision( 'w', 2 ), plot_precision( 'p', 5 ), &
     
    887898
    888899    TYPE file_status
    889        LOGICAL ::  opened         !<
    890        LOGICAL ::  opened_before  !<
     900       LOGICAL ::  opened         !< Siggi
     901       LOGICAL ::  opened_before  !< Siggi
    891902    END TYPE file_status
    892903   
    893     INTEGER, PARAMETER      ::  mask_xyz_dimension = 100  !<
    894     INTEGER, PARAMETER      ::  max_masks = 50            !<
     904    INTEGER, PARAMETER      ::  mask_xyz_dimension = 100  !< limit of mask dimensions (100 points in each direction)
     905    INTEGER, PARAMETER      ::  max_masks = 50            !< maximum number of masks
    895906    INTEGER(iwp), PARAMETER ::  varnamelength = 30        !< length of output variable names
    896907
    897     TYPE(file_status), DIMENSION(200+2*max_masks) ::                &  !<
     908    TYPE(file_status), DIMENSION(200+2*max_masks) ::                &  !< Siggi
    898909                             openfile = file_status(.FALSE.,.FALSE.)
    899910
    900     CHARACTER (LEN=1)    ::  cycle_mg = 'w'                               !<
    901     CHARACTER (LEN=1)    ::  timestep_reason = ' '                        !<
    902     CHARACTER (LEN=3)    ::  coupling_char = ''                           !<
    903     CHARACTER (LEN=5)    ::  write_binary = 'false'                       !<
    904     CHARACTER (LEN=8)    ::  most_method = 'newton'                       !< NAMELIST parameter defining method to be used to calculate Okukhov length,
    905     CHARACTER (LEN=8)    ::  run_date                                     !<
    906     CHARACTER (LEN=8)    ::  run_time                                     !<
    907     CHARACTER (LEN=9)    ::  simulated_time_chr                           !<
    908     CHARACTER (LEN=11)   ::  topography_grid_convention = ' '             !<
    909     CHARACTER (LEN=12)   ::  version = ' '                                !<
    910     CHARACTER (LEN=12)   ::  revision = ' '                               !<
    911     CHARACTER (LEN=12)   ::  user_interface_current_revision = ' '        !<
    912     CHARACTER (LEN=12)   ::  user_interface_required_revision = ' '       !<
    913     CHARACTER (LEN=16)   ::  conserve_volume_flow_mode = 'default'        !<
    914     CHARACTER (LEN=16)   ::  loop_optimization = 'default'                !<
    915     CHARACTER (LEN=16)   ::  momentum_advec = 'ws-scheme'                 !<
    916     CHARACTER (LEN=16)   ::  psolver = 'poisfft'                          !< 
    917     CHARACTER (LEN=16)   ::  scalar_advec = 'ws-scheme'                   !<
    918     CHARACTER (LEN=20)   ::  approximation = 'boussinesq'                 !< 
    919     CHARACTER (LEN=40)   ::  flux_input_mode = 'approximation-specific'   !<
    920     CHARACTER (LEN=40)   ::  flux_output_mode = 'approximation-specific'  !<
    921     CHARACTER (LEN=20)   ::  bc_e_b = 'neumann'                           !<
    922     CHARACTER (LEN=20)   ::  bc_lr = 'cyclic'                             !<
    923     CHARACTER (LEN=20)   ::  bc_ns = 'cyclic'                             !<
    924     CHARACTER (LEN=20)   ::  bc_p_b = 'neumann'                           !<
    925     CHARACTER (LEN=20)   ::  bc_p_t = 'dirichlet'                         !<
    926     CHARACTER (LEN=20)   ::  bc_pt_b = 'dirichlet'                        !<
    927     CHARACTER (LEN=20)   ::  bc_pt_t = 'initial_gradient'                 !<
    928     CHARACTER (LEN=20)   ::  bc_q_b = 'dirichlet'                         !<
    929     CHARACTER (LEN=20)   ::  bc_q_t = 'neumann'                           !<
    930     CHARACTER (LEN=20)   ::  bc_s_b = 'dirichlet'                         !<
    931     CHARACTER (LEN=20)   ::  bc_s_t = 'initial_gradient'                  !<
    932     CHARACTER (LEN=20)   ::  bc_sa_t = 'neumann'                          !<
    933     CHARACTER (LEN=20)   ::  bc_uv_b = 'dirichlet'                        !<
    934     CHARACTER (LEN=20)   ::  bc_uv_t = 'dirichlet'                        !<
    935     CHARACTER (LEN=20)   ::  cloud_scheme = 'saturation_adjust'           !<
    936     CHARACTER (LEN=20)   ::  coupling_mode = 'uncoupled'                  !<   
    937     CHARACTER (LEN=20)   ::  coupling_mode_remote = 'uncoupled'           !<
    938     CHARACTER (LEN=20)   ::  dissipation_1d = 'detering'                  !<
    939     CHARACTER (LEN=20)   ::  fft_method = 'system-specific'               !<
    940     CHARACTER (LEN=20)   ::  mixing_length_1d = 'blackadar'               !<
    941     CHARACTER (LEN=20)   ::  random_generator = 'random-parallel'         !<
    942     CHARACTER (LEN=20)   ::  reference_state = 'initial_profile'          !<   
    943     CHARACTER (LEN=20)   ::  return_addres                                !<
    944     CHARACTER (LEN=20)   ::  return_username                              !<
    945     CHARACTER (LEN=20)   ::  timestep_scheme = 'runge-kutta-3'            !<       
    946     CHARACTER (LEN=40)   ::  avs_data_file                                !<
    947     CHARACTER (LEN=40)   ::  topography = 'flat'                          !< 
    948     CHARACTER (LEN=64)   ::  host = ' '                                   !<
    949     CHARACTER (LEN=80)   ::  log_message                                  !<
    950     CHARACTER (LEN=80)   ::  run_identifier                               !< 
    951     CHARACTER (LEN=100)  ::  initializing_actions = ' '                   !<
    952     CHARACTER (LEN=210)  ::  run_description_header                       !<
    953     CHARACTER (LEN=1000) ::  message_string = ' '                         !<
    954 
    955     CHARACTER (LEN=varnamelength), DIMENSION(500) ::  data_output = ' '       !<
    956     CHARACTER (LEN=varnamelength), DIMENSION(500) ::  data_output_user = ' '  !<
    957     CHARACTER (LEN=varnamelength), DIMENSION(500) ::  doav = ' '              !<
     911    CHARACTER (LEN=1)    ::  cycle_mg = 'w'                               !< namelist parameter (see documentation)
     912    CHARACTER (LEN=1)    ::  timestep_reason = ' '                        !< 'A'dvection or 'D'iffusion criterion, written to RUN_CONTROL file
     913    CHARACTER (LEN=3)    ::  coupling_char = ''                           !< Siggi
     914    CHARACTER (LEN=5)    ::  write_binary = 'false'                       !< internal namelist parameter Siggi--> Why is this not a flag?
     915    CHARACTER (LEN=8)    ::  most_method = 'newton'                       !< namelist parameter
     916    CHARACTER (LEN=8)    ::  run_date                                     !< date of simulation run, printed to HEADER file
     917    CHARACTER (LEN=8)    ::  run_time                                     !< time of simulation run, printed to HEADER file
     918    CHARACTER (LEN=9)    ::  simulated_time_chr                           !< simulated time, printed to RUN_CONTROL file
     919    CHARACTER (LEN=11)   ::  topography_grid_convention = ' '             !< namelist parameter
     920    CHARACTER (LEN=12)   ::  version = ' '                                !< PALM version number
     921    CHARACTER (LEN=12)   ::  revision = ' '                               !< PALM revision number
     922    CHARACTER (LEN=12)   ::  user_interface_current_revision = ' '        !< Siggi
     923    CHARACTER (LEN=12)   ::  user_interface_required_revision = ' '       !< Siggi
     924    CHARACTER (LEN=16)   ::  conserve_volume_flow_mode = 'default'        !< namelist parameter
     925    CHARACTER (LEN=16)   ::  loop_optimization = 'default'                !< namelist parameter
     926    CHARACTER (LEN=16)   ::  momentum_advec = 'ws-scheme'                 !< namelist parameter
     927    CHARACTER (LEN=16)   ::  psolver = 'poisfft'                          !< namelist parameter
     928    CHARACTER (LEN=16)   ::  scalar_advec = 'ws-scheme'                   !< namelist parameter
     929    CHARACTER (LEN=20)   ::  approximation = 'boussinesq'                 !< namelist parameter
     930    CHARACTER (LEN=40)   ::  flux_input_mode = 'approximation-specific'   !< type of flux input: dynamic or kinematic
     931    CHARACTER (LEN=40)   ::  flux_output_mode = 'approximation-specific'  !< type of flux output: dynamic or kinematic
     932    CHARACTER (LEN=20)   ::  bc_e_b = 'neumann'                           !< namelist parameter
     933    CHARACTER (LEN=20)   ::  bc_lr = 'cyclic'                             !< namelist parameter
     934    CHARACTER (LEN=20)   ::  bc_ns = 'cyclic'                             !< namelist parameter
     935    CHARACTER (LEN=20)   ::  bc_p_b = 'neumann'                           !< namelist parameter
     936    CHARACTER (LEN=20)   ::  bc_p_t = 'dirichlet'                         !< namelist parameter
     937    CHARACTER (LEN=20)   ::  bc_pt_b = 'dirichlet'                        !< namelist parameter
     938    CHARACTER (LEN=20)   ::  bc_pt_t = 'initial_gradient'                 !< namelist parameter
     939    CHARACTER (LEN=20)   ::  bc_q_b = 'dirichlet'                         !< namelist parameter
     940    CHARACTER (LEN=20)   ::  bc_q_t = 'neumann'                           !< namelist parameter
     941    CHARACTER (LEN=20)   ::  bc_s_b = 'dirichlet'                         !< namelist parameter
     942    CHARACTER (LEN=20)   ::  bc_s_t = 'initial_gradient'                  !< namelist parameter
     943    CHARACTER (LEN=20)   ::  bc_sa_t = 'neumann'                          !< namelist parameter
     944    CHARACTER (LEN=20)   ::  bc_uv_b = 'dirichlet'                        !< namelist parameter
     945    CHARACTER (LEN=20)   ::  bc_uv_t = 'dirichlet'                        !< namelist parameter
     946    CHARACTER (LEN=20)   ::  cloud_scheme = 'saturation_adjust'           !< namelist parameter
     947    CHARACTER (LEN=20)   ::  coupling_mode = 'uncoupled'                  !< coupling mode for atmosphere-ocean coupling 
     948    CHARACTER (LEN=20)   ::  coupling_mode_remote = 'uncoupled'           !< Siggi
     949    CHARACTER (LEN=20)   ::  dissipation_1d = 'detering'                  !< namelist parameter
     950    CHARACTER (LEN=20)   ::  fft_method = 'system-specific'               !< namelist parameter
     951    CHARACTER (LEN=20)   ::  mixing_length_1d = 'blackadar'               !< namelist parameter
     952    CHARACTER (LEN=20)   ::  random_generator = 'random-parallel'         !< namelist parameter
     953    CHARACTER (LEN=20)   ::  reference_state = 'initial_profile'          !< namelist parameter 
     954    CHARACTER (LEN=20)   ::  return_addres                                !< Siggi
     955    CHARACTER (LEN=20)   ::  return_username                              !< Siggi
     956    CHARACTER (LEN=20)   ::  timestep_scheme = 'runge-kutta-3'            !< namelist parameter       
     957    CHARACTER (LEN=40)   ::  avs_data_file                                !< Siggi
     958    CHARACTER (LEN=40)   ::  topography = 'flat'                          !< namelist parameter
     959    CHARACTER (LEN=64)   ::  host = ' '                                   !< Siggi
     960    CHARACTER (LEN=80)   ::  log_message                                  !< Siggi
     961    CHARACTER (LEN=80)   ::  run_identifier                               !< Siggi
     962    CHARACTER (LEN=100)  ::  initializing_actions = ' '                   !< namelist parameter
     963    CHARACTER (LEN=210)  ::  run_description_header                       !< Siggi
     964    CHARACTER (LEN=1000) ::  message_string = ' '                         !< dynamic string for error message output
     965
     966    CHARACTER (LEN=varnamelength), DIMENSION(500) ::  data_output = ' '       !< namelist parameter
     967    CHARACTER (LEN=varnamelength), DIMENSION(500) ::  data_output_user = ' '  !< namelist parameter
     968    CHARACTER (LEN=varnamelength), DIMENSION(500) ::  doav = ' '              !< label array for multi-dimensional,
     969                                                                              !< averaged output quantities
    958970                                           
    959     CHARACTER (LEN=varnamelength), DIMENSION(max_masks,100) ::  data_output_masks = ' '       !<
    960     CHARACTER (LEN=varnamelength), DIMENSION(max_masks,100) ::  data_output_masks_user = ' '  !<
    961 
    962     CHARACTER (LEN=varnamelength), DIMENSION(300) ::  data_output_pr = ' '  !<
     971    CHARACTER (LEN=varnamelength), DIMENSION(max_masks,100) ::  data_output_masks = ' '       !< namelist parameter
     972    CHARACTER (LEN=varnamelength), DIMENSION(max_masks,100) ::  data_output_masks_user = ' '  !< namelist parameter
     973
     974    CHARACTER (LEN=varnamelength), DIMENSION(300) ::  data_output_pr = ' '  !< namelist parameter
    963975   
    964     CHARACTER (LEN=varnamelength), DIMENSION(200) ::  data_output_pr_user = ' '  !<
     976    CHARACTER (LEN=varnamelength), DIMENSION(200) ::  data_output_pr_user = ' '  !< namelist parameter
    965977   
    966     CHARACTER (LEN=varnamelength), DIMENSION(max_masks,0:1,100) ::  domask = ' ' !<
     978    CHARACTER (LEN=varnamelength), DIMENSION(max_masks,0:1,100) ::  domask = ' ' !< label array for multi-dimensional,
     979                                                                                 !< masked output quantities
    967980   
    968     CHARACTER (LEN=varnamelength), DIMENSION(0:1,500) ::  do2d = ' '  !<
    969     CHARACTER (LEN=varnamelength), DIMENSION(0:1,500) ::  do3d = ' '  !<
    970 
    971     INTEGER(iwp), PARAMETER ::  fl_max = 100     !<
    972     INTEGER(iwp), PARAMETER ::  var_fl_max = 20  !<
     981    CHARACTER (LEN=varnamelength), DIMENSION(0:1,500) ::  do2d = ' '  !< label array for 2d output quantities
     982    CHARACTER (LEN=varnamelength), DIMENSION(0:1,500) ::  do3d = ' '  !< label array for 3d output quantities
     983
     984    INTEGER(iwp), PARAMETER ::  fl_max = 100     !< maximum number of virtual-flight measurements
     985    INTEGER(iwp), PARAMETER ::  var_fl_max = 20  !< maximum number of different sampling variables in virtual flight measurements
    973986   
    974     INTEGER(iwp) ::  abort_mode = 1                    !<
    975     INTEGER(iwp) ::  average_count_pr = 0              !<
    976     INTEGER(iwp) ::  average_count_3d = 0              !<
    977     INTEGER(iwp) ::  current_timestep_number = 0       !<
    978     INTEGER(iwp) ::  coupling_topology = 0             !<
    979     INTEGER(iwp) ::  dist_range = 0                    !<
    980     INTEGER(iwp) ::  disturbance_level_ind_b           !<
    981     INTEGER(iwp) ::  disturbance_level_ind_t           !<
    982     INTEGER(iwp) ::  doav_n = 0                        !<
    983     INTEGER(iwp) ::  dopr_n = 0                        !<
    984     INTEGER(iwp) ::  dopr_time_count = 0               !<
    985     INTEGER(iwp) ::  dopts_time_count = 0              !<
    986     INTEGER(iwp) ::  dots_time_count = 0               !<
    987     INTEGER(iwp) ::  do2d_xy_n = 0                     !<
    988     INTEGER(iwp) ::  do2d_xz_n = 0                     !<
    989     INTEGER(iwp) ::  do2d_yz_n = 0                     !<
    990     INTEGER(iwp) ::  do3d_avs_n = 0                    !<
    991     INTEGER(iwp) ::  dp_level_ind_b = 0                !<
    992     INTEGER(iwp) ::  dvrp_filecount = 0                !<
    993     INTEGER(iwp) ::  dz_stretch_level_index            !<
    994     INTEGER(iwp) ::  ensemble_member_nr = 0            !<
    995     INTEGER(iwp) ::  gamma_mg                          !<
    996     INTEGER(iwp) ::  gathered_size                     !<
    997     INTEGER(iwp) ::  grid_level                        !<
    998     INTEGER(iwp) ::  ibc_e_b                           !<
    999     INTEGER(iwp) ::  ibc_p_b                           !<
    1000     INTEGER(iwp) ::  ibc_p_t                           !<
    1001     INTEGER(iwp) ::  ibc_pt_b                          !<
    1002     INTEGER(iwp) ::  ibc_pt_t                          !<
    1003     INTEGER(iwp) ::  ibc_q_b                           !<
    1004     INTEGER(iwp) ::  ibc_q_t                           !<
    1005     INTEGER(iwp) ::  ibc_s_b                           !<
    1006     INTEGER(iwp) ::  ibc_s_t                           !<
    1007     INTEGER(iwp) ::  ibc_sa_t                          !<
    1008     INTEGER(iwp) ::  ibc_uv_b                          !<
    1009     INTEGER(iwp) ::  ibc_uv_t                          !<
    1010     INTEGER(iwp) ::  inflow_disturbance_begin = -1     !<
    1011     INTEGER(iwp) ::  inflow_disturbance_end = -1       !<
    1012     INTEGER(iwp) ::  intermediate_timestep_count       !<
    1013     INTEGER(iwp) ::  intermediate_timestep_count_max   !<
    1014     INTEGER(iwp) ::  io_group = 0                      !<
    1015     INTEGER(iwp) ::  io_blocks = 1                     !<
    1016     INTEGER(iwp) ::  iran = -1234567                   !<
     987    INTEGER(iwp) ::  abort_mode = 1                    !< abort condition (nested runs)
     988    INTEGER(iwp) ::  average_count_pr = 0              !< number of samples in vertical-profile output
     989    INTEGER(iwp) ::  average_count_3d = 0              !< number of samples in 3d output
     990    INTEGER(iwp) ::  current_timestep_number = 0       !< current timestep number, printed to RUN_CONTROL file
     991    INTEGER(iwp) ::  coupling_topology = 0             !< processor topology for atmosphere-ocean coupling  Siggi
     992    INTEGER(iwp) ::  dist_range = 0                    !< Siggi
     993    INTEGER(iwp) ::  disturbance_level_ind_b           !< lowest grid index where flow disturbance is applied
     994    INTEGER(iwp) ::  disturbance_level_ind_t           !< highest grid index where flow disturbance is applied
     995    INTEGER(iwp) ::  doav_n = 0                        !< number of 2d/3d output quantities subject to time averaging
     996    INTEGER(iwp) ::  dopr_n = 0                        !< number of profile output quantities subject to time averaging
     997    INTEGER(iwp) ::  dopr_time_count = 0               !< number of output intervals for profile output
     998    INTEGER(iwp) ::  dopts_time_count = 0              !< number of output intervals for particle data timeseries
     999    INTEGER(iwp) ::  dots_time_count = 0               !< number of output intervals for timeseries output
     1000    INTEGER(iwp) ::  dp_level_ind_b = 0                !< lowest grid index for external pressure gradient forcing
     1001    INTEGER(iwp) ::  dvrp_filecount = 0                !< Siggi
     1002    INTEGER(iwp) ::  dz_stretch_level_index            !< Siggi
     1003    INTEGER(iwp) ::  ensemble_member_nr = 0            !< namelist parameter
     1004    INTEGER(iwp) ::  gamma_mg                          !< Siggi
     1005    INTEGER(iwp) ::  gathered_size                     !< Siggi
     1006    INTEGER(iwp) ::  grid_level                        !< Siggi
     1007    INTEGER(iwp) ::  ibc_e_b                           !< integer flag for bc_e_b
     1008    INTEGER(iwp) ::  ibc_p_b                           !< integer flag for bc_p_b
     1009    INTEGER(iwp) ::  ibc_p_t                           !< integer flag for bc_p_t
     1010    INTEGER(iwp) ::  ibc_pt_b                          !< integer flag for bc_pt_b
     1011    INTEGER(iwp) ::  ibc_pt_t                          !< integer flag for bc_pt_t
     1012    INTEGER(iwp) ::  ibc_q_b                           !< integer flag for bc_q_b
     1013    INTEGER(iwp) ::  ibc_q_t                           !< integer flag for bc_q_t
     1014    INTEGER(iwp) ::  ibc_s_b                           !< integer flag for bc_s_b
     1015    INTEGER(iwp) ::  ibc_s_t                           !< integer flag for bc_s_t
     1016    INTEGER(iwp) ::  ibc_sa_t                          !< integer flag for bc_sa_t
     1017    INTEGER(iwp) ::  ibc_uv_b                          !< integer flag for bc_uv_b
     1018    INTEGER(iwp) ::  ibc_uv_t                          !< integer flag for bc_uv_t
     1019    INTEGER(iwp) ::  inflow_disturbance_begin = -1     !< namelist parameter
     1020    INTEGER(iwp) ::  inflow_disturbance_end = -1       !< namelist parameter
     1021    INTEGER(iwp) ::  intermediate_timestep_count       !< number of current Runge-Kutta substep
     1022    INTEGER(iwp) ::  intermediate_timestep_count_max   !< maximum number of Runge-Kutta substeps
     1023    INTEGER(iwp) ::  io_group = 0                      !< Siggi
     1024    INTEGER(iwp) ::  io_blocks = 1                     !< Siggi
     1025    INTEGER(iwp) ::  iran = -1234567                   !< integer random number used for flow disturbances
    10171026    INTEGER(iwp) ::  lod = 1                           !< level of detail, topography input parameter
    1018     INTEGER(iwp) ::  masks = 0                         !<
    1019     INTEGER(iwp) ::  maximum_grid_level                !<
    1020     INTEGER(iwp) ::  maximum_parallel_io_streams = -1  !<
    1021     INTEGER(iwp) ::  max_pr_user = 0                   !<
    1022     INTEGER(iwp) ::  mgcycles = 0                      !<
    1023     INTEGER(iwp) ::  mg_cycles = -1                    !<
    1024     INTEGER(iwp) ::  mg_switch_to_pe0_level = -1       !<
    1025     INTEGER(iwp) ::  mid                               !<
    1026     INTEGER(iwp) ::  nlsf = 1000                       !<
    1027     INTEGER(iwp) ::  ntnudge = 1000                    !<
    1028     INTEGER(iwp) ::  ngsrb = 2                         !<
    1029     INTEGER(iwp) ::  nr_timesteps_this_run = 0         !<
    1030     INTEGER(iwp) ::  nsor = 20                         !<
    1031     INTEGER(iwp) ::  nsor_ini = 100                    !<
    1032     INTEGER(iwp) ::  n_sor                             !<
    1033     INTEGER(iwp) ::  normalizing_region = 0            !<
    1034     INTEGER(iwp) ::  num_leg=0                         !<
    1035     INTEGER(iwp) ::  num_var_fl                        !<
    1036     INTEGER(iwp) ::  num_var_fl_user=0                 !<
    1037     INTEGER(iwp) ::  nz_do3d = -9999                   !<
    1038     INTEGER(iwp) ::  prt_time_count = 0                !<
    1039     INTEGER(iwp) ::  recycling_plane                   !<
    1040     INTEGER(iwp) ::  runnr = 0                         !<
    1041     INTEGER(iwp) ::  skip_do_avs = 0                   !<
    1042     INTEGER(iwp) ::  subdomain_size                    !<
    1043     INTEGER(iwp) ::  terminate_coupled = 0             !<
    1044     INTEGER(iwp) ::  terminate_coupled_remote = 0      !<
    1045     INTEGER(iwp) ::  timestep_count = 0                !<
    1046 
    1047     INTEGER(iwp) ::  dist_nxl(0:1)                               !<
    1048     INTEGER(iwp) ::  dist_nxr(0:1)                               !<
    1049     INTEGER(iwp) ::  dist_nyn(0:1)                               !<
    1050     INTEGER(iwp) ::  dist_nys(0:1)                               !<
    1051     INTEGER(iwp) ::  do2d_no(0:1) = 0                            !<
    1052     INTEGER(iwp) ::  do2d_xy_time_count(0:1)                     !<
    1053     INTEGER(iwp) ::  do2d_xz_time_count(0:1)                     !<
    1054     INTEGER(iwp) ::  do2d_yz_time_count(0:1)                     !<
    1055     INTEGER(iwp) ::  do3d_no(0:1) = 0                            !<
    1056     INTEGER(iwp) ::  do3d_time_count(0:1)                        !<
    1057     INTEGER(iwp) ::  domask_no(max_masks,0:1) = 0                !<
    1058     INTEGER(iwp) ::  domask_time_count(max_masks,0:1)            !<
    1059     INTEGER(iwp) ::  mask_size(max_masks,3) = -1                 !<
    1060     INTEGER(iwp) ::  mask_size_l(max_masks,3) = -1               !<
    1061     INTEGER(iwp) ::  mask_start_l(max_masks,3) = -1              !<
    1062     INTEGER(iwp) ::  pt_vertical_gradient_level_ind(10) = -9999  !<
    1063     INTEGER(iwp) ::  q_vertical_gradient_level_ind(10) = -9999   !<
    1064     INTEGER(iwp) ::  s_vertical_gradient_level_ind(10) = -9999   !<               
    1065     INTEGER(iwp) ::  sa_vertical_gradient_level_ind(10) = -9999  !<
    1066     INTEGER(iwp) ::  section(100,3)                              !<
    1067     INTEGER(iwp) ::  section_xy(100) = -9999                     !<
    1068     INTEGER(iwp) ::  section_xz(100) = -9999                     !<
    1069     INTEGER(iwp) ::  section_yz(100) = -9999                     !<
    1070     INTEGER(iwp) ::  ug_vertical_gradient_level_ind(10) = -9999  !<
    1071     INTEGER(iwp) ::  vg_vertical_gradient_level_ind(10) = -9999  !<
    1072     INTEGER(iwp) ::  subs_vertical_gradient_level_i(10) = -9999  !<
    1073 
    1074 
    1075     INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_xy  !<
    1076     INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_xz  !<
    1077     INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_yz  !<
    1078     INTEGER(iwp), DIMENSION(0:1) ::  ntdim_3d     !<
    1079 
    1080     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  grid_level_count  !<
    1081 
    1082     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_i         !<
    1083     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_j         !<
    1084     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_k         !<
    1085     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_i_global  !<   
    1086     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_j_global  !<
    1087     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_k_global  !<
    1088 
    1089     LOGICAL ::  bc_lr_cyc =.TRUE.                            !<
    1090     LOGICAL ::  bc_lr_dirrad = .FALSE.                       !<
    1091     LOGICAL ::  bc_lr_raddir = .FALSE.                       !<
    1092     LOGICAL ::  bc_ns_cyc = .TRUE.                           !<
    1093     LOGICAL ::  bc_ns_dirrad = .FALSE.                       !<
    1094     LOGICAL ::  bc_ns_raddir = .FALSE.                       !<
    1095     LOGICAL ::  call_microphysics_at_all_substeps = .FALSE.  !<
    1096     LOGICAL ::  call_psolver_at_all_substeps = .TRUE.        !<
    1097     LOGICAL ::  cloud_droplets = .FALSE.                     !<
    1098     LOGICAL ::  cloud_physics = .FALSE.                      !<
    1099     LOGICAL ::  cloud_top_radiation = .FALSE.                !<
    1100     LOGICAL ::  conserve_volume_flow = .FALSE.               !<
    1101     LOGICAL ::  constant_diffusion = .FALSE.                 !<
    1102     LOGICAL ::  constant_flux_layer = .TRUE.                 !<
    1103     LOGICAL ::  constant_heatflux = .TRUE.                   !< 
    1104     LOGICAL ::  constant_top_heatflux = .TRUE.               !<
    1105     LOGICAL ::  constant_top_momentumflux = .FALSE.          !<
    1106     LOGICAL ::  constant_top_salinityflux = .TRUE.           !<
    1107     LOGICAL ::  constant_top_scalarflux = .TRUE.             !<
    1108     LOGICAL ::  constant_scalarflux = .TRUE.                 !<
    1109     LOGICAL ::  constant_waterflux = .TRUE.                  !<
    1110     LOGICAL ::  create_disturbances = .TRUE.                 !<
    1111     LOGICAL ::  data_output_2d_on_each_pe = .TRUE.           !<
    1112     LOGICAL ::  dissipation_control = .FALSE.                !<
    1113     LOGICAL ::  disturbance_created = .FALSE.                !<
    1114     LOGICAL ::  do2d_at_begin = .FALSE.                      !<
    1115     LOGICAL ::  do3d_at_begin = .FALSE.                      !<
    1116     LOGICAL ::  do_sum = .FALSE.                             !<
    1117     LOGICAL ::  dp_external = .FALSE.                        !<
    1118     LOGICAL ::  dp_smooth = .FALSE.                          !<
    1119     LOGICAL ::  dt_fixed = .FALSE.                           !<
    1120     LOGICAL ::  dt_3d_reached                                !<
    1121     LOGICAL ::  dt_3d_reached_l                              !<
    1122     LOGICAL ::  exchange_mg = .FALSE.                        !<
    1123     LOGICAL ::  first_call_lpm = .TRUE.                      !<
    1124     LOGICAL ::  force_print_header = .FALSE.                 !<
    1125     LOGICAL ::  galilei_transformation = .FALSE.             !<
    1126     LOGICAL ::  humidity = .FALSE.                           !<
    1127     LOGICAL ::  humidity_remote = .FALSE.                    !<
    1128     LOGICAL ::  inflow_l = .FALSE.                           !<
    1129     LOGICAL ::  inflow_n = .FALSE.                           !<
    1130     LOGICAL ::  inflow_r = .FALSE.                           !<
    1131     LOGICAL ::  inflow_s = .FALSE.                           !<
    1132     LOGICAL ::  large_scale_forcing = .FALSE.                !<
    1133     LOGICAL ::  large_scale_subsidence = .FALSE.             !<
    1134     LOGICAL ::  land_surface = .FALSE.                       !< flag parameter indicating wheather the lsm is used
    1135     LOGICAL ::  lsf_exception = .FALSE.                      !< temporary flag for use of lsf with buildings on flat terrain
    1136     LOGICAL ::  lsf_surf = .TRUE.                            !<
    1137     LOGICAL ::  lsf_vert = .TRUE.                            !<
    1138     LOGICAL ::  lptnudge = .FALSE.                           !<
    1139     LOGICAL ::  lqnudge = .FALSE.                            !<
    1140     LOGICAL ::  lunudge = .FALSE.                            !<
    1141     LOGICAL ::  lvnudge = .FALSE.                            !<
    1142     LOGICAL ::  lwnudge = .FALSE.                            !<
    1143     LOGICAL ::  masking_method = .FALSE.                     !<
    1144     LOGICAL ::  microphysics_sat_adjust = .FALSE.            !<
    1145     LOGICAL ::  microphysics_kessler = .FALSE.               !<
    1146     LOGICAL ::  microphysics_seifert = .FALSE.               !<
    1147     LOGICAL ::  mg_switch_to_pe0 = .FALSE.                   !<
    1148     LOGICAL ::  nest_bound_l = .FALSE.                       !< nested boundary on left side
    1149     LOGICAL ::  nest_bound_n = .FALSE.                       !< nested boundary on north side
    1150     LOGICAL ::  nest_bound_r = .FALSE.                       !< nested boundary on right side
    1151     LOGICAL ::  nest_bound_s = .FALSE.                       !< nested boundary on south side
    1152     LOGICAL ::  nest_domain  = .FALSE.                       !< domain is nested into a parent domain
    1153     LOGICAL ::  neutral = .FALSE.                            !<
    1154     LOGICAL ::  nudging = .FALSE.                            !<
    1155     LOGICAL ::  ocean = .FALSE.                              !<
    1156     LOGICAL ::  outflow_l = .FALSE.                          !<
    1157     LOGICAL ::  outflow_n = .FALSE.                          !<
    1158     LOGICAL ::  outflow_r = .FALSE.                          !<
    1159     LOGICAL ::  outflow_s = .FALSE.                          !<
    1160     LOGICAL ::  passive_scalar = .FALSE.                     !<
    1161     LOGICAL ::  precipitation = .FALSE.                      !<
    1162     LOGICAL ::  random_heatflux = .FALSE.                    !<
    1163     LOGICAL ::  recycling_yshift = .FALSE.                   !<
    1164     LOGICAL ::  run_control_header = .FALSE.                 !<
    1165     LOGICAL ::  run_coupled = .TRUE.                         !<
    1166     LOGICAL ::  scalar_rayleigh_damping = .TRUE.             !<
    1167     LOGICAL ::  sloping_surface = .FALSE.                    !<
    1168     LOGICAL ::  stop_dt = .FALSE.                            !<
    1169     LOGICAL ::  synchronous_exchange = .FALSE.               !<
     1027    INTEGER(iwp) ::  masks = 0                         !< counter for number of masked output quantities
     1028    INTEGER(iwp) ::  maximum_grid_level                !< Siggi
     1029    INTEGER(iwp) ::  maximum_parallel_io_streams = -1  !< Siggi
     1030    INTEGER(iwp) ::  max_pr_user = 0                   !< number of user-defined profiles (must not change within a job chain)
     1031    INTEGER(iwp) ::  mgcycles = 0                      !< Siggi
     1032    INTEGER(iwp) ::  mg_cycles = -1                    !< namelist parameter
     1033    INTEGER(iwp) ::  mg_switch_to_pe0_level = -1       !< namelist parameter
     1034    INTEGER(iwp) ::  mid                               !< masked output running index
     1035    INTEGER(iwp) ::  nlsf = 1000                       !< maximum number of profiles in LSF_DATA (large scale forcing)
     1036    INTEGER(iwp) ::  ntnudge = 1000                    !< maximum number of profiles in NUDGING_DATA (nudging)
     1037    INTEGER(iwp) ::  ngsrb = 2                         !< namelist parameter
     1038    INTEGER(iwp) ::  nr_timesteps_this_run = 0         !< number of timesteps (cpu time measurements)
     1039    INTEGER(iwp) ::  nsor = 20                         !< namelist parameter
     1040    INTEGER(iwp) ::  nsor_ini = 100                    !< namelist parameter
     1041    INTEGER(iwp) ::  n_sor                             !< number of iterations to be used in SOR-scheme
     1042    INTEGER(iwp) ::  normalizing_region = 0            !< namelist parameter
     1043    INTEGER(iwp) ::  num_leg=0                         !< number of different legs in virtual flight measurements
     1044    INTEGER(iwp) ::  num_var_fl                        !< number of sampling/output variables in virtual flight measurements
     1045    INTEGER(iwp) ::  num_var_fl_user=0                 !< number of user-defined sampling/output variables in virtual flight measurements
     1046    INTEGER(iwp) ::  nz_do3d = -9999                   !< namelist parameter
     1047    INTEGER(iwp) ::  prt_time_count = 0                !< number of output intervals for particle data output
     1048    INTEGER(iwp) ::  recycling_plane                   !< position of recycling plane along x (in grid points) in case of turbulence recycling
     1049    INTEGER(iwp) ::  runnr = 0                         !< number of run in job chain
     1050    INTEGER(iwp) ::  subdomain_size                    !< number of grid points in (3d) subdomain including ghost points
     1051    INTEGER(iwp) ::  terminate_coupled = 0             !< Siggi
     1052    INTEGER(iwp) ::  terminate_coupled_remote = 0      !< Siggi
     1053    INTEGER(iwp) ::  timestep_count = 0                !< Siggi --> is it not analogue to intermediate_timestep_count
     1054    INTEGER(iwp) ::  dist_nxl(0:1)                               !< left boundary of disturbance region
     1055    INTEGER(iwp) ::  dist_nxr(0:1)                               !< right boundary of disturbance region
     1056    INTEGER(iwp) ::  dist_nyn(0:1)                               !< north boundary of disturbance region
     1057    INTEGER(iwp) ::  dist_nys(0:1)                               !< south boundary of disturbance region
     1058    INTEGER(iwp) ::  do2d_no(0:1) = 0                            !< number of 2d output quantities
     1059    INTEGER(iwp) ::  do2d_xy_time_count(0:1)                     !< number of output intervals for 2d data (xy)
     1060    INTEGER(iwp) ::  do2d_xz_time_count(0:1)                     !< number of output intervals for 2d data (xz)
     1061    INTEGER(iwp) ::  do2d_yz_time_count(0:1)                     !< number of output intervals for 2d data (yz)
     1062    INTEGER(iwp) ::  do3d_no(0:1) = 0                            !< number of 3d output quantities
     1063    INTEGER(iwp) ::  do3d_time_count(0:1)                        !< number of output intervals for 3d data
     1064    INTEGER(iwp) ::  domask_no(max_masks,0:1) = 0                !< number of masked output quantities
     1065    INTEGER(iwp) ::  domask_time_count(max_masks,0:1)            !< number of output intervals for masked data
     1066    INTEGER(iwp) ::  mask_size(max_masks,3) = -1                 !< size of mask array per mask and dimension (for netcdf output)
     1067    INTEGER(iwp) ::  mask_size_l(max_masks,3) = -1               !< subdomain size of mask array per mask and dimension (for netcdf output)
     1068    INTEGER(iwp) ::  mask_start_l(max_masks,3) = -1              !< subdomain start index of mask array (for netcdf output)
     1069    INTEGER(iwp) ::  pt_vertical_gradient_level_ind(10) = -9999  !< grid index values of pt_vertical_gradient_level(s)
     1070    INTEGER(iwp) ::  q_vertical_gradient_level_ind(10) = -9999   !< grid index values of q_vertical_gradient_level(s)
     1071    INTEGER(iwp) ::  s_vertical_gradient_level_ind(10) = -9999   !< grid index values of s_vertical_gradient_level(s)   
     1072    INTEGER(iwp) ::  sa_vertical_gradient_level_ind(10) = -9999  !< grid index values of sa_vertical_gradient_level(s)
     1073    INTEGER(iwp) ::  section(100,3)                              !< collective array for section_xy/xz/yz
     1074    INTEGER(iwp) ::  section_xy(100) = -9999                     !< namelist parameter
     1075    INTEGER(iwp) ::  section_xz(100) = -9999                     !< namelist parameter
     1076    INTEGER(iwp) ::  section_yz(100) = -9999                     !< namelist parameter
     1077    INTEGER(iwp) ::  ug_vertical_gradient_level_ind(10) = -9999  !< grid index values of ug_vertical_gradient_level(s)
     1078    INTEGER(iwp) ::  vg_vertical_gradient_level_ind(10) = -9999  !< grid index values of vg_vertical_gradient_level(s)
     1079    INTEGER(iwp) ::  subs_vertical_gradient_level_i(10) = -9999  !< grid index values of subs_vertical_gradient_level(s)
     1080
     1081    INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_xy  !< number of output intervals for 2d data (xy)
     1082    INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_xz  !< number of output intervals for 2d data (xz)
     1083    INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_yz  !< number of output intervals for 2d data (yz)
     1084    INTEGER(iwp), DIMENSION(0:1) ::  ntdim_3d     !< number of output intervals for 3d data
     1085
     1086    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  grid_level_count  !< Siggi
     1087
     1088    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_i         !< subdomain grid index of masked output point on x-dimension
     1089    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_j         !< subdomain grid index of masked output point on y-dimension
     1090    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_k         !< subdomain grid index of masked output point on z-dimension
     1091    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_i_global  !< global grid index of masked output point on x-dimension
     1092    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_j_global  !< global grid index of masked output point on y-dimension
     1093    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_k_global  !< global grid index of masked output point on z-dimension
     1094
     1095    LOGICAL ::  bc_lr_cyc =.TRUE.                            !< left-right boundary condition cyclic?
     1096    LOGICAL ::  bc_lr_dirrad = .FALSE.                       !< left-right boundary condition dirichlet/radiation?
     1097    LOGICAL ::  bc_lr_raddir = .FALSE.                       !< left-right boundary condition radiation/dirichlet?
     1098    LOGICAL ::  bc_ns_cyc = .TRUE.                           !< north-south boundary condition cyclic?
     1099    LOGICAL ::  bc_ns_dirrad = .FALSE.                       !< north-south boundary condition dirichlet/radiation?
     1100    LOGICAL ::  bc_ns_raddir = .FALSE.                       !< north-south boundary condition radiation/dirichlet?
     1101    LOGICAL ::  call_microphysics_at_all_substeps = .FALSE.  !< namelist parameter
     1102    LOGICAL ::  call_psolver_at_all_substeps = .TRUE.        !< namelist parameter
     1103    LOGICAL ::  cloud_droplets = .FALSE.                     !< namelist parameter
     1104    LOGICAL ::  cloud_physics = .FALSE.                      !< namelist parameter
     1105    LOGICAL ::  cloud_top_radiation = .FALSE.                !< namelist parameter
     1106    LOGICAL ::  conserve_volume_flow = .FALSE.               !< namelist parameter
     1107    LOGICAL ::  constant_diffusion = .FALSE.                 !< diffusion coefficient constant?
     1108    LOGICAL ::  constant_flux_layer = .TRUE.                 !< namelist parameter
     1109    LOGICAL ::  constant_heatflux = .TRUE.                   !< heat flux at all surfaces constant?
     1110    LOGICAL ::  constant_top_heatflux = .TRUE.               !< heat flux at domain top constant?
     1111    LOGICAL ::  constant_top_momentumflux = .FALSE.          !< momentum flux at domain topconstant?
     1112    LOGICAL ::  constant_top_salinityflux = .TRUE.           !< salinity flux at ocean domain top?
     1113    LOGICAL ::  constant_top_scalarflux = .TRUE.             !< passive-scalar flux at domain top constant?
     1114    LOGICAL ::  constant_scalarflux = .TRUE.                 !< passive-scalar flux at surfaces constant?
     1115    LOGICAL ::  constant_waterflux = .TRUE.                  !< water flux at all surfaces constant?
     1116    LOGICAL ::  create_disturbances = .TRUE.                 !< namelist parameter
     1117    LOGICAL ::  data_output_2d_on_each_pe = .TRUE.           !< namelist parameter
     1118    LOGICAL ::  disturbance_created = .FALSE.                !< flow disturbance imposed?
     1119    LOGICAL ::  do2d_at_begin = .FALSE.                      !< namelist parameter
     1120    LOGICAL ::  do3d_at_begin = .FALSE.                      !< namelist parameter
     1121    LOGICAL ::  do_sum = .FALSE.                             !< contribute to time average of profile data?
     1122    LOGICAL ::  dp_external = .FALSE.                        !< namelist parameter
     1123    LOGICAL ::  dp_smooth = .FALSE.                          !< namelist parameter
     1124    LOGICAL ::  dt_fixed = .FALSE.                           !< fixed timestep (namelist parameter dt set)?
     1125    LOGICAL ::  dt_3d_reached                                !< internal timestep for particle advection
     1126    LOGICAL ::  dt_3d_reached_l                              !< internal timestep for particle advection
     1127    LOGICAL ::  exchange_mg = .FALSE.                        !< (Siggi add short description)
     1128    LOGICAL ::  first_call_lpm = .TRUE.                      !< call lpm only once per timestep?
     1129    LOGICAL ::  force_print_header = .FALSE.                 !< namelist parameter
     1130    LOGICAL ::  galilei_transformation = .FALSE.             !< namelist parameter
     1131    LOGICAL ::  humidity = .FALSE.                           !< namelist parameter
     1132    LOGICAL ::  humidity_remote = .FALSE.                    !< (Siggi add short description)
     1133    LOGICAL ::  inflow_l = .FALSE.                           !< left domain boundary has non-cyclic inflow?
     1134    LOGICAL ::  inflow_n = .FALSE.                           !< north domain boundary has non-cyclic inflow?
     1135    LOGICAL ::  inflow_r = .FALSE.                           !< right domain boundary has non-cyclic inflow?
     1136    LOGICAL ::  inflow_s = .FALSE.                           !< south domain boundary has non-cyclic inflow?
     1137    LOGICAL ::  large_scale_forcing = .FALSE.                !< namelist parameter
     1138    LOGICAL ::  large_scale_subsidence = .FALSE.             !< namelist parameter
     1139    LOGICAL ::  land_surface = .FALSE.                       !< use land surface model?
     1140    LOGICAL ::  lsf_exception = .FALSE.                      !< use of lsf with buildings (temporary)?
     1141    LOGICAL ::  lsf_surf = .TRUE.                            !< use surface forcing (large scale forcing)?
     1142    LOGICAL ::  lsf_vert = .TRUE.                            !< use atmospheric forcing (large scale forcing)?
     1143    LOGICAL ::  masking_method = .FALSE.                     !< namelist parameter
     1144    LOGICAL ::  microphysics_sat_adjust = .FALSE.            !< use saturation adjust bulk scheme?
     1145    LOGICAL ::  microphysics_kessler = .FALSE.               !< use kessler bulk scheme?
     1146    LOGICAL ::  microphysics_seifert = .FALSE.               !< use 2-moment Seifert and Beheng scheme?
     1147    LOGICAL ::  mg_switch_to_pe0 = .FALSE.                   !< (Siggi add short description)
     1148    LOGICAL ::  nest_bound_l = .FALSE.                       !< nested boundary on left side?
     1149    LOGICAL ::  nest_bound_n = .FALSE.                       !< nested boundary on north side?
     1150    LOGICAL ::  nest_bound_r = .FALSE.                       !< nested boundary on right side?
     1151    LOGICAL ::  nest_bound_s = .FALSE.                       !< nested boundary on south side?
     1152    LOGICAL ::  nest_domain  = .FALSE.                       !< domain is nested into a parent domain?
     1153    LOGICAL ::  neutral = .FALSE.                            !< namelist parameter
     1154    LOGICAL ::  nudging = .FALSE.                            !< namelist parameter
     1155    LOGICAL ::  ocean = .FALSE.                              !< namelist parameter
     1156    LOGICAL ::  outflow_l = .FALSE.                          !< left domain boundary has non-cyclic outflow?
     1157    LOGICAL ::  outflow_n = .FALSE.                          !< north domain boundary has non-cyclic outflow?
     1158    LOGICAL ::  outflow_r = .FALSE.                          !< right domain boundary has non-cyclic outflow?
     1159    LOGICAL ::  outflow_s = .FALSE.                          !< south domain boundary has non-cyclic outflow?
     1160    LOGICAL ::  passive_scalar = .FALSE.                     !< namelist parameter
     1161    LOGICAL ::  precipitation = .FALSE.                      !< namelist parameter
     1162    LOGICAL ::  random_heatflux = .FALSE.                    !< namelist parameter
     1163    LOGICAL ::  recycling_yshift = .FALSE.                   !< namelist parameter
     1164    LOGICAL ::  run_control_header = .FALSE.                 !< onetime output of RUN_CONTROL header
     1165    LOGICAL ::  run_coupled = .TRUE.                         !< (Siggi add short description)
     1166    LOGICAL ::  scalar_rayleigh_damping = .TRUE.             !< namelist parameter
     1167    LOGICAL ::  sloping_surface = .FALSE.                    !< use sloped surface?
     1168                                                             !< (namelist parameter alpha_surface)
     1169    LOGICAL ::  stop_dt = .FALSE.                            !< (Siggi add short description)
     1170    LOGICAL ::  synchronous_exchange = .FALSE.               !< namelist parameter
    11701171    LOGICAL ::  synthetic_turbulence_generator = .FALSE.     !< flag for synthetic turbulence generator module
    1171     LOGICAL ::  terminate_run = .FALSE.                      !<
    1172     LOGICAL ::  transpose_compute_overlap = .FALSE.          !<
    1173     LOGICAL ::  turbulent_inflow = .FALSE.                   !<
    1174     LOGICAL ::  turbulent_outflow = .FALSE.                  !< flag for turbulent outflow condition
    1175     LOGICAL ::  urban_surface = .FALSE.                      !< flag for urban surface model
    1176     LOGICAL ::  use_cmax = .TRUE.                            !<
    1177     LOGICAL ::  use_initial_profile_as_reference = .FALSE.   !<
    1178     LOGICAL ::  use_prescribed_profile_data = .FALSE.        !<
    1179     LOGICAL ::  use_single_reference_value = .FALSE.         !<
    1180     LOGICAL ::  use_subsidence_tendencies = .FALSE.          !<
    1181     LOGICAL ::  use_surface_fluxes = .FALSE.                 !<
    1182     LOGICAL ::  use_top_fluxes = .FALSE.                     !<
    1183     LOGICAL ::  use_ug_for_galilei_tr = .TRUE.               !<
    1184     LOGICAL ::  use_upstream_for_tke = .FALSE.               !<
    1185     LOGICAL ::  virtual_flight = .FALSE.                     !< flag for virtual flight model
    1186     LOGICAL ::  wall_adjustment = .TRUE.                     !<
    1187     LOGICAL ::  ws_scheme_sca = .FALSE.                      !<
    1188     LOGICAL ::  ws_scheme_mom = .FALSE.                      !<
    1189     LOGICAL ::  data_output_xy(0:1) = .FALSE.                !<
    1190     LOGICAL ::  data_output_xz(0:1) = .FALSE.                !<
    1191     LOGICAL ::  data_output_yz(0:1) = .FALSE.                !<
    1192 
    1193     REAL(wp) ::  advected_distance_x = 0.0_wp                  !<
    1194     REAL(wp) ::  advected_distance_y = 0.0_wp                  !<
    1195     REAL(wp) ::  alpha_surface = 0.0_wp                        !<
    1196     REAL(wp) ::  atmos_ocean_sign = 1.0_wp                     !<
    1197     REAL(wp) ::  averaging_interval = 0.0_wp                   !<
    1198     REAL(wp) ::  averaging_interval_pr = 9999999.9_wp          !<
    1199     REAL(wp) ::  bc_pt_t_val                                   !<
    1200     REAL(wp) ::  bc_q_t_val                                    !<
    1201     REAL(wp) ::  bc_s_t_val                                    !<
    1202     REAL(wp) ::  bottom_salinityflux = 0.0_wp                  !<
    1203     REAL(wp) ::  building_height = 50.0_wp                     !<
    1204     REAL(wp) ::  building_length_x = 50.0_wp                   !<
    1205     REAL(wp) ::  building_length_y = 50.0_wp                   !<
    1206     REAL(wp) ::  building_wall_left = 9999999.9_wp             !<
    1207     REAL(wp) ::  building_wall_south = 9999999.9_wp            !<
    1208     REAL(wp) ::  canyon_height = 50.0_wp                       !<
    1209     REAL(wp) ::  canyon_width_x = 9999999.9_wp                 !<
    1210     REAL(wp) ::  canyon_width_y = 9999999.9_wp                 !<
    1211     REAL(wp) ::  canyon_wall_left = 9999999.9_wp               !<
    1212     REAL(wp) ::  canyon_wall_south = 9999999.9_wp              !<
    1213     REAL(wp) ::  cfl_factor = -1.0_wp                          !<
    1214     REAL(wp) ::  cos_alpha_surface                             !<
    1215     REAL(wp) ::  coupling_start_time = 0.0_wp                  !<
    1216     REAL(wp) ::  disturbance_amplitude = 0.25_wp               !<
    1217     REAL(wp) ::  disturbance_energy_limit = 0.01_wp            !<
    1218     REAL(wp) ::  disturbance_level_b = -9999999.9_wp           !<
    1219     REAL(wp) ::  disturbance_level_t = -9999999.9_wp           !<
    1220     REAL(wp) ::  dp_level_b = 0.0_wp                           !<
    1221     REAL(wp) ::  dt = -1.0_wp                                  !<
    1222     REAL(wp) ::  dt_averaging_input = 0.0_wp                   !<
    1223     REAL(wp) ::  dt_averaging_input_pr = 9999999.9_wp          !<
    1224     REAL(wp) ::  dt_coupling = 9999999.9_wp                    !<
    1225     REAL(wp) ::  dt_data_output = 9999999.9_wp                 !<
    1226     REAL(wp) ::  dt_data_output_av = 9999999.9_wp              !<
    1227     REAL(wp) ::  dt_disturb = 9999999.9_wp                     !<
    1228     REAL(wp) ::  dt_dopr = 9999999.9_wp                        !<
    1229     REAL(wp) ::  dt_dopr_listing = 9999999.9_wp                !<
    1230     REAL(wp) ::  dt_dopts = 9999999.9_wp                       !<
    1231     REAL(wp) ::  dt_dots = 9999999.9_wp                        !<
    1232     REAL(wp) ::  dt_do2d_xy = 9999999.9_wp                     !<
    1233     REAL(wp) ::  dt_do2d_xz = 9999999.9_wp                     !<
    1234     REAL(wp) ::  dt_do2d_yz = 9999999.9_wp                     !<
    1235     REAL(wp) ::  dt_do3d = 9999999.9_wp                        !<
    1236     REAL(wp) ::  dt_dvrp = 9999999.9_wp                        !<
    1237     REAL(wp) ::  dt_max = 20.0_wp                              !<
    1238     REAL(wp) ::  dt_restart = 9999999.9_wp                     !<
    1239     REAL(wp) ::  dt_run_control = 60.0_wp                      !<
    1240     REAL(wp) ::  dt_3d = 1.0_wp                                !<
    1241     REAL(wp) ::  dz = -1.0_wp                                  !<
    1242     REAL(wp) ::  dz_max = 9999999.9_wp                         !<
    1243     REAL(wp) ::  dz_stretch_factor = 1.08_wp                   !<
    1244     REAL(wp) ::  dz_stretch_level = 100000.0_wp                !<
    1245     REAL(wp) ::  e_init = 0.0_wp                               !<
    1246     REAL(wp) ::  e_min = 0.0_wp                                !<
    1247     REAL(wp) ::  end_time = 0.0_wp                             !<
    1248     REAL(wp) ::  f = 0.0_wp                                    !<
    1249     REAL(wp) ::  fs = 0.0_wp                                   !<
    1250     REAL(wp) ::  g = 9.81_wp                                   !<
    1251     REAL(wp) ::  inflow_damping_height = 9999999.9_wp          !<
    1252     REAL(wp) ::  inflow_damping_width = 9999999.9_wp           !<
    1253     REAL(wp) ::  kappa = 0.4_wp                                !<
    1254     REAL(wp) ::  km_constant = -1.0_wp                         !<
    1255     REAL(wp) ::  mask_scale_x = 1.0_wp                         !<
    1256     REAL(wp) ::  mask_scale_y = 1.0_wp                         !<
    1257     REAL(wp) ::  mask_scale_z = 1.0_wp                         !<
    1258     REAL(wp) ::  maximum_cpu_time_allowed = 0.0_wp             !<
    1259     REAL(wp) ::  molecular_viscosity = 1.461E-5_wp             !<
    1260     REAL(wp) ::  old_dt = 1.0E-10_wp                           !<
    1261     REAL(wp) ::  omega = 7.29212E-5_wp                         !<
    1262     REAL(wp) ::  omega_sor = 1.8_wp                            !<
    1263     REAL(wp) ::  outflow_source_plane = -9999999.9_wp          !< x-position of outflow-source plane (turbulent outflow method)
    1264     REAL(wp) ::  particle_maximum_age = 9999999.9_wp           !<
    1265     REAL(wp) ::  phi = 55.0_wp                                 !<
    1266     REAL(wp) ::  prandtl_number = 1.0_wp                       !<
    1267     REAL(wp) ::  precipitation_amount_interval = 9999999.9_wp  !<
    1268     REAL(wp) ::  prho_reference                                !<
    1269     REAL(wp) ::  pt_damping_factor = 0.0_wp                    !<
    1270     REAL(wp) ::  pt_damping_width = 0.0_wp                     !<
    1271     REAL(wp) ::  pt_reference = 9999999.9_wp                   !<
    1272     REAL(wp) ::  pt_slope_offset = 0.0_wp                      !<
    1273     REAL(wp) ::  pt_surface = 300.0_wp                         !<
    1274     REAL(wp) ::  pt_surface_initial_change = 0.0_wp            !<
    1275     REAL(wp) ::  q_surface = 0.0_wp                            !<
    1276     REAL(wp) ::  q_surface_initial_change = 0.0_wp             !<
    1277     REAL(wp) ::  rayleigh_damping_factor = -1.0_wp             !<
    1278     REAL(wp) ::  rayleigh_damping_height = -1.0_wp             !<
    1279     REAL(wp) ::  recycling_width = 9999999.9_wp                !<
    1280     REAL(wp) ::  residual_limit = 1.0E-4_wp                    !<
    1281     REAL(wp) ::  restart_time = 9999999.9_wp                   !<
    1282     REAL(wp) ::  rho_reference                                 !<
    1283     REAL(wp) ::  rho_surface                                   !<
    1284     REAL(wp) ::  roughness_length = 0.1_wp                     !<
    1285     REAL(wp) ::  sa_surface = 35.0_wp                          !<
    1286     REAL(wp) ::  simulated_time = 0.0_wp                       !<
    1287     REAL(wp) ::  simulated_time_at_begin                       !<
    1288     REAL(wp) ::  sin_alpha_surface                             !<
    1289     REAL(wp) ::  skip_time_data_output = 0.0_wp                !<
    1290     REAL(wp) ::  skip_time_data_output_av = 9999999.9_wp       !<
    1291     REAL(wp) ::  skip_time_dopr = 9999999.9_wp                 !<
    1292     REAL(wp) ::  skip_time_do2d_xy = 9999999.9_wp              !<
    1293     REAL(wp) ::  skip_time_do2d_xz = 9999999.9_wp              !<
    1294     REAL(wp) ::  skip_time_do2d_yz = 9999999.9_wp              !<
    1295     REAL(wp) ::  skip_time_do3d = 9999999.9_wp                 !<
    1296     REAL(wp) ::  surface_heatflux = 9999999.9_wp               !<
    1297     REAL(wp) ::  surface_pressure = 1013.25_wp                 !<
    1298     REAL(wp) ::  surface_scalarflux = 9999999.9_wp             !<
    1299     REAL(wp) ::  surface_waterflux = 9999999.9_wp              !<
    1300     REAL(wp) ::  s_surface = 0.0_wp                            !<
    1301     REAL(wp) ::  s_surface_initial_change = 0.0_wp             !<
    1302     REAL(wp) ::  termination_time_needed = -1.0_wp             !<
    1303     REAL(wp) ::  time_coupling = 0.0_wp                        !<
    1304     REAL(wp) ::  time_disturb = 0.0_wp                         !<
    1305     REAL(wp) ::  time_dopr = 0.0_wp                            !<
    1306     REAL(wp) ::  time_dopr_av = 0.0_wp                         !<
    1307     REAL(wp) ::  time_dopr_listing = 0.0_wp                    !<
    1308     REAL(wp) ::  time_dopts = 0.0_wp                           !<
    1309     REAL(wp) ::  time_dosp = 0.0_wp                            !<
    1310     REAL(wp) ::  time_dosp_av = 0.0_wp                         !<
    1311     REAL(wp) ::  time_dots = 0.0_wp                            !<
    1312     REAL(wp) ::  time_do2d_xy = 0.0_wp                         !<
    1313     REAL(wp) ::  time_do2d_xz = 0.0_wp                         !<
    1314     REAL(wp) ::  time_do2d_yz = 0.0_wp                         !<
    1315     REAL(wp) ::  time_do3d = 0.0_wp                            !<
    1316     REAL(wp) ::  time_do_av = 0.0_wp                           !<
    1317     REAL(wp) ::  time_do_sla = 0.0_wp                          !<
    1318     REAL(wp) ::  time_dvrp = 0.0_wp                            !<
    1319     REAL(wp) ::  time_restart = 9999999.9_wp                   !<
    1320     REAL(wp) ::  time_run_control = 0.0_wp                     !<
    1321     REAL(wp) ::  time_since_reference_point                    !<
    1322     REAL(wp) ::  top_heatflux = 9999999.9_wp                   !<
    1323     REAL(wp) ::  top_momentumflux_u = 9999999.9_wp             !<
    1324     REAL(wp) ::  top_momentumflux_v = 9999999.9_wp             !<
    1325     REAL(wp) ::  top_salinityflux = 9999999.9_wp               !<
    1326     REAL(wp) ::  top_scalarflux = 9999999.9_wp                 !<
    1327     REAL(wp) ::  tunnel_height = 9999999.9_wp                  !< height of tunnel outer wall
    1328     REAL(wp) ::  tunnel_length = 9999999.9_wp                  !< tunnel length
    1329     REAL(wp) ::  tunnel_width_x = 9999999.9_wp                 !< tunnel width in x, with respect to outer wall
    1330     REAL(wp) ::  tunnel_width_y = 9999999.9_wp                 !< tunnel width in y, with respect to outer wall
    1331     REAL(wp) ::  tunnel_wall_depth = 9999999.9_wp              !< tunnel wall depth
    1332     REAL(wp) ::  ug_surface = 0.0_wp                           !<
    1333     REAL(wp) ::  u_bulk = 0.0_wp                               !<
    1334     REAL(wp) ::  u_gtrans = 0.0_wp                             !<
    1335     REAL(wp) ::  vg_surface = 0.0_wp                           !<
    1336     REAL(wp) ::  vpt_reference = 9999999.9_wp                  !<
    1337     REAL(wp) ::  v_bulk = 0.0_wp                               !<
    1338     REAL(wp) ::  v_gtrans = 0.0_wp                             !<
    1339     REAL(wp) ::  wall_adjustment_factor = 1.8_wp               !<
    1340     REAL(wp) ::  zeta_max = 20.0_wp                            !< Maximum value of zeta = z/L
    1341     REAL(wp) ::  zeta_min = -20.0_wp                           !< Minimum value of zeta = z/L
    1342     REAL(wp) ::  z_max_do2d = -1.0_wp                          !<
    1343     REAL(wp) ::  z0h_factor = 1.0_wp                           !<
    1344 
    1345     REAL(wp) ::  do2d_xy_last_time(0:1) = -1.0_wp                  !<
    1346     REAL(wp) ::  do2d_xz_last_time(0:1) = -1.0_wp                  !<
    1347     REAL(wp) ::  do2d_yz_last_time(0:1) = -1.0_wp                  !<
    1348     REAL(wp) ::  dpdxy(1:2) = 0.0_wp                               !<
    1349     REAL(wp) ::  dt_domask(max_masks) = 9999999.9_wp               !<
    1350     REAL(wp) ::  mask_scale(3)                                     !<
    1351     REAL(wp) ::  pt_vertical_gradient(10) = 0.0_wp                 !<
    1352     REAL(wp) ::  pt_vertical_gradient_level(10) = -1.0_wp          !<
    1353     REAL(wp) ::  q_vertical_gradient(10) = 0.0_wp                  !<
    1354     REAL(wp) ::  q_vertical_gradient_level(10) = -1.0_wp           !<
    1355     REAL(wp) ::  s_vertical_gradient(10) = 0.0_wp                  !<
    1356     REAL(wp) ::  s_vertical_gradient_level(10) = -1.0_wp           !<
    1357     REAL(wp) ::  sa_vertical_gradient(10) = 0.0_wp                 !<
    1358     REAL(wp) ::  sa_vertical_gradient_level(10) = -1.0_wp          !<
    1359     REAL(wp) ::  skip_time_domask(max_masks) = 9999999.9_wp        !<
    1360     REAL(wp) ::  threshold(20) = 0.0_wp                            !<
    1361     REAL(wp) ::  time_domask(max_masks) = 0.0_wp                   !<
    1362     REAL(wp) ::  tsc(10) = (/ 1.0_wp, 1.0_wp, 0.0_wp, 0.0_wp, &    !<
     1172    LOGICAL ::  terminate_run = .FALSE.                      !< terminate run (cpu-time limit, restarts)?
     1173    LOGICAL ::  transpose_compute_overlap = .FALSE.          !< namelist parameter
     1174    LOGICAL ::  turbulent_inflow = .FALSE.                   !< namelist parameter
     1175    LOGICAL ::  turbulent_outflow = .FALSE.                  !< namelist parameter
     1176    LOGICAL ::  urban_surface = .FALSE.                      !< use urban surface model?
     1177    LOGICAL ::  use_cmax = .TRUE.                            !< namelist parameter
     1178    LOGICAL ::  use_initial_profile_as_reference = .FALSE.   !< use of initial profiles as reference state?
     1179    LOGICAL ::  use_prescribed_profile_data = .FALSE.        !< use of prescribed wind profiles?
     1180                                                             !< (namelist parameters u_profile, v_profile)
     1181    LOGICAL ::  use_single_reference_value = .FALSE.         !< use of single value as reference state?
     1182    LOGICAL ::  use_subsidence_tendencies = .FALSE.          !< namelist parameter
     1183    LOGICAL ::  use_surface_fluxes = .FALSE.                 !< namelist parameter
     1184    LOGICAL ::  use_top_fluxes = .FALSE.                     !< namelist parameter
     1185    LOGICAL ::  use_ug_for_galilei_tr = .TRUE.               !< namelist parameter
     1186    LOGICAL ::  use_upstream_for_tke = .FALSE.               !< namelist parameter
     1187    LOGICAL ::  virtual_flight = .FALSE.                     !< use virtual flight model?
     1188    LOGICAL ::  wall_adjustment = .TRUE.                     !< namelist parameter
     1189    LOGICAL ::  ws_scheme_sca = .FALSE.                      !< use Wicker-Skamarock scheme (scalar advection)?
     1190    LOGICAL ::  ws_scheme_mom = .FALSE.                      !< use Wicker-Skamarock scheme (momentum advection)?
     1191    LOGICAL ::  data_output_xy(0:1) = .FALSE.                !< output of xy cross-section data?
     1192    LOGICAL ::  data_output_xz(0:1) = .FALSE.                !< output of xz cross-section data?
     1193    LOGICAL ::  data_output_yz(0:1) = .FALSE.                !< output of yz cross-section data?
     1194
     1195    REAL(wp) ::  advected_distance_x = 0.0_wp                  !< advected distance of model domain along x
     1196                                                               !< (galilei transformation)
     1197    REAL(wp) ::  advected_distance_y = 0.0_wp                  !< advected distance of model domain along y
     1198                                                               !< (galilei transformation)
     1199    REAL(wp) ::  alpha_surface = 0.0_wp                        !< namelist parameter
     1200    REAL(wp) ::  atmos_ocean_sign = 1.0_wp                     !< vertical-grid conversion factor
     1201                                                               !< (=1.0 in atmosphere, =-1.0 in ocean)
     1202    REAL(wp) ::  averaging_interval = 0.0_wp                   !< namelist parameter
     1203    REAL(wp) ::  averaging_interval_pr = 9999999.9_wp          !< namelist parameter
     1204    REAL(wp) ::  bc_pt_t_val                                   !< vertical gradient of pt near domain top
     1205    REAL(wp) ::  bc_q_t_val                                    !< vertical gradient of humidity near domain top
     1206    REAL(wp) ::  bc_s_t_val                                    !< vertical gradient of passive scalar near domain top
     1207    REAL(wp) ::  bottom_salinityflux = 0.0_wp                  !< namelist parameter
     1208    REAL(wp) ::  building_height = 50.0_wp                     !< namelist parameter
     1209    REAL(wp) ::  building_length_x = 50.0_wp                   !< namelist parameter
     1210    REAL(wp) ::  building_length_y = 50.0_wp                   !< namelist parameter
     1211    REAL(wp) ::  building_wall_left = 9999999.9_wp             !< namelist parameter
     1212    REAL(wp) ::  building_wall_south = 9999999.9_wp            !< namelist parameter
     1213    REAL(wp) ::  canyon_height = 50.0_wp                       !< namelist parameter
     1214    REAL(wp) ::  canyon_width_x = 9999999.9_wp                 !< namelist parameter
     1215    REAL(wp) ::  canyon_width_y = 9999999.9_wp                 !< namelist parameter
     1216    REAL(wp) ::  canyon_wall_left = 9999999.9_wp               !< namelist parameter
     1217    REAL(wp) ::  canyon_wall_south = 9999999.9_wp              !< namelist parameter
     1218    REAL(wp) ::  cfl_factor = -1.0_wp                          !< namelist parameter
     1219    REAL(wp) ::  cos_alpha_surface                             !< cosine of alpha_surface
     1220    REAL(wp) ::  coupling_start_time = 0.0_wp                  !< namelist parameter
     1221    REAL(wp) ::  disturbance_amplitude = 0.25_wp               !< namelist parameter
     1222    REAL(wp) ::  disturbance_energy_limit = 0.01_wp            !< namelist parameter
     1223    REAL(wp) ::  disturbance_level_b = -9999999.9_wp           !< namelist parameter
     1224    REAL(wp) ::  disturbance_level_t = -9999999.9_wp           !< namelist parameter
     1225    REAL(wp) ::  dp_level_b = 0.0_wp                           !< namelist parameter
     1226    REAL(wp) ::  dt = -1.0_wp                                  !< namelist parameter
     1227    REAL(wp) ::  dt_averaging_input = 0.0_wp                   !< namelist parameter
     1228    REAL(wp) ::  dt_averaging_input_pr = 9999999.9_wp          !< namelist parameter
     1229    REAL(wp) ::  dt_coupling = 9999999.9_wp                    !< namelist parameter
     1230    REAL(wp) ::  dt_data_output = 9999999.9_wp                 !< namelist parameter
     1231    REAL(wp) ::  dt_data_output_av = 9999999.9_wp              !< namelist parameter
     1232    REAL(wp) ::  dt_disturb = 9999999.9_wp                     !< namelist parameter
     1233    REAL(wp) ::  dt_dopr = 9999999.9_wp                        !< namelist parameter
     1234    REAL(wp) ::  dt_dopr_listing = 9999999.9_wp                !< namelist parameter
     1235    REAL(wp) ::  dt_dopts = 9999999.9_wp                       !< namelist parameter
     1236    REAL(wp) ::  dt_dots = 9999999.9_wp                        !< namelist parameter
     1237    REAL(wp) ::  dt_do2d_xy = 9999999.9_wp                     !< namelist parameter
     1238    REAL(wp) ::  dt_do2d_xz = 9999999.9_wp                     !< namelist parameter
     1239    REAL(wp) ::  dt_do2d_yz = 9999999.9_wp                     !< namelist parameter
     1240    REAL(wp) ::  dt_do3d = 9999999.9_wp                        !< namelist parameter
     1241    REAL(wp) ::  dt_dvrp = 9999999.9_wp                        !< namelist parameter
     1242    REAL(wp) ::  dt_max = 20.0_wp                              !< namelist parameter
     1243    REAL(wp) ::  dt_restart = 9999999.9_wp                     !< namelist parameter
     1244    REAL(wp) ::  dt_run_control = 60.0_wp                      !< namelist parameter
     1245    REAL(wp) ::  dt_3d = 1.0_wp                                !< time step
     1246    REAL(wp) ::  dz = -1.0_wp                                  !< namelist parameter
     1247    REAL(wp) ::  dz_max = 9999999.9_wp                         !< namelist parameter
     1248    REAL(wp) ::  dz_stretch_factor = 1.08_wp                   !< namelist parameter
     1249    REAL(wp) ::  dz_stretch_level = 100000.0_wp                !< namelist parameter
     1250    REAL(wp) ::  e_init = 0.0_wp                               !< namelist parameter
     1251    REAL(wp) ::  e_min = 0.0_wp                                !< namelist parameter
     1252    REAL(wp) ::  end_time = 0.0_wp                             !< namelist parameter
     1253    REAL(wp) ::  f = 0.0_wp                                    !< Coriolis parameter
     1254    REAL(wp) ::  fs = 0.0_wp                                   !< Coriolis parameter
     1255    REAL(wp) ::  g = 9.81_wp                                   !< gravitational acceleration
     1256    REAL(wp) ::  inflow_damping_height = 9999999.9_wp          !< namelist parameter
     1257    REAL(wp) ::  inflow_damping_width = 9999999.9_wp           !< namelist parameter
     1258    REAL(wp) ::  kappa = 0.4_wp                                !< von Karman constant
     1259    REAL(wp) ::  km_constant = -1.0_wp                         !< namelist parameter
     1260    REAL(wp) ::  mask_scale_x = 1.0_wp                         !< namelist parameter
     1261    REAL(wp) ::  mask_scale_y = 1.0_wp                         !< namelist parameter
     1262    REAL(wp) ::  mask_scale_z = 1.0_wp                         !< namelist parameter
     1263    REAL(wp) ::  maximum_cpu_time_allowed = 0.0_wp             !< given wall time for run
     1264    REAL(wp) ::  molecular_viscosity = 1.461E-5_wp             !< molecular viscosity (used in lsm and lpm)
     1265    REAL(wp) ::  old_dt = 1.0E-10_wp                           !< length of previous timestep
     1266    REAL(wp) ::  omega = 7.29212E-5_wp                         !< namelist parameter
     1267    REAL(wp) ::  omega_sor = 1.8_wp                            !< namelist parameter
     1268    REAL(wp) ::  outflow_source_plane = -9999999.9_wp          !< namelist parameter
     1269    REAL(wp) ::  particle_maximum_age = 9999999.9_wp           !< namelist parameter
     1270    REAL(wp) ::  phi = 55.0_wp                                 !< namelist parameter
     1271    REAL(wp) ::  prandtl_number = 1.0_wp                       !< namelist parameter
     1272    REAL(wp) ::  precipitation_amount_interval = 9999999.9_wp  !< namelist parameter
     1273    REAL(wp) ::  prho_reference                                !< reference state of potential density
     1274    REAL(wp) ::  pt_damping_factor = 0.0_wp                    !< namelist parameter
     1275    REAL(wp) ::  pt_damping_width = 0.0_wp                     !< namelist parameter
     1276    REAL(wp) ::  pt_reference = 9999999.9_wp                   !< namelist parameter
     1277    REAL(wp) ::  pt_slope_offset = 0.0_wp                      !< temperature difference between left and right
     1278                                                               !< boundary of total domain
     1279    REAL(wp) ::  pt_surface = 300.0_wp                         !< namelist parameter
     1280    REAL(wp) ::  pt_surface_initial_change = 0.0_wp            !< namelist parameter
     1281    REAL(wp) ::  q_surface = 0.0_wp                            !< namelist parameter
     1282    REAL(wp) ::  q_surface_initial_change = 0.0_wp             !< namelist parameter
     1283    REAL(wp) ::  rayleigh_damping_factor = -1.0_wp             !< namelist parameter
     1284    REAL(wp) ::  rayleigh_damping_height = -1.0_wp             !< namelist parameter
     1285    REAL(wp) ::  recycling_width = 9999999.9_wp                !< namelist parameter
     1286    REAL(wp) ::  residual_limit = 1.0E-4_wp                    !< namelist parameter
     1287    REAL(wp) ::  restart_time = 9999999.9_wp                   !< namelist parameter
     1288    REAL(wp) ::  rho_reference                                 !< reference state of density
     1289    REAL(wp) ::  rho_surface                                   !< surface value of density
     1290    REAL(wp) ::  roughness_length = 0.1_wp                     !< namelist parameter
     1291    REAL(wp) ::  sa_surface = 35.0_wp                          !< namelist parameter
     1292    REAL(wp) ::  simulated_time = 0.0_wp                       !< elapsed simulated time
     1293    REAL(wp) ::  simulated_time_at_begin                       !< elapsed simulated time of previous run (job chain)
     1294    REAL(wp) ::  sin_alpha_surface                             !< sine of alpha_surface (sloped surface)
     1295    REAL(wp) ::  skip_time_data_output = 0.0_wp                !< namelist parameter
     1296    REAL(wp) ::  skip_time_data_output_av = 9999999.9_wp       !< namelist parameter
     1297    REAL(wp) ::  skip_time_dopr = 9999999.9_wp                 !< namelist parameter
     1298    REAL(wp) ::  skip_time_do2d_xy = 9999999.9_wp              !< namelist parameter
     1299    REAL(wp) ::  skip_time_do2d_xz = 9999999.9_wp              !< namelist parameter
     1300    REAL(wp) ::  skip_time_do2d_yz = 9999999.9_wp              !< namelist parameter
     1301    REAL(wp) ::  skip_time_do3d = 9999999.9_wp                 !< namelist parameter
     1302    REAL(wp) ::  surface_heatflux = 9999999.9_wp               !< namelist parameter
     1303    REAL(wp) ::  surface_pressure = 1013.25_wp                 !< namelist parameter
     1304    REAL(wp) ::  surface_scalarflux = 9999999.9_wp             !< namelist parameter
     1305    REAL(wp) ::  surface_waterflux = 9999999.9_wp              !< namelist parameter
     1306    REAL(wp) ::  s_surface = 0.0_wp                            !< namelist parameter
     1307    REAL(wp) ::  s_surface_initial_change = 0.0_wp             !< namelist parameter
     1308    REAL(wp) ::  termination_time_needed = -1.0_wp             !< namelist parameter
     1309    REAL(wp) ::  time_coupling = 0.0_wp                        !< time since last coupling (surface_coupler)
     1310    REAL(wp) ::  time_disturb = 0.0_wp                         !< time since last flow disturbance
     1311    REAL(wp) ::  time_dopr = 0.0_wp                            !< time since last profile output
     1312    REAL(wp) ::  time_dopr_av = 0.0_wp                         !< time since last averaged profile output
     1313    REAL(wp) ::  time_dopr_listing = 0.0_wp                    !< time since last profile output (ASCII) on file
     1314    REAL(wp) ::  time_dopts = 0.0_wp                           !< time since last particle timeseries output
     1315    REAL(wp) ::  time_dosp = 0.0_wp                            !< time since last spectra output
     1316    REAL(wp) ::  time_dosp_av = 0.0_wp                         !< time since last averaged spectra output
     1317    REAL(wp) ::  time_dots = 0.0_wp                            !< time since last timeseries output
     1318    REAL(wp) ::  time_do2d_xy = 0.0_wp                         !< time since last xy cross-section output
     1319    REAL(wp) ::  time_do2d_xz = 0.0_wp                         !< time since last xz cross-section output
     1320    REAL(wp) ::  time_do2d_yz = 0.0_wp                         !< time since last yz cross-section output
     1321    REAL(wp) ::  time_do3d = 0.0_wp                            !< time since last 3d output
     1322    REAL(wp) ::  time_do_av = 0.0_wp                           !< time since last averaged-data output
     1323    REAL(wp) ::  time_do_sla = 0.0_wp                          !< time since last
     1324    REAL(wp) ::  time_dvrp = 0.0_wp                            !< time since last dvrp output
     1325    REAL(wp) ::  time_restart = 9999999.9_wp                   !< time at which run shall be terminated and restarted
     1326    REAL(wp) ::  time_run_control = 0.0_wp                     !< time since last RUN_CONTROL output
     1327    REAL(wp) ::  time_since_reference_point                    !< Siggi
     1328    REAL(wp) ::  top_heatflux = 9999999.9_wp                   !< namelist parameter
     1329    REAL(wp) ::  top_momentumflux_u = 9999999.9_wp             !< namelist parameter
     1330    REAL(wp) ::  top_momentumflux_v = 9999999.9_wp             !< namelist parameter
     1331    REAL(wp) ::  top_salinityflux = 9999999.9_wp               !< namelist parameter
     1332    REAL(wp) ::  top_scalarflux = 9999999.9_wp                 !< namelist parameter
     1333    REAL(wp) ::  tunnel_height = 9999999.9_wp                  !< namelist parameter
     1334    REAL(wp) ::  tunnel_length = 9999999.9_wp                  !< namelist parameter
     1335    REAL(wp) ::  tunnel_width_x = 9999999.9_wp                 !< namelist parameter
     1336    REAL(wp) ::  tunnel_width_y = 9999999.9_wp                 !< namelist parameter
     1337    REAL(wp) ::  tunnel_wall_depth = 9999999.9_wp              !< namelist parameter
     1338    REAL(wp) ::  ug_surface = 0.0_wp                           !< namelist parameter
     1339    REAL(wp) ::  u_bulk = 0.0_wp                               !< namelist parameter
     1340    REAL(wp) ::  u_gtrans = 0.0_wp                             !< transformed wind component (galilei transformation)
     1341    REAL(wp) ::  vg_surface = 0.0_wp                           !< namelist parameter
     1342    REAL(wp) ::  vpt_reference = 9999999.9_wp                  !< reference state of virtual potential temperature
     1343    REAL(wp) ::  v_bulk = 0.0_wp                               !< namelist parameter
     1344    REAL(wp) ::  v_gtrans = 0.0_wp                             !< transformed wind component (galilei transformation)
     1345    REAL(wp) ::  wall_adjustment_factor = 1.8_wp               !< adjustment factor for mixing length l
     1346    REAL(wp) ::  zeta_max = 20.0_wp                            !< namelist parameter
     1347    REAL(wp) ::  zeta_min = -20.0_wp                           !< namelist parameter
     1348    REAL(wp) ::  z_max_do2d = -1.0_wp                          !< namelist parameter
     1349    REAL(wp) ::  z0h_factor = 1.0_wp                           !< namelist parameter
     1350
     1351    REAL(wp) ::  do2d_xy_last_time(0:1) = -1.0_wp                  !< time of previous xy output
     1352    REAL(wp) ::  do2d_xz_last_time(0:1) = -1.0_wp                  !< time of previous xz output
     1353    REAL(wp) ::  do2d_yz_last_time(0:1) = -1.0_wp                  !< time of previous yz output
     1354    REAL(wp) ::  dpdxy(1:2) = 0.0_wp                               !< namelist parameter
     1355    REAL(wp) ::  dt_domask(max_masks) = 9999999.9_wp               !< namelist parameter
     1356    REAL(wp) ::  mask_scale(3)                                     !< collective array for mask_scale_x/y/z
     1357    REAL(wp) ::  pt_vertical_gradient(10) = 0.0_wp                 !< namelist parameter
     1358    REAL(wp) ::  pt_vertical_gradient_level(10) = -1.0_wp          !< namelist parameter
     1359    REAL(wp) ::  q_vertical_gradient(10) = 0.0_wp                  !< namelist parameter
     1360    REAL(wp) ::  q_vertical_gradient_level(10) = -1.0_wp           !< namelist parameter
     1361    REAL(wp) ::  s_vertical_gradient(10) = 0.0_wp                  !< namelist parameter
     1362    REAL(wp) ::  s_vertical_gradient_level(10) = -1.0_wp           !< namelist parameter
     1363    REAL(wp) ::  sa_vertical_gradient(10) = 0.0_wp                 !< namelist parameter
     1364    REAL(wp) ::  sa_vertical_gradient_level(10) = -1.0_wp          !< namelist parameter
     1365    REAL(wp) ::  skip_time_domask(max_masks) = 9999999.9_wp        !< namelist parameter
     1366    REAL(wp) ::  threshold(20) = 0.0_wp                            !< namelist parameter
     1367    REAL(wp) ::  time_domask(max_masks) = 0.0_wp                   !< namelist parameter
     1368    REAL(wp) ::  tsc(10) = (/ 1.0_wp, 1.0_wp, 0.0_wp, 0.0_wp, &    !< array used for controlling time-integration at different substeps
    13631369                 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp /)
    1364     REAL(wp) ::  u_profile(100) = 9999999.9_wp                     !<
    1365     REAL(wp) ::  uv_heights(100) = 9999999.9_wp                    !<
    1366     REAL(wp) ::  v_profile(100) = 9999999.9_wp                     !<
    1367     REAL(wp) ::  ug_vertical_gradient(10) = 0.0_wp                 !<
    1368     REAL(wp) ::  ug_vertical_gradient_level(10) = -9999999.9_wp    !<
    1369     REAL(wp) ::  vg_vertical_gradient(10) = 0.0_wp                 !<
    1370     REAL(wp) ::  vg_vertical_gradient_level(10) = -9999999.9_wp    !<
    1371     REAL(wp) ::  volume_flow(1:3) = 0.0_wp                         !<
    1372     REAL(wp) ::  volume_flow_area(1:3) = 0.0_wp                    !<
    1373     REAL(wp) ::  volume_flow_initial(1:3) = 0.0_wp                 !<
    1374     REAL(wp) ::  wall_heatflux(0:5) = 0.0_wp                       !<
    1375     REAL(wp) ::  wall_humidityflux(0:5) = 0.0_wp                   !<
    1376     REAL(wp) ::  wall_salinityflux(0:5) = 0.0_wp                   !<
    1377     REAL(wp) ::  wall_scalarflux(0:5) = 0.0_wp                     !<
    1378     REAL(wp) ::  subs_vertical_gradient(10) = 0.0_wp               !<
    1379     REAL(wp) ::  subs_vertical_gradient_level(10) = -9999999.9_wp  !<
    1380 
    1381     REAL(wp), DIMENSION(:), ALLOCATABLE ::  dp_smooth_factor  !<
    1382 
    1383     REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_x = -1.0_wp  !<
    1384     REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_y = -1.0_wp  !<
    1385     REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_z = -1.0_wp  !<
     1370    REAL(wp) ::  u_profile(100) = 9999999.9_wp                     !< namelist parameter
     1371    REAL(wp) ::  uv_heights(100) = 9999999.9_wp                    !< namelist parameter
     1372    REAL(wp) ::  v_profile(100) = 9999999.9_wp                     !< namelist parameter
     1373    REAL(wp) ::  ug_vertical_gradient(10) = 0.0_wp                 !< namelist parameter
     1374    REAL(wp) ::  ug_vertical_gradient_level(10) = -9999999.9_wp    !< namelist parameter
     1375    REAL(wp) ::  vg_vertical_gradient(10) = 0.0_wp                 !< namelist parameter
     1376    REAL(wp) ::  vg_vertical_gradient_level(10) = -9999999.9_wp    !< namelist parameter
     1377    REAL(wp) ::  volume_flow(1:3) = 0.0_wp                         !< Siggi
     1378    REAL(wp) ::  volume_flow_area(1:3) = 0.0_wp                    !< Siggi
     1379    REAL(wp) ::  volume_flow_initial(1:3) = 0.0_wp                 !< Siggi
     1380    REAL(wp) ::  wall_heatflux(0:5) = 0.0_wp                       !< namelist parameter
     1381    REAL(wp) ::  wall_humidityflux(0:5) = 0.0_wp                   !< namelist parameter
     1382    REAL(wp) ::  wall_salinityflux(0:5) = 0.0_wp                   !< namelist parameter
     1383    REAL(wp) ::  wall_scalarflux(0:5) = 0.0_wp                     !< namelist parameter
     1384    REAL(wp) ::  subs_vertical_gradient(10) = 0.0_wp               !< namelist parameter
     1385    REAL(wp) ::  subs_vertical_gradient_level(10) = -9999999.9_wp  !< namelist parameter
     1386
     1387    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dp_smooth_factor  !< smoothing factor for external pressure gradient forcing
     1388
     1389    REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_x = -1.0_wp  !< namelist parameter
     1390    REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_y = -1.0_wp  !< namelist parameter
     1391    REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_z = -1.0_wp  !< namelist parameter
    13861392   
    1387     REAL(wp), DIMENSION(max_masks,3) ::  mask_x_loop = -1.0_wp  !<
    1388     REAL(wp), DIMENSION(max_masks,3) ::  mask_y_loop = -1.0_wp  !<
    1389     REAL(wp), DIMENSION(max_masks,3) ::  mask_z_loop = -1.0_wp  !<
     1393    REAL(wp), DIMENSION(max_masks,3) ::  mask_x_loop = -1.0_wp  !< namelist parameter
     1394    REAL(wp), DIMENSION(max_masks,3) ::  mask_y_loop = -1.0_wp  !< namelist parameter
     1395    REAL(wp), DIMENSION(max_masks,3) ::  mask_z_loop = -1.0_wp  !< namelist parameter
    13901396   
    13911397!
    13921398!--    internal mask arrays ("mask,dimension,selection")
    1393        REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  mask       !<
    1394        REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  mask_loop  !<
     1399       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  mask       !< collective array for mask_x/y/z
     1400       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  mask_loop  !< collective array for mask_x/y/z_loop
    13951401
    13961402    SAVE
     
    14081414    USE kinds
    14091415
    1410     CHARACTER (LEN=10) ::  dvrp_output = 'rtsp'        !<
     1416    CHARACTER (LEN=10) ::  dvrp_output = 'rtsp'        !< Siggi (entire MODULE)
    14111417    CHARACTER (LEN=10) ::  particle_color = 'none'     !<
    14121418    CHARACTER (LEN=10) ::  particle_dvrpsize = 'none'  !<
     
    14481454    LOGICAL ::  dvrp_overlap                               !<
    14491455    LOGICAL ::  dvrp_total_overlap                         !<
    1450     LOGICAL ::  local_dvrserver_running                    !<
     1456    LOGICAL ::  local_dvrserver_running                    !< internally set namelist parameter
    14511457    LOGICAL ::  lock_steering_update = .FALSE.             !<
    14521458    LOGICAL ::  use_seperate_pe_for_dvrp_output = .FALSE.  !<
     
    15261532    USE kinds
    15271533
    1528     REAL(wp) ::  ddx          !<
    1529     REAL(wp) ::  ddx2         !<
    1530     REAL(wp) ::  dx = 1.0_wp  !<
    1531     REAL(wp) ::  dx2          !<
    1532     REAL(wp) ::  ddy          !<
    1533     REAL(wp) ::  ddy2         !<
    1534     REAL(wp) ::  dy = 1.0_wp  !<
    1535     REAL(wp) ::  dy2          !<
    1536 
    1537     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddx2_mg  !<
    1538     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddy2_mg  !<
    1539 
    1540     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zu_s_inner  !<
    1541     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zw_w_inner  !<
     1534    REAL(wp) ::  ddx          !< 1/dx
     1535    REAL(wp) ::  ddx2         !< 1/dx2
     1536    REAL(wp) ::  dx = 1.0_wp  !< horizontal grid size (along x-direction)
     1537    REAL(wp) ::  dx2          !< dx*dx
     1538    REAL(wp) ::  ddy          !< 1/dy
     1539    REAL(wp) ::  ddy2         !< 1/dy2
     1540    REAL(wp) ::  dy = 1.0_wp  !< horizontal grid size (along y-direction)
     1541    REAL(wp) ::  dy2          !< dy*dy
     1542
     1543    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddx2_mg  !< 1/dx_l**2 (dx_l: grid spacing along x on different multigrid level)
     1544    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddy2_mg  !< 1/dy_l**2 (dy_l: grid spacing along y on different multigrid level)
     1545
     1546    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zu_s_inner  !< height of topography top on scalar grid
     1547    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zw_w_inner  !< height of topography top on w grid
    15421548                                             
    15431549    SAVE
     
    15551561    USE kinds
    15561562
    1557     INTEGER(iwp) ::  nbgp = 3     !<
    1558     INTEGER(iwp) ::  ngp_sums     !<
    1559     INTEGER(iwp) ::  ngp_sums_ls  !<
    1560     INTEGER(iwp) ::  nnx          !<
    1561     INTEGER(iwp) ::  nx = 0       !<
    1562     INTEGER(iwp) ::  nx_a         !<
    1563     INTEGER(iwp) ::  nx_o         !<
    1564     INTEGER(iwp) ::  nxl          !<
    1565     INTEGER(iwp) ::  nxlg         !<
    1566     INTEGER(iwp) ::  nxlu         !<
    1567     INTEGER(iwp) ::  nxr          !<
    1568     INTEGER(iwp) ::  nxrg         !<
    1569     INTEGER(iwp) ::  nx_on_file   !<
    1570     INTEGER(iwp) ::  nny          !<
    1571     INTEGER(iwp) ::  ny = 0       !<
    1572     INTEGER(iwp) ::  ny_a         !<
    1573     INTEGER(iwp) ::  ny_o         !<
    1574     INTEGER(iwp) ::  nyn          !<
    1575     INTEGER(iwp) ::  nyng         !<
    1576     INTEGER(iwp) ::  nys          !<
    1577     INTEGER(iwp) ::  nysg         !<
    1578     INTEGER(iwp) ::  nysv         !<
    1579     INTEGER(iwp) ::  ny_on_file   !<
    1580     INTEGER(iwp) ::  nnz          !<
    1581     INTEGER(iwp) ::  nz = 0       !<
    1582     INTEGER(iwp) ::  nzb          !<
    1583     INTEGER(iwp) ::  nzb_diff     !<
    1584     INTEGER(iwp) ::  nzb_max      !<
    1585     INTEGER(iwp) ::  nzt          !<
    1586 
    1587     INTEGER(idp), DIMENSION(:), ALLOCATABLE ::  ngp_3d        !<
     1563    INTEGER(iwp) ::  nbgp = 3     !< number of boundary ghost points
     1564    INTEGER(iwp) ::  ngp_sums     !< number of vertical profile grid points time number of output profiles - used for allreduce statements in MPI calls
     1565    INTEGER(iwp) ::  ngp_sums_ls  !< number of vertical profile grid points time number of large-scale forcing profiles - used for allreduce statements in MPI calls
     1566    INTEGER(iwp) ::  nnx          !< number of subdomain grid points in x-direction
     1567    INTEGER(iwp) ::  nx = 0       !< nx+1 = total number of grid points in x-direction
     1568    INTEGER(iwp) ::  nx_a         !< Siggi
     1569    INTEGER(iwp) ::  nx_o         !< Siggi
     1570    INTEGER(iwp) ::  nxl          !< left-most grid index of subdomain (excluding ghost points)
     1571    INTEGER(iwp) ::  nxlg         !< left-most grid index of subdomain (including ghost points)
     1572    INTEGER(iwp) ::  nxlu         !< =nxl+1 (at left domain boundary with inflow from left), else =nxl
     1573    INTEGER(iwp) ::  nxr          !< right-most grid index of subdomain (excluding ghost points)
     1574    INTEGER(iwp) ::  nxrg         !< right-most grid index of subdomain (including ghost points)
     1575    INTEGER(iwp) ::  nx_on_file   !< nx of previous run in job chain
     1576    INTEGER(iwp) ::  nny          !< number of subdomain grid points in y-direction
     1577    INTEGER(iwp) ::  ny = 0       !< ny+1 = total number of grid points in y-direction
     1578    INTEGER(iwp) ::  ny_a         !< Siggi
     1579    INTEGER(iwp) ::  ny_o         !< Siggi
     1580    INTEGER(iwp) ::  nyn          !< north-most grid index of subdomain (excluding ghost points)
     1581    INTEGER(iwp) ::  nyng         !< north-most grid index of subdomain (including ghost points)
     1582    INTEGER(iwp) ::  nys          !< south-most grid index of subdomain (excluding ghost points)
     1583    INTEGER(iwp) ::  nysg         !< south-most grid index of subdomain (including ghost points)
     1584    INTEGER(iwp) ::  nysv         !< =nys+1 (at south domain boundary with inflow from south), else =nys
     1585    INTEGER(iwp) ::  ny_on_file   !< ny of previous run in job chain
     1586    INTEGER(iwp) ::  nnz          !< number of subdomain grid points in z-direction
     1587    INTEGER(iwp) ::  nz = 0       !< total number of grid points in z-direction
     1588    INTEGER(iwp) ::  nzb          !< bottom grid index of computational domain
     1589    INTEGER(iwp) ::  nzb_diff     !< will be removed
     1590    INTEGER(iwp) ::  nzb_max      !< vertical index of topography top
     1591    INTEGER(iwp) ::  nzt          !< nzt+1 = top grid index of computational domain
     1592
     1593    INTEGER(idp), DIMENSION(:), ALLOCATABLE ::  ngp_3d        !< number of grid points of the total domain
    15881594    INTEGER(idp), DIMENSION(:), ALLOCATABLE ::  ngp_3d_inner  !< ! need to have 64 bit for grids > 2E9
    15891595                   
    1590     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_2dh  !<
    1591     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nxl_mg   !<
    1592     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nxr_mg   !<
    1593     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nyn_mg   !<
    1594     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nys_mg   !<
    1595     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nzt_mg   !<
    1596 
    1597 
    1598     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  ngp_2dh_outer     !<
    1599     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  ngp_2dh_s_inner   !<
    1600     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mg_loc_ind        !<
    1601     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_diff_s_inner  !<
    1602     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_diff_s_outer  !<
    1603     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_inner         !<
    1604     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_outer         !<
    1605     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_s_inner       !<
    1606     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_s_outer       !<
    1607     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_u_inner       !<
    1608     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_u_outer       !<
    1609     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_v_inner       !<
    1610     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_v_outer       !<
    1611     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_w_inner       !<
    1612     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_w_outer       !<
    1613 
    1614     INTEGER(iwp), DIMENSION(:,:,:), POINTER ::  flags  !<
    1615 
    1616     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_1   !<
    1617     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_2   !<
    1618     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_3   !<
    1619     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_4   !<
    1620     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_5   !<
    1621     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_6   !<
    1622     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_7   !<
    1623     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_8   !<
    1624     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_9   !<
    1625     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_10  !<
     1596    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_2dh  !< number of grid points of a horizontal cross section through the total domain
     1597    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nxl_mg   !< left-most grid index of subdomain on different multigrid level
     1598    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nxr_mg   !< right-most grid index of subdomain on different multigrid level
     1599    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nyn_mg   !< north-most grid index of subdomain on different multigrid level
     1600    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nys_mg   !< south-most grid index of subdomain on different multigrid level
     1601    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nzt_mg   !< top-most grid index of subdomain on different multigrid level
     1602
     1603
     1604    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  ngp_2dh_outer     !< number of horizontal grid points which are non-topography and non-surface-bounded
     1605    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  ngp_2dh_s_inner   !< number of horizontal grid points which are non-topography
     1606    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mg_loc_ind        !< Siggi
     1607    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_diff_s_inner  !< will be removed
     1608    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_diff_s_outer  !< will be removed
     1609    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_inner         !< will be removed
     1610    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_outer         !< will be removed
     1611    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_s_inner       !< will be removed
     1612    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_s_outer       !< will be removed
     1613    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_u_inner       !< will be removed
     1614    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_u_outer       !< will be removed
     1615    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_v_inner       !< will be removed
     1616    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_v_outer       !< will be removed
     1617    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_w_inner       !< will be removed
     1618    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_w_outer       !< will be removed
     1619
     1620    INTEGER(iwp), DIMENSION(:,:,:), POINTER ::  flags  !< pointer to wall_flags_1-10
     1621
     1622    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_1   !< topograpyh masking flag on multigrid level 1
     1623    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_2   !< topograpyh masking flag on multigrid level 2
     1624    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_3   !< topograpyh masking flag on multigrid level 3
     1625    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_4   !< topograpyh masking flag on multigrid level 4
     1626    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_5   !< topograpyh masking flag on multigrid level 5
     1627    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_6   !< topograpyh masking flag on multigrid level 6
     1628    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_7   !< topograpyh masking flag on multigrid level 7
     1629    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_8   !< topograpyh masking flag on multigrid level 8
     1630    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_9   !< topograpyh masking flag on multigrid level 9
     1631    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_10  !< topograpyh masking flag on multigrid level 10
    16261632
    16271633    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  advc_flags_1            !< flags used to degrade order of advection scheme
    16281634    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  advc_flags_2            !< flags used to degrade order of advection scheme
    1629     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  wall_flags_0            !< flags to mask topography
     1635    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  wall_flags_0            !< flags to mask topography and surface-bounded grid points
    16301636
    16311637    SAVE
     
    16531659          USE kinds
    16541660
    1655           CHARACTER (LEN=*), INTENT(IN) ::  mode                     !<
     1661          CHARACTER (LEN=*), INTENT(IN) ::  mode                     !< Siggi (entire module, some variables are still in German)
    16561662          INTEGER(iwp), INTENT(IN)      ::  i1                       !<
    16571663          INTEGER(iwp), INTENT(IN)      ::  i2                       !<
     
    16951701          USE kinds
    16961702
    1697           CHARACTER (LEN=*), INTENT(IN) ::  sk_char  !<
     1703          CHARACTER (LEN=*), INTENT(IN) ::  sk_char  !< string for treated scalar in Bott-Chlond scheme
    16981704#if defined( __nopointer )
    1699           REAL(wp), DIMENSION(:,:,:) ::  sk  !<
     1705          REAL(wp), DIMENSION(:,:,:) ::  sk  !< treated scalar array in Bott-Chlond scheme
    17001706#else
    1701           REAL(wp), DIMENSION(:,:,:), POINTER ::  sk  !<
     1707          REAL(wp), DIMENSION(:,:,:), POINTER ::  sk  !< treated scalar array in Bott-Chlond scheme
    17021708#endif
    17031709       END SUBROUTINE advec_s_bc
     
    17191725    USE kinds
    17201726
    1721     INTEGER(iwp) ::  current_timestep_number_1d = 0  !<
    1722     INTEGER(iwp) ::  damp_level_ind_1d               !<
    1723 
    1724     LOGICAL ::  run_control_header_1d = .FALSE.  !<
    1725     LOGICAL ::  stop_dt_1d = .FALSE.             !<
    1726 
    1727     REAL(wp) ::  damp_level_1d = -1.0_wp       !<
    1728     REAL(wp) ::  dt_1d = 60.0_wp               !<
    1729     REAL(wp) ::  dt_max_1d = 300.0_wp          !<
    1730     REAL(wp) ::  dt_pr_1d = 9999999.9_wp       !<
    1731     REAL(wp) ::  dt_run_control_1d = 60.0_wp   !<
    1732     REAL(wp) ::  end_time_1d = 864000.0_wp     !<
    1733     REAL(wp) ::  old_dt_1d = 1.0E-10_wp        !<
    1734     REAL(wp) ::  qs1d                          !<
    1735     REAL(wp) ::  simulated_time_1d = 0.0_wp    !<
    1736     REAL(wp) ::  time_pr_1d = 0.0_wp           !<
    1737     REAL(wp) ::  time_run_control_1d = 0.0_wp  !<
    1738     REAL(wp) ::  ts1d                          !<
    1739     REAL(wp) ::  us1d                          !<
    1740     REAL(wp) ::  usws1d                        !<
    1741     REAL(wp) ::  vsws1d                        !<              
    1742     REAL(wp) ::  z01d                          !<
    1743     REAL(wp) ::  z0h1d                         !<
    1744 
    1745 
    1746     REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d      !<
    1747     REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d_p    !<
    1748     REAL(wp), DIMENSION(:), ALLOCATABLE ::  kh1d     !<
    1749     REAL(wp), DIMENSION(:), ALLOCATABLE ::  km1d     !<
    1750     REAL(wp), DIMENSION(:), ALLOCATABLE ::  l_black  !<
    1751     REAL(wp), DIMENSION(:), ALLOCATABLE ::  l1d      !<
    1752     REAL(wp), DIMENSION(:), ALLOCATABLE ::  rif1d    !<
    1753     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_e     !<
    1754     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_em    !<
    1755     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_u     !<
    1756     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_um    !<
    1757     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_v     !<
    1758     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_vm    !<
    1759     REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d      !<
    1760     REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d_p    !<
    1761     REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d      !<
    1762     REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d_p    !<
     1727    INTEGER(iwp) ::  current_timestep_number_1d = 0  !< current timestep number (1d-model)
     1728    INTEGER(iwp) ::  damp_level_ind_1d               !< lower grid index of damping layer (1d-model)
     1729
     1730    LOGICAL ::  run_control_header_1d = .FALSE.  !< flag for output of run control header (1d-model)
     1731    LOGICAL ::  stop_dt_1d = .FALSE.             !< termination flag, used in case of too small timestep (1d-model)
     1732
     1733    REAL(wp) ::  damp_level_1d = -1.0_wp       !< namelist parameter
     1734    REAL(wp) ::  dt_1d = 60.0_wp               !< dynamic timestep (1d-model)
     1735    REAL(wp) ::  dt_max_1d = 300.0_wp          !< timestep limit (1d-model)
     1736    REAL(wp) ::  dt_pr_1d = 9999999.9_wp       !< namelist parameter
     1737    REAL(wp) ::  dt_run_control_1d = 60.0_wp   !< namelist parameter
     1738    REAL(wp) ::  end_time_1d = 864000.0_wp     !< namelist parameter
     1739    REAL(wp) ::  old_dt_1d = 1.0E-10_wp        !< previous timestep (1d-model)
     1740    REAL(wp) ::  qs1d                          !< characteristic humidity scale (1d-model)
     1741    REAL(wp) ::  simulated_time_1d = 0.0_wp    !< updated simulated time (1d-model)
     1742    REAL(wp) ::  time_pr_1d = 0.0_wp           !< updated simulated time for profile output (1d-model)
     1743    REAL(wp) ::  time_run_control_1d = 0.0_wp  !< updated simulated time for run-control output (1d-model)
     1744    REAL(wp) ::  ts1d                          !< characteristic temperature scale (1d-model)
     1745    REAL(wp) ::  us1d                          !< friction velocity (1d-model)
     1746    REAL(wp) ::  usws1d                        !< u-component of the momentum flux (1d-model)
     1747    REAL(wp) ::  vsws1d                        !< v-component of the momentum flux (1d-model)   
     1748    REAL(wp) ::  z01d                          !< roughness length for momentum (1d-model)
     1749    REAL(wp) ::  z0h1d                         !< roughness length for scalars (1d-model)
     1750
     1751
     1752    REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d      !< tke (1d-model)
     1753    REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d_p    !< prognostic value of tke (1d-model)
     1754    REAL(wp), DIMENSION(:), ALLOCATABLE ::  kh1d     !< turbulent diffusion coefficient for heat (1d-model)
     1755    REAL(wp), DIMENSION(:), ALLOCATABLE ::  km1d     !< turbulent diffusion coefficient for momentum (1d-model)
     1756    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l_black  !< mixing length Blackadar (1d-model)
     1757    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l1d      !< mixing length (1d-model)
     1758    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rif1d    !< Richardson flux number (1d-model)
     1759    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_e     !< Tobias (1d-model)
     1760    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_em    !< Tobias (1d-model)
     1761    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_u     !< Tobias (1d-model)
     1762    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_um    !< Tobias (1d-model)
     1763    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_v     !< Tobias (1d-model)
     1764    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_vm    !< Tobias (1d-model)
     1765    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d      !< u-velocity component (1d-model)
     1766    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d_p    !< prognostic value of u-velocity component (1d-model)
     1767    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d      !< v-velocity component (1d-model)
     1768    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d_p    !< prognostic value of v-velocity component (1d-model)
    17631769
    17641770    SAVE
     
    17871793#endif
    17881794#endif
    1789     CHARACTER(LEN=2) ::  send_receive = 'al'
    1790     CHARACTER(LEN=7) ::  myid_char = ''
     1795    CHARACTER(LEN=2) ::  send_receive = 'al'     !< Siggi
     1796    CHARACTER(LEN=7) ::  myid_char = ''          !< character string containing processor id number
    17911797   
    1792     INTEGER(iwp) ::  comm1dx                     !<
    1793     INTEGER(iwp) ::  comm1dy                     !<
    1794     INTEGER(iwp) ::  comm2d                      !<
    1795     INTEGER(iwp) ::  comm_inter                  !<
    1796     INTEGER(iwp) ::  comm_palm                   !<
    1797     INTEGER(iwp) ::  id_inflow = 0               !<
     1798    INTEGER(iwp) ::  comm1dx                     !< Siggi
     1799    INTEGER(iwp) ::  comm1dy                     !< Siggi
     1800    INTEGER(iwp) ::  comm2d                      !< Siggi
     1801    INTEGER(iwp) ::  comm_inter                  !< Siggi
     1802    INTEGER(iwp) ::  comm_palm                   !< Siggi
     1803    INTEGER(iwp) ::  id_inflow = 0               !< myidx of procs at inflow (turbulent inflow method)
    17981804    INTEGER(iwp) ::  id_outflow = 0              !< myidx of procs at outflow (turbulent outflow method)
    17991805    INTEGER(iwp) ::  id_outflow_source = 0       !< myidx of procs including ouflow source plane (turbulent outflow method)
    1800     INTEGER(iwp) ::  id_recycling = 0            !<
    1801     INTEGER(iwp) ::  ierr                        !<
    1802     INTEGER(iwp) ::  myid = 0                    !<
    1803     INTEGER(iwp) ::  myidx = 0                   !<
    1804     INTEGER(iwp) ::  myidy = 0                   !<
    1805     INTEGER(iwp) ::  ndim = 2                    !<
    1806     INTEGER(iwp) ::  ngp_a                       !<
    1807     INTEGER(iwp) ::  ngp_o                       !<
    1808     INTEGER(iwp) ::  ngp_xy                      !<
    1809     INTEGER(iwp) ::  ngp_y                       !<
    1810     INTEGER(iwp) ::  npex = -1                   !<
    1811     INTEGER(iwp) ::  npey = -1                   !<
    1812     INTEGER(iwp) ::  numprocs = 1                !<
    1813     INTEGER(iwp) ::  numprocs_previous_run = -1  !<
    1814     INTEGER(iwp) ::  pleft                       !<
    1815     INTEGER(iwp) ::  pnorth                      !<
    1816     INTEGER(iwp) ::  pright                      !<
    1817     INTEGER(iwp) ::  psouth                      !<
    1818     INTEGER(iwp) ::  req_count = 0               !<
    1819     INTEGER(iwp) ::  sendrecvcount_xy            !<
    1820     INTEGER(iwp) ::  sendrecvcount_yz            !<
    1821     INTEGER(iwp) ::  sendrecvcount_zx            !<
    1822     INTEGER(iwp) ::  sendrecvcount_zyd           !<
    1823     INTEGER(iwp) ::  sendrecvcount_yxd           !<
    1824     INTEGER(iwp) ::  target_id                   !<
    1825     INTEGER(iwp) ::  tasks_per_node = -9999      !<
    1826     INTEGER(iwp) ::  threads_per_task = 1        !<
    1827     INTEGER(iwp) ::  type_x                      !<
    1828     INTEGER(iwp) ::  type_xy                     !<
    1829     INTEGER(iwp) ::  type_y                      !<
    1830 
    1831     INTEGER(iwp) ::  pdims(2) = 1  !<
    1832     INTEGER(iwp) ::  req(100)      !<
    1833 
    1834     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  hor_index_bounds               !<
    1835     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  hor_index_bounds_previous_run  !<
    1836 
    1837     LOGICAL ::  collective_wait = .FALSE.          !<
    1838     LOGICAL ::  sendrecv_in_background = .FALSE.   !<
     1806    INTEGER(iwp) ::  id_recycling = 0            !< myidx of procs containing the recycling plane (turbulence recycling method)
     1807    INTEGER(iwp) ::  ierr                        !< Siggi
     1808    INTEGER(iwp) ::  myid = 0                    !< id number of processor element
     1809    INTEGER(iwp) ::  myidx = 0                   !< id number of processor elements with same position along x-direction
     1810    INTEGER(iwp) ::  myidy = 0                   !< id number of processor elements with same position along y-direction
     1811    INTEGER(iwp) ::  ndim = 2                    !< Siggi
     1812    INTEGER(iwp) ::  ngp_a                       !< number of grid points in atmosphere domain   Siggi
     1813    INTEGER(iwp) ::  ngp_o                       !< number of grid points in ocean domain   Siggi
     1814    INTEGER(iwp) ::  ngp_xy                      !< number of grid points at atmosphere-ocean interface   Siggi   
     1815    INTEGER(iwp) ::  ngp_y                       !< Siggi
     1816    INTEGER(iwp) ::  npex = -1                   !< number of processor elements in x-direction
     1817    INTEGER(iwp) ::  npey = -1                   !< number of processor elements in y-direction
     1818    INTEGER(iwp) ::  numprocs = 1                !< total number of appointed processor elements
     1819    INTEGER(iwp) ::  numprocs_previous_run = -1  !< total number of appointed processor elements in previous run (job chain)
     1820    INTEGER(iwp) ::  pleft                       !< MPI-address of the processor left of the current one
     1821    INTEGER(iwp) ::  pnorth                      !< MPI-address of the processor north of the current one
     1822    INTEGER(iwp) ::  pright                      !< MPI-address of the processor right of the current one
     1823    INTEGER(iwp) ::  psouth                      !< MPI-address of the processor south of the current one
     1824    INTEGER(iwp) ::  req_count = 0               !< MPI return variable - checks if Send-Receive operation is already finished
     1825    INTEGER(iwp) ::  sendrecvcount_xy            !< Siggi
     1826    INTEGER(iwp) ::  sendrecvcount_yz            !< Siggi
     1827    INTEGER(iwp) ::  sendrecvcount_zx            !< Siggi
     1828    INTEGER(iwp) ::  sendrecvcount_zyd           !< Siggi
     1829    INTEGER(iwp) ::  sendrecvcount_yxd           !< Siggi
     1830    INTEGER(iwp) ::  target_id                   !< Siggi
     1831    INTEGER(iwp) ::  tasks_per_node = -9999      !< MPI tasks per computing node
     1832    INTEGER(iwp) ::  threads_per_task = 1        !< OPENMP threads per MPI task
     1833    INTEGER(iwp) ::  type_x                      !< derived MPI datatype for 2-D ghost-point exchange - north / south
     1834    INTEGER(iwp) ::  type_xy                     !< derived MPI datatype for 2-D ghost-point exchange - north / south
     1835    INTEGER(iwp) ::  type_y                      !< derived MPI datatype for 2-D exchange in atmosphere-ocean coupler
     1836
     1837    INTEGER(iwp) ::  pdims(2) = 1  !< number of processors along x-y dimension
     1838    INTEGER(iwp) ::  req(100)      !< MPI return variable indicating if send-receive operation is finished
     1839
     1840    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  hor_index_bounds               !< horizontal index bounds
     1841    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  hor_index_bounds_previous_run  !< horizontal index bounds of previous run
     1842
     1843    LOGICAL ::  collective_wait = .FALSE.          !< Siggi
     1844    LOGICAL ::  sendrecv_in_background = .FALSE.   !< Siggi
    18391845
    18401846#if defined( __parallel )
    18411847#if defined( __mpi2 )
    1842     CHARACTER (LEN=MPI_MAX_PORT_NAME) ::  port_name  !<
     1848    CHARACTER (LEN=MPI_MAX_PORT_NAME) ::  port_name  !< Siggi
    18431849#endif
    18441850
    1845     INTEGER(iwp) ::  ibuf(12)                 !<
    1846     INTEGER(iwp) ::  pcoord(2)                !<
    1847     INTEGER(iwp) ::  status(MPI_STATUS_SIZE)  !<
     1851    INTEGER(iwp) ::  ibuf(12)                 !< Siggi
     1852    INTEGER(iwp) ::  pcoord(2)                !< Siggi
     1853    INTEGER(iwp) ::  status(MPI_STATUS_SIZE)  !< Siggi
    18481854   
    1849     INTEGER(iwp), DIMENSION(MPI_STATUS_SIZE,100) ::  wait_stat  !<
     1855    INTEGER(iwp), DIMENSION(MPI_STATUS_SIZE,100) ::  wait_stat  !< Siggi
    18501856   
    1851     INTEGER(iwp) ::  ngp_yz_int   !<
    1852     INTEGER(iwp) ::  type_xz_int  !<
    1853     INTEGER(iwp) ::  type_yz_int  !<
    1854 
    1855     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_xz      !<
    1856     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_yz      !<
    1857     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_x_int  !<
    1858     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_xz     !<
    1859     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_y_int  !<
    1860     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_yz     !<
    1861 
    1862     LOGICAL ::  left_border_pe  = .FALSE.  !<
    1863     LOGICAL ::  north_border_pe = .FALSE.  !<
    1864     LOGICAL ::  reorder = .TRUE.           !<
    1865     LOGICAL ::  right_border_pe = .FALSE.  !<
    1866     LOGICAL ::  south_border_pe = .FALSE.  !<
    1867 
    1868     LOGICAL, DIMENSION(2) ::  cyclic = (/ .TRUE. , .TRUE. /)  !<
    1869     LOGICAL, DIMENSION(2) ::  remain_dims                     !<
     1857    INTEGER(iwp) ::  ngp_yz_int   !< number of ghost points in yz-plane
     1858    INTEGER(iwp) ::  type_xz_int  !< derived MPI datatype for 3-D integer ghost-point exchange - north / south
     1859    INTEGER(iwp) ::  type_yz_int  !< derived MPI datatype for 3-D integer ghost-point exchange - left / right
     1860
     1861    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_xz      !< number of ghost points in xz-plane on different multigrid level
     1862    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_yz      !< number of ghost points in yz-plane on different multigrid level
     1863    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_x_int  !< derived MPI datatype for 2-D integer ghost-point exchange - north / south
     1864    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_xz     !< derived MPI datatype for 3-D integer ghost-point exchange - north / south
     1865    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_y_int  !< derived MPI datatype for 2-D integer ghost-point exchange - left / right
     1866    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_yz     !< derived MPI datatype for 3-D integer ghost-point exchange - left / right
     1867
     1868    LOGICAL ::  left_border_pe  = .FALSE.  !< = .TRUE. if PE is on left border of computational domain
     1869    LOGICAL ::  north_border_pe = .FALSE.  !< = .TRUE. if PE is on north border of computational domain
     1870    LOGICAL ::  reorder = .TRUE.           !< Siggi
     1871    LOGICAL ::  right_border_pe = .FALSE.  !< = .TRUE. if PE is on right border of computational domain
     1872    LOGICAL ::  south_border_pe = .FALSE.  !< = .TRUE. if PE is on south border of computational domain
     1873
     1874    LOGICAL, DIMENSION(2) ::  cyclic = (/ .TRUE. , .TRUE. /)  !< Siggi
     1875    LOGICAL, DIMENSION(2) ::  remain_dims                     !< Siggi
    18701876#endif
    18711877
     
    18841890    USE kinds
    18851891
    1886     INTEGER(iwp), PARAMETER ::  crmax = 100  !<
     1892    INTEGER(iwp), PARAMETER ::  crmax = 100  !< Siggi (entire module)
    18871893
    18881894    CHARACTER (LEN=20), DIMENSION(20) ::  cross_ts_profiles = &  !<
     
    19421948    USE kinds
    19431949
    1944     CHARACTER (LEN=40) ::  region(0:9)  !<
     1950    CHARACTER (LEN=40) ::  region(0:9)  !< label for statistic region
    19451951   
    1946     INTEGER(iwp) ::  pr_palm = 130          !<
    1947     INTEGER(iwp) ::  statistic_regions = 0  !<
     1952    INTEGER(iwp) ::  pr_palm = 130          !< maximum number of output profiles
     1953    INTEGER(iwp) ::  statistic_regions = 0  !< identifier for statistic regions
    19481954   
    1949     INTEGER(iwp) ::  u_max_ijk(3) = -1  !<
    1950     INTEGER(iwp) ::  v_max_ijk(3) = -1  !<
    1951     INTEGER(iwp) ::  w_max_ijk(3) = -1  !<
     1955    INTEGER(iwp) ::  u_max_ijk(3) = -1  !< index values (i,j,k) of location where u_max occurs
     1956    INTEGER(iwp) ::  v_max_ijk(3) = -1  !< index values (i,j,k) of location where v_max occurs
     1957    INTEGER(iwp) ::  w_max_ijk(3) = -1  !< index values (i,j,k) of location where w_max occurs
    19521958   
    1953     LOGICAL ::  flow_statistics_called = .FALSE.  !<
     1959    LOGICAL ::  flow_statistics_called = .FALSE.  !< flag that tells other routines if flow statistics was executed
     1960                                                  !< (after each timestep)
    19541961   
    1955     REAL(wp) ::  u_max  !<
    1956     REAL(wp) ::  v_max  !<
    1957     REAL(wp) ::  w_max  !<
     1962    REAL(wp) ::  u_max  !< maximum of absolute u-veloctiy in entire domain
     1963    REAL(wp) ::  v_max  !< maximum of absolute v-veloctiy in entire domain
     1964    REAL(wp) ::  w_max  !< maximum of absolute w-veloctiy in entire domain
    19581965   
    1959     REAL(wp), DIMENSION(:), ALLOCATABLE ::  mean_surface_level_height  !<
    1960     REAL(wp), DIMENSION(:), ALLOCATABLE ::  sums_divnew_l              !<
    1961     REAL(wp), DIMENSION(:), ALLOCATABLE ::  sums_divold_l              !<
    1962     REAL(wp), DIMENSION(:), ALLOCATABLE ::  weight_substep             !<
    1963     REAL(wp), DIMENSION(:), ALLOCATABLE ::  weight_pres                !<
     1966    REAL(wp), DIMENSION(:), ALLOCATABLE ::  mean_surface_level_height  !< Siggi
     1967    REAL(wp), DIMENSION(:), ALLOCATABLE ::  sums_divnew_l              !< subdomain sum (_l) of divergence after pressure
     1968                                                                       !< solver call (new)
     1969    REAL(wp), DIMENSION(:), ALLOCATABLE ::  sums_divold_l              !< subdomain sum (_l) of divergence before pressure
     1970                                                                       !< solver call (old)
     1971    REAL(wp), DIMENSION(:), ALLOCATABLE ::  weight_substep             !< weighting factor for substeps in timestepping
     1972    REAL(wp), DIMENSION(:), ALLOCATABLE ::  weight_pres                !< substep weighting factor for pressure solver
    19641973   
    1965     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums             !<
    1966     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsts_bc_l   !<
    1967     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ts_value         !<
    1968     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsus_ws_l   !<
    1969     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsvs_ws_l   !<
    1970     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_us2_ws_l    !<
    1971     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_vs2_ws_l    !<
    1972     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_ws2_ws_l    !<
    1973     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsnrs_ws_l  !<
    1974     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wspts_ws_l  !<
    1975     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsqs_ws_l   !<
    1976     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsqrs_ws_l  !<
    1977     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wssas_ws_l  !<
    1978     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsss_ws_l   !<
    1979     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_ls_l        !<
     1974    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums             !< global sum array for the various output quantities
     1975    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsts_bc_l   !< subdomain sum of sensible heat flux in Bott-Chlond scheme
     1976    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ts_value         !< timeseries output array for the various output quantities
     1977    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsus_ws_l   !< subdomain sum of vertical momentum flux w'u' (5th-order advection scheme only)
     1978    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsvs_ws_l   !< subdomain sum of vertical momentum flux w'v' (5th-order advection scheme only)
     1979    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_us2_ws_l    !< subdomain sum of horizontal momentum flux u'u' (5th-order advection scheme only)
     1980    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_vs2_ws_l    !< subdomain sum of horizontal momentum flux v'v' (5th-order advection scheme only)
     1981    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_ws2_ws_l    !< subdomain sum of vertical momentum flux w'w' (5th-order advection scheme only)
     1982    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsnrs_ws_l  !< subdomain sum of vertical raindrop-number concentration flux w'nr' (5th-order advection scheme only)
     1983    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wspts_ws_l  !< subdomain sum of vertical sensible heat flux w'pt' (5th-order advection scheme only)
     1984    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsqs_ws_l   !< subdomain sum of vertical latent heat flux w'q' (5th-order advection scheme only)
     1985    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsqrs_ws_l  !< subdomain sum of vertical rainwater flux w'qr' (5th-order advection scheme only)
     1986    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wssas_ws_l  !< subdomain sum of vertical salinity flux w'sa' (5th-order advection scheme only)
     1987    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsss_ws_l   !< subdomain sum of vertical passive scalar flux w's' (5th-order advection scheme only)
     1988    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_ls_l        !< subdomain sum of large scale forcing and nudging tendencies
    19801989                                             
    1981     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  hom_sum             !<
    1982     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  rmask               !<
    1983     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  sums_l              !<
    1984     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  sums_l_l            !<
    1985     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  sums_up_fraction_l  !<
    1986 
    1987     REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  hom  !<
     1990    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  hom_sum             !< sum array for horizontal mean
     1991    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  rmask               !< REAL flag array (0.0 or 1.0) for statistic regions
     1992    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  sums_l              !< subdomain sum (_l) gathered for various quantities
     1993    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  sums_l_l            !< subdomain sum (_l) of mixing length from diffusivities
     1994
     1995    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  hom  !< horizontal mean of various quantities (profiles/timeseries)
    19881996
    19891997    SAVE
     
    20022010    USE kinds
    20032011
    2004     INTEGER(iwp) ::  nxl_y   !<
     2012    INTEGER(iwp) ::  nxl_y   !< Siggi (entire module)
    20052013    INTEGER(iwp) ::  nxl_yd  !<
    20062014    INTEGER(iwp) ::  nxl_z   !<
  • palm/trunk/SOURCE/nudging_mod.f90

    r2271 r2277  
    2525! -----------------
    2626! $Id$
     27! Removed unused variables lptnudge, lqnudge, lunudge, lvnudge, lwnudge
     28!
     29! 2271 2017-06-09 12:34:55Z sward
    2730! Error message changed
    2831!
     
    130133
    131134       USE control_parameters,                                                 &
    132            ONLY:  dt_3d, lptnudge, lqnudge, lunudge, lvnudge, lwnudge,         &
    133                    message_string, ntnudge
     135           ONLY:  dt_3d, message_string, ntnudge
    134136
    135137       USE indices,                                                            &
     
    266268       CLOSE ( finput )
    267269
    268 !
    269 !--    Prevent nudging if nudging profiles exhibt too small values
    270 !--    not used so far
    271        lptnudge  = ANY( ABS( ptnudge ) > 1.0e-8_wp )
    272        lqnudge   = ANY( ABS( qnudge )  > 1.0e-8_wp )
    273        lunudge   = ANY( ABS( unudge )  > 1.0e-8_wp )
    274        lvnudge   = ANY( ABS( vnudge )  > 1.0e-8_wp )
    275        lwnudge   = ANY( ABS( wnudge )  > 1.0e-8_wp )
    276270
    277271    END SUBROUTINE init_nudge
Note: See TracChangeset for help on using the changeset viewer.