== Initialization parameters == ==== [#mode Mode] ==== ==== [#grid Grid] ==== ==== [#num Numerics] ==== ==== [#bc Boundary Conditions] ==== ==== [#ini Initialization] ==== ==== [#topo Topography] ==== ==== [#canopy Canopy] ==== ==== [#others Others] ==== \\\\ NAMELIST group name: '''inipar'''\\ ---- [=#mode '''Mode:]\\ ||='''Parameter Name''' =||='''FORTRAN Type''' =||='''Default Value''' =||='''Explanation''' =|| |---------------- {{{#!td style="vertical-align:top; text-align:left;width: 150px" [=#ocean '''ocean'''] }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 50px" L }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 100px" ''.F.'' }}} {{{#!td Parameter to switch on ocean runs.\\\\ By default PALM is configured to simulate atmospheric flows. However, starting from version 3.3, '''ocean''' = ''.T.'' allows simulation of ocean turbulent flows. Setting this switch has several effects:\\\\ * An additional prognostic equation for salinity is solved. * Potential temperature in buoyancy and stability-related terms is replaced by potential density. * Potential density is calculated from the equation of state for seawater after each timestep, using the algorithm proposed by Jackett et al. (2006, J. Atmos. Oceanic Technol., '''23''', 1709-1728). So far, only the initial hydrostatic pressure is entered into this equation. * z=0 (sea surface) is assumed at the model top (vertical grid index k=nzt on the w-grid), with negative values of z indicating the depth. * Initial profiles are constructed (e.g. from [#pt_vertical_gradient pt_vertical_gradient] / [#pt_vertical_gradient_level pt_vertical_gradient_level]) starting from the sea surface, using surface values given by [#pt_surface pt_surface], [#sa_surface sa_surface], [#ug_surface ug_surface], and [#vg_surface vg_surface]. * Zero salinity flux is used as default boundary condition at the bottom of the sea. * If switched on, random perturbations are by default imposed to the upper model domain from zu(nzt*2/3) to zu(nzt-3).\\\\ Relevant parameters to be exclusively used for steering ocean runs are [#bc_sa_t bc_sa_t], [#bottom_salinityflux bottom_salinityflux], [#sa_surface sa_surface], [#sa_vertical_gradient sa_vertical_gradient], [#sa_vertical_gradient_level sa_vertical_gradient_level], and [#top_salinityflux top_salinityflux].\\\\ [#d3par d3par] [Section 4.4.2] gives an example for appropriate settings of these and other parameters neccessary for ocean runs.\\\\ '''ocean''' = ''.T.'' does not allow settings of [#timestep_scheme timestep_scheme] = '' 'leapfrog' '' or '' 'leapfrog+euler' '' as well as [#scalar_advec scalar_advec] = '' 'ups-scheme'.'' }}} |---------------- {{{#!td style="vertical-align:top" [=# ''''''] }}} {{{#!td style="vertical-align:top" }}} {{{#!td style="vertical-align:top" }}} {{{#!td }}} [[BR]] [=#grid '''Grid:]\\ ||='''Parameter Name''' =||='''FORTRAN Type''' =||='''Default Value''' =||='''Explanation''' =|| |---------------- {{{#!td style="vertical-align:top; text-align:left;width: 150px" [=# ''''''] }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 50px" }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 100px" }}} {{{#!td }}} |---------------- {{{#!td style="vertical-align:top" [=# ''''''] }}} {{{#!td style="vertical-align:top" }}} {{{#!td style="vertical-align:top" }}} {{{#!td }}} [[BR]] [=#num '''Numerics:]\\ ||='''Parameter Name''' =||='''FORTRAN Type''' =||='''Default Value''' =||='''Explanation''' =|| |---------------- {{{#!td style="vertical-align:top;width: 150px" [=#call_psolver_at_all_substeps '''call_psolver_at_all_substeps'''] }}} {{{#!td style="vertical-align:top;width: 50px" L }}} {{{#!td style="vertical-align:top;width: 100px" ''.T.'' }}} {{{#!td Switch to steer the call of the pressure solver.\\\\ In order to speed-up performance, the Poisson equation for perturbation pressure (see [#psolver psolver]) can be called only at the last substep of multistep Runge-Kutta timestep schemes (see [#timestep_scheme timestep_scheme]) by setting '''call_psolver_at_all_substeps''' = ''.F.''. In many cases, this sufficiently reduces the divergence of the velocity field. Nevertheless, small-scale ripples (2-delta-x) may occur. In this case and in case of non-cyclic lateral boundary conditions, '''call_psolver_at_all_timesteps''' = ''.T.'' should be used. }}} [[BR]] [=#bc '''Boundary Conditions:]\\ ||='''Parameter Name''' =||='''FORTRAN Type''' =||='''Default Value''' =||='''Explanation''' =|| |---------------- {{{#!td style="vertical-align:top;width: 150px" [=#adjust_mixing_length '''adjust_mixing_length'''] }}} {{{#!td style="vertical-align:top;width: 50px" L }}} {{{#!td style="vertical-align:top;width: 100px" .F. }}} {{{#!td Near-surface adjustment of the mixing length to the Prandtl-layer law.\\\\ Usually the mixing length in LES models l,,LES,, depends (as in PALM) on the grid size and is possibly restricted further in case of stable stratification and near the lower wall (see parameter [#wall_adjustment]). With '''adjust_mixing_length''' = ''.T.'' the Prandtl' mixing length l,,PR,, = kappa * z/phi is calculated and the mixing length actually used in the model is set l = MIN (l,,LES,, , l,,PR,,). This usually gives a decrease of the mixing length at the bottom boundary and considers the fact that eddy sizes decrease in the vicinity of the wall.\\\\ '''Warning:''' So far, there is no good experience with '''adjust_mixing_length''' = ''.T.''{{{!}}}\\\\ With '''adjust_mixing_length''' = ''.T.'' and the Prandtl-layer being switched on (see [#prandtl_layer prandtl_layer]) '' '(u*){{{**}}} 2+neumann' '' should always be set as the lower boundary condition for the TKE (see [#bc_e_b bc_e_b]), otherwise the near-surface value of the TKE is not in agreement with the Prandtl-layer law (Prandtl-layer law and Prandtl-Kolmogorov-Ansatz should provide the same value for K,,m,,). A warning is given, if this is not the case. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_e_b '''bc_e_b'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'neumann' }}} {{{#!td Bottom boundary condition of the TKE.\\\\ '''bc_e_b''' may be set to '' 'neumann' '' or '' '(u*){{{**}}}2+neumann' ''. '''bc_e_b''' = '' 'neumann' '' yields to e(k=0)=e(k=1) (Neumann boundary condition), where e(k=1) is calculated via the prognostic TKE equation. Choice of '' '(u*){{{**}}}2+neumann' '' also yields to e(k=0)=e(k=1), but the TKE at the Prandtl-layer top (k=1) is calculated diagnostically by e(k=1)=(us/0.1){{{**}}}2. However, this is only allowed if a Prandtl-layer is used ([#prandtl_layer prandtl_layer]). If this is not the case, a warning is given and '''bc_e_b''' is reset to '' 'neumann' ''.\\\\ At the top boundary a Neumann boundary condition is generally used: (e(nz+1) = e(nz)). }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_lr '''bc_lr'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'cyclic' }}} {{{#!td Boundary condition along x (for all quantities).\\\\ By default, a cyclic boundary condition is used along x.\\\\ '''bc_lr''' may also be assigned the values '' 'dirichlet/radiation' '' (inflow from left, outflow to the right) or '' 'radiation/dirichlet' '' (inflow from right, outflow to the left). This requires the multi-grid method to be used for solving the Poisson equation for perturbation pressure (see [../d3par#psolver psolver]) and it also requires cyclic boundary conditions along y (see [#bc_ns bc_ns]).\\\\ In case of these non-cyclic lateral boundaries, a Dirichlet condition is used at the inflow for all quantities (initial vertical profiles - see [#initializing_actions initializing_actions] - are fixed during the run) except u, to which a Neumann (zero gradient) condition is applied. At the outflow, a radiation condition is used for all velocity components, while a Neumann (zero gradient) condition is used for the scalars. For perturbation pressure Neumann (zero gradient) conditions are assumed both at the inflow and at the outflow.\\\\ When using non-cyclic lateral boundaries, a filter is applied to the velocity field in the vicinity of the outflow in order to suppress any reflections of outgoing disturbances (see [#km_damp_max km_damp_max] and [#outflow_damping_width outflow_damping_width]).\\\\ In order to maintain a turbulent state of the flow, it may be neccessary to continuously impose perturbations on the horizontal velocity field in the vicinity of the inflow throughout the whole run. This can be switched on using [../d3par#create_disturbances create_disturbances]. The horizontal range to which these perturbations are applied is controlled by the parameters [#inflow_disturbance_begin inflow_disturbance_begin] and [#inflow_disturbance_end inflow_disturbance_end]. The vertical range and the perturbation amplitude are given by [../d3par#disturbance_level_b disturbance_level_b], [../d3par#disturbance_level_t disturbance_level_t], and [../d3par#disturbance_amplitude disturbance_amplitude]. The time interval at which perturbations are to be imposed is set by [../d3par#dt_disturb dt_disturb].\\\\ In case of non-cyclic horizontal boundaries [../d3par#call_psolver_at_all_substeps call_psolver_at_all_substeps] = ''.T.'' should be used. '''Note:''' Using non-cyclic lateral boundaries requires very sensitive adjustments of the inflow (vertical profiles) and the bottom boundary conditions, e.g. a surface heating should not be applied near the inflow boundary because this may significantly disturb the inflow. Please check the model results very carefully. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_ns '''bc_ns'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'cyclic' }}} {{{#!td Boundary condition along y (for all quantities).\\\\ By default, a cyclic boundary condition is used along y.\\\\ '''bc_ns''' may also be assigned the values '' 'dirichlet/radiation' '' (inflow from rear ("north"), outflow to the front ("south")) or '' 'radiation/dirichlet' '' (inflow from front ("south"), outflow to the rear ("north")). This requires the multi-grid method to be used for solving the Poisson equation for perturbation pressure (see [../d3par#psolver psolver]) and it also requires cyclic boundary conditions along x (see [#bc_lr bc_lr]).\\\\ In case of these non-cyclic lateral boundaries, a Dirichlet condition is used at the inflow for all quantities (initial vertical profiles - see [#initializing_actions initializing_actions] - are fixed during the run) except u, to which a Neumann (zero gradient) condition is applied. At the outflow, a radiation condition is used for all velocity components, while a Neumann (zero gradient) condition is used for the scalars. For perturbation pressure Neumann (zero gradient) conditions are assumed both at the inflow and at the outflow.\\\\ For further details regarding non-cyclic lateral boundary conditions see [#bc_lr bc_lr]. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_p_b '''bc_p_b'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'neumann' }}} {{{#!td Bottom boundary condition of the perturbation pressure.\\\\ Allowed values are '' 'dirichlet' '', '' 'neumann' '' and '' 'neumann+inhomo' ''. '' 'dirichlet' '' sets p(k=0)=0.0, '' 'neumann' '' sets p(k=0)=p(k=1). '' 'neumann+inhomo' '' corresponds to an extended Neumann boundary condition where heat flux or temperature inhomogeneities near the surface (pt(k=1)) are additionally regarded (see Shen and LeClerc (1995, Q.J.R. Meteorol. Soc., 1209)). This condition is only permitted with the Prandtl-layer switched on ([#prandtl_layer prandtl_layer]), otherwise the run is terminated.\\\\ Since at the bottom boundary of the model the vertical velocity disappears (w(k=0) = 0.0), the consistent Neumann condition ('' 'neumann' '' or '' 'neumann+inhomo' '') dp/dz = 0 should be used, which leaves the vertical component w unchanged when the pressure solver is applied. Simultaneous use of the Neumann boundary conditions both at the bottom and at the top boundary ([#bc_p_t bc_p_t]) usually yields no consistent solution for the perturbation pressure and should be avoided. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_p_t '''bc_p_t'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'dirichlet' }}} {{{#!td Top boundary condition of the perturbation pressure.\\\\ Allowed values are '' 'dirichlet' '' (p(k=nz+1)= 0.0) or '' 'neumann' '' (p(k=nz+1)=p(k=nz)).\\\\ Simultaneous use of Neumann boundary conditions both at the top and bottom boundary ([#bc_p_b bc_p_b]) usually yields no consistent solution for the perturbation pressure and should be avoided. Since at the bottom boundary the Neumann condition is a good choice (see [#bc_p_b bc_p_b]), a Dirichlet condition should be set at the top boundary. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_pt_b '''bc_pt_b'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'dirichlet' }}} {{{#!td Bottom boundary condition of the potential temperature.\\\\ Allowed values are '' 'dirichlet' '' (pt(k=0) = const. = [#pt_surface pt_surface] + [#pt_surface_initial_change pt_surface_initial_change]; the user may change this value during the run using [#user-defined] code) and '' 'neumann' '' (pt(k=0)=pt(k=1)). When a constant surface sensible heat flux is used ([#surface_heatflux surface_heatflux]), '''bc_pt_b''' = '' 'neumann' '' must be used, because otherwise the resolved scale may contribute to the surface flux so that a constant value cannot be guaranteed.\\\\ In the coupled atmosphere executable, '''bc_pt_b''' is internally set and does not need to be prescribed. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_pt_t '''bc_pt_t'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'initial_gradient' }}} {{{#!td Top boundary condition of the potential temperature.\\\\ Allowed are the values '' 'dirichlet' '' (pt(k=nz+1) does not change during the run), '' 'neumann' '' (pt(k=nz+1)=pt(k=nz)), and '' 'initial_gradient' ''. With the '' 'initial_gradient' ''-condition the value of the temperature gradient at the top is calculated from the initial temperature profile (see [#pt_surface pt_surface], [#pt_vertical_gradient pt_vertical_gradient]) by bc_pt_t_val = (pt_init(k=nz+1) - pt_init(k=nz)) / dzu(nz+1). Using this value (assumed constant during the run) the temperature boundary values are calculated as pt(k=nz+1) = pt(k=nz) + bc_pt_t_val * dzu(nz+1) (up to k=nz the prognostic equation for the temperature is solved). When a constant sensible heat flux is used at the top boundary ([#top_heatflux top_heatflux]), '''bc_pt_t''' = '' 'neumann' '' must be used, because otherwise the resolved scale may contribute to the top flux so that a constant value cannot be guaranteed. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_q_b '''bc_q_b'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'dirichlet' }}} {{{#!td Bottom boundary condition of the specific humidity / total water content.\\\\ Allowed values are '' 'dirichlet' '' (q(k=0) = const. = [#q_surface q_surface] + [#q_surface_initial_change q_surface_initial_change]; the user may change this value during the run using [#user-defined] code) and '' 'neumann' '' (q(k=0)=q(k=1)). When a constant surface latent heat flux is used ([#surface_waterflux surface_waterflux]), '''bc_q_b''' = '' 'neumann' '' must be used, because otherwise the resolved scale may contribute to the surface flux so that a constant value cannot be guaranteed. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_q_t '''bc_q_t'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'neumann' }}} {{{#!td Top boundary condition of the specific humidity / total water content.\\\\ Allowed are the values '' 'dirichlet' '' (q(k=nz) and q(k=nz+1) do not change during the run) and '' 'neumann' ''. With the Neumann boundary condition the value of the humidity gradient at the top is calculated from the initial humidity profile (see [#q_surface q_surface], [#q_vertical_gradient q_vertical_gradient]) by: bc_q_t_val = ( q_init(k=nz) - q_init(k=nz-1)) / dzu(nz). Using this value (assumed constant during the run) the humidity boundary values are calculated as q(k=nz+1) =q(k=nz) + bc_q_t_val * dzu(nz+1) (up tp k=nz the prognostic equation for q is solved). }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_s_b '''bc_s_b'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'dirichlet' }}} {{{#!td Bottom boundary condition of the scalar concentration.\\\\ Allowed values are '' 'dirichlet' '' (s(k=0) = const. = [#s_surface s_surface] + [#s_surface_initial_change s_surface_initial_change]; the user may change this value during the run using [#user-defined] code) and '' 'neumann' '' (s(k=0) = s(k=1)). When a constant surface concentration flux is used ([#surface_scalarflux surface_scalarflux]), '''bc_s_b''' = '' 'neumann' '' must be used, because otherwise the resolved scale may contribute to the surface flux so that a constant value cannot be guaranteed. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_s_t '''bc_s_t'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'neumann' }}} {{{#!td Top boundary condition of the scalar concentration.\\\\ Allowed are the values '' 'dirichlet' '' (s(k=nz) and s(k=nz+1) do not change during the run) and '' 'neumann' ''. With the Neumann boundary condition the value of the scalar concentration gradient at the top is calculated from the initial scalar concentration profile (see [#s_surface s_surface], [#s_vertical_gradient s_vertical_gradient]) by: bc_s_t_val = (s_init(k=nz) - s_init(k=nz-1)) / dzu(nz). Using this value (assumed constant during the run) the concentration boundary values are calculated as s(k=nz+1) = s(k=nz) + bc_s_t_val * dzu(nz+1) (up to k=nz the prognostic equation for the scalar concentration is solved). }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_sa_t '''bc_sa_t'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'neumann' }}} {{{#!td Top boundary condition of the salinity.\\\\ This parameter only comes into effect for ocean runs (see parameter [#ocean ocean]).\\\\ Allowed are the values '' 'dirichlet' '' (sa(k=nz+1) does not change during the run) and '' 'neumann' '' (sa(k=nz+1)=sa(k=nz)).\\\\ When a constant salinity flux is used at the top boundary ([#top_salinityflux top_salinityflux]), '''bc_sa_t''' = '' 'neumann' '' must be used, because otherwise the resolved scale may contribute to the top flux so that a constant value cannot be guaranteed. }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_uv_b '''bc_uv_b'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'dirichlet' }}} {{{#!td Bottom boundary condition of the horizontal velocity components u and v.\\\\ Allowed values are '' 'dirichlet' '' and '' 'neumann' ''. '''bc_uv_b''' = '' 'dirichlet' '' yields the no-slip condition with u=v=0 at the bottom. Due to the staggered grid u(k=0) and v(k=0) are located at z = - 0,5 * [#dz dz] (below the bottom), while u(k=1) and v(k=1) are located at z = +0,5 * dz. u=v=0 at the bottom is guaranteed using mirror boundary condition: u(k=0) = - u(k=1) and v(k=0) = - v(k=1) The Neumann boundary condition yields the free-slip condition with u(k=0) = u(k=1) and v(k=0) = v(k=1). With Prandtl - layer switched on (see [#prandtl_layer prandtl_layer]), the free-slip condition is not allowed (otherwise the run will be terminated). }}} |---------------- {{{#!td style="vertical-align:top" [=#bc_uv_t '''bc_uv_t'''] }}} {{{#!td style="vertical-align:top" C*20 }}} {{{#!td style="vertical-align:top" 'dirichlet' }}} {{{#!td Top boundary condition of the horizontal velocity components u and v.\\\\ Allowed values are '' 'dirichlet' '', '' 'dirichlet_0' '' and '' 'neumann' ''. The Dirichlet condition yields u(k=nz+1) = ug(nz+1) and v(k=nz+1) = vg(nz+1), Neumann condition yields the free-slip condition with u(k=nz+1) = u(k=nz) and v(k=nz+1) = v(k=nz) (up to k=nz the prognostic equations for the velocities are solved). The special condition '' 'dirichlet_0' '' can be used for channel flow, it yields the no-slip condition u(k=nz+1) = ug(nz+1) = 0 and v(k=nz+1) = vg(nz+1) = 0. In the coupled ocean executable, bc_uv_t is internally set ('neumann') and does not need to be prescribed. }}} |---------------- {{{#!td style="vertical-align:top" [=#bottom_salinityflux '''bottom_salinityflux'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" 0.0 }}} {{{#!td Kinematic salinity flux near the surface (in psu m/s).\\\\ This parameter only comes into effect for ocean runs (see parameter [#ocean ocean]).\\\\ The respective salinity flux value is used as bottom (horizontally homogeneous) boundary condition for the salinity equation. This additionally requires that a Neumann condition must be used for the salinity, which is currently the only available condition. }}} |---------------- {{{#!td style="vertical-align:top" [=# ''''''] }}} {{{#!td style="vertical-align:top" }}} {{{#!td style="vertical-align:top" }}} {{{#!td }}} [[BR]] [=#ini '''Initialization:]\\ ||='''Parameter Name''' =||='''FORTRAN Type''' =||='''Default Value''' =||='''Explanation''' =|| |---------------- {{{#!td style="vertical-align:top; text-align:left;width: 150px" [=# ''''''] }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 50px" }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 100px" }}} {{{#!td }}} |---------------- {{{#!td style="vertical-align:top" [=# ''''''] }}} {{{#!td style="vertical-align:top" }}} {{{#!td style="vertical-align:top" }}} {{{#!td }}} [[BR]] [=#topo '''Topography:]\\ ||='''Parameter Name''' =||='''FORTRAN Type''' =||='''Default Value''' =||='''Explanation''' =|| |---------------- {{{#!td style="vertical-align:top; text-align:left;width: 150px" [=#building_height '''building_height'''] }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 50px" R }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 100px" 50.0 }}} {{{#!td Height of a single building in m.\\\\ '''building_height''' must be less than the height of the model domain. This parameter requires the use of [#topography topography] = '' 'single_building'.'' }}} |---------------- {{{#!td style="vertical-align:top" [=#building_length_x '''building_length_x'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" 50.0 }}} {{{#!td Width of a single building in m.\\\\ Currently, '''building_length_x''' must be at least 3 * [#dx dx] and no more than ( [#nx nx] - 1 ) * dx - [#building_wall_left building_wall_left]. This parameter requires the use of [#topography topography] = '' 'single_building'.'' }}} |---------------- {{{#!td style="vertical-align:top" [=#building_length_y '''building_length_y'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" 50.0 }}} {{{#!td Depth of a single building in m.\\\\ Currently, '''building_length_y''' must be at least 3 * [#dy dy] and no more than ( [#ny ny] - 1 ) * dy - [#building_wall_south building_wall_south]. This parameter requires the use of [#topography topography] = '' 'single_building'.'' }}} |---------------- {{{#!td style="vertical-align:top" [=#building_wall_left '''building_wall_left'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" building centered in x-direction }}} {{{#!td x-coordinate of the left building wall (distance between the left building wall and the left border of the model domain) in m.\\\\ Currently, '''building_wall_left''' must be at least 1 * [#dx dx] and less than ( [#nx nx] - 1 ) * dx - [#building_length_x building_length_x]. This parameter requires the use of [#topography topography] = '' 'single_building'.''\\\\ The default value '''building_wall_left''' = ( ( nx + 1 ) * dx - building_length_x ) / 2 centers the building in x-direction. Due to the staggered grid the building will be displaced by -0.5 dx in x-direction and -0.5 [#dy dy] in y-direction. }}} |---------------- {{{#!td style="vertical-align:top" [=#building_wall_south '''building_wall_south'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" building centered in y-direction }}} {{{#!td y-coordinate of the South building wall (distance between the South building wall and the South border of the model domain) in m.\\\\ Currently, '''building_wall_south''' must be at least 1 * [#dy dy] and less than ( [#ny ny] - 1 ) * dy - [#building_length_y building_length_y]. This parameter requires the use of [#topography topography] = '' 'single_building'.''\\\\ The default value '''building_wall_south''' = ( ( ny + 1 ) * dy - building_length_y ) / 2 centers the building in y-direction. Due to the staggered grid the building will be displaced by -0.5 [#dx dx] in x-direction and -0.5 dy in y-direction. }}} |---------------- {{{#!td style="vertical-align:top" [=#canyon_height '''canyon_height'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" 50.0 }}} {{{#!td Street canyon height in m.\\\\ '''canyon_height''' must be less than the height of the model domain. This parameter requires [#topography topography] = '' 'single_street_canyon'.'' }}} |---------------- {{{#!td style="vertical-align:top" [=#canyon_width_x '''canyon_width_x'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" 9999999.9 }}} {{{#!td Street canyon width in x-direction in m.\\\\ Currently, '''canyon_width_x''' must be at least 3 * [#dx dx] and no more than ( [#nx nx] - 1 ) * dx - [#canyon_wall_left canyon_wall_left]. This parameter requires [#topography topography] = '' 'single_street_canyon'.'' A non-default value implies a canyon orientation in y-direction. }}} |---------------- {{{#!td style="vertical-align:top" [=#canyon_width_y '''canyon_width_y'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" 9999999.9 }}} {{{#!td Street canyon width in y-direction in m.\\\\ Currently, '''canyon_width_y''' must be at least 3 * [#dy dy] and no more than ( [#ny ny] - 1 ) * dy - [#canyon_wall_south canyon_wall_south]. This parameter requires [#topography topography] = '' 'single_street_canyon'.'' A non-default value implies a canyon orientation in x-direction. }}} |---------------- {{{#!td style="vertical-align:top" [=#canyon_wall_left '''canyon_wall_left'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" canyon centered in x-direction }}} {{{#!td x-coordinate of the left canyon wall (distance between the left canyon wall and the left border of the model domain) in m.\\\\ Currently, '''canyon_wall_left''' must be at least 1 * [#dx dx] and less than ( [#nx nx] - 1 ) * dx - [#canyon_width_x canyon_width_x]. This parameter requires [#topography topography] = '' 'single_street_canyon'.''\\\\ The default value '''canyon_wall_left''' = ( ( nx + 1 ) * dx - canyon_width_x ) / 2 centers the canyon in x-direction. }}} |---------------- {{{#!td style="vertical-align:top" [=#canyon_wall_south '''canyon_wall_south'''] }}} {{{#!td style="vertical-align:top" R }}} {{{#!td style="vertical-align:top" canyon centered in y-direction }}} {{{#!td y-coordinate of the South canyon wall (distance between the South canyon wall and the South border of the model domain) in m.\\\\ Currently, '''canyon_wall_south''' must be at least 1 * [#dy dy] and less than ( [#ny ny] - 1 ) * dy - [#canyon_width_y canyon_width_y]. This parameter requires [#topography topography] = '' 'single_street_canyon'.''\\\\ The default value '''canyon_wall_south''' = ( ( ny + 1 ) * dy - canyon_width_y ) / 2 centers the canyon in y-direction. }}} |---------------- {{{#!td style="vertical-align:top" [=# ''''''] }}} {{{#!td style="vertical-align:top" }}} {{{#!td style="vertical-align:top" }}} {{{#!td }}} |---------------- {{{#!td style="vertical-align:top" [=#topography '''topography'''] }}} {{{#!td style="vertical-align:top" C*40 }}} {{{#!td style="vertical-align:top" '' 'flat' '' }}} {{{#!td Topography mode.\\\\ The user can choose between the following modes:\\\\ '' 'flat' '' Flat surface. '' 'single_building' '' Flow around a single rectangular building mounted on a flat surface. The building size and location can be specified by the parameters [#building_height building_height], [#building_length_x building_length_x], [#building_length_y building_length_y], [#building_wall_left building_wall_left] and [#building_wall_south building_wall_south]. '' 'single_street_canyon' '' Flow over a single, quasi-2D street canyon of infinite length oriented either in x- or in y-direction. The canyon size, orientation and location can be specified by the parameters [#canyon_height canyon_height] plus '''either''' [#canyon_width_x canyon_width_x] and [#canyon_wall_left canyon_wall_left] '''or''' [#canyon_width_y canyon_width_y] and [#canyon_wall_south canyon_wall_south]. '' 'read_from_file' '' Flow around arbitrary topography. This mode requires the input file [#TOPOGRAPHY_DATA TOPOGRAPHY_DATA]. This file contains the arbitrary topography height information in m. These data must exactly match the horizontal grid.\\\\ Alternatively, the user may add code to the user interface subroutine [#user_init_grid user_init_grid] to allow further topography modes. These require to explicitly set the [#topography_grid_convention topography_grid_convention] to either '' 'cell_edge' '' or '' 'cell_center' ''.\\\\ Non-flat '''topography''' modes may assign a kinematic sensible [#wall_heatflux wall_heatflux] and a kinematic [#wall_humidityflux wall_humidityflux] (requires [#humidity humidity] = .T.) or a [#wall_scalarflux wall_scalarflux] (requires [#passive_scalar passive_scalar] = .T.) at the five topography faces.\\\\ All non-flat '''topography''' modes require the use of [#momentum_advec momentum_advec] = [#scalar_advec scalar_advec] = '' 'pw-scheme' '', [#psolver psolver] /= '' 'sor' '', [#alpha_surface alpha_surface] = 0.0, [#galilei_transformation galilei_transformation] = ''.F.'', [#cloud_physics cloud_physics] = ''.F.'', [#cloud_droplets cloud_droplets] = ''.F.'', and [#prandtl_layer prandtl_layer] = ''.T.''.\\\\ Note that an inclined model domain requires the use of [#topography topography] = '' 'flat' '' and a nonzero alpha_surface. }}} |---------------- {{{#!td style="vertical-align:top" [=# ''''''] }}} {{{#!td style="vertical-align:top" }}} {{{#!td style="vertical-align:top" }}} {{{#!td }}} [[BR]] [=#canopy '''Canopy:]\\ ||='''Parameter Name''' =||='''FORTRAN Type''' =||='''Default Value''' =||='''Explanation''' =|| |---------------- {{{#!td style="vertical-align:top;width: 150px" [=#canopy_mode '''canopy_mode'''] }}} {{{#!td style="vertical-align:top;width: 50px" C*20 }}} {{{#!td style="vertical-align:top;width: 100px" 'block' }}} {{{#!td Canopy mode.\\\\ Besides using the default value, that will create a horizontally homogeneous plant canopy that extends over the total horizontal extension of the model domain, the user may add code to the user interface (see [#3.5.1 3.5.1]) subroutine {{{user_init_plant_canopy}}} to allow further canopy modes.\\\\ The setting of '''canopy_mode''' becomes only active, if [#plant_canopy plant_canopy] has been set ''.T.'' and a non-zero [#drag_coefficient drag_coefficient] has been defined. }}} |---------------- {{{#!td style="vertical-align:top" [=# ''''''] }}} {{{#!td style="vertical-align:top" }}} {{{#!td style="vertical-align:top" }}} {{{#!td }}} [[BR]] [=#others '''Others:]\\ ||='''Parameter Name''' =||='''FORTRAN Type''' =||='''Default Value''' =||='''Explanation''' =|| |---------------- {{{#!td style="vertical-align:top; text-align:left;width: 150px" [=# ''''''] }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 50px" }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 100px" }}} {{{#!td }}} |---------------- {{{#!td style="vertical-align:top" [=# ''''''] }}} {{{#!td style="vertical-align:top" }}} {{{#!td style="vertical-align:top" }}} {{{#!td }}}