Changeset 2107 for palm/trunk/SOURCE


Ignore:
Timestamp:
Jan 9, 2017 12:21:49 PM (7 years ago)
Author:
kanani
Message:

Preparation for doxygen comments

File:
1 edited

Legend:

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

    r2101 r2107  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Preparation for doxygen comments (Giersch)
    2323!
    2424! Former revisions:
     
    429429    USE kinds
    430430
    431     REAL(wp), DIMENSION(:), ALLOCATABLE   ::  aex, bex, dex, eex
    432 
     431    REAL(wp), DIMENSION(:), ALLOCATABLE ::  aex  !<
     432    REAL(wp), DIMENSION(:), ALLOCATABLE ::  bex  !<
     433    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dex  !<
     434    REAL(wp), DIMENSION(:), ALLOCATABLE ::  eex  !<
     435   
    433436    SAVE
    434437
     
    445448    USE kinds
    446449
    447     REAL(wp), DIMENSION(:), ALLOCATABLE ::                                     &
    448           c_u_m, c_u_m_l, c_v_m, c_v_m_l, c_w_m, c_w_m_l, ddzu, ddzu_pres,     &
    449           dd2zu, dzu, ddzw, dzw, hyp, inflow_damping_factor, l_grid,           &
    450           ptdf_x, ptdf_y, p_surf, pt_surf, pt_init, qsws_surf, q_init, q_surf, &
    451           rdf, rdf_sc, ref_state, s_init, s_surf, sa_init, shf_surf,           &
    452           timenudge, time_surf, time_vert, tmp_tnudge, ug, u_init,             &
    453           u_nzb_p1_for_vfc, vg, v_init, v_nzb_p1_for_vfc, w_subs, zu, zw
    454 
    455     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::                                   &
    456           c_u, c_v, c_w, diss_s_e, diss_s_nr, diss_s_pt, diss_s_q,             &
    457           diss_s_qr, diss_s_s, diss_s_sa, diss_s_u, diss_s_v, diss_s_w, dzu_mg,&
    458           dzw_mg, flux_s_e, flux_s_nr, flux_s_pt, flux_s_q, flux_s_qr,         &
    459           flux_s_s, flux_s_sa, flux_s_u, flux_s_v, flux_s_w, f1_mg, f2_mg,     &
    460           f3_mg, mean_inflow_profiles, nrs, nrsws, nrswst,                     &
    461           ol,                                                                  & !< Obukhov length
    462           precipitation_amount, precipitation_rate, ptnudge, pt_slope_ref,     &
    463           qnudge, qs, qsws, qswst, qswst_remote, qrs, qrsws, qrswst,           &
    464           saswsb, saswst, shf, ss, ssws, sswst, tnudge, td_lsa_lpt, td_lsa_q,  &
    465           td_sub_lpt,                                                          &
    466           td_sub_q, total_2d_a, total_2d_o, ts, tswst, ug_vert, unudge, us,    &
    467           usws, uswst, vnudge, vg_vert, vsws, vswst, wnudge, wsubs_vert,       &
    468           z0,                                                                  & !< roughness length for momentum
    469           z0h,                                                                 & !< roughness length for heat
    470           z0q                                                                    !< roughness length for moisture
    471 
    472     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::                                 &
    473           d, de_dx, de_dy, de_dz, diss, diss_l_e,                              &
    474           diss_l_nr, diss_l_pt, diss_l_q, diss_l_qr, diss_l_s, diss_l_sa,      &
    475           diss_l_u, diss_l_v, diss_l_w, flux_l_e, flux_l_nr, flux_l_pt,        &
    476           flux_l_q, flux_l_qr, flux_l_s, flux_l_sa, flux_l_u, flux_l_v,        &
    477           flux_l_w, kh, km, l_wall, prr, p_loc, tend, tric,                    &
    478           u_m_l, u_m_n, u_m_r, u_m_s, v_m_l, v_m_n, v_m_r, v_m_s, w_m_l,       &
    479           w_m_n, w_m_r, w_m_s
     450    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_u_m                  !<
     451    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_u_m_l                !<
     452    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_v_m                  !<
     453    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_v_m_l                !<
     454    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_w_m                  !<
     455    REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_w_m_l                !<   
     456    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzu                   !<
     457    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzu_pres              !<
     458    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dd2zu                  !<
     459    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dzu                    !<
     460    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddzw                   !<
     461    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dzw                    !<
     462    REAL(wp), DIMENSION(:), ALLOCATABLE ::  hyp                    !<
     463    REAL(wp), DIMENSION(:), ALLOCATABLE ::  inflow_damping_factor  !<
     464    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l_grid                 !<
     465    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ptdf_x                 !<
     466    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ptdf_y                 !<
     467    REAL(wp), DIMENSION(:), ALLOCATABLE ::  p_surf                 !<
     468    REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_surf                !<
     469    REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_init                !<
     470    REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_surf              !<
     471    REAL(wp), DIMENSION(:), ALLOCATABLE ::  q_init                 !<
     472    REAL(wp), DIMENSION(:), ALLOCATABLE ::  q_surf                 !<
     473    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rdf                    !<
     474    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rdf_sc                 !<
     475    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ref_state              !<
     476    REAL(wp), DIMENSION(:), ALLOCATABLE ::  s_init                 !<
     477    REAL(wp), DIMENSION(:), ALLOCATABLE ::  s_surf                 !<
     478    REAL(wp), DIMENSION(:), ALLOCATABLE ::  sa_init                !<
     479    REAL(wp), DIMENSION(:), ALLOCATABLE ::  shf_surf               !<
     480    REAL(wp), DIMENSION(:), ALLOCATABLE ::  timenudge              !<
     481    REAL(wp), DIMENSION(:), ALLOCATABLE ::  time_surf              !<
     482    REAL(wp), DIMENSION(:), ALLOCATABLE ::  time_vert              !<
     483    REAL(wp), DIMENSION(:), ALLOCATABLE ::  tmp_tnudge             !<
     484    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ug                     !<
     485    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u_init                 !<
     486    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u_nzb_p1_for_vfc       !<
     487    REAL(wp), DIMENSION(:), ALLOCATABLE ::  vg                     !<
     488    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v_init                 !<
     489    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v_nzb_p1_for_vfc       !<
     490    REAL(wp), DIMENSION(:), ALLOCATABLE ::  w_subs                 !<
     491    REAL(wp), DIMENSION(:), ALLOCATABLE ::  zu                     !<
     492    REAL(wp), DIMENSION(:), ALLOCATABLE ::  zw                     !<
     493
     494    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_u                   !<
     495    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_v                   !<
     496    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_w                   !<
     497    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_e              !<
     498    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_nr             !<     
     499    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_pt             !<
     500    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_q              !<
     501    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_qr             !<
     502    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_s              !<
     503    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_sa             !<
     504    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_u              !<
     505    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_v              !<
     506    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_w              !<
     507    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dzu_mg                !<
     508    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dzw_mg                !<
     509    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_e              !<
     510    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_nr             !<
     511    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_pt             !<
     512    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_q              !<
     513    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_qr             !<
     514    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_s              !<
     515    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_sa             !<
     516    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_u              !<
     517    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_v              !<
     518    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_w              !<
     519    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f1_mg                 !<
     520    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f2_mg                 !<
     521    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  f3_mg                 !<
     522    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  mean_inflow_profiles  !<
     523    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  nrs                   !<
     524    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  nrsws                 !<
     525    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  nrswst                !<
     526    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ol                    !< Obukhov length
     527    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_amount  !<
     528    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_rate    !<
     529    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ptnudge               !<
     530    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  pt_slope_ref          !<
     531    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qnudge                !<
     532    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qs                    !<
     533    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qsws                  !<
     534    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qswst                 !<
     535    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qswst_remote          !<
     536    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qrs                   !<
     537    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qrsws                 !<
     538    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qrswst                !<
     539    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  saswsb                !<
     540    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  saswst                !<
     541    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  shf                   !<
     542    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ss                    !<
     543    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ssws                  !<
     544    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sswst                 !<
     545    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tnudge                !<
     546    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_lsa_lpt            !<
     547    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_lsa_q              !<
     548    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_sub_lpt            !<
     549    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  td_sub_q              !<
     550    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  total_2d_a            !<
     551    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  total_2d_o            !<
     552    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ts                    !<
     553    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tswst                 !<
     554    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ug_vert               !<
     555    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  unudge                !<
     556    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  us                    !<
     557    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  usws                  !<
     558    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  uswst                 !<
     559    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vnudge                !<
     560    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vg_vert               !<
     561    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vsws                  !<
     562    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vswst                 !<
     563    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wnudge                !<
     564    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wsubs_vert            !<
     565    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0                    !< roughness length for momentum
     566    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0h                   !< roughness length for heat
     567    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0q                   !< roughness length for moisture
     568   
     569    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  d          !<
     570    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dx      !<
     571    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dy      !<
     572    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dz      !<
     573    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss       !<
     574    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_e   !<
     575    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_nr  !<
     576    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_pt  !<
     577    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_q   !<
     578    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_qr  !<
     579    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_s   !<
     580    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_sa  !<
     581    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_u   !<
     582    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_v   !<
     583    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_w   !<
     584    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_e   !<
     585    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_nr  !<
     586    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_pt  !<
     587    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_q   !<
     588    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_qr  !<
     589    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_s   !<
     590    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_sa  !<
     591    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_u   !<
     592    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_v   !<
     593    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_w   !<
     594    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  kh         !<
     595    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  km         !<
     596    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  l_wall     !<
     597    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  prr        !<
     598    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p_loc      !<
     599    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tend       !<
     600    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tric       !<
     601    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_l      !<
     602    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_n      !<
     603    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_r      !<
     604    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_s      !<
     605    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_l      !<
     606    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_n      !<
     607    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_r      !<
     608    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_s      !<
     609    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_l      !<
     610    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_n      !< 
     611    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_r      !<
     612    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_s      !<
    480613
    481614#if defined( __nopointer )
    482     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::                         &
    483           e, e_p, nr, nr_p, p, prho, pt, pt_p, q, q_p, qc, ql, ql_c, ql_v,     &
    484           ql_vp, qr, qr_p, rho_ocean, s, s_p, sa, sa_p, te_m, tnr_m, tpt_m, tq_m,    &
    485           tqr_m, ts_m, tsa_m, tu_m, tv_m, tw_m, u, u_p, v, v_p, vpt, w, w_p
     615    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e          !<
     616    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_p        !<
     617    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr         !<
     618    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_p       !<
     619    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p          !<
     620    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prho       !<
     621    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt         !<
     622    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_p       !<
     623    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q          !<
     624    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_p        !<
     625    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc         !<
     626    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql         !<
     627    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_c       !<
     628    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v       !<
     629    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp      !<
     630    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr         !<
     631    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_p       !<
     632    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_ocean  !<
     633    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s          !<
     634    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_p        !<
     635    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa         !<
     636    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_p       !<
     637    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  te_m       !<
     638    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tnr_m      !<
     639    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tpt_m      !<
     640    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tq_m       !<
     641    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tqr_m      !<
     642    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ts_m       !<
     643    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tsa_m      !<
     644    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tu_m       !<
     645    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tv_m       !<
     646    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tw_m       !< 
     647    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u          !<
     648    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_p        !<
     649    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v          !<
     650    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_p        !<
     651    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt        !<
     652    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w          !<
     653    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_p        !<
    486654#else
    487     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::                         &
    488           e_1, e_2, e_3, p, prho_1, nr_1, nr_2, nr_3, pt_1, pt_2, pt_3, q_1,   &
    489           q_2, q_3, qc_1, ql_v, ql_vp, ql_1, ql_2, qr_1, qr_2, qr_3, rho_1,    &
    490           s_1, s_2, s_3, sa_1, sa_2, sa_3, u_1, u_2, u_3, v_1, v_2, v_3, vpt_1,&
    491           w_1, w_2, w_3
    492 
    493     REAL(wp), DIMENSION(:,:,:), POINTER ::                                     &
    494           e, e_p, nr, nr_p, prho, pt, pt_p, q, q_p, qc, ql, ql_c, qr, qr_p,    &
    495           rho_ocean, s, s_p, sa, sa_p, te_m, tnr_m, tpt_m, tq_m, tqr_m, ts_m,        &
    496           tsa_m, tu_m, tv_m, tw_m, u, u_p, v, v_p, vpt, w, w_p
     655    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_1     !<
     656    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_2     !<
     657    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_3     !<
     658    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p       !<
     659    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prho_1  !<
     660    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_1    !<
     661    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_2    !<
     662    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_3    !<
     663    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_1    !<
     664    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_2    !<
     665    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_3    !<
     666    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_1     !<
     667    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_2     !<
     668    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_3     !<
     669    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc_1    !<
     670    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v    !<
     671    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp   !<
     672    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_1    !<
     673    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_2    !<
     674    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_1    !<
     675    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_2    !<
     676    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_3    !<
     677    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_1   !<
     678    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_1     !<
     679    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_2     !<
     680    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_3     !<
     681    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_1    !<
     682    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_2    !<
     683    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_3    !<
     684    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_1     !<
     685    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_2     !<
     686    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_3     !<
     687    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_1     !<
     688    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_2     !<
     689    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_3     !<
     690    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt_1   !<
     691    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_1     !<
     692    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_2     !<
     693    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_3     !<
     694
     695    REAL(wp), DIMENSION(:,:,:), POINTER ::  e          !<
     696    REAL(wp), DIMENSION(:,:,:), POINTER ::  e_p        !<
     697    REAL(wp), DIMENSION(:,:,:), POINTER ::  nr         !<
     698    REAL(wp), DIMENSION(:,:,:), POINTER ::  nr_p       !<
     699    REAL(wp), DIMENSION(:,:,:), POINTER ::  prho       !<
     700    REAL(wp), DIMENSION(:,:,:), POINTER ::  pt         !<
     701    REAL(wp), DIMENSION(:,:,:), POINTER ::  pt_p       !<
     702    REAL(wp), DIMENSION(:,:,:), POINTER ::  q          !<
     703    REAL(wp), DIMENSION(:,:,:), POINTER ::  q_p        !<
     704    REAL(wp), DIMENSION(:,:,:), POINTER ::  qc         !<
     705    REAL(wp), DIMENSION(:,:,:), POINTER ::  ql         !<
     706    REAL(wp), DIMENSION(:,:,:), POINTER ::  ql_c       !<
     707    REAL(wp), DIMENSION(:,:,:), POINTER ::  qr         !<
     708    REAL(wp), DIMENSION(:,:,:), POINTER ::  qr_p       !<
     709    REAL(wp), DIMENSION(:,:,:), POINTER ::  rho_ocean  !<
     710    REAL(wp), DIMENSION(:,:,:), POINTER ::  s          !<
     711    REAL(wp), DIMENSION(:,:,:), POINTER ::  s_p        !<
     712    REAL(wp), DIMENSION(:,:,:), POINTER ::  sa         !<
     713    REAL(wp), DIMENSION(:,:,:), POINTER ::  sa_p       !<
     714    REAL(wp), DIMENSION(:,:,:), POINTER ::  te_m       !<
     715    REAL(wp), DIMENSION(:,:,:), POINTER ::  tnr_m      !<
     716    REAL(wp), DIMENSION(:,:,:), POINTER ::  tpt_m      !<
     717    REAL(wp), DIMENSION(:,:,:), POINTER ::  tq_m       !<
     718    REAL(wp), DIMENSION(:,:,:), POINTER ::  tqr_m      !<
     719    REAL(wp), DIMENSION(:,:,:), POINTER ::  ts_m       !<
     720    REAL(wp), DIMENSION(:,:,:), POINTER ::  tsa_m      !<
     721    REAL(wp), DIMENSION(:,:,:), POINTER ::  tu_m       !<
     722    REAL(wp), DIMENSION(:,:,:), POINTER ::  tv_m       !<
     723    REAL(wp), DIMENSION(:,:,:), POINTER ::  tw_m       !<
     724    REAL(wp), DIMENSION(:,:,:), POINTER ::  u          !<
     725    REAL(wp), DIMENSION(:,:,:), POINTER ::  u_p        !<
     726    REAL(wp), DIMENSION(:,:,:), POINTER ::  v          !<
     727    REAL(wp), DIMENSION(:,:,:), POINTER ::  v_p        !<
     728    REAL(wp), DIMENSION(:,:,:), POINTER ::  vpt        !<
     729    REAL(wp), DIMENSION(:,:,:), POINTER ::  w          !<
     730    REAL(wp), DIMENSION(:,:,:), POINTER ::  w_p        !<
    497731#endif
    498732
    499     REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  rif_wall, tri
    500 
    501     REAL(wp), DIMENSION(:), ALLOCATABLE :: rho_air     !< air density profile on the uv grid
    502     REAL(wp), DIMENSION(:), ALLOCATABLE :: rho_air_zw  !< air density profile on the w grid
    503     REAL(wp), DIMENSION(:), ALLOCATABLE :: drho_air    !< inverse air density profile on the uv grid
    504     REAL(wp), DIMENSION(:), ALLOCATABLE :: drho_air_zw !< inverse air density profile on the w grid
    505 
    506     REAL(wp), DIMENSION(:,:), ALLOCATABLE :: rho_air_mg    !< air density profiles on the uv grid for multigrid
    507     REAL(wp), DIMENSION(:,:), ALLOCATABLE :: rho_air_zw_mg !< air density profiles on the w grid for multigrid
    508 
    509     REAL(wp), DIMENSION(:), ALLOCATABLE :: heatflux_input_conversion      !< conversion factor array for heatflux input
    510     REAL(wp), DIMENSION(:), ALLOCATABLE :: waterflux_input_conversion     !< conversion factor array for waterflux input
    511     REAL(wp), DIMENSION(:), ALLOCATABLE :: momentumflux_input_conversion  !< conversion factor array for momentumflux input
    512     REAL(wp), DIMENSION(:), ALLOCATABLE :: heatflux_output_conversion     !< conversion factor array for heatflux output
    513     REAL(wp), DIMENSION(:), ALLOCATABLE :: waterflux_output_conversion    !< conversion factor array for waterflux output
    514     REAL(wp), DIMENSION(:), ALLOCATABLE :: momentumflux_output_conversion !< conversion factor array for momentumflux output
    515 
     733    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  rif_wall !<
     734    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  tri      !<
     735
     736    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rho_air      !< air density profile on the uv grid
     737    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rho_air_zw   !< air density profile on the w grid
     738    REAL(wp), DIMENSION(:), ALLOCATABLE ::  drho_air     !< inverse air density profile on the uv grid
     739    REAL(wp), DIMENSION(:), ALLOCATABLE ::  drho_air_zw  !< inverse air density profile on the w grid
     740
     741    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  rho_air_mg     !< air density profiles on the uv grid for multigrid
     742    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  rho_air_zw_mg  !< air density profiles on the w grid for multigrid
     743
     744    REAL(wp), DIMENSION(:), ALLOCATABLE ::  heatflux_input_conversion       !< conversion factor array for heatflux input
     745    REAL(wp), DIMENSION(:), ALLOCATABLE ::  waterflux_input_conversion      !< conversion factor array for waterflux input
     746    REAL(wp), DIMENSION(:), ALLOCATABLE ::  momentumflux_input_conversion   !< conversion factor array for momentumflux input
     747    REAL(wp), DIMENSION(:), ALLOCATABLE ::  heatflux_output_conversion      !< conversion factor array for heatflux output
     748    REAL(wp), DIMENSION(:), ALLOCATABLE ::  waterflux_output_conversion     !< conversion factor array for waterflux output
     749    REAL(wp), DIMENSION(:), ALLOCATABLE ::  momentumflux_output_conversion  !< conversion factor array for momentumflux output
    516750
    517751    SAVE
     
    529763    USE kinds
    530764
    531     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lwp_av,                & !< Avg. liquid water path
    532                                               precipitation_rate_av, & !< Avg. of precipitation rate
    533                                               ol_av,                 & !< Avg. of Obukhov length
    534                                               qsws_av,               & !< Avg. of surface moisture flux
    535                                               ssws_av,               & !< Avg. of surface scalar flux
    536                                               shf_av,                & !< Avg. of surface heat flux
    537                                               ts_av,                 & !< Avg. of characteristic temperature scale
    538                                               us_av,                 & !< Avg. of friction velocity
    539                                               z0_av,                 & !< Avg. of roughness length for momentum
    540                                               z0h_av,                & !< Avg. of roughness length for heat
    541                                               z0q_av                   !< Avg. of roughness length for moisture
    542 
    543     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::                         &
    544           e_av, lpt_av, nr_av, p_av, pc_av, pr_av, prr_av, pt_av, q_av, qc_av, &
    545           ql_av, ql_c_av, ql_v_av, ql_vp_av, qr_av, qv_av, rho_ocean_av, s_av, sa_av,&
    546           u_av, v_av, vpt_av, w_av
     765    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lwp_av                 !< Avg. liquid water path
     766    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  precipitation_rate_av  !< Avg. of precipitation rate
     767    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ol_av                  !< Avg. of Obukhov length
     768    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  qsws_av                !< Avg. of surface moisture flux
     769    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ssws_av                !< Avg. of surface scalar flux
     770    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  shf_av                 !< Avg. of surface heat flux
     771    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ts_av                  !< Avg. of characteristic temperature scale
     772    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  us_av                  !< Avg. of friction velocity
     773    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0_av                  !< Avg. of roughness length for momentum
     774    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0h_av                 !< Avg. of roughness length for heat
     775    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0q_av                 !< Avg. of roughness length for moisture
     776
     777    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_av          !<
     778    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  lpt_av        !<
     779    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nr_av         !<
     780    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  p_av          !<
     781    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pc_av         !<
     782    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pr_av         !<
     783    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  prr_av        !<
     784    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  pt_av         !<
     785    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  q_av          !<
     786    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qc_av         !<
     787    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_av         !<
     788    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_c_av       !<
     789    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_v_av       !<
     790    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  ql_vp_av      !<
     791    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qr_av         !<
     792    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  qv_av         !<
     793    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  rho_ocean_av  !<
     794    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  s_av          !<
     795    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_av         !<
     796    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  u_av          !<
     797    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  v_av          !<
     798    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  vpt_av        !<
     799    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_av          !<
    547800 
    548801 END MODULE averaging
     
    558811    USE kinds
    559812
    560     REAL(wp) :: cp = 1005.0_wp,       & !< heat capacity of dry air (J kg-1 K-1)
    561                 l_v = 2.5E+06_wp,     & !< latent heat of vaporization (J kg-1)
    562                 l_d_cp, l_d_r, l_d_rv, & !< l_v / cp, l_v / r_d, l_v / r_v
    563                 rho_l = 1.0E3_wp,     & !< density of water (kg m-3)
    564                 r_d = 287.0_wp,       & !< sp. gas const. dry air (J kg-1 K-1)
    565                 r_v = 461.51_wp         !< sp. gas const. water vapor (J kg-1 K-1)
    566 
    567 
    568     REAL(wp), DIMENSION(:), ALLOCATABLE     ::  hyrho, pt_d_t, t_d_pt 
     813    REAL(wp) ::  cp = 1005.0_wp         !< heat capacity of dry air (J kg-1 K-1)
     814    REAL(wp) ::  l_v = 2.5E+06_wp       !< latent heat of vaporization (J kg-1)
     815    REAL(wp) ::  l_d_cp                 !< l_v / cp
     816    REAL(wp) ::  l_d_r                  !< l_v / r_d
     817    REAL(wp) ::  l_d_rv                 !< l_v / r_v   
     818    REAL(wp) ::  rho_l = 1.0E3_wp       !< density of water (kg m-3)
     819    REAL(wp) ::  r_d = 287.0_wp         !< sp. gas const. dry air (J kg-1 K-1)
     820    REAL(wp) ::  r_v = 461.51_wp        !< sp. gas const. water vapor (J kg-1 K-1)
     821
     822
     823    REAL(wp), DIMENSION(:), ALLOCATABLE ::  hyrho   !<
     824    REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_d_t  !<
     825    REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_d_pt  !<
    569826
    570827    SAVE
     
    582839    USE kinds
    583840
    584     REAL(wp)  ::  pi = 3.141592654_wp
    585     REAL(wp)  ::  adv_mom_1, adv_mom_3, adv_mom_5, adv_sca_1, adv_sca_3, adv_sca_5
     841    REAL(wp) ::  pi = 3.141592654_wp  !<
     842    REAL(wp) ::  adv_mom_1            !<
     843    REAL(wp) ::  adv_mom_3            !<
     844    REAL(wp) ::  adv_mom_5            !<
     845    REAL(wp) ::  adv_sca_1            !<
     846    REAL(wp) ::  adv_sca_3            !<
     847    REAL(wp) ::  adv_sca_5            !<
    586848   
    587 
    588849    SAVE
    589850
     
    601862
    602863    TYPE plot_precision
    603        CHARACTER (LEN=8) ::  variable
    604        INTEGER(iwp)      ::  precision
     864       CHARACTER (LEN=8) ::  variable   !<
     865       INTEGER(iwp)      ::  precision  !<
    605866    END TYPE plot_precision
    606867
    607     TYPE(plot_precision), DIMENSION(100) ::  plot_3d_precision =               &
    608                         (/ plot_precision( 'u', 2 ), plot_precision( 'v', 2 ), &
    609                            plot_precision( 'w', 2 ), plot_precision( 'p', 5 ), &
    610                            plot_precision( 'pt', 2 ),                          &
     868    TYPE(plot_precision), DIMENSION(100) ::  plot_3d_precision =               &  !<
     869                        (/ plot_precision( 'u', 2 ), plot_precision( 'v', 2 ), & 
     870                           plot_precision( 'w', 2 ), plot_precision( 'p', 5 ), & 
     871                           plot_precision( 'pt', 2 ),                          & 
    611872                           ( plot_precision( ' ', 1 ), i9 = 1,95 ) /)
    612873
    613874    TYPE file_status
    614        LOGICAL ::  opened, opened_before
     875       LOGICAL ::  opened         !<
     876       LOGICAL ::  opened_before  !<
    615877    END TYPE file_status
    616878   
    617     INTEGER, PARAMETER :: mask_xyz_dimension = 100, max_masks = 50
    618     INTEGER(iwp), PARAMETER ::  varnamelength = 30  !< length of output variable names
    619 
    620     TYPE(file_status), DIMENSION(200+2*max_masks) ::                &
     879    INTEGER, PARAMETER      ::  mask_xyz_dimension = 100  !<
     880    INTEGER, PARAMETER      ::  max_masks = 50            !<
     881    INTEGER(iwp), PARAMETER ::  varnamelength = 30        !< length of output variable names
     882
     883    TYPE(file_status), DIMENSION(200+2*max_masks) ::                &  !<
    621884                             openfile = file_status(.FALSE.,.FALSE.)
    622885
    623     CHARACTER (LEN=1)    ::  cycle_mg = 'w', timestep_reason = ' '
    624     CHARACTER (LEN=3)    ::  coupling_char = ''
    625     CHARACTER (LEN=5)    ::  write_binary = 'false'
    626     CHARACTER (LEN=8)    ::  most_method = 'lookup', & !< NAMELIST parameter defining method to be used to calculate Okukhov length,
    627                              run_date,               & !<
    628                              run_time                  !<
    629     CHARACTER (LEN=9)    ::  simulated_time_chr
    630     CHARACTER (LEN=11)   ::  topography_grid_convention = ' '
    631     CHARACTER (LEN=12)   ::  version = ' ', revision = ' ', &
    632                              user_interface_current_revision = ' ', &
    633                              user_interface_required_revision = ' '
    634     CHARACTER (LEN=16)   ::  conserve_volume_flow_mode = 'default', &
    635                              loop_optimization = 'default', &
    636                              momentum_advec = 'ws-scheme', &
    637                              psolver = 'poisfft', &
    638                              scalar_advec = 'ws-scheme'
    639     CHARACTER (LEN=20)   ::  approximation = 'boussinesq'
    640     CHARACTER (LEN=40)   ::  flux_input_mode = 'approximation-specific'
    641     CHARACTER (LEN=40)   ::  flux_output_mode = 'approximation-specific'
    642     CHARACTER (LEN=20)   ::  bc_e_b = 'neumann', bc_lr = 'cyclic', &
    643                              bc_ns = 'cyclic', bc_p_b = 'neumann', &
    644                              bc_p_t = 'dirichlet', bc_pt_b = 'dirichlet', &
    645                              bc_pt_t = 'initial_gradient', &
    646                              bc_q_b = 'dirichlet', bc_q_t = 'neumann', &
    647                              bc_s_b = 'dirichlet', bc_s_t = 'initial_gradient', &
    648                              bc_sa_t = 'neumann', &
    649                              bc_uv_b = 'dirichlet', bc_uv_t = 'dirichlet', &
    650                              cloud_scheme = 'saturation_adjust', &
    651                              coupling_mode = 'uncoupled', &
    652                              coupling_mode_remote = 'uncoupled', &
    653                              dissipation_1d = 'detering', &
    654                              fft_method = 'system-specific', &
    655                              mixing_length_1d = 'blackadar', &
    656                              random_generator = 'numerical-recipes', &
    657                              reference_state = 'initial_profile', &
    658                              return_addres, return_username, &
    659                              timestep_scheme = 'runge-kutta-3'                             
    660     CHARACTER (LEN=40)   ::  avs_data_file, topography = 'flat'
    661     CHARACTER (LEN=64)   ::  host = ' '
    662     CHARACTER (LEN=80)   ::  log_message, run_identifier
    663     CHARACTER (LEN=100)  ::  initializing_actions = ' '
    664     CHARACTER (LEN=110)  ::  run_description_header
    665     CHARACTER (LEN=1000) ::  message_string = ' '
    666 
    667     CHARACTER (LEN=varnamelength), DIMENSION(500) ::  data_output = ' ',    &
    668                                            data_output_user = ' ', doav = ' '
    669     CHARACTER (LEN=varnamelength), DIMENSION(max_masks,100) ::  &
    670          data_output_masks = ' ', data_output_masks_user = ' '
    671 
    672     CHARACTER (LEN=varnamelength), DIMENSION(300) ::  data_output_pr = ' '
    673     CHARACTER (LEN=varnamelength), DIMENSION(200) ::  data_output_pr_user = ' '
    674     CHARACTER (LEN=varnamelength), DIMENSION(max_masks,0:1,100) ::  domask = ' '
    675     CHARACTER (LEN=varnamelength), DIMENSION(0:1,500) ::  do2d = ' ', do3d = ' '
    676 
    677     INTEGER(iwp), PARAMETER :: fl_max = 100, var_fl_max = 20
     886    CHARACTER (LEN=1)    ::  cycle_mg = 'w'                               !<
     887    CHARACTER (LEN=1)    ::  timestep_reason = ' '                        !<
     888    CHARACTER (LEN=3)    ::  coupling_char = ''                           !<
     889    CHARACTER (LEN=5)    ::  write_binary = 'false'                       !<
     890    CHARACTER (LEN=8)    ::  most_method = 'lookup'                       !< NAMELIST parameter defining method to be used to calculate Okukhov length,
     891    CHARACTER (LEN=8)    ::  run_date                                     !<
     892    CHARACTER (LEN=8)    ::  run_time                                     !<
     893    CHARACTER (LEN=9)    ::  simulated_time_chr                           !<
     894    CHARACTER (LEN=11)   ::  topography_grid_convention = ' '             !<
     895    CHARACTER (LEN=12)   ::  version = ' '                                !<
     896    CHARACTER (LEN=12)   ::  revision = ' '                               !<
     897    CHARACTER (LEN=12)   ::  user_interface_current_revision = ' '        !<
     898    CHARACTER (LEN=12)   ::  user_interface_required_revision = ' '       !<
     899    CHARACTER (LEN=16)   ::  conserve_volume_flow_mode = 'default'        !<
     900    CHARACTER (LEN=16)   ::  loop_optimization = 'default'                !<
     901    CHARACTER (LEN=16)   ::  momentum_advec = 'ws-scheme'                 !<
     902    CHARACTER (LEN=16)   ::  psolver = 'poisfft'                          !< 
     903    CHARACTER (LEN=16)   ::  scalar_advec = 'ws-scheme'                   !<
     904    CHARACTER (LEN=20)   ::  approximation = 'boussinesq'                 !< 
     905    CHARACTER (LEN=40)   ::  flux_input_mode = 'approximation-specific'   !<
     906    CHARACTER (LEN=40)   ::  flux_output_mode = 'approximation-specific'  !<
     907    CHARACTER (LEN=20)   ::  bc_e_b = 'neumann'                           !<
     908    CHARACTER (LEN=20)   ::  bc_lr = 'cyclic'                             !<
     909    CHARACTER (LEN=20)   ::  bc_ns = 'cyclic'                             !<
     910    CHARACTER (LEN=20)   ::  bc_p_b = 'neumann'                           !<
     911    CHARACTER (LEN=20)   ::  bc_p_t = 'dirichlet'                         !<
     912    CHARACTER (LEN=20)   ::  bc_pt_b = 'dirichlet'                        !<
     913    CHARACTER (LEN=20)   ::  bc_pt_t = 'initial_gradient'                 !<
     914    CHARACTER (LEN=20)   ::  bc_q_b = 'dirichlet'                         !<
     915    CHARACTER (LEN=20)   ::  bc_q_t = 'neumann'                           !<
     916    CHARACTER (LEN=20)   ::  bc_s_b = 'dirichlet'                         !<
     917    CHARACTER (LEN=20)   ::  bc_s_t = 'initial_gradient'                  !<
     918    CHARACTER (LEN=20)   ::  bc_sa_t = 'neumann'                          !<
     919    CHARACTER (LEN=20)   ::  bc_uv_b = 'dirichlet'                        !<
     920    CHARACTER (LEN=20)   ::  bc_uv_t = 'dirichlet'                        !<
     921    CHARACTER (LEN=20)   ::  cloud_scheme = 'saturation_adjust'           !<
     922    CHARACTER (LEN=20)   ::  coupling_mode = 'uncoupled'                  !<   
     923    CHARACTER (LEN=20)   ::  coupling_mode_remote = 'uncoupled'           !<
     924    CHARACTER (LEN=20)   ::  dissipation_1d = 'detering'                  !<
     925    CHARACTER (LEN=20)   ::  fft_method = 'system-specific'               !<
     926    CHARACTER (LEN=20)   ::  mixing_length_1d = 'blackadar'               !<
     927    CHARACTER (LEN=20)   ::  random_generator = 'numerical-recipes'       !<
     928    CHARACTER (LEN=20)   ::  reference_state = 'initial_profile'          !<   
     929    CHARACTER (LEN=20)   ::  return_addres                                !<
     930    CHARACTER (LEN=20)   ::  return_username                              !<
     931    CHARACTER (LEN=20)   ::  timestep_scheme = 'runge-kutta-3'            !<       
     932    CHARACTER (LEN=40)   ::  avs_data_file                                !<
     933    CHARACTER (LEN=40)   ::  topography = 'flat'                          !< 
     934    CHARACTER (LEN=64)   ::  host = ' '                                   !<
     935    CHARACTER (LEN=80)   ::  log_message                                  !<
     936    CHARACTER (LEN=80)   ::  run_identifier                               !< 
     937    CHARACTER (LEN=100)  ::  initializing_actions = ' '                   !<
     938    CHARACTER (LEN=110)  ::  run_description_header                       !<
     939    CHARACTER (LEN=1000) ::  message_string = ' '                         !<
     940
     941    CHARACTER (LEN=varnamelength), DIMENSION(500) ::  data_output = ' '       !<
     942    CHARACTER (LEN=varnamelength), DIMENSION(500) ::  data_output_user = ' '  !<
     943    CHARACTER (LEN=varnamelength), DIMENSION(500) ::  doav = ' '              !<
     944                                           
     945    CHARACTER (LEN=varnamelength), DIMENSION(max_masks,100) ::  data_output_masks = ' '       !<
     946    CHARACTER (LEN=varnamelength), DIMENSION(max_masks,100) ::  data_output_masks_user = ' '  !<
     947
     948    CHARACTER (LEN=varnamelength), DIMENSION(300) ::  data_output_pr = ' '  !<
    678949   
    679     INTEGER(iwp) ::  abort_mode = 1, average_count_pr = 0, &
    680                      average_count_3d = 0, current_timestep_number = 0, &
    681                      coupling_topology = 0, &
    682                      dist_range = 0, disturbance_level_ind_b, &
    683                      disturbance_level_ind_t, doav_n = 0, dopr_n = 0, &
    684                      dopr_time_count = 0, dopts_time_count = 0, &
    685                      dots_time_count = 0, &
    686                      do2d_xy_n = 0, do2d_xz_n = 0, do2d_yz_n = 0, do3d_avs_n = 0, &
    687                      dp_level_ind_b = 0, dvrp_filecount = 0, &
    688                      dz_stretch_level_index, ensemble_member_nr = 0, gamma_mg, gathered_size, &
    689                      grid_level, ibc_e_b, ibc_p_b, ibc_p_t, &
    690                      ibc_pt_b, ibc_pt_t, ibc_q_b, ibc_q_t, ibc_s_b, ibc_s_t, &
    691                      ibc_sa_t, ibc_uv_b, ibc_uv_t, &
    692                      inflow_disturbance_begin = -1, inflow_disturbance_end = -1, &
    693                      intermediate_timestep_count, intermediate_timestep_count_max, &
    694                      io_group = 0, io_blocks = 1, iran = -1234567, &
    695                      masks = 0, maximum_grid_level, &
    696                      maximum_parallel_io_streams = -1, max_pr_user = 0, &
    697                      mgcycles = 0, mg_cycles = -1, mg_switch_to_pe0_level = -1, mid, &
    698                      nlsf = 1000, ntnudge = 1000, ngsrb = 2, &
    699                      nr_timesteps_this_run = 0, &
    700                      nsor = 20, nsor_ini = 100, n_sor, normalizing_region = 0, &
    701                      num_leg=0, num_var_fl, num_var_fl_user=0, &
    702                      nz_do3d = -9999, prt_time_count = 0, &
    703                      recycling_plane, runnr = 0, &
    704                      skip_do_avs = 0, subdomain_size, terminate_coupled = 0, &
    705                      terminate_coupled_remote = 0, timestep_count = 0
    706 
    707     INTEGER(iwp) ::  dist_nxl(0:1), dist_nxr(0:1), dist_nyn(0:1), dist_nys(0:1), &
    708                      do2d_no(0:1) = 0, do2d_xy_time_count(0:1), &
    709                      do2d_xz_time_count(0:1), do2d_yz_time_count(0:1), &
    710                      do3d_no(0:1) = 0, do3d_time_count(0:1), &
    711                      domask_no(max_masks,0:1) = 0, domask_time_count(max_masks,0:1),&
    712                      mask_size(max_masks,3) = -1, mask_size_l(max_masks,3) = -1, &
    713                      mask_start_l(max_masks,3) = -1, &
    714                      pt_vertical_gradient_level_ind(10) = -9999, &
    715                      q_vertical_gradient_level_ind(10) = -9999, &
    716                      s_vertical_gradient_level_ind(10) = -9999, &                     
    717                      sa_vertical_gradient_level_ind(10) = -9999, &
    718                      section(100,3), section_xy(100) = -9999, &
    719                      section_xz(100) = -9999, section_yz(100) = -9999, &
    720                      ug_vertical_gradient_level_ind(10) = -9999, &
    721                      vg_vertical_gradient_level_ind(10) = -9999, &
    722                      subs_vertical_gradient_level_i(10) = -9999
    723 
    724 
    725     INTEGER(iwp), DIMENSION(0:1) :: ntdim_2d_xy, ntdim_2d_xz, ntdim_2d_yz, ntdim_3d
    726 
    727     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  grid_level_count
    728 
    729     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE   ::  mask_i, mask_j, mask_k
    730     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE   ::  &
    731                     mask_i_global, mask_j_global, mask_k_global
    732 
    733     LOGICAL ::  bc_lr_cyc =.TRUE., bc_lr_dirrad = .FALSE., &
    734                 bc_lr_raddir = .FALSE., bc_ns_cyc = .TRUE., &
    735                 bc_ns_dirrad = .FALSE., bc_ns_raddir = .FALSE.,&
    736                 call_microphysics_at_all_substeps = .FALSE., &
    737                 call_psolver_at_all_substeps = .TRUE., &
    738                 cloud_droplets = .FALSE., cloud_physics = .FALSE., &
    739                 cloud_top_radiation = .FALSE., &
    740                 conserve_volume_flow = .FALSE., constant_diffusion = .FALSE., &
    741                 constant_flux_layer = .TRUE., &
    742                 constant_heatflux = .TRUE., constant_top_heatflux = .TRUE., &
    743                 constant_top_momentumflux = .FALSE., &
    744                 constant_top_salinityflux = .TRUE., &
    745                 constant_top_scalarflux = .TRUE., &
    746                 constant_scalarflux = .TRUE., &             
    747                 constant_waterflux = .TRUE., create_disturbances = .TRUE., &
    748                 data_output_2d_on_each_pe = .TRUE., &
    749                 dissipation_control = .FALSE., disturbance_created = .FALSE., &
    750                 do2d_at_begin = .FALSE., do3d_at_begin = .FALSE., &
    751                 do_sum = .FALSE., &
    752                 dp_external = .FALSE., dp_smooth = .FALSE., &
    753                 dt_fixed = .FALSE., &
    754                 dt_3d_reached, dt_3d_reached_l, exchange_mg = .FALSE., &
    755                 first_call_lpm = .TRUE., &
    756                 force_print_header = .FALSE., galilei_transformation = .FALSE.,&
    757                 humidity = .FALSE., humidity_remote = .FALSE., &
    758                 inflow_l = .FALSE., inflow_n = .FALSE., &
    759                 inflow_r = .FALSE., inflow_s = .FALSE., &
    760                 large_scale_forcing = .FALSE., &
    761                 large_scale_subsidence = .FALSE.
    762     LOGICAL ::  lsf_exception = .FALSE.  !< temporary flag for use of lsf with buildings on flat terrain
    763     LOGICAL ::  lsf_surf = .TRUE., &
    764                 lsf_vert = .TRUE., lptnudge = .FALSE., lqnudge = .FALSE., &
    765                 lunudge = .FALSE., lvnudge = .FALSE., lwnudge = .FALSE., &
    766                 masking_method = .FALSE., &
    767                 microphysics_sat_adjust = .FALSE., &
    768                 microphysics_kessler = .FALSE., &
    769                 microphysics_seifert = .FALSE., &
    770                 mg_switch_to_pe0 = .FALSE., &
    771                 monotonic_adjustment = .FALSE.
    772     LOGICAL ::  nest_bound_l = .FALSE. !< nested boundary on left side
    773     LOGICAL ::  nest_bound_n = .FALSE. !< nested boundary on north side
    774     LOGICAL ::  nest_bound_r = .FALSE. !< nested boundary on right side
    775     LOGICAL ::  nest_bound_s = .FALSE. !< nested boundary on south side
    776     LOGICAL ::  nest_domain  = .FALSE. !< domain is nested into a parent domain
    777     LOGICAL ::  neutral = .FALSE., nudging = .FALSE., &
    778                 ocean = .FALSE., on_device = .FALSE., &
    779                 outflow_l = .FALSE., outflow_n = .FALSE., outflow_r = .FALSE., &
    780                 outflow_s = .FALSE., passive_scalar = .FALSE., &
    781                 precipitation = .FALSE., &
    782                 random_heatflux = .FALSE., recycling_yshift = .FALSE.,&
    783                 run_control_header = .FALSE., run_coupled = .TRUE., &
    784                 scalar_rayleigh_damping = .TRUE., sloping_surface = .FALSE., &
    785                 stop_dt = .FALSE., synchronous_exchange = .FALSE., &
    786                 terminate_run = .FALSE., transpose_compute_overlap = .FALSE., &
    787                 turbulent_inflow = .FALSE.
    788     LOGICAL ::  turbulent_outflow = .FALSE. !< flag for turbulent outflow condition
    789     LOGICAL ::  urban_surface = .FALSE.  !< flag for urban surface model
    790     LOGICAL ::  use_cmax = .TRUE., use_initial_profile_as_reference = .FALSE., &
    791                 use_prescribed_profile_data = .FALSE., &
    792                 use_single_reference_value = .FALSE., &
    793                 use_subsidence_tendencies = .FALSE., &
    794                 use_surface_fluxes = .FALSE., use_top_fluxes = .FALSE., &
    795                 use_ug_for_galilei_tr = .TRUE., use_upstream_for_tke = .FALSE.
    796     LOGICAL ::  virtual_flight = .FALSE.  !< flag for virtual flight model
    797     LOGICAL ::  wall_adjustment = .TRUE., ws_scheme_sca = .FALSE., &
    798                 ws_scheme_mom = .FALSE.
    799 
    800     LOGICAL ::  data_output_xy(0:1) = .FALSE., data_output_xz(0:1) = .FALSE., &
    801                 data_output_yz(0:1) = .FALSE.
    802 
    803     REAL(wp) ::  advected_distance_x = 0.0_wp, advected_distance_y = 0.0_wp, &
    804                  alpha_surface = 0.0_wp, atmos_ocean_sign = 1.0_wp, &
    805                  averaging_interval = 0.0_wp, averaging_interval_pr = 9999999.9_wp, &
    806                  bc_pt_t_val, bc_q_t_val, bc_s_t_val, bottom_salinityflux = 0.0_wp, &
    807                  building_height = 50.0_wp, building_length_x = 50.0_wp, &
    808                  building_length_y = 50.0_wp, building_wall_left = 9999999.9_wp, &
    809                  building_wall_south = 9999999.9_wp, canyon_height = 50.0_wp, &
    810                  canyon_width_x = 9999999.9_wp, canyon_width_y = 9999999.9_wp, &
    811                  canyon_wall_left = 9999999.9_wp, canyon_wall_south = 9999999.9_wp, &
    812                  cfl_factor = -1.0_wp, cos_alpha_surface, &
    813                  coupling_start_time = 0.0_wp, disturbance_amplitude = 0.25_wp, &
    814                  disturbance_energy_limit = 0.01_wp, &
    815                  disturbance_level_b = -9999999.9_wp, &
    816                  disturbance_level_t = -9999999.9_wp, &
    817                  dp_level_b = 0.0_wp, &
    818                  dt = -1.0_wp, dt_averaging_input = 0.0_wp, &
    819                  dt_averaging_input_pr = 9999999.9_wp, dt_coupling = 9999999.9_wp, &
    820                  dt_data_output = 9999999.9_wp, &
    821                  dt_data_output_av = 9999999.9_wp, dt_disturb = 9999999.9_wp, &
    822                  dt_dopr = 9999999.9_wp, dt_dopr_listing = 9999999.9_wp, &
    823                  dt_dopts = 9999999.9_wp, dt_dots = 9999999.9_wp, &
    824                  dt_do2d_xy = 9999999.9_wp, dt_do2d_xz = 9999999.9_wp, &
    825                  dt_do2d_yz = 9999999.9_wp, dt_do3d = 9999999.9_wp, dt_dvrp = 9999999.9_wp, &
    826                  dt_max = 20.0_wp, &
    827                  dt_restart = 9999999.9_wp, &
    828                  dt_run_control = 60.0_wp, dt_3d = 1.0_wp, dz = -1.0_wp, &
    829                  dz_max = 9999999.9_wp, dz_stretch_factor = 1.08_wp, &
    830                  dz_stretch_level = 100000.0_wp, e_init = 0.0_wp, e_min = 0.0_wp, &
    831                  end_time = 0.0_wp, &
    832                  f = 0.0_wp, fs = 0.0_wp, g = 9.81_wp, inflow_damping_height = 9999999.9_wp, &
    833                  inflow_damping_width = 9999999.9_wp, kappa = 0.4_wp, km_constant = -1.0_wp,&
    834                  mask_scale_x = 1.0_wp, mask_scale_y = 1.0_wp, mask_scale_z = 1.0_wp, &
    835                  maximum_cpu_time_allowed = 0.0_wp,  &
    836                  molecular_viscosity = 1.461E-5_wp, &
    837                  old_dt = 1.0E-10_wp, omega = 7.29212E-5_wp, omega_sor = 1.8_wp, &
    838                  outflow_source_plane = -9999999.9_wp, & !< x-position of outflow-source plane (turbulent outflow method)
    839                  particle_maximum_age = 9999999.9_wp, &
    840                  phi = 55.0_wp, prandtl_number = 1.0_wp, &
    841                  precipitation_amount_interval = 9999999.9_wp, prho_reference, &
    842                  pt_damping_factor = 0.0_wp, pt_damping_width = 0.0_wp, &
    843                  pt_reference = 9999999.9_wp, pt_slope_offset = 0.0_wp, &
    844                  pt_surface = 300.0_wp, pt_surface_initial_change = 0.0_wp, &
    845                  q_surface = 0.0_wp, q_surface_initial_change = 0.0_wp, &
    846                  rayleigh_damping_factor = -1.0_wp, rayleigh_damping_height = -1.0_wp, &
    847                  recycling_width = 9999999.9_wp, residual_limit = 1.0E-4_wp, &
    848                  restart_time = 9999999.9_wp, rho_reference, rho_surface, &
    849                  roughness_length = 0.1_wp, &
    850                  sa_surface = 35.0_wp, &
    851                  simulated_time = 0.0_wp, simulated_time_at_begin, sin_alpha_surface, &
    852                  skip_time_data_output = 0.0_wp, skip_time_data_output_av = 9999999.9_wp,&
    853                  skip_time_dopr = 9999999.9_wp, &
    854                  skip_time_do2d_xy = 9999999.9_wp, skip_time_do2d_xz = 9999999.9_wp, &
    855                  skip_time_do2d_yz = 9999999.9_wp, skip_time_do3d = 9999999.9_wp, &
    856                  surface_heatflux = 9999999.9_wp, surface_pressure = 1013.25_wp, &
    857                  surface_scalarflux = 9999999.9_wp, surface_waterflux = 9999999.9_wp, &
    858                  s_surface = 0.0_wp, s_surface_initial_change = 0.0_wp, &
    859                  termination_time_needed = -1.0_wp, time_coupling = 0.0_wp, &
    860                  time_disturb = 0.0_wp, time_dopr = 0.0_wp, time_dopr_av = 0.0_wp, &
    861                  time_dopr_listing = 0.0_wp, time_dopts = 0.0_wp, time_dosp = 0.0_wp, &
    862                  time_dosp_av = 0.0_wp, time_dots = 0.0_wp, time_do2d_xy = 0.0_wp, &
    863                  time_do2d_xz = 0.0_wp, time_do2d_yz = 0.0_wp, time_do3d = 0.0_wp, &
    864                  time_do_av = 0.0_wp, time_do_sla = 0.0_wp, time_dvrp = 0.0_wp, &
    865                  time_restart = 9999999.9_wp, time_run_control = 0.0_wp,&
    866                  time_since_reference_point, top_heatflux = 9999999.9_wp, &
    867                  top_momentumflux_u = 9999999.9_wp, &
    868                  top_momentumflux_v = 9999999.9_wp, top_salinityflux = 9999999.9_wp, &
    869                  top_scalarflux = 9999999.9_wp, &
    870                  ug_surface = 0.0_wp, u_bulk = 0.0_wp, u_gtrans = 0.0_wp, &
    871                  vg_surface = 0.0_wp, vpt_reference = 9999999.9_wp, &
    872                  v_bulk = 0.0_wp, v_gtrans = 0.0_wp, wall_adjustment_factor = 1.8_wp, &
    873                  zeta_max = 20.0_wp,    & !< Maximum value of zeta = z/L
    874                  zeta_min = -9990.0_wp, & !< Minimum value of zeta = z/L
    875                  z_max_do2d = -1.0_wp, z0h_factor = 1.0_wp
    876 
    877     REAL(wp) ::  do2d_xy_last_time(0:1) = -1.0_wp, do2d_xz_last_time(0:1) = -1.0_wp, &
    878                  do2d_yz_last_time(0:1) = -1.0_wp, dpdxy(1:2) = 0.0_wp, &
    879                  dt_domask(max_masks) = 9999999.9_wp, &
    880                  mask_scale(3), &
    881                  pt_vertical_gradient(10) = 0.0_wp, &
    882                  pt_vertical_gradient_level(10) = -1.0_wp, &
    883                  q_vertical_gradient(10) = 0.0_wp, &
    884                  q_vertical_gradient_level(10) = -1.0_wp, &
    885                  s_vertical_gradient(10) = 0.0_wp, &
    886                  s_vertical_gradient_level(10) = -1.0_wp, &
    887                  sa_vertical_gradient(10) = 0.0_wp, &
    888                  sa_vertical_gradient_level(10) = -1.0_wp, &
    889                  skip_time_domask(max_masks) = 9999999.9_wp, threshold(20) = 0.0_wp, &
    890                  time_domask(max_masks) = 0.0_wp, &
    891                  tsc(10) = (/ 1.0_wp, 1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp /), &
    892                  u_profile(100) = 9999999.9_wp, uv_heights(100) = 9999999.9_wp, &
    893                  v_profile(100) = 9999999.9_wp, &
    894                  ug_vertical_gradient(10) = 0.0_wp, &
    895                  ug_vertical_gradient_level(10) = -9999999.9_wp, &
    896                  vg_vertical_gradient(10) = 0.0_wp, &
    897                  vg_vertical_gradient_level(10) = -9999999.9_wp, &
    898                  volume_flow(1:3) = 0.0_wp, volume_flow_area(1:3) = 0.0_wp, &
    899                  volume_flow_initial(1:3) = 0.0_wp, wall_heatflux(0:4) = 0.0_wp, &
    900                  wall_humidityflux(0:4) = 0.0_wp, wall_nrflux(0:4) = 0.0_wp, &
    901                  wall_qflux(0:4) = 0.0_wp, wall_qrflux(0:4) = 0.0_wp, &
    902                  wall_salinityflux(0:4) = 0.0_wp, wall_sflux(0:4) = 0.0_wp, wall_scalarflux(0:4) = 0.0_wp, &
    903                  subs_vertical_gradient(10) = 0.0_wp, &
    904                  subs_vertical_gradient_level(10) = -9999999.9_wp
    905 
    906     REAL(wp), DIMENSION(:), ALLOCATABLE ::  dp_smooth_factor
    907 
    908     REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) :: &
    909             mask_x = -1.0_wp, mask_y = -1.0_wp, mask_z = -1.0_wp
    910     REAL(wp), DIMENSION(max_masks,3) ::                  &
    911             mask_x_loop = -1.0_wp, mask_y_loop = -1.0_wp, mask_z_loop = -1.0_wp
     950    CHARACTER (LEN=varnamelength), DIMENSION(200) ::  data_output_pr_user = ' '  !<
    912951   
     952    CHARACTER (LEN=varnamelength), DIMENSION(max_masks,0:1,100) ::  domask = ' ' !<
     953   
     954    CHARACTER (LEN=varnamelength), DIMENSION(0:1,500) ::  do2d = ' '  !<
     955    CHARACTER (LEN=varnamelength), DIMENSION(0:1,500) ::  do3d = ' '  !<
     956
     957    INTEGER(iwp), PARAMETER ::  fl_max = 100     !<
     958    INTEGER(iwp), PARAMETER ::  var_fl_max = 20  !<
     959   
     960    INTEGER(iwp) ::  abort_mode = 1                    !<
     961    INTEGER(iwp) ::  average_count_pr = 0              !<
     962    INTEGER(iwp) ::  average_count_3d = 0              !<
     963    INTEGER(iwp) ::  current_timestep_number = 0       !<
     964    INTEGER(iwp) ::  coupling_topology = 0             !<
     965    INTEGER(iwp) ::  dist_range = 0                    !<
     966    INTEGER(iwp) ::  disturbance_level_ind_b           !<
     967    INTEGER(iwp) ::  disturbance_level_ind_t           !<
     968    INTEGER(iwp) ::  doav_n = 0                        !<
     969    INTEGER(iwp) ::  dopr_n = 0                        !<
     970    INTEGER(iwp) ::  dopr_time_count = 0               !<
     971    INTEGER(iwp) ::  dopts_time_count = 0              !<
     972    INTEGER(iwp) ::  dots_time_count = 0               !<
     973    INTEGER(iwp) ::  do2d_xy_n = 0                     !<
     974    INTEGER(iwp) ::  do2d_xz_n = 0                     !<
     975    INTEGER(iwp) ::  do2d_yz_n = 0                     !<
     976    INTEGER(iwp) ::  do3d_avs_n = 0                    !<
     977    INTEGER(iwp) ::  dp_level_ind_b = 0                !<
     978    INTEGER(iwp) ::  dvrp_filecount = 0                !<
     979    INTEGER(iwp) ::  dz_stretch_level_index            !<
     980    INTEGER(iwp) ::  ensemble_member_nr = 0            !<
     981    INTEGER(iwp) ::  gamma_mg                          !<
     982    INTEGER(iwp) ::  gathered_size                     !<
     983    INTEGER(iwp) ::  grid_level                        !<
     984    INTEGER(iwp) ::  ibc_e_b                           !<
     985    INTEGER(iwp) ::  ibc_p_b                           !<
     986    INTEGER(iwp) ::  ibc_p_t                           !<
     987    INTEGER(iwp) ::  ibc_pt_b                          !<
     988    INTEGER(iwp) ::  ibc_pt_t                          !<
     989    INTEGER(iwp) ::  ibc_q_b                           !<
     990    INTEGER(iwp) ::  ibc_q_t                           !<
     991    INTEGER(iwp) ::  ibc_s_b                           !<
     992    INTEGER(iwp) ::  ibc_s_t                           !<
     993    INTEGER(iwp) ::  ibc_sa_t                          !<
     994    INTEGER(iwp) ::  ibc_uv_b                          !<
     995    INTEGER(iwp) ::  ibc_uv_t                          !<
     996    INTEGER(iwp) ::  inflow_disturbance_begin = -1     !<
     997    INTEGER(iwp) ::  inflow_disturbance_end = -1       !<
     998    INTEGER(iwp) ::  intermediate_timestep_count       !<
     999    INTEGER(iwp) ::  intermediate_timestep_count_max   !<
     1000    INTEGER(iwp) ::  io_group = 0                      !<
     1001    INTEGER(iwp) ::  io_blocks = 1                     !<
     1002    INTEGER(iwp) ::  iran = -1234567                   !<
     1003    INTEGER(iwp) ::  masks = 0                         !<
     1004    INTEGER(iwp) ::  maximum_grid_level                !<
     1005    INTEGER(iwp) ::  maximum_parallel_io_streams = -1  !<
     1006    INTEGER(iwp) ::  max_pr_user = 0                   !<
     1007    INTEGER(iwp) ::  mgcycles = 0                      !<
     1008    INTEGER(iwp) ::  mg_cycles = -1                    !<
     1009    INTEGER(iwp) ::  mg_switch_to_pe0_level = -1       !<
     1010    INTEGER(iwp) ::  mid                               !<
     1011    INTEGER(iwp) ::  nlsf = 1000                       !<
     1012    INTEGER(iwp) ::  ntnudge = 1000                    !<
     1013    INTEGER(iwp) ::  ngsrb = 2                         !<
     1014    INTEGER(iwp) ::  nr_timesteps_this_run = 0         !<
     1015    INTEGER(iwp) ::  nsor = 20                         !<
     1016    INTEGER(iwp) ::  nsor_ini = 100                    !<
     1017    INTEGER(iwp) ::  n_sor                             !<
     1018    INTEGER(iwp) ::  normalizing_region = 0            !<
     1019    INTEGER(iwp) ::  num_leg=0                         !<
     1020    INTEGER(iwp) ::  num_var_fl                        !<
     1021    INTEGER(iwp) ::  num_var_fl_user=0                 !<
     1022    INTEGER(iwp) ::  nz_do3d = -9999                   !<
     1023    INTEGER(iwp) ::  prt_time_count = 0                !<
     1024    INTEGER(iwp) ::  recycling_plane                   !<
     1025    INTEGER(iwp) ::  runnr = 0                         !<
     1026    INTEGER(iwp) ::  skip_do_avs = 0                   !<
     1027    INTEGER(iwp) ::  subdomain_size                    !<
     1028    INTEGER(iwp) ::  terminate_coupled = 0             !<
     1029    INTEGER(iwp) ::  terminate_coupled_remote = 0      !<
     1030    INTEGER(iwp) ::  timestep_count = 0                !<
     1031
     1032    INTEGER(iwp) ::  dist_nxl(0:1)                               !<
     1033    INTEGER(iwp) ::  dist_nxr(0:1)                               !<
     1034    INTEGER(iwp) ::  dist_nyn(0:1)                               !<
     1035    INTEGER(iwp) ::  dist_nys(0:1)                               !<
     1036    INTEGER(iwp) ::  do2d_no(0:1) = 0                            !<
     1037    INTEGER(iwp) ::  do2d_xy_time_count(0:1)                     !<
     1038    INTEGER(iwp) ::  do2d_xz_time_count(0:1)                     !<
     1039    INTEGER(iwp) ::  do2d_yz_time_count(0:1)                     !<
     1040    INTEGER(iwp) ::  do3d_no(0:1) = 0                            !<
     1041    INTEGER(iwp) ::  do3d_time_count(0:1)                        !<
     1042    INTEGER(iwp) ::  domask_no(max_masks,0:1) = 0                !<
     1043    INTEGER(iwp) ::  domask_time_count(max_masks,0:1)            !<
     1044    INTEGER(iwp) ::  mask_size(max_masks,3) = -1                 !<
     1045    INTEGER(iwp) ::  mask_size_l(max_masks,3) = -1               !<
     1046    INTEGER(iwp) ::  mask_start_l(max_masks,3) = -1              !<
     1047    INTEGER(iwp) ::  pt_vertical_gradient_level_ind(10) = -9999  !<
     1048    INTEGER(iwp) ::  q_vertical_gradient_level_ind(10) = -9999   !<
     1049    INTEGER(iwp) ::  s_vertical_gradient_level_ind(10) = -9999   !<               
     1050    INTEGER(iwp) ::  sa_vertical_gradient_level_ind(10) = -9999  !<
     1051    INTEGER(iwp) ::  section(100,3)                              !<
     1052    INTEGER(iwp) ::  section_xy(100) = -9999                     !<
     1053    INTEGER(iwp) ::  section_xz(100) = -9999                     !<
     1054    INTEGER(iwp) ::  section_yz(100) = -9999                     !<
     1055    INTEGER(iwp) ::  ug_vertical_gradient_level_ind(10) = -9999  !<
     1056    INTEGER(iwp) ::  vg_vertical_gradient_level_ind(10) = -9999  !<
     1057    INTEGER(iwp) ::  subs_vertical_gradient_level_i(10) = -9999  !<
     1058
     1059
     1060    INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_xy  !<
     1061    INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_xz  !<
     1062    INTEGER(iwp), DIMENSION(0:1) ::  ntdim_2d_yz  !<
     1063    INTEGER(iwp), DIMENSION(0:1) ::  ntdim_3d     !<
     1064
     1065    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  grid_level_count  !<
     1066
     1067    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_i         !<
     1068    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_j         !<
     1069    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_k         !<
     1070    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_i_global  !<   
     1071    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_j_global  !<
     1072    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mask_k_global  !<
     1073
     1074    LOGICAL ::  bc_lr_cyc =.TRUE.                            !<
     1075    LOGICAL ::  bc_lr_dirrad = .FALSE.                       !<
     1076    LOGICAL ::  bc_lr_raddir = .FALSE.                       !<
     1077    LOGICAL ::  bc_ns_cyc = .TRUE.                           !<
     1078    LOGICAL ::  bc_ns_dirrad = .FALSE.                       !<
     1079    LOGICAL ::  bc_ns_raddir = .FALSE.                       !<
     1080    LOGICAL ::  call_microphysics_at_all_substeps = .FALSE.  !<
     1081    LOGICAL ::  call_psolver_at_all_substeps = .TRUE.        !<
     1082    LOGICAL ::  cloud_droplets = .FALSE.                     !<
     1083    LOGICAL ::  cloud_physics = .FALSE.                      !<
     1084    LOGICAL ::  cloud_top_radiation = .FALSE.                !<
     1085    LOGICAL ::  conserve_volume_flow = .FALSE.               !<
     1086    LOGICAL ::  constant_diffusion = .FALSE.                 !<
     1087    LOGICAL ::  constant_flux_layer = .TRUE.                 !<
     1088    LOGICAL ::  constant_heatflux = .TRUE.                   !< 
     1089    LOGICAL ::  constant_top_heatflux = .TRUE.               !<
     1090    LOGICAL ::  constant_top_momentumflux = .FALSE.          !<
     1091    LOGICAL ::  constant_top_salinityflux = .TRUE.           !<
     1092    LOGICAL ::  constant_top_scalarflux = .TRUE.             !<
     1093    LOGICAL ::  constant_scalarflux = .TRUE.                 !<
     1094    LOGICAL ::  constant_waterflux = .TRUE.                  !<
     1095    LOGICAL ::  create_disturbances = .TRUE.                 !<
     1096    LOGICAL ::  data_output_2d_on_each_pe = .TRUE.           !<
     1097    LOGICAL ::  dissipation_control = .FALSE.                !<
     1098    LOGICAL ::  disturbance_created = .FALSE.                !<
     1099    LOGICAL ::  do2d_at_begin = .FALSE.                      !<
     1100    LOGICAL ::  do3d_at_begin = .FALSE.                      !<
     1101    LOGICAL ::  do_sum = .FALSE.                             !<
     1102    LOGICAL ::  dp_external = .FALSE.                        !<
     1103    LOGICAL ::  dp_smooth = .FALSE.                          !<
     1104    LOGICAL ::  dt_fixed = .FALSE.                           !<
     1105    LOGICAL ::  dt_3d_reached                                !<
     1106    LOGICAL ::  dt_3d_reached_l                              !<
     1107    LOGICAL ::  exchange_mg = .FALSE.                        !<
     1108    LOGICAL ::  first_call_lpm = .TRUE.                      !<
     1109    LOGICAL ::  force_print_header = .FALSE.                 !<
     1110    LOGICAL ::  galilei_transformation = .FALSE.             !<
     1111    LOGICAL ::  humidity = .FALSE.                           !<
     1112    LOGICAL ::  humidity_remote = .FALSE.                    !<
     1113    LOGICAL ::  inflow_l = .FALSE.                           !<
     1114    LOGICAL ::  inflow_n = .FALSE.                           !<
     1115    LOGICAL ::  inflow_r = .FALSE.                           !<
     1116    LOGICAL ::  inflow_s = .FALSE.                           !<
     1117    LOGICAL ::  large_scale_forcing = .FALSE.                !<
     1118    LOGICAL ::  large_scale_subsidence = .FALSE.             !<
     1119    LOGICAL ::  lsf_exception = .FALSE.                      !< temporary flag for use of lsf with buildings on flat terrain
     1120    LOGICAL ::  lsf_surf = .TRUE.                            !<
     1121    LOGICAL ::  lsf_vert = .TRUE.                            !<
     1122    LOGICAL ::  lptnudge = .FALSE.                           !<
     1123    LOGICAL ::  lqnudge = .FALSE.                            !<
     1124    LOGICAL ::  lunudge = .FALSE.                            !<
     1125    LOGICAL ::  lvnudge = .FALSE.                            !<
     1126    LOGICAL ::  lwnudge = .FALSE.                            !<
     1127    LOGICAL ::  masking_method = .FALSE.                     !<
     1128    LOGICAL ::  microphysics_sat_adjust = .FALSE.            !<
     1129    LOGICAL ::  microphysics_kessler = .FALSE.               !<
     1130    LOGICAL ::  microphysics_seifert = .FALSE.               !<
     1131    LOGICAL ::  mg_switch_to_pe0 = .FALSE.                   !<
     1132    LOGICAL ::  monotonic_adjustment = .FALSE.               !<
     1133    LOGICAL ::  nest_bound_l = .FALSE.                       !< nested boundary on left side
     1134    LOGICAL ::  nest_bound_n = .FALSE.                       !< nested boundary on north side
     1135    LOGICAL ::  nest_bound_r = .FALSE.                       !< nested boundary on right side
     1136    LOGICAL ::  nest_bound_s = .FALSE.                       !< nested boundary on south side
     1137    LOGICAL ::  nest_domain  = .FALSE.                       !< domain is nested into a parent domain
     1138    LOGICAL ::  neutral = .FALSE.                            !<
     1139    LOGICAL ::  nudging = .FALSE.                            !<
     1140    LOGICAL ::  ocean = .FALSE.                              !<
     1141    LOGICAL ::  on_device = .FALSE.                          !<
     1142    LOGICAL ::  outflow_l = .FALSE.                          !<
     1143    LOGICAL ::  outflow_n = .FALSE.                          !<
     1144    LOGICAL ::  outflow_r = .FALSE.                          !<
     1145    LOGICAL ::  outflow_s = .FALSE.                          !<
     1146    LOGICAL ::  passive_scalar = .FALSE.                     !<
     1147    LOGICAL ::  precipitation = .FALSE.                      !<
     1148    LOGICAL ::  random_heatflux = .FALSE.                    !<
     1149    LOGICAL ::  recycling_yshift = .FALSE.                   !<
     1150    LOGICAL ::  run_control_header = .FALSE.                 !<
     1151    LOGICAL ::  run_coupled = .TRUE.                         !<
     1152    LOGICAL ::  scalar_rayleigh_damping = .TRUE.             !<
     1153    LOGICAL ::  sloping_surface = .FALSE.                    !<
     1154    LOGICAL ::  stop_dt = .FALSE.                            !<
     1155    LOGICAL ::  synchronous_exchange = .FALSE.               !<
     1156    LOGICAL ::  terminate_run = .FALSE.                      !<
     1157    LOGICAL ::  transpose_compute_overlap = .FALSE.          !<
     1158    LOGICAL ::  turbulent_inflow = .FALSE.                   !<
     1159    LOGICAL ::  turbulent_outflow = .FALSE.                  !< flag for turbulent outflow condition
     1160    LOGICAL ::  urban_surface = .FALSE.                      !< flag for urban surface model
     1161    LOGICAL ::  use_cmax = .TRUE.                            !<
     1162    LOGICAL ::  use_initial_profile_as_reference = .FALSE.   !<
     1163    LOGICAL ::  use_prescribed_profile_data = .FALSE.        !<
     1164    LOGICAL ::  use_single_reference_value = .FALSE.         !<
     1165    LOGICAL ::  use_subsidence_tendencies = .FALSE.          !<
     1166    LOGICAL ::  use_surface_fluxes = .FALSE.                 !<
     1167    LOGICAL ::  use_top_fluxes = .FALSE.                     !<
     1168    LOGICAL ::  use_ug_for_galilei_tr = .TRUE.               !<
     1169    LOGICAL ::  use_upstream_for_tke = .FALSE.               !<
     1170    LOGICAL ::  virtual_flight = .FALSE.                     !< flag for virtual flight model
     1171    LOGICAL ::  wall_adjustment = .TRUE.                     !<
     1172    LOGICAL ::  ws_scheme_sca = .FALSE.                      !<
     1173    LOGICAL ::  ws_scheme_mom = .FALSE.                      !<
     1174
     1175    LOGICAL ::  data_output_xy(0:1) = .FALSE.                !<
     1176    LOGICAL ::  data_output_xz(0:1) = .FALSE.                !<
     1177    LOGICAL ::  data_output_yz(0:1) = .FALSE.                !<
     1178
     1179    REAL(wp) ::  advected_distance_x = 0.0_wp                  !<
     1180    REAL(wp) ::  advected_distance_y = 0.0_wp                  !<
     1181    REAL(wp) ::  alpha_surface = 0.0_wp                        !<
     1182    REAL(wp) ::  atmos_ocean_sign = 1.0_wp                     !<
     1183    REAL(wp) ::  averaging_interval = 0.0_wp                   !<
     1184    REAL(wp) ::  averaging_interval_pr = 9999999.9_wp          !<
     1185    REAL(wp) ::  bc_pt_t_val                                   !<
     1186    REAL(wp) ::  bc_q_t_val                                    !<
     1187    REAL(wp) ::  bc_s_t_val                                    !<
     1188    REAL(wp) ::  bottom_salinityflux = 0.0_wp                  !<
     1189    REAL(wp) ::  building_height = 50.0_wp                     !<
     1190    REAL(wp) ::  building_length_x = 50.0_wp                   !<
     1191    REAL(wp) ::  building_length_y = 50.0_wp                   !<
     1192    REAL(wp) ::  building_wall_left = 9999999.9_wp             !<
     1193    REAL(wp) ::  building_wall_south = 9999999.9_wp            !<
     1194    REAL(wp) ::  canyon_height = 50.0_wp                       !<
     1195    REAL(wp) ::  canyon_width_x = 9999999.9_wp                 !<
     1196    REAL(wp) ::  canyon_width_y = 9999999.9_wp                 !<
     1197    REAL(wp) ::  canyon_wall_left = 9999999.9_wp               !<
     1198    REAL(wp) ::  canyon_wall_south = 9999999.9_wp              !<
     1199    REAL(wp) ::  cfl_factor = -1.0_wp                          !<
     1200    REAL(wp) ::  cos_alpha_surface                             !<
     1201    REAL(wp) ::  coupling_start_time = 0.0_wp                  !<
     1202    REAL(wp) ::  disturbance_amplitude = 0.25_wp               !<
     1203    REAL(wp) ::  disturbance_energy_limit = 0.01_wp            !<
     1204    REAL(wp) ::  disturbance_level_b = -9999999.9_wp           !<
     1205    REAL(wp) ::  disturbance_level_t = -9999999.9_wp           !<
     1206    REAL(wp) ::  dp_level_b = 0.0_wp                           !<
     1207    REAL(wp) ::  dt = -1.0_wp                                  !<
     1208    REAL(wp) ::  dt_averaging_input = 0.0_wp                   !<
     1209    REAL(wp) ::  dt_averaging_input_pr = 9999999.9_wp          !<
     1210    REAL(wp) ::  dt_coupling = 9999999.9_wp                    !<
     1211    REAL(wp) ::  dt_data_output = 9999999.9_wp                 !<
     1212    REAL(wp) ::  dt_data_output_av = 9999999.9_wp              !<
     1213    REAL(wp) ::  dt_disturb = 9999999.9_wp                     !<
     1214    REAL(wp) ::  dt_dopr = 9999999.9_wp                        !<
     1215    REAL(wp) ::  dt_dopr_listing = 9999999.9_wp                !<
     1216    REAL(wp) ::  dt_dopts = 9999999.9_wp                       !<
     1217    REAL(wp) ::  dt_dots = 9999999.9_wp                        !<
     1218    REAL(wp) ::  dt_do2d_xy = 9999999.9_wp                     !<
     1219    REAL(wp) ::  dt_do2d_xz = 9999999.9_wp                     !<
     1220    REAL(wp) ::  dt_do2d_yz = 9999999.9_wp                     !<
     1221    REAL(wp) ::  dt_do3d = 9999999.9_wp                        !<
     1222    REAL(wp) ::  dt_dvrp = 9999999.9_wp                        !<
     1223    REAL(wp) ::  dt_max = 20.0_wp                              !<
     1224    REAL(wp) ::  dt_restart = 9999999.9_wp                     !<
     1225    REAL(wp) ::  dt_run_control = 60.0_wp                      !<
     1226    REAL(wp) ::  dt_3d = 1.0_wp                                !<
     1227    REAL(wp) ::  dz = -1.0_wp                                  !<
     1228    REAL(wp) ::  dz_max = 9999999.9_wp                         !<
     1229    REAL(wp) ::  dz_stretch_factor = 1.08_wp                   !<
     1230    REAL(wp) ::  dz_stretch_level = 100000.0_wp                !<
     1231    REAL(wp) ::  e_init = 0.0_wp                               !<
     1232    REAL(wp) ::  e_min = 0.0_wp                                !<
     1233    REAL(wp) ::  end_time = 0.0_wp                             !<
     1234    REAL(wp) ::  f = 0.0_wp                                    !<
     1235    REAL(wp) ::  fs = 0.0_wp                                   !<
     1236    REAL(wp) ::  g = 9.81_wp                                   !<
     1237    REAL(wp) ::  inflow_damping_height = 9999999.9_wp          !<
     1238    REAL(wp) ::  inflow_damping_width = 9999999.9_wp           !<
     1239    REAL(wp) ::  kappa = 0.4_wp                                !<
     1240    REAL(wp) ::  km_constant = -1.0_wp                         !<
     1241    REAL(wp) ::  mask_scale_x = 1.0_wp                         !<
     1242    REAL(wp) ::  mask_scale_y = 1.0_wp                         !<
     1243    REAL(wp) ::  mask_scale_z = 1.0_wp                         !<
     1244    REAL(wp) ::  maximum_cpu_time_allowed = 0.0_wp             !<
     1245    REAL(wp) ::  molecular_viscosity = 1.461E-5_wp             !<
     1246    REAL(wp) ::  old_dt = 1.0E-10_wp                           !<
     1247    REAL(wp) ::  omega = 7.29212E-5_wp                         !<
     1248    REAL(wp) ::  omega_sor = 1.8_wp                            !<
     1249    REAL(wp) ::  outflow_source_plane = -9999999.9_wp          !< x-position of outflow-source plane (turbulent outflow method)
     1250    REAL(wp) ::  particle_maximum_age = 9999999.9_wp           !<
     1251    REAL(wp) ::  phi = 55.0_wp                                 !<
     1252    REAL(wp) ::  prandtl_number = 1.0_wp                       !<
     1253    REAL(wp) ::  precipitation_amount_interval = 9999999.9_wp  !<
     1254    REAL(wp) ::  prho_reference                                !<
     1255    REAL(wp) ::  pt_damping_factor = 0.0_wp                    !<
     1256    REAL(wp) ::  pt_damping_width = 0.0_wp                     !<
     1257    REAL(wp) ::  pt_reference = 9999999.9_wp                   !<
     1258    REAL(wp) ::  pt_slope_offset = 0.0_wp                      !<
     1259    REAL(wp) ::  pt_surface = 300.0_wp                         !<
     1260    REAL(wp) ::  pt_surface_initial_change = 0.0_wp            !<
     1261    REAL(wp) ::  q_surface = 0.0_wp                            !<
     1262    REAL(wp) ::  q_surface_initial_change = 0.0_wp             !<
     1263    REAL(wp) ::  rayleigh_damping_factor = -1.0_wp             !<
     1264    REAL(wp) ::  rayleigh_damping_height = -1.0_wp             !<
     1265    REAL(wp) ::  recycling_width = 9999999.9_wp                !<
     1266    REAL(wp) ::  residual_limit = 1.0E-4_wp                    !<
     1267    REAL(wp) ::  restart_time = 9999999.9_wp                   !<
     1268    REAL(wp) ::  rho_reference                                 !<
     1269    REAL(wp) ::  rho_surface                                   !<
     1270    REAL(wp) ::  roughness_length = 0.1_wp                     !<
     1271    REAL(wp) ::  sa_surface = 35.0_wp                          !<
     1272    REAL(wp) ::  simulated_time = 0.0_wp                       !<
     1273    REAL(wp) ::  simulated_time_at_begin                       !<
     1274    REAL(wp) ::  sin_alpha_surface                             !<
     1275    REAL(wp) ::  skip_time_data_output = 0.0_wp                !<
     1276    REAL(wp) ::  skip_time_data_output_av = 9999999.9_wp       !<
     1277    REAL(wp) ::  skip_time_dopr = 9999999.9_wp                 !<
     1278    REAL(wp) ::  skip_time_do2d_xy = 9999999.9_wp              !<
     1279    REAL(wp) ::  skip_time_do2d_xz = 9999999.9_wp              !<
     1280    REAL(wp) ::  skip_time_do2d_yz = 9999999.9_wp              !<
     1281    REAL(wp) ::  skip_time_do3d = 9999999.9_wp                 !<
     1282    REAL(wp) ::  surface_heatflux = 9999999.9_wp               !<
     1283    REAL(wp) ::  surface_pressure = 1013.25_wp                 !<
     1284    REAL(wp) ::  surface_scalarflux = 9999999.9_wp             !<
     1285    REAL(wp) ::  surface_waterflux = 9999999.9_wp              !<
     1286    REAL(wp) ::  s_surface = 0.0_wp                            !<
     1287    REAL(wp) ::  s_surface_initial_change = 0.0_wp             !<
     1288    REAL(wp) ::  termination_time_needed = -1.0_wp             !<
     1289    REAL(wp) ::  time_coupling = 0.0_wp                        !<
     1290    REAL(wp) ::  time_disturb = 0.0_wp                         !<
     1291    REAL(wp) ::  time_dopr = 0.0_wp                            !<
     1292    REAL(wp) ::  time_dopr_av = 0.0_wp                         !<
     1293    REAL(wp) ::  time_dopr_listing = 0.0_wp                    !<
     1294    REAL(wp) ::  time_dopts = 0.0_wp                           !<
     1295    REAL(wp) ::  time_dosp = 0.0_wp                            !<
     1296    REAL(wp) ::  time_dosp_av = 0.0_wp                         !<
     1297    REAL(wp) ::  time_dots = 0.0_wp                            !<
     1298    REAL(wp) ::  time_do2d_xy = 0.0_wp                         !<
     1299    REAL(wp) ::  time_do2d_xz = 0.0_wp                         !<
     1300    REAL(wp) ::  time_do2d_yz = 0.0_wp                         !<
     1301    REAL(wp) ::  time_do3d = 0.0_wp                            !<
     1302    REAL(wp) ::  time_do_av = 0.0_wp                           !<
     1303    REAL(wp) ::  time_do_sla = 0.0_wp                          !<
     1304    REAL(wp) ::  time_dvrp = 0.0_wp                            !<
     1305    REAL(wp) ::  time_restart = 9999999.9_wp                   !<
     1306    REAL(wp) ::  time_run_control = 0.0_wp                     !<
     1307    REAL(wp) ::  time_since_reference_point                    !<
     1308    REAL(wp) ::  top_heatflux = 9999999.9_wp                   !<
     1309    REAL(wp) ::  top_momentumflux_u = 9999999.9_wp             !<
     1310    REAL(wp) ::  top_momentumflux_v = 9999999.9_wp             !<
     1311    REAL(wp) ::  top_salinityflux = 9999999.9_wp               !<
     1312    REAL(wp) ::  top_scalarflux = 9999999.9_wp                 !<
     1313    REAL(wp) ::  ug_surface = 0.0_wp                           !<
     1314    REAL(wp) ::  u_bulk = 0.0_wp                               !<
     1315    REAL(wp) ::  u_gtrans = 0.0_wp                             !<
     1316    REAL(wp) ::  vg_surface = 0.0_wp                           !<
     1317    REAL(wp) ::  vpt_reference = 9999999.9_wp                  !<
     1318    REAL(wp) ::  v_bulk = 0.0_wp                               !<
     1319    REAL(wp) ::  v_gtrans = 0.0_wp                             !<
     1320    REAL(wp) ::  wall_adjustment_factor = 1.8_wp               !<
     1321    REAL(wp) ::  zeta_max = 20.0_wp                            !< Maximum value of zeta = z/L
     1322    REAL(wp) ::  zeta_min = -9990.0_wp                         !< Minimum value of zeta = z/L
     1323    REAL(wp) ::  z_max_do2d = -1.0_wp                          !<
     1324    REAL(wp) ::  z0h_factor = 1.0_wp                           !<
     1325
     1326    REAL(wp) ::  do2d_xy_last_time(0:1) = -1.0_wp                  !<
     1327    REAL(wp) ::  do2d_xz_last_time(0:1) = -1.0_wp                  !<
     1328    REAL(wp) ::  do2d_yz_last_time(0:1) = -1.0_wp                  !<
     1329    REAL(wp) ::  dpdxy(1:2) = 0.0_wp                               !<
     1330    REAL(wp) ::  dt_domask(max_masks) = 9999999.9_wp               !<
     1331    REAL(wp) ::  mask_scale(3)                                     !<
     1332    REAL(wp) ::  pt_vertical_gradient(10) = 0.0_wp                 !<
     1333    REAL(wp) ::  pt_vertical_gradient_level(10) = -1.0_wp          !<
     1334    REAL(wp) ::  q_vertical_gradient(10) = 0.0_wp                  !<
     1335    REAL(wp) ::  q_vertical_gradient_level(10) = -1.0_wp           !<
     1336    REAL(wp) ::  s_vertical_gradient(10) = 0.0_wp                  !<
     1337    REAL(wp) ::  s_vertical_gradient_level(10) = -1.0_wp           !<
     1338    REAL(wp) ::  sa_vertical_gradient(10) = 0.0_wp                 !<
     1339    REAL(wp) ::  sa_vertical_gradient_level(10) = -1.0_wp          !<
     1340    REAL(wp) ::  skip_time_domask(max_masks) = 9999999.9_wp        !<
     1341    REAL(wp) ::  threshold(20) = 0.0_wp                            !<
     1342    REAL(wp) ::  time_domask(max_masks) = 0.0_wp                   !<
     1343    REAL(wp) ::  tsc(10) = (/ 1.0_wp, 1.0_wp, 0.0_wp, 0.0_wp, &    !<
     1344                 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 0.0_wp /)
     1345    REAL(wp) ::  u_profile(100) = 9999999.9_wp                     !<
     1346    REAL(wp) ::  uv_heights(100) = 9999999.9_wp                    !<
     1347    REAL(wp) ::  v_profile(100) = 9999999.9_wp                     !<
     1348    REAL(wp) ::  ug_vertical_gradient(10) = 0.0_wp                 !<
     1349    REAL(wp) ::  ug_vertical_gradient_level(10) = -9999999.9_wp    !<
     1350    REAL(wp) ::  vg_vertical_gradient(10) = 0.0_wp                 !<
     1351    REAL(wp) ::  vg_vertical_gradient_level(10) = -9999999.9_wp    !<
     1352    REAL(wp) ::  volume_flow(1:3) = 0.0_wp                         !<
     1353    REAL(wp) ::  volume_flow_area(1:3) = 0.0_wp                    !<
     1354    REAL(wp) ::  volume_flow_initial(1:3) = 0.0_wp                 !<
     1355    REAL(wp) ::  wall_heatflux(0:4) = 0.0_wp                       !<
     1356    REAL(wp) ::  wall_humidityflux(0:4) = 0.0_wp                   !<
     1357    REAL(wp) ::  wall_nrflux(0:4) = 0.0_wp                         !<
     1358    REAL(wp) ::  wall_qflux(0:4) = 0.0_wp                          !<
     1359    REAL(wp) ::  wall_qrflux(0:4) = 0.0_wp                         !<
     1360    REAL(wp) ::  wall_salinityflux(0:4) = 0.0_wp                   !<
     1361    REAL(wp) ::  wall_sflux(0:4) = 0.0_wp                          !<
     1362    REAL(wp) ::  wall_scalarflux(0:4) = 0.0_wp                     !<
     1363    REAL(wp) ::  subs_vertical_gradient(10) = 0.0_wp               !<
     1364    REAL(wp) ::  subs_vertical_gradient_level(10) = -9999999.9_wp  !<
     1365
     1366    REAL(wp), DIMENSION(:), ALLOCATABLE ::  dp_smooth_factor  !<
     1367
     1368    REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_x = -1.0_wp  !<
     1369    REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_y = -1.0_wp  !<
     1370    REAL(wp), DIMENSION(max_masks,mask_xyz_dimension) ::  mask_z = -1.0_wp  !<
     1371   
     1372    REAL(wp), DIMENSION(max_masks,3) ::  mask_x_loop = -1.0_wp  !<
     1373    REAL(wp), DIMENSION(max_masks,3) ::  mask_y_loop = -1.0_wp  !<
     1374    REAL(wp), DIMENSION(max_masks,3) ::  mask_z_loop = -1.0_wp  !<
     1375   
    9131376!
    9141377!--    internal mask arrays ("mask,dimension,selection")
    915        REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  mask, mask_loop
     1378       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  mask       !<
     1379       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  mask_loop  !<
    9161380
    9171381    SAVE
     
    9271391 MODULE dvrp_variables
    9281392
    929      USE kinds
    930 
    931     CHARACTER (LEN=10) ::  dvrp_output = 'rtsp', particle_color = 'none', &
    932                            particle_dvrpsize = 'none'
    933 
    934     CHARACTER (LEN=20), DIMENSION(10) ::  mode_dvrp = &
     1393    USE kinds
     1394
     1395    CHARACTER (LEN=10) ::  dvrp_output = 'rtsp'        !<
     1396    CHARACTER (LEN=10) ::  particle_color = 'none'     !<
     1397    CHARACTER (LEN=10) ::  particle_dvrpsize = 'none'  !<
     1398
     1399    CHARACTER (LEN=20), DIMENSION(10) ::  mode_dvrp = &  !<
    9351400                                     (/ ( '                    ', i9 = 1,10 ) /)
    9361401
    937     CHARACTER (LEN=80) ::  dvrp_directory = 'default',                    &
    938                            dvrp_file      = 'default',                    &
    939                            dvrp_host      = 'origin.rvs.uni-hannover.de', &
    940                            dvrp_password  = '********',                   &
    941                            dvrp_username  = ' '
    942 
    943     INTEGER(iwp) ::  cluster_size = 1, dvrp_colortable_entries = 4,                 &
    944                      dvrp_colortable_entries_prt = 22, islice_dvrp,                 &
    945                      nx_dvrp, nxl_dvrp, nxr_dvrp, ny_dvrp, nyn_dvrp, nys_dvrp,      &
    946                      nz_dvrp, pathlines_fadeintime = 5, pathlines_fadeouttime = 5,  &
    947                      pathlines_linecount = 1000, pathlines_maxhistory = 40,         &
    948                      pathlines_wavecount = 10, pathlines_wavetime = 50,             &
    949                      vc_gradient_normals = 0, vc_mode = 0, vc_size_x = 2,           &
    950                      vc_size_y = 2, vc_size_z = 2
    951 
    952     INTEGER(iwp), DIMENSION(10) ::  slicer_position_dvrp
    953 
    954     LOGICAL ::  cyclic_dvrp = .FALSE., dvrp_overlap, dvrp_total_overlap, &
    955                 local_dvrserver_running, lock_steering_update = .FALSE., &
    956                 use_seperate_pe_for_dvrp_output = .FALSE.
    957 
    958     REAL(wp)    ::  clip_dvrp_l = 9999999.9_wp, clip_dvrp_n = 9999999.9_wp, &
    959                     clip_dvrp_r = 9999999.9_wp, clip_dvrp_s = 9999999.9_wp, &
    960                     superelevation = 1.0_wp, superelevation_x = 1.0_wp,     &
    961                     superelevation_y = 1.0_wp, vc_alpha = 38.0_wp
    962 
    963     REAL(wp), DIMENSION(2) ::  color_interval = (/ 0.0_wp, 1.0_wp /), &
    964                                dvrpsize_interval = (/ 0.0_wp, 1.0_wp /)
    965 
    966     REAL(wp), DIMENSION(3) ::  groundplate_color = (/ 0.0_wp, 0.6_wp, 0.0_wp /), &
    967                                topography_color = (/ 0.8_wp, 0.7_wp, 0.6_wp /)
    968 
    969     REAL(wp), DIMENSION(2,10)     ::  slicer_range_limits_dvrp
    970 
    971     REAL(wp), DIMENSION(3,10)     ::  isosurface_color
    972 
    973     REAL(sp), DIMENSION(2,100) ::  interval_values_dvrp,                       &
    974                                    interval_values_dvrp_prt, interval_h_dvrp,  &
    975                                    interval_h_dvrp_prt, interval_l_dvrp = 0.5_sp, &
    976                                    interval_l_dvrp_prt = 0.5_sp, interval_s_dvrp = 1.0_sp, &
    977                                    interval_s_dvrp_prt = 1.0_sp, interval_a_dvrp = 0.0_sp, &
    978                                    interval_a_dvrp_prt = 0.0_sp
    979 
    980     DATA  slicer_range_limits_dvrp / -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
     1402    CHARACTER (LEN=80) ::  dvrp_directory = 'default'                     !<
     1403    CHARACTER (LEN=80) ::  dvrp_file      = 'default'                     !<
     1404    CHARACTER (LEN=80) ::  dvrp_host      = 'origin.rvs.uni-hannover.de'  !<
     1405    CHARACTER (LEN=80) ::  dvrp_password  = '********'                    !<
     1406    CHARACTER (LEN=80) ::  dvrp_username  = ' '                           !<
     1407
     1408    INTEGER(iwp) ::  cluster_size = 1                   !<
     1409    INTEGER(iwp) ::  dvrp_colortable_entries = 4        !<
     1410    INTEGER(iwp) ::  dvrp_colortable_entries_prt = 22   !<
     1411    INTEGER(iwp) ::  islice_dvrp                        !<
     1412    INTEGER(iwp) ::  nx_dvrp                            !<
     1413    INTEGER(iwp) ::  nxl_dvrp                           !<
     1414    INTEGER(iwp) ::  nxr_dvrp                           !<
     1415    INTEGER(iwp) ::  ny_dvrp                            !<
     1416    INTEGER(iwp) ::  nyn_dvrp                           !<
     1417    INTEGER(iwp) ::  nys_dvrp                           !<
     1418    INTEGER(iwp) ::  nz_dvrp, pathlines_fadeintime = 5  !<
     1419    INTEGER(iwp) ::  pathlines_fadeouttime = 5          !<
     1420    INTEGER(iwp) ::  pathlines_linecount = 1000         !<
     1421    INTEGER(iwp) ::  pathlines_maxhistory = 40          !<
     1422    INTEGER(iwp) ::  pathlines_wavecount = 10           !<
     1423    INTEGER(iwp) ::  pathlines_wavetime = 50            !<
     1424    INTEGER(iwp) ::  vc_gradient_normals = 0            !<
     1425    INTEGER(iwp) ::  vc_mode = 0                        !<
     1426    INTEGER(iwp) ::  vc_size_x = 2                      !<
     1427    INTEGER(iwp) ::  vc_size_y = 2                      !<
     1428    INTEGER(iwp) ::  vc_size_z = 2                      !<
     1429
     1430    INTEGER(iwp), DIMENSION(10) ::  slicer_position_dvrp  !<
     1431
     1432    LOGICAL ::  cyclic_dvrp = .FALSE.                      !<
     1433    LOGICAL ::  dvrp_overlap                               !<
     1434    LOGICAL ::  dvrp_total_overlap                         !<
     1435    LOGICAL ::  local_dvrserver_running                    !<
     1436    LOGICAL ::  lock_steering_update = .FALSE.             !<
     1437    LOGICAL ::  use_seperate_pe_for_dvrp_output = .FALSE.  !<
     1438
     1439    REAL(wp) ::  clip_dvrp_l = 9999999.9_wp  !<
     1440    REAL(wp) ::  clip_dvrp_n = 9999999.9_wp  !<
     1441    REAL(wp) ::  clip_dvrp_r = 9999999.9_wp  !<
     1442    REAL(wp) ::  clip_dvrp_s = 9999999.9_wp  !<
     1443    REAL(wp) ::  superelevation = 1.0_wp     !<
     1444    REAL(wp) ::  superelevation_x = 1.0_wp   !<
     1445    REAL(wp) ::  superelevation_y = 1.0_wp   !<
     1446    REAL(wp) ::  vc_alpha = 38.0_wp          !<
     1447
     1448    REAL(wp), DIMENSION(2) ::  color_interval = (/ 0.0_wp, 1.0_wp /)     !<
     1449    REAL(wp), DIMENSION(2) ::  dvrpsize_interval = (/ 0.0_wp, 1.0_wp /)  !<
     1450
     1451    REAL(wp), DIMENSION(3) ::  groundplate_color = (/ 0.0_wp, 0.6_wp, 0.0_wp /)  !<
     1452    REAL(wp), DIMENSION(3) ::  topography_color = (/ 0.8_wp, 0.7_wp, 0.6_wp /)   !<
     1453
     1454    REAL(wp), DIMENSION(2,10) ::  slicer_range_limits_dvrp  !<
     1455
     1456    REAL(wp), DIMENSION(3,10) ::  isosurface_color  !<
     1457
     1458    REAL(sp), DIMENSION(2,100) ::  interval_values_dvrp          !<
     1459    REAL(sp), DIMENSION(2,100) ::  interval_values_dvrp_prt      !<
     1460    REAL(sp), DIMENSION(2,100) ::  interval_h_dvrp               !<
     1461    REAL(sp), DIMENSION(2,100) ::  interval_h_dvrp_prt           !<
     1462    REAL(sp), DIMENSION(2,100) ::  interval_l_dvrp = 0.5_sp      !<
     1463    REAL(sp), DIMENSION(2,100) ::  interval_l_dvrp_prt = 0.5_sp  !<
     1464    REAL(sp), DIMENSION(2,100) ::  interval_s_dvrp = 1.0_sp      !<
     1465    REAL(sp), DIMENSION(2,100) ::  interval_s_dvrp_prt = 1.0_sp  !<
     1466    REAL(sp), DIMENSION(2,100) ::  interval_a_dvrp = 0.0_sp      !<
     1467    REAL(sp), DIMENSION(2,100) ::  interval_a_dvrp_prt = 0.0_sp  !<
     1468
     1469    DATA  slicer_range_limits_dvrp / -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &  !<
    9811470                                     -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
    9821471                                     -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
    9831472                                     -1.0_wp, 1.0_wp /
    9841473
    985     DATA  isosurface_color / 0.9_wp, 0.9_wp, 0.9_wp,  0.8_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.8_wp, &
     1474    DATA  isosurface_color / 0.9_wp, 0.9_wp, 0.9_wp,  0.8_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.8_wp, &  !<
    9861475                             0.1_wp, 0.8_wp, 0.1_wp,  0.6_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.6_wp, &
    9871476                             0.1_wp, 0.6_wp, 0.1_wp,  0.4_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.4_wp, &
    9881477                             0.1_wp, 0.4_wp, 0.1_wp /
    9891478
    990     DATA  interval_h_dvrp / 270.0_wp, 225.0_wp, 225.0_wp, 180.0_wp, 70.0_wp, 25.0_wp, &
     1479    DATA  interval_h_dvrp / 270.0_wp, 225.0_wp, 225.0_wp, 180.0_wp, 70.0_wp, 25.0_wp, &  !<
    9911480                            25.0_wp, -25.0_wp, 192 * 0.0_wp /
    9921481
    993     DATA  interval_h_dvrp_prt / 270.0_wp, 225.0_wp, 225.0_wp, 180.0_wp, 70.0_wp, 25.0_wp, &
     1482    DATA  interval_h_dvrp_prt / 270.0_wp, 225.0_wp, 225.0_wp, 180.0_wp, 70.0_wp, 25.0_wp, &  !<
    9941483                                25.0_wp, -25.0_wp, 192 * 0.0_wp /
    9951484
    996     REAL(sp), DIMENSION(:), ALLOCATABLE ::  xcoor_dvrp, ycoor_dvrp, zcoor_dvrp
     1485    REAL(sp), DIMENSION(:), ALLOCATABLE ::  xcoor_dvrp  !<
     1486    REAL(sp), DIMENSION(:), ALLOCATABLE ::  ycoor_dvrp  !<
     1487    REAL(sp), DIMENSION(:), ALLOCATABLE ::  zcoor_dvrp  !<
    9971488
    9981489    TYPE steering
    999        CHARACTER (LEN=24) ::  name
    1000        REAL(sp)           ::  min, max
    1001        INTEGER(iwp)       ::  imin, imax
     1490       CHARACTER (LEN=24) ::  name  !<
     1491       REAL(sp)           ::  min   !<
     1492       REAL(sp)           ::  max   !<
     1493       INTEGER(iwp)       ::  imin  !<
     1494       INTEGER(iwp)       ::  imax  !<
    10021495    END TYPE steering
    10031496
    1004     TYPE(steering), DIMENSION(:), ALLOCATABLE ::  steering_dvrp
     1497    TYPE(steering), DIMENSION(:), ALLOCATABLE ::  steering_dvrp  !<
    10051498
    10061499    SAVE
     
    10181511    USE kinds
    10191512
    1020     REAL(wp) ::  ddx, ddx2, dx = 1.0_wp, dx2, ddy, ddy2, dy = 1.0_wp, dy2
    1021 
    1022     REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddx2_mg, ddy2_mg
    1023 
    1024     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fwxm, fwxp, fwym, fwyp, fxm, fxp,   &
    1025                                               fym, fyp, wall_e_x, wall_e_y,       &
    1026                                               wall_u, wall_v, wall_w_x, wall_w_y, &
    1027                                               zu_s_inner, zw_w_inner
    1028 
     1513    REAL(wp) ::  ddx          !<
     1514    REAL(wp) ::  ddx2         !<
     1515    REAL(wp) ::  dx = 1.0_wp  !<
     1516    REAL(wp) ::  dx2          !<
     1517    REAL(wp) ::  ddy          !<
     1518    REAL(wp) ::  ddy2         !<
     1519    REAL(wp) ::  dy = 1.0_wp  !<
     1520    REAL(wp) ::  dy2          !<
     1521
     1522    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddx2_mg  !<
     1523    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ddy2_mg  !<
     1524
     1525    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fwxm        !<
     1526    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fwxp        !<
     1527    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fwym        !<
     1528    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fwyp        !<
     1529    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fxm         !<
     1530    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fxp         !<
     1531    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fym         !<
     1532    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  fyp         !<
     1533    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wall_e_x    !<
     1534    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wall_e_y    !<
     1535    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wall_u      !<
     1536    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wall_v      !<
     1537    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wall_w_x    !<
     1538    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  wall_w_y    !<
     1539    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zu_s_inner  !< 
     1540    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zw_w_inner  !<
     1541                                             
    10291542    SAVE
    10301543
     
    10411554    USE kinds
    10421555
    1043     INTEGER(iwp) ::  i_left, i_right, j_north, j_south, nbgp = 3, ngp_sums,         &
    1044                      ngp_sums_ls, nnx, nx = 0, nx_a, nx_o, nxl, nxlg, nxlu, nxr,    &
    1045                      nxrg, nx_on_file, nny, ny = 0, ny_a, ny_o, nyn, nyng, nys,     &
    1046                      nysg, nysv, ny_on_file, nnz, nz = 0, nzb, nzb_diff, nzb_max,   &
    1047                      nzt, nzt_diff
    1048 
    1049 
    1050     INTEGER(idp), DIMENSION(:), ALLOCATABLE ::      &
    1051                 ngp_3d, ngp_3d_inner   ! need to have 64 bit for grids > 2E9
    1052 
    1053     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::                                  &
    1054                    ngp_2dh, nxl_mg, nxr_mg, nyn_mg, nys_mg, nzt_mg
    1055 
    1056 
    1057     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE :: ngp_2dh_outer, ngp_2dh_s_inner,  &
    1058                    mg_loc_ind, nzb_diff_s_inner, nzb_diff_s_outer, nzb_diff_u,    &
    1059                    nzb_diff_v, nzb_inner, nzb_outer, nzb_s_inner, nzb_s_outer,    &
    1060                    nzb_u_inner, nzb_u_outer, nzb_v_inner, nzb_v_outer,            &
    1061                    nzb_w_inner, nzb_w_outer
    1062 
    1063     INTEGER(iwp), DIMENSION(:,:,:), POINTER ::  flags
    1064 
    1065     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  wall_flags_0, wall_flags_00
    1066 
    1067     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::                       &
    1068                    wall_flags_1, wall_flags_2, wall_flags_3, wall_flags_4,        &
    1069                    wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,        &
    1070                    wall_flags_9, wall_flags_10
    1071 
    1072     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  rflags_s_inner, rflags_invers
     1556    INTEGER(iwp) ::  i_left       !<
     1557    INTEGER(iwp) ::  i_right      !<
     1558    INTEGER(iwp) ::  j_north      !<
     1559    INTEGER(iwp) ::  j_south      !<
     1560    INTEGER(iwp) ::  nbgp = 3     !<
     1561    INTEGER(iwp) ::  ngp_sums     !<
     1562    INTEGER(iwp) ::  ngp_sums_ls  !<
     1563    INTEGER(iwp) ::  nnx          !<
     1564    INTEGER(iwp) ::  nx = 0       !<
     1565    INTEGER(iwp) ::  nx_a         !<
     1566    INTEGER(iwp) ::  nx_o         !<
     1567    INTEGER(iwp) ::  nxl          !<
     1568    INTEGER(iwp) ::  nxlg         !<
     1569    INTEGER(iwp) ::  nxlu         !<
     1570    INTEGER(iwp) ::  nxr          !<
     1571    INTEGER(iwp) ::  nxrg         !<
     1572    INTEGER(iwp) ::  nx_on_file   !<
     1573    INTEGER(iwp) ::  nny          !<
     1574    INTEGER(iwp) ::  ny = 0       !<
     1575    INTEGER(iwp) ::  ny_a         !<
     1576    INTEGER(iwp) ::  ny_o         !<
     1577    INTEGER(iwp) ::  nyn          !<
     1578    INTEGER(iwp) ::  nyng         !<
     1579    INTEGER(iwp) ::  nys          !<
     1580    INTEGER(iwp) ::  nysg         !<
     1581    INTEGER(iwp) ::  nysv         !<
     1582    INTEGER(iwp) ::  ny_on_file   !<
     1583    INTEGER(iwp) ::  nnz          !<
     1584    INTEGER(iwp) ::  nz = 0       !<
     1585    INTEGER(iwp) ::  nzb          !<
     1586    INTEGER(iwp) ::  nzb_diff     !<
     1587    INTEGER(iwp) ::  nzb_max      !<
     1588    INTEGER(iwp) ::  nzt          !<
     1589    INTEGER(iwp) ::  nzt_diff     !<
     1590
     1591    INTEGER(idp), DIMENSION(:), ALLOCATABLE ::  ngp_3d        !<
     1592    INTEGER(idp), DIMENSION(:), ALLOCATABLE ::  ngp_3d_inner  !< ! need to have 64 bit for grids > 2E9
     1593                   
     1594    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_2dh  !<
     1595    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nxl_mg   !<
     1596    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nxr_mg   !<
     1597    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nyn_mg   !<
     1598    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nys_mg   !<
     1599    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nzt_mg   !<
     1600
     1601
     1602    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  ngp_2dh_outer     !<
     1603    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  ngp_2dh_s_inner   !<
     1604    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  mg_loc_ind        !<
     1605    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_diff_s_inner  !<
     1606    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_diff_s_outer  !<
     1607    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_diff_u        !<
     1608    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_diff_v        !<
     1609    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_inner         !<
     1610    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_outer         !<
     1611    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_s_inner       !<
     1612    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_s_outer       !<
     1613    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_u_inner       !<
     1614    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_u_outer       !<
     1615    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_v_inner       !<
     1616    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_v_outer       !<
     1617    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_w_inner       !<
     1618    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_w_outer       !<
     1619
     1620    INTEGER(iwp), DIMENSION(:,:,:), POINTER ::  flags  !<
     1621
     1622    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  wall_flags_0   !<
     1623    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  wall_flags_00  !<
     1624
     1625    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_1   !<
     1626    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_2   !<
     1627    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_3   !<
     1628    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_4   !<
     1629    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_5   !<
     1630    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_6   !<
     1631    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_7   !<
     1632    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_8   !<
     1633    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_9   !<
     1634    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE,  TARGET ::  wall_flags_10  !<
     1635
     1636    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  rflags_s_inner  !<
     1637    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  rflags_invers   !<
    10731638
    10741639    SAVE
     
    10961661          USE kinds
    10971662
    1098           CHARACTER (LEN=*), INTENT(IN)      ::  mode
    1099           INTEGER(iwp), INTENT(IN)           ::  i1, i2, j1, j2, k1, k2
    1100           INTEGER(iwp)                       ::  wert_ijk(3)
    1101           INTEGER(iwp), OPTIONAL             ::  wert1_ijk(3)
    1102           REAL(wp)                           ::  offset, wert
    1103           REAL(wp), OPTIONAL                 ::  wert1
    1104           REAL(wp), INTENT(IN)               ::  feld(i1:i2,j1:j2,k1:k2)
     1663          CHARACTER (LEN=*), INTENT(IN) ::  mode                     !<
     1664          INTEGER(iwp), INTENT(IN)      ::  i1                       !<
     1665          INTEGER(iwp), INTENT(IN)      ::  i2                       !<
     1666          INTEGER(iwp), INTENT(IN)      ::  j1                       !<
     1667          INTEGER(iwp), INTENT(IN)      ::  j2                       !<
     1668          INTEGER(iwp), INTENT(IN)      ::  k1                       !<
     1669          INTEGER(iwp), INTENT(IN)      ::  k2                       !< 
     1670          INTEGER(iwp)                  ::  wert_ijk(3)              !<
     1671          INTEGER(iwp), OPTIONAL        ::  wert1_ijk(3)             !< 
     1672          REAL(wp)                      ::  offset                   !<
     1673          REAL(wp)                      ::  wert                     !<
     1674          REAL(wp), OPTIONAL            ::  wert1                    !<
     1675          REAL(wp), INTENT(IN)          ::  feld(i1:i2,j1:j2,k1:k2)  !<
    11051676
    11061677       END SUBROUTINE global_min_max
     
    11321703          USE kinds
    11331704
    1134           CHARACTER (LEN=*), INTENT(IN)   ::  sk_char
     1705          CHARACTER (LEN=*), INTENT(IN) ::  sk_char  !<
    11351706#if defined( __nopointer )
    1136           REAL(wp), DIMENSION(:,:,:) ::  sk
     1707          REAL(wp), DIMENSION(:,:,:) ::  sk  !<
    11371708#else
    1138           REAL(wp), DIMENSION(:,:,:), POINTER ::  sk
     1709          REAL(wp), DIMENSION(:,:,:), POINTER ::  sk  !<
    11391710#endif
    11401711       END SUBROUTINE advec_s_bc
    11411712
    11421713    END INTERFACE
    1143 
    11441714
    11451715    SAVE
     
    11571727    USE kinds
    11581728
    1159     INTEGER(iwp) ::  current_timestep_number_1d = 0, damp_level_ind_1d
    1160 
    1161     LOGICAL ::  run_control_header_1d = .FALSE., stop_dt_1d = .FALSE.
    1162 
    1163     REAL(wp) ::     damp_level_1d = -1.0_wp, dt_1d = 60.0_wp, dt_max_1d = 300.0_wp, &
    1164                     dt_pr_1d = 9999999.9_wp, dt_run_control_1d = 60.0_wp, &
    1165                     end_time_1d = 864000.0_wp, old_dt_1d = 1.0E-10_wp, &
    1166                     qs1d, simulated_time_1d = 0.0_wp, time_pr_1d = 0.0_wp, &
    1167                     time_run_control_1d = 0.0_wp, ts1d, us1d, usws1d, &
    1168                     vsws1d, z01d, z0h1d
    1169 
    1170 
    1171     REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d, e1d_p, kh1d, km1d, l_black, l1d,  &
    1172                                             rif1d, te_e, te_em, te_u, te_um, te_v, &
    1173                                             te_vm, u1d, u1d_p, v1d, v1d_p
     1729    INTEGER(iwp) ::  current_timestep_number_1d = 0  !<
     1730    INTEGER(iwp) ::  damp_level_ind_1d               !<
     1731
     1732    LOGICAL ::  run_control_header_1d = .FALSE.  !<
     1733    LOGICAL ::  stop_dt_1d = .FALSE.             !<
     1734
     1735    REAL(wp) ::  damp_level_1d = -1.0_wp       !<
     1736    REAL(wp) ::  dt_1d = 60.0_wp               !<
     1737    REAL(wp) ::  dt_max_1d = 300.0_wp          !<
     1738    REAL(wp) ::  dt_pr_1d = 9999999.9_wp       !<
     1739    REAL(wp) ::  dt_run_control_1d = 60.0_wp   !<
     1740    REAL(wp) ::  end_time_1d = 864000.0_wp     !<
     1741    REAL(wp) ::  old_dt_1d = 1.0E-10_wp        !<
     1742    REAL(wp) ::  qs1d                          !<
     1743    REAL(wp) ::  simulated_time_1d = 0.0_wp    !<
     1744    REAL(wp) ::  time_pr_1d = 0.0_wp           !<
     1745    REAL(wp) ::  time_run_control_1d = 0.0_wp  !<
     1746    REAL(wp) ::  ts1d                          !<
     1747    REAL(wp) ::  us1d                          !<
     1748    REAL(wp) ::  usws1d                        !<
     1749    REAL(wp) ::  vsws1d                        !<               
     1750    REAL(wp) ::  z01d                          !<
     1751    REAL(wp) ::  z0h1d                         !<
     1752
     1753
     1754    REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d      !<
     1755    REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d_p    !<
     1756    REAL(wp), DIMENSION(:), ALLOCATABLE ::  kh1d     !<
     1757    REAL(wp), DIMENSION(:), ALLOCATABLE ::  km1d     !<
     1758    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l_black  !<
     1759    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l1d      !<
     1760    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rif1d    !<
     1761    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_e     !<
     1762    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_em    !<
     1763    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_u     !<
     1764    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_um    !<
     1765    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_v     !<
     1766    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_vm    !<
     1767    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d      !<
     1768    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d_p    !<
     1769    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d      !<
     1770    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d_p    !<
    11741771
    11751772    SAVE
     
    12001797    CHARACTER(LEN=2) ::  send_receive = 'al'
    12011798    CHARACTER(LEN=7) ::  myid_char = ''
    1202     INTEGER(iwp)     ::  acc_rank, comm1dx, comm1dy, comm2d, comm_inter,       &
    1203                          comm_palm, id_inflow = 0,                             &
    1204                          id_outflow = 0,        & !< myidx of procs at outflow (turbulent outflow method)
    1205                          id_outflow_source = 0, & !< myidx of procs including ouflow source plane (turbulent outflow method)
    1206                          id_recycling = 0, ierr,                               &
    1207                          myid = 0, myidx = 0, myidy = 0, ndim = 2, ngp_a,      &
    1208                          ngp_o, ngp_xy, ngp_y, npex = -1, npey = -1,           &
    1209                          numprocs = 1, numprocs_previous_run = -1,             &
    1210                          num_acc_per_node = 0, pleft, pnorth, pright, psouth,  &
    1211                          req_count = 0, sendrecvcount_xy, sendrecvcount_yz,    &
    1212                          sendrecvcount_zx, sendrecvcount_zyd,                  &
    1213                          sendrecvcount_yxd, target_id, tasks_per_node = -9999, &
    1214                          threads_per_task = 1, type_x, type_xy,    &
    1215                          type_y
    1216 
    1217     INTEGER(iwp)          ::  pdims(2) = 1, req(100)
    1218 
    1219     INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  hor_index_bounds, &
    1220                                                   hor_index_bounds_previous_run
    1221 
    1222     LOGICAL ::  background_communication =.FALSE., collective_wait = .FALSE., &
    1223                 sendrecv_in_background = .FALSE.
     1799   
     1800    INTEGER(iwp) ::  acc_rank                    !<
     1801    INTEGER(iwp) ::  comm1dx                     !<
     1802    INTEGER(iwp) ::  comm1dy                     !<
     1803    INTEGER(iwp) ::  comm2d                      !<
     1804    INTEGER(iwp) ::  comm_inter                  !<
     1805    INTEGER(iwp) ::  comm_palm                   !<
     1806    INTEGER(iwp) ::  id_inflow = 0               !<
     1807    INTEGER(iwp) ::  id_outflow = 0              !< myidx of procs at outflow (turbulent outflow method)
     1808    INTEGER(iwp) ::  id_outflow_source = 0       !< myidx of procs including ouflow source plane (turbulent outflow method)
     1809    INTEGER(iwp) ::  id_recycling = 0            !<
     1810    INTEGER(iwp) ::  ierr                        !<
     1811    INTEGER(iwp) ::  myid = 0                    !<
     1812    INTEGER(iwp) ::  myidx = 0                   !<
     1813    INTEGER(iwp) ::  myidy = 0                   !<
     1814    INTEGER(iwp) ::  ndim = 2                    !<
     1815    INTEGER(iwp) ::  ngp_a                       !<
     1816    INTEGER(iwp) ::  ngp_o                       !<
     1817    INTEGER(iwp) ::  ngp_xy                      !<
     1818    INTEGER(iwp) ::  ngp_y                       !<
     1819    INTEGER(iwp) ::  npex = -1                   !<
     1820    INTEGER(iwp) ::  npey = -1                   !<
     1821    INTEGER(iwp) ::  numprocs = 1                !<
     1822    INTEGER(iwp) ::  numprocs_previous_run = -1  !<
     1823    INTEGER(iwp) ::  num_acc_per_node = 0        !<
     1824    INTEGER(iwp) ::  pleft                       !<
     1825    INTEGER(iwp) ::  pnorth                      !<
     1826    INTEGER(iwp) ::  pright                      !<
     1827    INTEGER(iwp) ::  psouth                      !<
     1828    INTEGER(iwp) ::  req_count = 0               !<
     1829    INTEGER(iwp) ::  sendrecvcount_xy            !<
     1830    INTEGER(iwp) ::  sendrecvcount_yz            !<
     1831    INTEGER(iwp) ::  sendrecvcount_zx            !<
     1832    INTEGER(iwp) ::  sendrecvcount_zyd           !<
     1833    INTEGER(iwp) ::  sendrecvcount_yxd           !<
     1834    INTEGER(iwp) ::  target_id                   !<
     1835    INTEGER(iwp) ::  tasks_per_node = -9999      !<
     1836    INTEGER(iwp) ::  threads_per_task = 1        !<
     1837    INTEGER(iwp) ::  type_x                      !<
     1838    INTEGER(iwp) ::  type_xy                     !<
     1839    INTEGER(iwp) ::  type_y                      !<
     1840
     1841    INTEGER(iwp) ::  pdims(2) = 1  !<
     1842    INTEGER(iwp) ::  req(100)      !<
     1843
     1844    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  hor_index_bounds               !<
     1845    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  hor_index_bounds_previous_run  !<
     1846
     1847    LOGICAL ::  background_communication =.FALSE.  !<
     1848    LOGICAL ::  collective_wait = .FALSE.          !<
     1849    LOGICAL ::  sendrecv_in_background = .FALSE.   !<
    12241850
    12251851#if defined( __parallel )
    12261852#if defined( __mpi2 )
    1227     CHARACTER (LEN=MPI_MAX_PORT_NAME) ::  port_name
     1853    CHARACTER (LEN=MPI_MAX_PORT_NAME) ::  port_name  !<
    12281854#endif
    12291855
    1230     INTEGER(iwp) ::  ibuf(12), pcoord(2)
    1231     INTEGER(iwp) ::  status(MPI_STATUS_SIZE)
    1232     INTEGER(iwp), DIMENSION(MPI_STATUS_SIZE,100) ::  wait_stat
    1233 
    1234     INTEGER(iwp) :: ngp_yz_int, type_xz_int, type_yz_int
    1235     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_xz, ngp_yz, type_x_int,    &
    1236                                                 type_xz, type_y_int, type_yz
    1237 
    1238     LOGICAL ::  left_border_pe  = .FALSE., north_border_pe = .FALSE., &
    1239                 reorder = .TRUE., right_border_pe = .FALSE.,          &
    1240                 south_border_pe = .FALSE.
    1241 
    1242     LOGICAL, DIMENSION(2) ::  cyclic = (/ .TRUE. , .TRUE. /), &
    1243                               remain_dims
     1856    INTEGER(iwp) ::  ibuf(12)                 !<
     1857    INTEGER(iwp) ::  pcoord(2)                !<
     1858    INTEGER(iwp) ::  status(MPI_STATUS_SIZE)  !<
     1859   
     1860    INTEGER(iwp), DIMENSION(MPI_STATUS_SIZE,100) ::  wait_stat  !<
     1861   
     1862    INTEGER(iwp) ::  ngp_yz_int   !<
     1863    INTEGER(iwp) ::  type_xz_int  !<
     1864    INTEGER(iwp) ::  type_yz_int  !<
     1865
     1866    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_xz      !<
     1867    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_yz      !<
     1868    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_x_int  !<
     1869    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_xz     !<
     1870    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_y_int  !<
     1871    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_yz     !<
     1872
     1873    LOGICAL ::  left_border_pe  = .FALSE.  !<
     1874    LOGICAL ::  north_border_pe = .FALSE.  !<
     1875    LOGICAL ::  reorder = .TRUE.           !<
     1876    LOGICAL ::  right_border_pe = .FALSE.  !<
     1877    LOGICAL ::  south_border_pe = .FALSE.  !<
     1878
     1879    LOGICAL, DIMENSION(2) ::  cyclic = (/ .TRUE. , .TRUE. /)  !<
     1880    LOGICAL, DIMENSION(2) ::  remain_dims                     !<
    12441881#endif
    12451882
     
    12581895    USE kinds
    12591896
    1260     INTEGER(iwp), PARAMETER ::  crmax = 100
    1261 
    1262     CHARACTER (LEN=20), DIMENSION(20) ::  cross_ts_profiles = &
     1897    INTEGER(iwp), PARAMETER ::  crmax = 100  !<
     1898
     1899    CHARACTER (LEN=20), DIMENSION(20) ::  cross_ts_profiles = &  !<
    12631900                           (/ ' E E*               ', ' dt                 ', &
    12641901                              ' u* w*              ', ' th*                ', &
     
    12691906                            ( '                    ', i9 = 1, 9 ) /)
    12701907
    1271     CHARACTER (LEN=100), DIMENSION(crmax) ::  cross_profiles = &
     1908    CHARACTER (LEN=100), DIMENSION(crmax) ::  cross_profiles = &  !<
    12721909                           (/ ' u v                           ', &
    12731910                              ' pt                            ', &
     
    12781915                         ( '                               ', i9 = 1, 94 ) /)
    12791916
    1280     INTEGER(iwp) ::  profile_columns = 2, profile_rows = 3, profile_number = 0
    1281 
    1282     INTEGER(iwp) ::  cross_ts_numbers(crmax,crmax) = 0, &
    1283                      cross_ts_number_count(crmax) = 0, &
    1284                      dopr_index(300) = 0, dopr_initial_index(300) = 0, &
    1285                      dots_crossindex(100) = 0, dots_index(100) = 0
     1917    INTEGER(iwp) ::  profile_columns = 2  !<
     1918    INTEGER(iwp) ::  profile_rows = 3     !<
     1919    INTEGER(iwp) ::  profile_number = 0   !<
     1920
     1921    INTEGER(iwp) ::  cross_ts_numbers(crmax,crmax) = 0  !<
     1922    INTEGER(iwp) ::  cross_ts_number_count(crmax) = 0   !<
     1923    INTEGER(iwp) ::  dopr_index(300) = 0                !<
     1924    INTEGER(iwp) ::  dopr_initial_index(300) = 0        !<
     1925    INTEGER(iwp) ::  dots_crossindex(100) = 0           !<
     1926    INTEGER(iwp) ::  dots_index(100) = 0                !<
    12861927               
    12871928
    1288     REAL(wp) ::  cross_ts_uymax(20) = &
     1929    REAL(wp) ::  cross_ts_uymax(20) = &                    !<
    12891930                             (/ 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
    12901931                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
    12911932                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
    1292                                 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp /),&
    1293                  cross_ts_uymax_computed(20) = 999.999_wp, &
    1294                  cross_ts_uymin(20) = &
     1933                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp /)
     1934    REAL(wp) ::  cross_ts_uymax_computed(20) = 999.999_wp  !<
     1935    REAL(wp) ::  cross_ts_uymin(20) = &                    !<
    12951936                             (/ 999.999_wp, 999.999_wp, 999.999_wp,  -5.000_wp, 999.999_wp,   &
    12961937                                999.999_wp,   0.000_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
    12971938                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp,   &
    1298                                 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp /),&
    1299                  cross_ts_uymin_computed(20) = 999.999_wp
     1939                                999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp, 999.999_wp /)
     1940    REAL(wp) ::  cross_ts_uymin_computed(20) = 999.999_wp  !<
    13001941
    13011942    SAVE
     
    13121953    USE kinds
    13131954
    1314     CHARACTER (LEN=40) ::  region(0:9)
    1315     INTEGER(iwp) ::  pr_palm = 130, statistic_regions = 0
    1316     INTEGER(iwp) ::  u_max_ijk(3) = -1, v_max_ijk(3) = -1, w_max_ijk(3) = -1
    1317     LOGICAL ::  flow_statistics_called = .FALSE.
    1318     REAL(wp) ::     u_max, v_max, w_max
    1319     REAL(wp), DIMENSION(:), ALLOCATABLE       ::  mean_surface_level_height,      &
    1320                                                   sums_divnew_l, sums_divold_l,   &
    1321                                                   weight_substep, weight_pres
    1322     REAL(wp), DIMENSION(:,:), ALLOCATABLE     ::  sums, sums_wsts_bc_l, ts_value, &
    1323                                                   sums_wsus_ws_l, sums_wsvs_ws_l, &
    1324                                                   sums_us2_ws_l, sums_vs2_ws_l,   &
    1325                                                   sums_ws2_ws_l,                  &
    1326                                                   sums_wsnrs_ws_l,                &
    1327                                                   sums_wspts_ws_l,                &
    1328                                                   sums_wsqs_ws_l,                 &   
    1329                                                   sums_wsqrs_ws_l,                &
    1330                                                   sums_wssas_ws_l,                &
    1331                                                   sums_wsss_ws_l,                 &
    1332                                                   sums_ls_l
     1955    CHARACTER (LEN=40) ::  region(0:9)  !<
     1956   
     1957    INTEGER(iwp) ::  pr_palm = 130          !<
     1958    INTEGER(iwp) ::  statistic_regions = 0  !<
     1959   
     1960    INTEGER(iwp) ::  u_max_ijk(3) = -1  !<
     1961    INTEGER(iwp) ::  v_max_ijk(3) = -1  !<
     1962    INTEGER(iwp) ::  w_max_ijk(3) = -1  !<
     1963   
     1964    LOGICAL ::  flow_statistics_called = .FALSE.  !<
     1965   
     1966    REAL(wp) ::  u_max  !<
     1967    REAL(wp) ::  v_max  !<
     1968    REAL(wp) ::  w_max  !<
     1969   
     1970    REAL(wp), DIMENSION(:), ALLOCATABLE ::  mean_surface_level_height  !<
     1971    REAL(wp), DIMENSION(:), ALLOCATABLE ::  sums_divnew_l              !<
     1972    REAL(wp), DIMENSION(:), ALLOCATABLE ::  sums_divold_l              !<
     1973    REAL(wp), DIMENSION(:), ALLOCATABLE ::  weight_substep             !<
     1974    REAL(wp), DIMENSION(:), ALLOCATABLE ::  weight_pres                !<
     1975   
     1976    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums             !<
     1977    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsts_bc_l   !<
     1978    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ts_value         !<
     1979    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsus_ws_l   !<
     1980    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsvs_ws_l   !<
     1981    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_us2_ws_l    !<
     1982    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_vs2_ws_l    !<
     1983    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_ws2_ws_l    !<
     1984    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsnrs_ws_l  !<
     1985    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wspts_ws_l  !<
     1986    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsqs_ws_l   !<
     1987    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsqrs_ws_l  !<
     1988    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wssas_ws_l  !<
     1989    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_wsss_ws_l   !<
     1990    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  sums_ls_l        !<
    13331991                                             
    1334     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE   ::  hom_sum, rmask, sums_l,      &
    1335                                                   sums_l_l, sums_up_fraction_l
    1336 
    1337     REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  hom
     1992    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  hom_sum             !<
     1993    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  rmask               !<
     1994    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  sums_l              !<
     1995    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  sums_l_l            !<
     1996    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  sums_up_fraction_l  !<
     1997
     1998    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  hom  !<
    13381999
    13392000    SAVE
     
    13522013    USE kinds
    13532014
    1354     INTEGER(iwp) ::  nxl_y, nxl_yd, nxl_z, nxr_y, nxr_yd, nxr_z, nyn_x, nyn_z, &
    1355                      nys_x, nys_z, nzb_x, nzb_y, nzb_yd, nzt_x, nzt_y, nzt_yd
     2015    INTEGER(iwp) ::  nxl_y   !<
     2016    INTEGER(iwp) ::  nxl_yd  !<
     2017    INTEGER(iwp) ::  nxl_z   !<
     2018    INTEGER(iwp) ::  nxr_y   !<
     2019    INTEGER(iwp) ::  nxr_yd  !<
     2020    INTEGER(iwp) ::  nxr_z   !<
     2021    INTEGER(iwp) ::  nyn_x   !<
     2022    INTEGER(iwp) ::  nyn_z   !<
     2023    INTEGER(iwp) ::  nys_x   !<
     2024    INTEGER(iwp) ::  nys_z   !<
     2025    INTEGER(iwp) ::  nzb_x   !<
     2026    INTEGER(iwp) ::  nzb_y   !<
     2027    INTEGER(iwp) ::  nzb_yd  !<
     2028    INTEGER(iwp) ::  nzt_x   !<
     2029    INTEGER(iwp) ::  nzt_y   !<
     2030    INTEGER(iwp) ::  nzt_yd  !<
    13562031               
    13572032    SAVE
Note: See TracChangeset for help on using the changeset viewer.