Parameter Name | FORTRAN Type | Default Value | Explanation
|
---|
ocean
|
L
|
.F.
|
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.
- 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, bottom_salinityflux, sa_surface, sa_vertical_gradient, sa_vertical_gradient_level, and top_salinityflux.
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 = 'leapfrog' or 'leapfrog+euler' as well as scalar_advec = 'ups-scheme'.
|
cloud_droplets
|
L
|
.F.
|
Parameter to switch on usage of cloud droplets.
Cloud droplets require to use particles (i.e. the NAMELIST group particles_par? has to be included in the parameter file). Then each particle is a representative for a certain number of droplets. The droplet features (number of droplets, initial radius, etc.) can be steered with the respective particle parameters (see e.g. radius). The real number of initial droplets in a grid cell is equal to the initial number of droplets (defined by the particle source parameters pst, psl, psr, pss, psn, psb, pdx, pdy and pdz) times the initial_weighting_factor.
In case of using cloud droplets, the default condensation scheme in PALM cannot be used, i.e. cloud_physics must be set .F..
|
cloud_physics
|
L
|
.F.
|
Parameter to switch on the condensation scheme.
For cloud_physics = .T., equations for the liquid water content and the liquid water potential temperature are solved instead of those for specific humidity and potential temperature. Note that a grid volume is assumed to be either completely saturated or completely unsaturated (0%-or-100%-scheme). A simple precipitation scheme can additionally be switched on with parameter precipitation. Also cloud-top cooling by longwave radiation can be utilized (see radiation).
cloud_physics = .T. requires humidity = .T..
Detailed information about the condensation scheme is given in the description of the cloud physics module? (pdf-file, only in German).
This condensation scheme is not allowed if cloud droplets are simulated explicitly (see cloud_droplets).
|
conserve_volume_flow
|
L
|
.F.
|
Conservation of volume flow in x- and y-direction.
conserve_volume_flow = .T. guarantees that the volume flow through the xz- and yz-cross-sections of the total model domain remains constant throughout the run depending on the chosen conserve_volume_flow_mode.
Note that conserve_volume_flow = .T. requires dp_external = .F..
|
conserve_volume_flow_mode
|
C*16
|
'default'
|
Modus of volume flow conservation.
The following values are allowed:
'default'
Per default, PALM uses 'initial_profiles' for cyclic lateral boundary conditions (bc_lr = 'cyclic' and bc_ns = 'cyclic' ) and 'inflow_profile' for non-cyclic lateral boundary conditions (bc_lr /= 'cyclic' or bc_ns /= 'cyclic' ).
'initial_profiles'
The target volume flow is calculated at t=0 from the initial profiles of u and v. This setting is only allowed for cyclic lateral boundary conditions (bc_lr = 'cyclic' and bc_ns = 'cyclic' ).
'inflow_profile'
The target volume flow is calculated at every timestep from the inflow profile of u or v, respectively. This setting is only allowed for non-cyclic lateral boundary conditions (bc_lr /= 'cyclic' or bc_ns /= 'cyclic' ).
'bulk_velocity'
The target volume flow is calculated from a predefined bulk velocity (see u_bulk and v_bulk). This setting is only allowed for cyclic lateral boundary conditions (bc_lr = 'cyclic' and bc_ns = 'cyclic' ).
Note that conserve_volume_flow_mode only comes into effect if conserve_volume_flow = .T..
|
coupling_start_time
|
R
|
0.0
|
Simulation time of precursor run.
Sets the time period a precursor run shall run uncoupled. This parameter is used to set up the precursor run control for atmosphere-ocean-coupled runs. It has to be set individually to the atmospheric / oceanic precursor run. The time in the data output will show negative values during the precursor run. See documentation for further information.
|
dp_external
|
L
|
.F.
|
External pressure gradient switch.
This parameter is used to switch on/off an external pressure gradient as driving force. The external pressure gradient is controlled by the parameters dp_smooth, dp_level_b and dpdxy.
Note that dp_external = .T. requires conserve_volume_flow = .F.. It is normally recommended to disable the Coriolis force by setting omega = 0.0.
|
dp_smooth
|
L
|
.F.
|
Vertically smooth the external pressure gradient using a sinusoidal smoothing function.
This parameter only applies if dp_external = .T.. It is useful in combination with dp_level_b >> 0 to generate a non-accelerated boundary layer well below dp_level_b.
|
dp_level_b
|
R
|
0.0
|
Lower limit of the vertical range for which the external pressure gradient is applied (in m).
This parameter only applies if dp_external = .T.. It must hold the condition zu(0) <= dp_level_b <= zu(nz). It can be used in combination with dp_smooth = .T. to generate a non-accelerated boundary layer well below dp_level_b if dp_level_b >> 0.
Note that there is no upper limit of the vertical range because the external pressure gradient is always applied up to the top of the model domain.
|
dpdxy
|
R(2)
|
2 * 0.0
|
Values of the external pressure gradient applied in x- and y-direction, respectively (in Pa/m).
This parameter only applies if dp_external = .T.. It sets the pressure gradient values. Negative values mean an acceleration, positive values mean deceleration. For example, dpdxy = -0.0002, 0.0, drives the flow in positive x-direction.
|
dt_coupling
|
R
|
9999999.9
|
Temporal interval for the data exchange in case of runs with coupled models? (e.g. atmosphere - ocean) (in s).
This parameter has an effect only in case of a run with coupled models. It is available starting from version 3.3a.
This parameter specifies the temporal interval at which data are exchanged at the interface between coupled models (currently: interface between atmosphere and ocean). If this parameter is not explicitly specified in the parameter files for both coupled models, or if there is an inconsistency between its values for both coupled models, the execution will terminate and an informative error message? will be given. In order to ensure synchronous coupling throughout the simulation, dt_coupling should be chosen larger than dt_max.
|
e_init
|
R
|
0.0
|
Initial subgrid-scale TKE in m2s-2.
This option prescribes an initial subgrid-scale TKE from which the initial diffusion coefficients Km and Kh will be calculated if e_init is positive. This option only has an effect if km_constant is not set.
|
e_min
|
R
|
0.0
|
Minimum subgrid-scale TKE in m2s-2.
This option adds artificial viscosity to the flow by ensuring that the subgrid-scale TKE does not fall below the minimum threshold e_min.
|
galilei_transformation
|
L
|
.F.
|
Application of a Galilei-transformation to the coordinate system of the model.
With galilei_transformation = .T., a so-called Galilei-transformation is switched on which ensures that the coordinate system of the model is moved along with the geostrophical wind. Alternatively, the model domain can be moved along with the averaged horizontal wind (see use_ug_for_galilei_tr, this can and will naturally change in time). With this method, numerical inaccuracies of the Piascek - Williams - scheme (concerns in particular the momentum advection) are minimized. Beyond that, in the majority of cases the lower relative velocities in the moved system permit a larger time step (dt). Switching the transformation on is only worthwhile if the geostrophical wind (ug, vg) and the averaged horizontal wind clearly deviate from the value 0. In each case, the distance the coordinate system has been moved is written to the file RUN_CONTROL.
Non-cyclic lateral boundary conditions (see bc_lr and bc_ns), the specification of a gestrophic wind that is not constant with height as well as e.g. stationary inhomogeneities at the bottom boundary do not allow the use of this transformation.
|
humidity
|
L
|
.F.
|
Parameter to switch on the prognostic equation for specific humidity q.
The initial vertical profile of q can be set via parameters q_surface, q_vertical_gradient and q_vertical_gradient_level. Boundary conditions can be set via q_surface_initial_change and surface_waterflux.
If the condensation scheme is switched on (cloud_physics = .T.), q becomes the total liquid water content (sum of specific humidity and liquid water content).
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
Parameter Name | FORTRAN Type | Default Value | Explanation
|
---|
dx
|
R
|
1.0
|
Horizontal grid spacing along the x-direction (in m).
Along x-direction only a constant grid spacing is allowed.
For coupled runs (see 3.8?) this parameter must be equal in both parameter files PARIN and PARIN_O.
|
dy
|
R
|
1.0
|
Horizontal grid spacing along the y-direction (in m).
Along y-direction only a constant grid spacing is allowed.
For coupled runs (see 3.8?) this parameter must be equal in both parameter files PARIN and PARIN_O.
|
dz
|
R
| |
Vertical grid spacing (in m).
This parameter must be assigned by the user, because no default value is given.
By default, the model uses constant grid spacing along z-direction, but it can be stretched using the parameters dz_stretch_level and dz_stretch_factor. In case of stretching, a maximum allowed grid spacing can be given by dz_max.
Assuming a constant dz, the scalar levels (zu) are calculated directly by:
zu(0) = - dz * 0.5
zu(1) = dz * 0.5
The w-levels lie half between them:
zw(k) = ( zu(k) + zu(k+1) ) * 0.5
|
dz_max
|
R
|
9999999.9
|
Allowed maximum vertical grid spacing (in m).
If the vertical grid is stretched (see dz_stretch_factor and dz_stretch_level), dz_max can be used to limit the vertical grid spacing.
|
dz_stretch_factor
|
R
|
1.08
|
Stretch factor for a vertically stretched grid (see dz_stretch_level).
The stretch factor should not exceed a value of approx. 1.10 - 1.12, otherwise the discretization errors due to the stretched grid are not negligible any more. (refer Kalnay de Rivas)
|
dz_stretch_level
|
R
|
100000.0
|
Height level above/below which the grid is to be stretched vertically (in m).
For ocean = .F., dz_stretch_level is the height level (in m) above which the grid is to be stretched vertically. The vertical grid spacings dz above this level are calculated as
dz(k+1) = dz(k) * dz_stretch_factor
and used as spacings for the scalar levels (zu). The w-levels are then defined as:
zw(k) = ( zu(k) + zu(k+1) ) * 0.5.
For ocean = .T., dz_stretch_level is the height level (in m, negative) below which the grid is to be stretched vertically. The vertical grid spacings dz below this level are calculated correspondingly as
dz(k-1) = dz(k) * dz_stretch_factor.
|
grid_matching
|
C*6
|
'strict'
|
Variable to adjust the subdomain sizes in parallel runs.
For grid_matching = 'strict' , the subdomains are forced to have an identical size on all processors. In this case the processor numbers in the respective directions of the virtual processor net must fulfill certain divisor conditions concerning the grid point numbers in the three directions (see nx, ny and nz). Advantage of this method is that all PEs bear the same computational load.
There is no such restriction by default, because then smaller subdomains are allowed on those processors which form the right and/or north boundary of the virtual processor grid. On all other processors the subdomains are of same size. Whether smaller subdomains are actually used, depends on the number of processors and the grid point numbers used. Information about the respective settings are given in file RUN_CONTROL.
When using a multi-grid method for solving the Poisson equation (see psolver) only grid_matching = 'strict' is allowed.
Note:
In some cases for small processor numbers there may be a very bad load balancing among the processors which may reduce the performance of the code.
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
Parameter Name | FORTRAN Type | Default Value | Explanation
|
---|
call_psolver_at_all_substeps
|
L
|
.T.
|
Switch to steer the call of the pressure solver.
In order to speed-up performance, the Poisson equation for perturbation pressure (see psolver) can be called only at the last substep of multistep Runge-Kutta timestep schemes (see 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.
|
cfl_factor
|
R
|
0.1, 0.8 or 0.9 (see right)
|
Time step limiting factor.
In the model, the maximum allowed time step according to CFL and diffusion-criterion dt_max is reduced by dt = dt_max * cfl_factor in order to avoid stability problems which may arise in the vicinity of the maximum allowed timestep. The condition 0.0 < cfl_factor < 1.0 applies.
The default value of cfl_factor depends on the timestep_scheme used:
For the third order Runge-Kutta scheme it is cfl_factor = 0.9.
In case of the leapfrog scheme a quite restrictive value of cfl_factor = 0.1 is used because for larger values the velocity divergence significantly effects the accuracy of the model results. Possibly larger values may be used with the leapfrog scheme but these are to be determined by appropriate test runs.
The default value for the Euler scheme is cfl_factor = 0.8.
|
cycle_mg
|
C*1
|
'w'
|
Type of cycle to be used with the multi-grid method.
This parameter determines which type of cycle is applied in the multi-grid method used for solving the Poisson equation for perturbation pressure (see psolver). It defines in which way it is switched between the fine and coarse grids. So-called v- and w-cycles are realized (i.e. cycle_mg may be assigned the values 'v' or 'w' ). The computational cost of w-cycles is much higher than that of v-cycles, however, w-cycles give a much better convergence.
|
fft_method
|
C*20
|
'system-specific'
|
FFT-method to be used.
The fast fourier transformation (FFT) is used for solving the perturbation pressure equation with a direct method (see psolver) and for calculating power spectra (see optional software packages, 4.2?).
By default, system-specific, optimized routines from external vendor libraries are used. However, these are available only on certain computers and there are more or less severe restrictions concerning the number of gridpoints to be used with them.
There are two other PALM internal methods available on every machine (their respective source code is part of the PALM source code):
1.: The Temperton-method from Clive Temperton (ECWMF) which is computationally very fast and switched on with fft_method = 'temperton-algorithm'. The number of horizontal gridpoints (nx+1, ny+1) to be used with this method must be composed of prime factors 2, 3 and 5.
2.: The Singleton-method which is very slow but has no restrictions concerning the number of gridpoints to be used with, switched on with fft_method = 'singleton-algorithm'.
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
Parameter Name | FORTRAN Type | Default Value | Explanation
|
---|
adjust_mixing_length
|
L
|
.F.
|
Near-surface adjustment of the mixing length to the Prandtl-layer law.
Usually the mixing length in LES models lLES 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 lPR = kappa * z/phi is calculated and the mixing length actually used in the model is set l = MIN (lLES , lPR). 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) '(u*)** 2+neumann' should always be set as the lower boundary condition for the TKE (see 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 Km). A warning is given, if this is not the case.
|
bc_e_b
|
C*20
|
'neumann'
|
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). 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)).
|
bc_lr
|
C*20
|
'cyclic'
|
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 psolver) and it also requires cyclic boundary conditions along y (see 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 - 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 and 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 create_disturbances. The horizontal range to which these perturbations are applied is controlled by the parameters inflow_disturbance_begin and inflow_disturbance_end. The vertical range and the perturbation amplitude are given by disturbance_level_b, disturbance_level_t, and disturbance_amplitude. The time interval at which perturbations are to be imposed is set by dt_disturb.
In case of non-cyclic horizontal boundaries 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.
|
bc_ns
|
C*20
|
'cyclic'
|
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 psolver) and it also requires cyclic boundary conditions along x (see
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 - 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_p_b
|
C*20
|
'neumann'
|
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), 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) usually yields no consistent solution for the perturbation pressure and should be avoided.
|
bc_p_t
|
C*20
|
'dirichlet'
|
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) 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), a Dirichlet condition should be set at the top boundary.
|
bc_pt_b
|
C*20
|
'dirichlet'
|
Bottom boundary condition of the potential temperature.
Allowed values are 'dirichlet' (pt(k=0) = const. = pt_surface + 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), 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.
|
bc_pt_t
|
C*20
|
'initial_gradient'
|
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_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), 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.
|
bc_q_b
|
C*20
|
'dirichlet'
|
Bottom boundary condition of the specific humidity / total water content.
Allowed values are 'dirichlet' (q(k=0) = const. = q_surface + 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), 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.
|
bc_q_t
|
C*20
|
'neumann'
|
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_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).
|
bc_s_b
|
C*20
|
'dirichlet'
|
Bottom boundary condition of the scalar concentration.
Allowed values are 'dirichlet' (s(k=0) = const. = s_surface + 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), 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.
|
bc_s_t
|
C*20
|
'neumann'
|
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_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).
|
bc_sa_t
|
C*20
|
'neumann'
|
Top boundary condition of the salinity.
This parameter only comes into effect for ocean runs (see parameter 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), 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.
|
bc_uv_b
|
C*20
|
'dirichlet'
|
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 (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), the free-slip condition is not allowed (otherwise the run will be terminated).
|
bc_uv_t
|
C*20
|
'dirichlet'
|
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.
|
bottom_salinityflux
|
R
|
0.0
|
Kinematic salinity flux near the surface (in psu m/s).
This parameter only comes into effect for ocean runs (see parameter 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.
|
inflow_damping_height
|
R
|
from precursor run
|
Height below which the turbulence signal is used for turbulence recycling (in m).
In case of a turbulent inflow (see turbulent_inflow), this parameter defines the vertical thickness of the turbulent layer up to which the turbulence extracted at the recycling plane (see recycling_width) shall be imposed to the inflow. Above this level the turbulence signal is linearly damped to zero. The transition range within which the signal falls to zero is given by the parameter inflow_damping_width.
By default, this height is set as the height of the convective boundary layer as calculated from a precursor run. See chapter 3.9? about proper settings for getting this CBL height from a precursor run.
|
inflow_damping_width
|
R
|
0.1 * inflow_damping
_height
|
Transition range within which the turbulance signal is damped to zero (in m).
See inflow_damping_height for explanation.
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
Parameter Name | FORTRAN Type | Default Value | Explanation
|
---|
building_height
|
R
|
50.0
|
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 = 'single_building'.
|
building_length_x
|
R
|
50.0
|
Width of a single building in m.
Currently, building_length_x must be at least 3 * dx and no more than ( nx - 1 ) * dx - building_wall_left. This parameter requires the use of topography = 'single_building'.
|
building_length_y
|
R
|
50.0
|
Depth of a single building in m.
Currently, building_length_y must be at least 3 * dy and no more than ( ny - 1 ) * dy - building_wall_south. This parameter requires the use of topography = 'single_building'.
|
building_wall_left
|
R
|
building centered in x-direction
|
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 and less than ( nx - 1 ) * dx - building_length_x. This parameter requires the use of 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 in y-direction.
|
building_wall_south
|
R
|
building centered in y-direction
|
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 and less than ( ny - 1 ) * dy - building_length_y. This parameter requires the use of 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 in x-direction and -0.5 dy in y-direction.
|
canyon_height
|
R
|
50.0
|
Street canyon height in m.
canyon_height must be less than the height of the model domain. This parameter requires topography = 'single_street_canyon'.
|
canyon_width_x
|
R
|
9999999.9
|
Street canyon width in x-direction in m.
Currently, canyon_width_x must be at least 3 * dx and no more than ( nx - 1 ) * dx - canyon_wall_left. This parameter requires topography = 'single_street_canyon'. A non-default value implies a canyon orientation in y-direction.
|
canyon_width_y
|
R
|
9999999.9
|
Street canyon width in y-direction in m.
Currently, canyon_width_y must be at least 3 * dy and no more than ( ny - 1 ) * dy - canyon_wall_south. This parameter requires topography = 'single_street_canyon'. A non-default value implies a canyon orientation in x-direction.
|
canyon_wall_left
|
R
|
canyon centered in x-direction
|
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 and less than ( nx - 1 ) * dx - canyon_width_x. This parameter requires topography = 'single_street_canyon'.
The default value canyon_wall_left = ( ( nx + 1 ) * dx - canyon_width_x ) / 2 centers the canyon in x-direction.
|
canyon_wall_south
|
R
|
canyon centered in y-direction
|
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 and less than ( ny - 1 ) * dy - canyon_width_y. This parameter requires topography = 'single_street_canyon'.
The default value canyon_wall_south = ( ( ny + 1 ) * dy - canyon_width_y ) / 2 centers the canyon in y-direction.
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
topography
|
C*40
|
'flat'
|
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_length_x, building_length_y, building_wall_left and 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 plus either canyon_width_x and canyon_wall_left or canyon_width_y and canyon_wall_south.
'read_from_file'
Flow around arbitrary topography.
This mode requires the input file 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 to allow further topography modes. These require to explicitly set the topography_grid_convention to either 'cell_edge' or 'cell_center' .
Non-flat topography modes may assign a kinematic sensible wall_heatflux and a kinematic wall_humidityflux (requires humidity = .T.) or a wall_scalarflux (requires passive_scalar = .T.) at the five topography faces.
All non-flat topography modes require the use of momentum_advec = scalar_advec = 'pw-scheme' , psolver /= 'sor' , alpha_surface = 0.0, galilei_transformation = .F., cloud_physics = .F., cloud_droplets = .F., and prandtl_layer = .T..
Note that an inclined model domain requires the use of topography = 'flat' and a nonzero alpha_surface.
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
Parameter Name | FORTRAN Type | Default Value | Explanation
|
---|
canopy_mode
|
C*20
|
'block'
|
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) subroutine user_init_plant_canopy to allow further canopy modes.
The setting of canopy_mode becomes only active, if plant_canopy has been set .T. and a non-zero drag_coefficient has been defined.
|
cthf
|
R
|
0.0
|
Average heat flux that is prescribed at the top of the plant canopy.
If plant_canopy is set .T., the user can prescribe a heat flux at the top of the plant canopy.
It is assumed that solar radiation penetrates the canopy and warms the foliage which, in turn, warms the air in contact with it.
Note: Instead of using the value prescribed by surface_heatflux, the near surface heat flux is determined from an exponential function that is dependent on the cumulative leaf_area_index (Shaw and Schumann (1992, Boundary Layer Meteorol., 61, 47-64)).
|
drag_coefficient
|
R
|
0.0
|
Drag coefficient used in the plant canopy model.
This parameter has to be non-zero, if the parameter plant_canopy is set .T..
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|
[=#<insert_parameter_name> <insert_parameter_name>]
|
<insert type>
|
<insert value>
|
<insert explanation>
|