A minimum parameter set for the CBL
In this chapter a brief, simple and complete parameter set is described, which can be used to simulate a quasi-stationary, convective, atmospheric boundary layer with zero mean horizontal wind. For evaluation purposes, cross sections and horizontally averaged vertical profiles of typical boundary layer variables are output at the end of the run.
The convective boundary layer parameter file necessary to carry out a run must be provided to the model as an input file under the local name PARIN (see here for parameter file).
The initialization parameters (&initialization_parameters) are located at the beginning of the file. For analysis of a convective boundary layer of approx. 1000 m thickness the horizontal size of the model domain should amount to at least 2 km x 2 km. In order to resolve the convective structures a grid spacing of dx = dy = dz = 50 m is enough, since the typical diameter of convective plumes is more than 100 m. Thereby the upper array index in the two horizontal directions needs to be nx = ny = 39 . Since in each case the lower array index has the value 0, 40 grid points are used along both horizontal directions. In the vertical direction the domain must be high enough to include the entrainment processes at the top of the boundary layer as well as the propagation of gravity waves, which were stimulated by the convection. However, in the stably stratified region above the boundary layer the grid resolution has not necessarily to be as high as within the boundary layer. This can be obtained by a vertical stretching of the grid starting from 1225 m via dz_stretch_level= 1225.0 m.
Fast Fourier transformations (fft_method) are calculated using the Temperton-algorithm. The initial profiles for wind and temperature can be assigned via initializing_actions = 'set_constant_profiles'. The wind speed, constant with height, amounts to ug_surface = vg_surface = 0.0 m/s. In order to allow for a fast onset of convection, a neutral stratified layer up to z = 800 m capped by an inversion with dtheta/dz = 1K/100 m is given: pt_vertical_gradient = 0.0, 1.0, pt_vertical_gradient_level = 0.0, 800.0. The surface temperature, which by default amounts to 300 K, provides the fixed point for the temperature profile (see pt_surface). Convection is driven by a given, near-surface sensible heat flux via surface_heatflux = 0.1 K m/s. A given surface sensible heta flux requires the bottom boundary condition for potential temperature to be bc_pt_b = 'neumann'. Thus all initialization parameters are determined. These can not be changed during the run (also not for restart runs).
Now the run parameters (&runtime_parameters ) must be specified. To produce a quasi stationary boundary layer the simulated time should be at least one hour, i.e. end_time = 3600 s. To stimulate convection, the initially homogeneous (zero) wind field must be disturbed (create_disturbances = .T.). These perturbations should be repeated in a temporal interval of dt_disturb = 150.0 s until the energy of the perturbations exceeds the value disturbance_energy_limit = 0.01 m2/s2. After each time step run time information (e.g. size of the timestep, maximum velocities, etc.) are to be written to the local file RUN_CONTROL (dt_run_control = 0.0 s).
Instantaneous cross section data of vertical velocity (w) and potential temperature (pt) are to be output for horizontal (xy) and vertical (xz) cross sections, and additionally, time averaged (av) vertical cross section data are to be output for the vertical velocity: data_output = 'w_xy', 'w_xz', 'w_xz_av', 'theta_xy', 'theta_xz'. Output of instantaneous (time averaged) data is done after each 900 (1800)s: dt_data_output = 900.0, dt_data_output_av = 1800.0. The averaged data are time averaged over the last 900.0 s, where the temporal interval of data entering the average is 10 s: averaging_interval = 900.0, dt_averaging_input = 10.0. Horizontal cross sections are output for vertical levels with grid index k=2 and k=10, vertical cross sections are output for index j=20: section_xy = 2, 10, section_xz = 20. For runs on more than one processor, cross section data are collected and output on PE0: data_output_2d_on_each_pe = .F..
Output of vertical profiles is to be done after each 900 s. The profiles shall be temporally averaged over the last 600 s, whereby the temporal interval of the profiles entering the average has to be 10 s: dt_dopr = 900.0 s, averaging_interval_pr = 600.0 s, dt_averaging_input_pr = 10.0 s. The temperature profile including the initial temperature profile (therefore '#theta' ), the subgrid scale, resolved and total vertical sensible heat flux as well as the variances of the vertical velocity and the potential temperature are to be output: data_output_pr = '#theta', 'w"theta”', 'w*theta*', 'wtheta', 'w*2', 'theta*2'.