4.2 Runtime parameters, particle parameters, and package parameters

Runtime parameters:



Parameter name Type

Default
value

Explanation
averaging_interval
R
0.0
Averaging interval for all output of temporally averaged data (in s).

This parameter defines the time interval length for temporally averaged data (vertical profiles, spectra, 2d cross-sections, 3d volume data). By default, data are not subject to temporal averaging. The interval length is limited by the parameter dt_data_output_av. In any case, averaging_interval <= dt_data_output_av must hold.

If an interval is defined, then by default the average is calculated from the data values of all timesteps lying within this interval. The number of time levels entering into the average can be reduced with the parameter dt_averaging_input.

If an averaging interval can not be completed at the end of a run, it will be finished at the beginning of the next restart run. Thus for restart runs, averaging intervals do not necessarily begin at the beginning of the run.

Parameters averaging_interval_pr and averaging_interval_sp can be used to define different averaging intervals for vertical profile data and spectra, respectively.

averaging_interval_pr

R
value of averaging_
interval

Averaging interval for output of vertical profiles to local file DATA_1D_PR_NETCDF and/or  PLOT1D_DATA (in s). 

If this parameter is given a non-zero value, temporally averaged vertical profile data are output. By default, profile data data are not subject to temporal averaging. The interval length is limited by the parameter dt_dopr. In any case averaging_interval_pr <= dt_dopr must hold.

If an interval is defined, then by default the average is calculated from the data values of all timesteps lying within this interval. The number of time levels entering into the average can be reduced with the parameter dt_averaging_input_pr.

If an averaging interval can not be completed at the end of a run, it will be finished at the beginning of the next restart run. Thus for restart runs, averaging intervals do not necessarily begin at the beginning of the run.

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 .

create_disturbances

L
.T.

Switch to impose random perturbations to the horizontal velocity field. 

With create_disturbances = .T., random perturbations can be imposed to the horizontal velocity field at certain times e.g. in order to trigger off the onset of convection, etc..

The temporal interval between these times can be steered with dt_disturb, the vertical range of the perturbations with disturbance_level_b and disturbance_level_t, and the perturbation amplitude with disturbance_amplitude. In case of non-cyclic lateral boundary conditions (see bc_lr and bc_ns), the horizontal range of the perturbations is determined by inflow_disturbance_begin and inflow_disturbance_end. A perturbation is added to each grid point with its individual value determined by multiplying the disturbance amplitude with a uniformly distributed random number. After this, the arrays of u and v are smoothed by applying a Shuman-filter twice and made divergence-free by applying the pressure solver.

The random number generator to be used can be chosen with random_generator.

As soon as the desired flow features have developed (e.g.  convection has started), further imposing of perturbations is not necessary and can be omitted (this does not hold for non-cyclic lateral boundaries!). This can be steered by assigning an upper limit value for the perturbation energy (the perturbation energy is defined by the deviation of the velocity from the mean flow) using the parameter disturbance_energy_limit. As soon as the perturbation energy has exceeded this energy limit, no more random perturbations are assigned

Timesteps where a random perturbation has been imposed are marked in the local file RUN_CONTROL by the character "D" appended to the values of the maximum horizontal velocities.

cross_normalized_x

C*10 
   (100)
100 * ' '

Type of normalization applied to the x-coordinate of vertical profiles to be plotted with profil.

This parameter only applies for  data_output_format = 'profil'.

If vertical profiles are plotted with the plot software profil (data on local file PLOT1D_DATA, parameters on local file PLOT1D_PAR) the x-values of the data points can be normalized with respect to certain quantities (e.g. the near-surface heat flux) in order to ensure a better comparability. This type of normalization then applies to all profiles of one coordinate system (panel). The normalization quantities are re-calculated for each output time of each individual profile. If temporally averaged profiles are output (see averaging_interval_pr), then the normalization quantities are also temporally averaged accordingly. If the value of a normalization quantity becomes zero, then normalization for the total respective coordinate system (panel) is switched off automatically (also for the y-axis).

By default, the normalization quantities are calculated as the horizontal mean of the total model domain and and these values are also used for the normalization of profiles from subdomains (see statistic_regions). Instead of this, they can be calculated from the data of a certain subdomain by using the parameter normalizing_region (however, they are used again for all subdomains and even for the total domain). 

The user can choose between the following normalization quantities:

'wpt0' Normalization with respect to the total surface sensible heat flux (k=0 ).
'ws2' Normalization with respect to w* 2 (square of the characteristic vertical wind speed of the CBL)
'tsw2' Normalization with respect to the square of the characteristic temperature of the CBL theta* (this is defined as ratio of the surface heat flux and w*).
'ws3' Normalization with respect to w* 3.
'ws2tsw' Normalization with respect to w*2theta* (for definition of theta* see 'tsw2').
'wstsw2' Normalization with respect to w*2 theta* (for definition of theta* see 'tsw2').

For each coordinate system (panel) to be drawn (see cross_profiles) an individual normalization quantity can be assigned. For example: if cross_normalized_x = 'ws2','ws3', then the x-values in the 1st coordinate system are normalized with respect to w*2 and in the 2nd system with respect to w*3. Data of the further coordinate systems (if any are to be drawn) are not normalized. 

Using a normalization leaves all vertical profile data on local file PLOT1D_DATA unaffected, it only affects the visualization. Within profil, the normalization is steered by parameter normx which may be changed subsequently by the user in the parameter file (local file PLOT1D_PAR).
 
The assigned normalization quantity is noted in the axes labels of the respective coordinate systems (see cross_xtext).

cross_normalized_y

C*10 
   (100)
100 * ' '

Type of normalization applied to the y-coordinate of vertical profiles to be plotted with profil

This parameter only applies for  data_output_format = 'profil'.

If vertical profiles are plotted with the plot software profil (data on local file PLOT1D_DATA, parameter on local file PLOT1D_PAR) the y-values of the data points can be normalized with respect to certain quantities (at present only the normalization with respect to the boundary layer height is possible) in order to ensure a better comparability.

The user can choose between the following normalization quantities:

'z_i' Normalization with respect to the boundary layer height (determined from the height where the heat flux achieves its minimum value).

For further explanations see cross_normalized_x.

cross_profiles

C*100 
   (100)
see right

Determines which vertical profiles are to be presented in which coordinate system if the plot software profil is used.  

This parameter only applies for  data_output_format = 'profil'.

The default assignment is: 

cross_profiles

    ' u v ',
    ' pt ', 
    ' w"pt" w*pt* w*pt*BC wpt wptBC ', 
    ' w"u" w*u* wu w"v"w*v* wv ', 
    ' km kh ',
    ' l ' ,
    14 * ' '

If plot output of vertical profiles is produced (see data_output_pr), the appropriate data are written to the local file PLOT1D_DATA. Simultaneously, the model produces a parameter file (local name PLOT1D_PAR) which describes the layout for a plot to be generated with the plot program profil. The parameter cross_profiles determines how many coordinate systems (panels) the plot contains and which profiles are supposed to be drawn into which panel. cross_profiles expects a character string (up to 100 characters long) for each coordinate system, which consists of the names of the profiles to be drawn into this system (all available profiles and their respective names are described at parameter data_output_pr). The single names have to be separated by one blank (' ') and a blank must be spent also at the beginning and at the end of the string. 

Example: 

    cross_profiles = ' u v ', ' pt '

In this case the plot consists of two coordinate systems (panels) with the first panel containing the profiles of the horizontal velocity components ('u' and 'v') of all output times (see dt_dopr) and the second one containing the profiles of the potential temperature ('pt').

Whether the coordinate systems are actually drawn, depends on whether data of the appropriate profiles were output during the run (profiles to be output have to be selected with the parameter data_output_pr). For example if data_output_pr = 'u', 'v' was assigned, then the plot only consists of one panel, since no profiles of the potential temperature were output. On the other hand, if profiles were assigned to data_output_pr whose names do not appear in cross_profiles, then the respective profile data are output (PLOT1D_DATA) but they are not drawn in the plot.

The arrangement of the panels in the plot can be controlled with the parameters profile_columns and profile_rows. Up to 100 panels systems are allowed in a plot (however, they may be distributed on several pages).

cross_xtext

C*40 
   (100)
see right

x-axis labels of vertical profile coordinate systems to be plotted with profil

This parameter only applies for  data_output_format = 'profil'.

The default assignment is: 

cross_xtext

    'wind speed in ms>->1', 
    'pot. temperature in K', 
    'heat flux in K ms>->1', 
    'momentum flux in m>2s>2', 
    'eddy diffusivity in m>2s>->1', 
    'mixing length in m', 
    14 * ' '

This parameter can be used to assign x-axis labels to vertical profiles to be plotted with the plot software profil (for output of vertical profile data see data_output_pr).
The labels are assigned to those coordinate systems (panels) defined by cross_profiles according to their respective order (compare the default values of cross_xtext and cross_profiles).

Umlauts are possible (write “ in front of, similar to TeX), as well as super- and subscripts (use ">" or "<" in front of each character), special characters etc. (see UNIRAS manuals) when using the plot software profil.

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.

data_output

C * 10 (100)
100 * ' '
Quantities for which 2d cross section and/or 3d volume data are to be output.

PALM allows the output of instantaneous data as well as of temporally averaged data which is steered by the strings assigned to this parameter (see below).

By default, cross section data are output (depending on the selected cross sections(s), see below)  to local files DATA_2D_XY_NETCDF, DATA_2D_XZ_NETCDF and/or DATA_2D_YZ_NETCDF. Volume data are output to file DATA_3D_NETCDF. If the user has switched on the output of temporally averaged data, these are written seperately to local files DATA_2D_XY_AV_NETCDF, DATA_2D_XZ_AV_NETCDF, DATA_2D_YZ_AV_NETCDF, and DATA_3D_AV_NETCDF, respectively.

The filenames already suggest that all files have NetCDF format. Informations about the file content (kind of quantities, array dimensions and grid coordinates) are part of the self describing NetCDF format and can be extracted from the NetCDF files using the command "ncdump -c <filename>". See chapter 4.5.1 about processing the PALM NetCDF data.

The following quantities are available for output by default (quantity names ending with '*' are only allowed for the output of horizontal cross sections):

quantity name meaning unit remarks
e SGS TKE m2/s2
lwp* liquid water path m only horizontal cross section is allowed, requires cloud_physics = .TRUE.
p perturpation pressure N/m2, Pa
pc particle/droplet concentration #/gridbox requires that particle advection is switched on by mrun-option "-p particles"
pr mean particle/droplet radius m requires that particle advection is switched on by mrun-option "-p particles"
pra* precipitation amount mm only horizontal cross section is allowed, requires precipitation = .TRUE., time interval on which amount refers to is defined by precipitation_amount_interval
prr* precipitation rate mm/s only horizontal cross section is allowed, requires precipitation = .TRUE.
pt potential temperature
K
q specific humidity (or total water content, if cloud physics is switched on) kg/kg requires humidity = .TRUE.
ql liquid water content kg/kg requires cloud_physics = .TRUE. or cloud_droplets = .TRUE.
ql_c change in liquid water content due to condensation/evaporation during last timestep kg/kg requires cloud_droplets = .TRUE.
ql_v volume of liquid water m3/gridbox requires cloud_droplets = .TRUE.
ql_vp weighting factor requires cloud_droplets = .TRUE.
qv water vapor content (specific humidity) kg/kg requires cloud_physics = .TRUE.
rho potential density kg/m3 requires ocean = .TRUE.
s concentration of the scalar 1/m3 requires passive_scalar = .TRUE.
sa salinity psu requires ocean = .TRUE.
t* (near surface) characteristic temperature K only horizontal cross section is allowed
u u-component of the velocity m/s
u* (near surface) friction velocity m/s only horizontal cross section is allowed
v v-component of the velocity m/s
vpt virtual potential temperature K requires humidity = .TRUE.
w w-component of the velocity m/s
z0* roughness length m

Multiple quantities can be assigned, e.g. data_output = 'e', 'u', 'w'.

By assigning the pure strings from the above table, 3d volume data is output. Cross section data can be output by appending the string '_xy', '_xz', or '_yz' to the respective quantities. Time averaged output is created by appending the string '_av' (for cross section data, this string must be appended after the cross section string). Cross section data can also be (additionally) averaged along the direction normal to the respective section (see below). Assignments of quantities can be given in arbitrary order:

Example:

data_output = 'u', 'pt_xz_av', 'w_xy', 'u_av'.

This example will create the following output: instantaneous 3d volume data of u-velocity component (by default on file DATA_3D_NETCDF), temporally averaged 3d volume data of u-velocity component (by default on file DATA_3D_AV_NETCDF), instantaneous horizontal cross section data of w-velocity component (by default on file DATA_2D_XY_NETCDF), and temporally averaged vertical cross section data of potential temperature (by default on file DATA_2D_XZ_AV_NETCDF).

The user is allowed to extend the above list of quantities by defining his own output quantities (see the user-parameter data_output_user).

The time interval of the output times is determined via dt_data_output. This is valid for all types of output quantities by default. Individual time intervals for instantaneous  (!) 3d and section data can be declared using dt_do3d, dt_do2d_xy, dt_do2d_xz, and dt_do2d_yz.

Also, an individual time interval for output of temporally averaged data can be assigned using parameter dt_data_output_av. This applies to both 3d volume and cross section data. The length of the averaging interval is controlled via parameter averaging_interval.

The parameter skip_time_data_output can be used to shift data output activities for a given time interval. Individual intervals can be set using skip_time_do3d, skip_time_do2d_xy, skip_time_do2d_xz, skip_time_do2d_yz, and skip_time_data_output_av.

With the parameter nz_do3d  the output can be limited in the vertical direction up to a certain grid point.

Cross sections extend through the total model domain. In the two horizontal directions all grid points with 0 <= i <= nx+1 and 0 <= j <= ny+1 are output so that in case of cyclic boundary conditions the complete total domain is represented. The location(s) of the cross sections can be defined with parameters section_xy, section_xz, and section_yz. Assigning section_.. = -1 causes the output data to be averaged along the direction normal to the respective section.


Output of user defined quantities:

Beside the standard quantities from the above list, the user can output any other quantities. These have to be defined and calculated within the user-defined code (see 3.5.4). They can be selected for output with the user-parameter data_output_user for which the same rules apply as for data_output. Output of the user defined quantities (time interval, averaging, selection of cross sections, etc.) is controlled with the parameters listed above and data are written to the same file(s) as the standard quantities.

Output on parallel machines:

By default, with parallel runs, processors output only data of their respective subdomains into seperate local files (file names are constructed by appending the four digit processor ID, e.g. <filename>_0000, <filename>_0001, etc.). After PALM has finished, the contents of these individual files are sampled into one final file using the program combine_plot_fields.x (to be started e.g. by a suitable OUTPUT command in the mrun configuration file).

Alternatively, PALM is able to collect all grid points of a cross section on PE0 before output is done. In this case only one  output file (DATA_2D_XY_NETCDF, etc.) is created and combine_plot_fields.x does not have to be called. In case of very large numbers of horizontal gridpoints, sufficient memory is required on PE0.  This method can be used by assigning data_output_2d_on_each_pe = .F..

3d volume data output is always handled seperately by each processor so that combine_plot_fields.x has to be called anyway after PALM has been finished.


Old formats:

Beside the NetCDF format, 2d cross section data and 3d volume data can also be output, for historical reasons, in a different (binary) format using parameter data_output_format.

By assigning data_output_format = 'avs', the 3d volume data is output to the local file PLOT3D_DATA. Output is in FORTRAN binary format readable by the plot software AVS.  The order of data on the file follows the order used in the assignment for data_output (e.g. data_output = 'p', 'v',...  means that the file starts with the pressure data, followed by the v-component of the velocity, etc.). Both instantaneous and time averaged data are written on this file! Additional to this file, PALM creates a second binary file (local name PLOT3D_COOR) with coordinate information needed by AVS. As third and fourth file two ASCII files are created (AVS-FLD-format, local name PLOT3D_FLD and PLOT3D_FLD_COOR), which describe the contents of the data file and/or coordinate file and are used by AVS. However, AVS expects the content description in one file. This needs the local file PLOT3D_FLD_COOR to be appended to the file PLOT3D_FLD (by suitable OUTPUT command in the mrun configuration file: “cat PLOT3D_FLD_COOR >> PLOT3D_FLD”) after PALM has finished. To reduce the amount of data, output to this file can be done in compressed form (see do3d_compress). Further details about plotting 3d volume data with AVS can be found in chapter 4.5.5.

By assigning data_output_format = 'iso2d', the cross section data is output to the local files PLOT2D_XY, PLOT2D_XZ, and PLOT2D_YZ. Output is in FORTRAN binary format readable by the plot software iso2d.  The order of data on the files follows the order used in the assignment for data_output (e.g. data_output = 'p_xy', 'v_xy_av',...  means that the file containing the horizontal cross section data starts with the instantaneous pressure data, followed by the temporally averaged v-component of the velocity, etc.). Both instantaneous and time averaged data are written on this file!Additional to these binary files, PALM creates NAMELIST parameter files (local names PLOT2D_XY_GLOBAL, PLOT2D_XY_LOCAL, PLOT2D_XZ_GLOBAL, PLOT2D_XZ_LOCAL, PLOT2D_YZ_GLOBAL, PLOT2D_YZ_LOCAL) which can be used as parameter input files for the plot software iso2d. That needs local files with suffix _LOCAL to be appended to the respective files with suffix _GLOBAL (by suitable OUTPUT commands in the mrun configuration file, e.g.: “cat PLOT2D_XY_LOCAL >> PLOT2D_XY_GLOBAL”) after PALM has finished. Cross sections can be directly plotted with iso2d using the respective data and parameter file. The plot layout is steered via the parameter input file. The values of these iso2d parameters are determined by a set of mostly internal PALM parameters (exception: z_max_do2d). All parameter values can be changed by editing the parameter input file. Further details about plotting 2d cross sections with iso2d can be found in chapter 4.5.4.

Important:
There is no guarantee that iso2d- and avs-output will be available in future PALM versions (later than 3.0).
data_output_format
C * 10 (10) 'netcdf' Format of output data.

By default, all data (profiles, time series, spectra, particle data, cross sections, volume data) are output in NetCDF format (see chapter 4.5.1). Exception: restart data (local files BININ, BINOUT, PARTICLE_RESTART_DATA_IN, PARTICLE_RESTART_DATA_OUT) are always output in FORTRAN binary format.

The numerical precision of the NetCDF output is determined with parameter netcdf_precision.

The maximum file size for NetCDF files is 2 GByte by default. Use the parameter netcdf_64bit if larger files have to be created.

For historical reasons, other data formats are still available. Beside 'netcdf', data_output_format may be assigned the following values:

'profil' output of profiles, time series and spectra in ASCII format to be read by the graphic software profil (see chapters 4.5.2, 4.5.3)
'iso2d' output of 2d cross-sections in FORTRAN binary format to be read by the graphic software iso2d (see chapter 4.5.4)
'avs' output of 3d volume data in FORTRAN binary format to be read by the graphic software AVS (see chapter 4.5.5)

Multiple values can be assigned to data_output_format, i.e. if the user wants to have both the "old" data format suitable for iso2d as well as cross section data in NetCDF format, then data_output_format = 'iso2d', 'netcdf' has to be assigned.

Warning: There is no guarantee that the "old" formats will be available in future PALM versions (beyond 3.0)!

data_output_pr

C * 10 
(100)
100 * ' '

Quantities for which vertical profiles (horizontally averaged) are to be output. 

By default vertical profile data is output to the local file DATA_1D_PR_NETCDF. The file's format is NetCDF.  Further details about processing NetCDF data are given in chapter 4.5.1.

For historical reasons, data can also be output in ASCII-format on local file PLOT1D_DATA which is readable by the graphic software profil. See parameter data_output_format for defining the format in which data shall be output.

For horizontally averaged vertical profiles always all vertical grid points (0 <= k <= nz+1) are output to file. Vertical profile data refers to the total domain but profiles for subdomains can also be output (see statistic_regions). 

The temporal interval of the output times of profiles is assigned via the parameter dt_dopr. Within the file PLOT1D_DATA, the profiles are ordered with respect to their output times.

Profiles can also be temporally averaged (see averaging_interval_pr).

The following list shows the values which can be assigned to data_output_pr. The profile data is either defined on u-v-levels (variables marked in red) or on w-levels (green). According to this, the z-coordinates of the individual profiles vary. Beyond that, with a Prandtl layer switched on (prandtl_layer) the lowest output level is z = zu(1) instead of z = zw(0) for profiles w'' u'',w''v", wu and wv . Turbulence quantities such as w*u*  or u*2 are calculated from turbulent fluctuations that are defined as deviations from the instantaneous horizontal average.

u u-component of the velocity (in m/s).
v v-component of the velocity (in m/s).
w w-component of the velocity (in m/s).
pt Potential temperature (in K).
vpt Virtual potential temperature (in K).
lpt Potential liquid water temperature (in K).
q Total water content (in kg/kg).
qv Specific humidity (in kg/kg).
ql Liquid water content (in kg/kg).
rho Potential density (in kg/m3).
s Scalar concentration (in kg/m3).
sa Salinity (in psu).
e Turbulent kinetic energy (TKE, subgrid-scale) (in m2/s2).
e* Perturbation energy (resolved) (in m2/s2).
pPerturbation pressure (in Pa)
km Eddy diffusivity for momentum (in m2/s).
kh Eddy diffusivity for heat (in m2/s).
l Mixing length (in m).
w"u" u-component of the subgrid-scale vertical momentum flux (in m2/s2).
w*u* u-component of the resolved vertical momentum flux (in m2/s2).
wu u-component of the total vertical momentum flux (w"u" + w*u*) (in m2/s2).
w"v" v-component of the subgrid-scale vertical momentum flux (in m2/s2).
w*v* v-component of the resolved vertical momentum flux (in m2/s2).
wv v-component of the total vertical momentum flux (w"v" + w*v*) (in m2/s2).
w"pt" Subgrid-scale vertical sensible heat flux (in K m/s).
w*pt* Resolved vertical sensible heat flux (in K m/s).
wpt Total vertical sensible heat flux (w"pt" + w*pt*) (in K m/s).
w*pt*BC Subgrid-scale vertical sensible heat flux using the Bott-Chlond scheme (in K m/s).
wptBC Total vertical sensible heat flux using the Bott-Chlond scheme (w"pt" + w*pt*BC) (in K m/s).
w"vpt" Subgrid-scale vertical buoyancy flux (in K m/s).
w*vpt* Resolved vertical buoyancy flux (in K m/s).
wvpt Total vertical buoyancy flux (w"vpt" + w*vpt*) (in K m/s).
w"q" Subgrid-scale vertical water flux (in kg/kg m/s).
w*q* Resolved vertical water flux (in kg/kg m/s).
wq Total vertical water flux (w"q" + w*q*) (in kg/kg m/s).
w"qv" Subgrid-scale vertical latent heat flux (in kg/kg m/s).
w*qv* Resolved vertical latent heat flux (in kg/kg m/s).
wqv Total vertical latent heat flux (w"qv" + w*qv*) (in kg/kg m/s).
w"s" Subgrid-scale vertical scalar concentration flux (in kg/m3 m/s).
w*s* Resolved vertical scalar concentration flux (in kg/m3 m/s).
ws Total vertical scalar concentration flux (w"s" + w*s*) (in kg/m3 m/s).
w"sa" Subgrid-scale vertical salinity flux (in psu m/s).
w*sa* Resolved vertical salinity flux (in psu m/s).
wsa Total vertical salinity flux (w"sa" + w*sa*) (in psu m/s).
w*e* Vertical flux of perturbation energy (resolved)
u*2 Variance of the u-velocity component (resolved)
v*2 Variance of the v-velocity component (resolved)
w*2 Variance of the w-velocity component (resolved)
pt*2 Variance of the potential temperature (resolved)
w*3 Third moment of the w-velocity component (resolved)
Sw Skewness of the w-velocity component (resolved, Sw = W3/(w2)1.5)
w*2pt* Third moment (resolved)
w*pt*2 Third moment (resolved)
w*u*u*/dz Energy production by shear (resolved)
w*p*/dz Energy production by turbulent transport of pressure fluctuations (resolved)
w"e/dz Energy production by transport of resolved-scale TKE

Beyond that, initial profiles (t=0) of some variables can additionally be output (this output is only done once with the first plot output and not repeated with the profile output at later times). The names of these profiles result from the ones specified above leaded by a hash "#".  Allowed values are:

    #u, #v, #pt, #km, #kh, #l, #lpt, #q, #qv, #s, #sa, #vpt

Profile names preceded by a hash automatically imply that profiles for these variables are also output at later times. It is not necessary and not allowed to specify the same profile name with and without hash simultaneously(this would lead to an NetCDF error).

These initial profiles have been either set by the user or have been calculated by a 1d-model prerun.

The user is allowed to extend the above list of quantities by defining his own output quantities (see the user-parameter data_output_pr_user).

In case of ASCII data output to local file PLOT1D_DATA, PALM additionally creates a NAMELIST parameter file (local name PLOT1D_PAR) which can be used as parameter input file for the plot software profil. Profiles can be directly plotted with profil using these two files. The plot layout is steered via the parameter input file. The values of these profil-parameters are determined by a set of PALM parameters (profile_columns, profile_rows, z_max_do1d, cross_profiles, etc.) All parameter values can be changed by editing the parameter input file.

Further details about plotting vertical profiles with profil can be found in chapter 4.5.2

data_output_2d_on
_each_pe

L
.T.
Output 2d cross section data by one or all processors. 

In runs with several processors, by default, each processor outputs cross section data of its subdomain into an individual file. After PALM has finished, the contents of these files have to be sampled into one file using the program combine_plot_fields.x

Alternatively, by assigning data_output_2d_on_each_pe = .F., the respective data is gathered on PE0 and output is done directly into one file, so combine_plot_fields.x does not have to be called. However, in case of very large numbers of horizontal gridpoints, sufficient memory is required on PE0.

disturbance
_amplitude

R 0.25

Maximum perturbation amplitude of the random perturbations imposed to the horizontal velocity field (in m/s). 

The parameter create_disturbances describes how to impose random perturbations to the horizontal velocity field. Since the perturbation procedure includes two filter operations, the amplitude assigned by disturbance_amplitude is only an approximate value of the real magnitude of the perturbation.

disturbance_energy
_limit

R 0.01

Upper limit value of the perturbation energy of the velocity field used as a criterion for imposing random perturbations (in m2/s2). 

The parameter create_disturbances describes how to impose random perturbations to the horizontal velocity field. The perturbation energy is defined as the volume average (over the total model domain) of the squares of the deviations of the velocity components from the mean flow (horizontal average). If the perturbation energy exceeds the assigned value, random perturbations to the fields of horizontal velocities are imposed no more. The value of this parameter usually must be determined by trial and error (it depends e.g. on the total number of grid points).

disturbance_level_b

R zu(3) or
zu(nz*2/3)
see right

Lower limit of the vertical range for which random perturbations are to be imposed on the horizontal wind field (in m). 

This parameter must hold the condition zu(3) <= disturbance_level_b <= zu(nz-2). Additionally, disturbance_level_b <= disturbance_level_t must also hold.

In case of ocean runs (see ocean) the default value is disturbance_level_b = zu(nz * 2 / 3) (negative).

The parameter create_disturbances describes how to impose random perturbations to the horizontal velocity field.

disturbance_level_t

R zu(nz/3) or
zu(nzt-3)
see right

Upper limit of the vertical range for which random perturbations are to be imposed on the horizontal wind field (in m). 

This parameter must hold the condition disturbance_level_t <= zu(nz-2). Additionally, disturbance_level_b <= disturbance_level_t must also hold.

In case of ocean runs (see ocean) the default value is disturbance_level_t = zu(nzt - 3) (negative).

The parameter create_disturbances describes how to impose random perturbations to the horizontal velocity field.

do2d_at_begin

L
.F.

Output of 2d cross section data at the beginning of a run. 

The temporal intervals of output times of 2d cross section data (see data_output) are usually determined with parameters dt_do2d_xy, dt_do2d_xz and dt_do2d_yz. By assigning do2d_at_begin = .T. an additional output will be made at the beginning of a run (thus at the time t = 0 or at the respective starting times of restart runs).

do3d_at_begin

L
.F.
Output of 3d volume data at the beginning of a run.

The temporal intervals of output times of 3d volume data (see data_output) is usually determined with parameter dt_do3d. By assigning do3d_at_begin = .T. an additional output will be made at the beginning of a run (thus at the time t = 0 or at the respective starting times of restart runs).

do3d_compress

L
.F.

Output of data for 3d plots in compressed form. 

This parameter only applies for  data_output_format = 'avs'.

Output of 3d volume data may need huge amounts of disc storage (up to several Terabytes ore more). Data compression can serve to reduce this requirement. PALM is able to output 3d data in compressed form using 32-bit integers, if do3d_compress = .T. is assigned. This yields a loss of accuracy, but the file size is clearly reduced. The parameter do3d_comp_prec can be used to separately define the number of significant digits for each quantity.

So far compressed data output is only possible for Cray-T3E machines. Additional information for handling compressed data is given in chapter 4.5.6.

do3d_comp_prec

C * 7 
  (100)
see right

Significant digits in case of compressed data output. 

This parameter only applies for  data_output_format = 'avs'.

In case that data compression is used for output of 3d data (see do3d_compress), this parameter determines the number of significant digits which are to be output.

Fewer digits clearly reduce the amount of data. Assignments have to be given separately for each individual quantity via a character string of the form '<quantity name><number of significant digits>', e.g. 'pt2'. Only those quantities listed in data_output are admitted. Up to 9 significant digits are allowed (but large values are not very reasonable because they do not effect a significant compression).

The default assignment is do3d_comp_prec = 'u2', 'v2', 'w2', 'p5', 'pt2'.

dt

R variable Time step to be used by the 3d-model (in s). 

This parameter is described in detail with the initialization parameters (see dt). Additionally, it may be used as a run parameter and then applies to all restart runs (until it is changed again). A switch from a constant time step to a variable time step can be achieved with dt = -1.0.

dt_averaging_input
R
0.0
Temporal interval of data which are subject to temporal averaging (in s).

By default, data from each timestep within the interval defined by averaging_interval are used for calculating the temporal average. By choosing dt_averaging_input > dt, the number of time levels entering the average can be minimized. This reduces the CPU-time of a run but may worsen the quality of the average's statistics.

With variable time step (see dt), the number of time levels entering the average can vary from one averaging interval to the next (for a more detailed explanation see averaging_interval). It is approximately given by the quotient of averaging_interval / MAX( dt_averaging_input, dt) (which gives a more or less exact value if a fixed timestep is used and if this is an integral divisor of dt_averaging_input). 

Example:
With an averaging interval of 100.0 s and dt_averaging_input = 10.0, the time levels entering the average have a (minimum) distance of 10.0 s (their distance may of course be larger if the current timestep is larger than 10.0 s), so the average is calculated from the data of (maximum) 10 time levels.

It is allowed to change dt_averaging_input during a job chain. If the last averaging interval of the run previous to the change could not be completed (i.e. has to be finished in the current run), the individual profiles and/or spectra entering the averaging are not uniformly distributed over the averaging interval.

Parameter dt_averaging_input_pr can be used to define a different temporal interval for vertical profile data and spectra.

dt_averaging_input_pr

R value of dt_
averaging_
input

Temporal interval of data which are subject to temporal averaging of vertical profiles and/or spectra (in s). 

By default, data from each timestep within the interval defined by averaging_interval_pr, and averaging_interval_sp are used for calculating the temporal average. By choosing dt_averaging_input_pr > dt, the number of time levels entering the average can be minimized. This reduces the CPU-time of a run but may worsen the quality of the average's statistics.

For more explanations see parameter dt_averaging_input.

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.
dt_data_output
R
9999999.9

Temporal interval at which data (3d volume data (instantaneous or time averaged), cross sections (instantaneous or time averaged), vertical profiles, spectra) shall be output (in s). 

If data output is switched on (see data_output, data_output_pr, data_output_sp, and section_xy), this parameter can be used to assign the temporal interval at which these data shall be output. Output can be skipped at the beginning of a simulation using parameter skip_time_data_output, which has zero value by default. Reference time is the beginning of the simulation, i.e. output takes place at times t = skip_time_data_output + dt_data_output, skip_time_data_output + 2*dt_data_output, skip_time_data_output + 3*dt_data_output, etc. Since output is only done at the discrete time levels given by the timestep used, the actual output times can slightly deviate from these theoretical values.

Individual temporal intervals for the different output quantities can be assigned using parameters dt_do3d, dt_do2d_xy, dt_do2d_xz, dt_do2d_yz, dt_dopr, dt_dosp, and dt_data_output_av.
dt_data_output_av
R
value of  dt_data_
output

Temporal interval at which time averaged 3d volume data and/or 2d cross section data shall be output (in s). 

If data output of time averaged 2d and 3d data is switched on (see data_output and section_xy), this parameter can be used to assign the temporal interval at which they shall be output. Output can be skipped at the beginning of a simulation using parameter skip_time_data_output_av, which has zero value by default. Reference time is the beginning of the simulation, i.e. output takes place at times t = skip_time_data_output_av + dt_data_output_av, skip_time_data_output_av + 2*dt_data_output_av, skip_time_data_output_av + 3*dt_data_output_av, etc. Since output is only done at the discrete time levels given by the timestep used, the actual output times can slightly deviate from these theoretical values.

The length of the averaging interval is controlled via parameter averaging_interval.

dt_disturb

R 9999999.9

Temporal interval at which random perturbations are to be imposed on the horizontal velocity field (in s). 

The parameter create_disturbances describes how to impose random perturbations to the horizontal velocity field.

dt_dopr

R value of  dt_data_
output

Temporal interval at which data of vertical profiles shall be output (to local file DATA_1D_PR_NETCDF or/and PLOT1D_DATA) (in s). 

If output of horizontally averaged vertical profiles is switched on (see data_output_pr), this parameter can be used to assign the temporal interval at which profile data shall be output. Output can be skipped at the beginning of a simulation using parameter skip_time_dopr, which has zero value by default. Reference time is the beginning of the simulation, thus t = 0, i.e. output takes place at times t = skip_time_dopr + dt_dopr, skip_time_dopr + 2*dt_dopr, skip_time_dopr + 3*dt_dopr, etc. Since profiles can not be calculated for times lying within a time step interval, the output times can deviate from these theoretical values. If a time step ranges from t = 1799.8 to t = 1800.2, then in the example above the output would take place at t = 1800.2. In general, the output always lie between t = 1800.0 and t = 1800.0 + dt. If the model uses a variable time step, these deviations from the theoretical output times will of course be different for each output time.

In order to guarantee an output of profile data at the end of a simulation (see end_time) in any wayend_time should be equal or a little bit larger than the respective theoretical output time. For example, if dt_dopr = 900.0 and 3600.0 seconds are to be simulated, then end_time >= 3600.0 should be chosen. 

A selection of profiles to be output can be done via parameter data_output_pr

dt_dopr_listing
R
9999999.9

Temporal interval at which data of vertical profiles shall be output (output for printouts, local file LIST_PROFIL) (in s). 

This parameter can be used to assign the temporal interval at which profile data shall be output. Reference time is the beginning of the simulation, thus t = 0. For example if dt_dopr_listing = 1800.0, then output takes place at t = 1800.0, 3600.0, 5400.0, etc. Since profiles can not be calculated for times lying within a time step interval, the output times can deviate from these theoretical values. If a time step ranges from t = 1799.8 to t = 1800.2, then in the example above the output would take place at t = 1800.2. In general, the output always lie between t = 1800.0 and t = 1800.0 + dt (numbers are related to the example above). If the model uses a variable time step, these deviations from the theoretical output times will of course be different for each output time.

In order to guarantee an output of profile data at the end of a simulation (see end_time) in any wayend_time should be a little bit larger than the respective theoretical output time. For example, if dt_dopr_listing = 900.0 and 3600.0 seconds are to be simulated, then it should be at least  end_time > 3600.0 + dt. If variable time steps are used (which is the default), dt should be properly estimated. 

Data and output format of the file LIST_PROFIL is internally fixed. In this file the profiles of the most important model variables are arranged in adjacent columns.

dt_dots

R see right

Temporal interval at which time series data shall be output (in s). 

The default interval for the output of timeseries is calculated as shown below (this tries to minimize the number of calls of flow_statistics)

       IF ( averaging_interval_pr == 0.0 )  THEN
          dt_dots = MIN( dt_run_control, dt_dopr )
       ELSE
          dt_dots = MIN( dt_run_control, dt_averaging_input_pr )
       ENDIF

This parameter can be used to assign the temporal interval at which data points shall be output. Reference time is the beginning of  the simulation, i.e. output takes place at times t = dt_dots, 2*dt_dots, 3*dt_dots, etc. The actual output times can deviate from these theoretical values (see dt_dopr).  Is dt_dots < dt, then data of the time series are written after each time step (if this is requested it should be dt_dots = 0).

The default value of dt_dots is calculated as follows:

       IF ( averaging_interval_pr == 0.0 )  THEN
          dt_dots = MIN( dt_run_control, dt_dopr )
       ELSE
          dt_dots = MIN( dt_run_control, dt_averaging_input_pr )
       ENDIF

(which minimizes the number of calls of routine flow_statistics).

By default time series data is output to the local file DATA_1D_TS_NETCDF. Because of the default settings of dt_dots, it will generally be created for each model run. The file's format is NetCDF.  Further details about processing NetCDF data are given in chapter 4.5.1.

The file contains the following timeseries quantities (the first column gives the name of the quantities as used in the NetCDF file):
E
Total kinetic energy of the flow (in m2/s2) (normalized with respect to the total number of grid points).
E*
Perturbation kinetic energy of the flow (in m2/s2) (normalized with respect to the total number of grid points)
dt
Time step size (in s).
u* Friction velocity (in m/s) (horizontal average).
w* Vertical velocity scale of the CBL (in m/s) (horizontal average)
th* Temperature scale (Prandtl layer), defined as w"pt"0 / u* (horizontal average) (in K).
umax
Maximum u-component of the velocity (in m/s).
vmax
Maximum v-component of the velocity (in m/s).
wmax
Maximum w-component of the velocity (in m/s).
div_old
Divergence of the velocity field before the pressure solver has been called (normalized with respect to the total number of grid points) (in 1/s).
div_new Divergence of the velocity field after the pressure solver has been called (normalized with respect to the total number of grid points) (in 1/s).
z_i_wpt Height of the convective boundary layer (horizontal average) determined by the height of the minimum sensible heat flux (in m).
z_i_pt Height of the convective boundary layer (horizontal average) determined by the temperature profile (in m).
w"pt"0 Subgrid-scale sensible heat flux at k=0 (horizontal average), constant within Prandtl-layer (in K m/s).
w"pt" Subgrid-scale heat flux (horizontal average) for z = zw(1) (in K m/s).
wpt Total heat flux (horizontal average) for z = zw(1) (in K m/s).
w"u"0Subgrid-scale momentum flux (u-component) at k=0 (horizontal average), constant within Prandtl-layer (in m2/s2).
w"v"0Subgrid-scale momentum flux (v-component) at k=0 (horizontal average), constant within Prandtl-layer (in m2/s2).
w"q"0Subgrid-scale humidity flux at k=0 (horizontal average), constant within Prandtl-layer (in kg/kg m/s). Zero values are output if humidity is not used.
pt(0) Potential temperature at the surface (horizontal average) (in K).
pt(zp) Potential temperature for z = zu(1) (horizontal average) (in K).
L Monin-Obukhov length.

Additionally, the user can add his own timeseries quantities to the file, by using the user-interface subroutines user_init and user_statistics. These routines contain (as comment lines) a simple example how to do this.

Time series data refers to the total domain, but time series for subdomains can also be output (see statistic_regions). However, the following time series always present the values of the total model domain (even with output for subdomains): umax, vmax, wmax, div_old, div_new.

dt_do2d_xy

R value of  dt_data_
output

Temporal interval at which horizontal cross section data shall be output (in s). 

If output of horizontal cross sections is switched on (see data_output and section_xy), this parameter can be used to assign the temporal interval at which cross section data shall be output. Output can be skipped at the beginning of a simulation using parameter skip_time_do2d_xy, which has zero value by default. Reference time is the beginning of the simulation, i.e. output takes place at times t = skip_time_do2d_xy + dt_do2d_xy, skip_time_do2d_xy + 2*dt_do2d_xy, skip_time_do2d_xy + 3*dt_do2d_xy, etc. The actual output times can deviate from these theoretical values (see dt_dopr).

Parameter do2d_at_begin has to be used if an additional output is wanted at the start of a run (thus at the time t = 0 or at the respective starting times of restart runs).

dt_do2d_xz

R value of  dt_data_
output

Temporal interval at which vertical cross sections data (xz) shall be output (in s). 

If output of horizontal cross sections is switched on (see data_output and section_xz), this parameter can be used to assign the temporal interval at which cross section data shall be output. Output can be skipped at the beginning of a simulation using parameter skip_time_do2d_xz, which has zero value by default. Reference time is the beginning of the simulation, i.e. output takes place at times t = skip_time_do2d_xz + dt_do2d_xz, skip_time_do2d_xz + 2*dt_do2d_xz, skip_time_do2d_xz + 3*dt_do2d_xz, etc. The actual output times can deviate from these theoretical values (see dt_dopr).

Parameter do2d_at_begin has to be used if an additional output is wanted at the start of a run (thus at the time t = 0 or at the respective starting times of restart runs).

dt_do2d_yz

R value of  dt_data_
output

Temporal interval at which vertical cross section data (yz) shall be output (in s). 

If output of horizontal cross sections is switched on (see data_output and section_yz), this parameter can be used to assign the temporal interval at which cross section data shall be output. Output can be skipped at the beginning of a simulation using parameter skip_time_do2d_yz, which has zero value by default. Reference time is the beginning of the simulation, i.e. output takes place at times t = skip_time_do2d_yz + dt_do2d_yz, skip_time_do2d_yz + 2*dt_do2d_yz, skip_time_do2d_yz + 3*dt_do2d_yz, etc. The actual output times can deviate from these theoretical values (see dt_dopr).

Parameter do2d_at_begin has to be used if an additional output is wanted at the start of a run (thus at the time t = 0 or at the respective starting times of restart runs).

dt_do3d

R value of  dt_data_
output

Temporal interval at which 3d volume data shall be output (in s). 

If output of 3d-volume data is switched on (see data_output), this parameter can be used to assign the temporal interval at which 3d-data shall be output. Output can be skipped at the beginning of a simulation using parameter skip_time_do3d, which has zero value by default. Reference time is the beginning of the simulation, i.e. output takes place at times t = skip_time_do3d + dt_do3d, skip_time_do3d + 2*dt_do3d, skip_time_do3d + 3*dt_do3d, etc. The actual output times can deviate from these theoretical values (see dt_dopr).

Parameter do3d_at_begin has to be used if an additional output is wanted at the start of a run (thus at the time t = 0 or at the respective starting times of restart runs).

dt_max R 20.0 Maximum allowed value of the timestep (in s).

By default, the maximum timestep is restricted to be 20 s. This might be o.k. for simulations of any kind of atmospheric turbulence but may have to be changed for other situations.

dt_restart

R 9999999.9

Temporal interval at which a new restart run is to be carried out (in s).

For a description how to assign restart times manually see run time parameter restart_time. dt_restart does not show any effect, if restart_time has not been set.

For coupled runs this parameter must be equal in both parameter files PARIN and PARIN_O.

dt_run_control

R 60.0

Temporal interval at which run control output is to be made (in s). 

Run control information is output to the local ASCII-file RUN_CONTROL. At each output time, one line with information about the size of the time step, maximum speeds, total kinetic energy etc. is written to this file. Reference time is the beginning of the simulation, i.e. output takes place at times t = dt_run_control, 2*dt_run_control, 3*dt_run_control, etc., and always at the beginning of a model run (thus at the time t = 0 or at the respective starting times of restart runs). The actual output times can deviate from these theoretical values (see dt_dopr).

Run control information is output after each time step can be achieved via dt_run_control = 0.0.

end_time

R 0.0

Simulation time of the 3D model (in s). 

The simulation time is starting from the beginning of the initialization run (t = 0), not starting from the beginning of the respective restart run.

For coupled runs this parameter must be equal in both parameter files PARIN and PARIN_O.

force_print_header

L .F.

Steering of header output to the local file RUN_CONTROL

By default, informations about the model parameters in use are output to the beginning of file RUN_CONTROL for initial runs only (these informations are identical to that which are output to the local file HEADER). With force_print_header = .T., these informations are also output to RUN_CONTROL at restart runs.

mg_cycles

I -1

Number of cycles to be used with the multi-grid scheme.

This parameter determines the number of cycles to be carried out in the multi-grid method used for solving the Poisson equation for perturbation pressure (see psolver). The type of the cycles can be set with cycle_mg.


By default (mg_cyles = - 1), the number of cycles depends on the requested accuracy of the scheme (see residual_limit) and may vary from time step to time step. In this case, the CPU time for a run will be difficult to estimate, since it heavily depends on the total number of the cycles to be carried out.

By assigning mg_cycles a value (>=1), the number of cycles can be fixed so that the CPU time can be clearly estimated.

Note: When using a fixed number of cycles, the user must examine the local file RUN_CONTROL regularly to check whether the divergence of the velocity field is sufficiently reduced by the pressure solver. It should be reduced at least by two orders of magnitude. For cyclic boundary conditions along both horizontal directions (see bc_lr and bc_ns) mg_cycles = 2 is typically a good choice, for non-cyclic lateral boundary conditions mg_cycles = 4 may be sufficient.
mg_switch_to_pe0_
level
I
Grid level at which data shall be gathered on PE0.

In case of a run using several PEs and the multigrid method for solving the Poisson equation for perturbation pressure (see psolver), the value of this parameter defines on which grid level the data are gathered on PE0 in order to allow for a further coarsening of the grid. The finest grid defines the largest grid level. By default, the gathering level is determined automatically and displayed in file RUN_CONTROL. It is only possible to gather data from a level larger than the one determined automatically. A test run may be neccessary to determine this level.

Setting of mg_switch_to_pe0_level = -1 prevents that data are collected on PE0 at all, i.e. coarsening of grids is limited by the subdomains.
netcdf_64bit
L
.F.
All NetCDF files - except those containing 3d volume data - will have 64 bit offset format if netcdf_64bit = .TRUE..

By default, the maximum file size of the NetCDF files opened by PALM is 2 GByte. Using netcdf_64bit = .TRUE. allows file sizes larger than 2 GByte.

The 64 bit offset format for those NetCDF files containing 3d volume data (DATA_3D_NETCDF, DATA_3D_AV_NETCDF) is controlled independently by the switch netcdf_64bit_3d.

Warning:
Some (PD or commercial) software may not support the 64 bit offset format.
netcdf_64bit_3d L .T. NetCDF files containing 3d volume data will have 64 bit offset format if netcdf_64bit_3d = .TRUE..

By default, the maximum file size of the NetCDF files opened by PALM is 2 GByte. Using netcdf_64bit_3d = .TRUE. allows file sizes larger than 2 GByte.

The 64 bit offset format for all other NetCDF files (not containing 3d volume data) is controlled independently by the switch netcdf_64bit.

Warning:
Some (PD or commercial) software may not support the 64 bit offset format.

ngsrb

I 2 Grid level at which data shall be gathered on PE0.

In case of a run using several PEs and the multigrid method for solving the Poisson equation for perturbation pressure (see psolver), the value of this parameter defines on which grid level the data are gathered on PE0 in order to allow for a further coarsening of the grid. The finest grid defines the largest grid level. By default, the gathering level is determined automatically and displayed in file RUN_CONTROL. It is only possible to gather data from a level larger than the one determined automatically. A test run may be neccessary to determine this level.

normalizing_region

I 0

Determines the subdomain from which the normalization quantities are calculated. 

If output data of the horizontally averaged vertical profiles (see data_output_pr) is to be normalized (see cross_normalized_x, cross_normalized_y), the respective normalization quantities are by default calculated from the averaged data of the total model domain (normalizing_region = 0) and are thus representative for the total domain. Instead of that, normalization quantities can also be calculated for a subdomain. The wanted subdomain can be given with the parameter normalizing_region, where 1 <= normalizing_region <= 9 must hold. These quantities are then used for normalizing of all profiles (even for that of the total domain).

npexI

Number of processors along x-direction of the virtual processor net. 

For parallel runs, the total number of processors to be used is given by the mrun option -X. By default, depending on the type of the parallel computer, PALM generates a 1d processor net (domain decomposition along x, npey = 1) or a 2d-net (this is favored on machines with fast communication network and/or large number of processors (>256)). In case of a 2d-net, it is tried to make it more or less square-shaped. If, for example, 16 processors are assigned (-X 16), a 4 * 4 processor net is generated (npex = 4, npey = 4). This choice is optimal for square total domains (nx = ny), since then the number of ghost points at the lateral boundarys of the subdomains reaches a minimum. If nx and ny differ extremely, the processor net should be manually adjusted using adequate values for npex and npey

Important: The value of npex * npey must exactly match the value assigned by the mrun-option -X. Otherwise the model run will abort with a corresponding error message. 
Additionally, the specification of npex and npey may of course override the default setting for the domain decomposition (1d or 2d) which may have a significant (negative) effect on the code performance.

npeyI

Number of processors along y-direction of the virtual processor net. 

For further information see npex.

nsor

I 20

Number of iterations to be used with the SOR-scheme. 

This parameter is only effective if the SOR-scheme is selected as pressure solver (psolver = 'sor'). The number of iterations necessary for a sufficient convergence of the scheme depends on the grid point numbers and is to be determined by appropriate test runs (the default value will not at all be sufficient for larger grid point numbers). The number of iterations used for the first call of the SOR-scheme (t = 0) is determined via the parameter nsor_ini.

nz_do3d

I nz+1 Limits the output of 3d volume data along the vertical direction (grid point index k).

By default, data for all grid points along z are output. The parameter nz_do3d can be used to limit the output up to a certain vertical grid point (e.g. in order to reduce the amount of output data). It affects all output of volume data ("normal" output to file, see data_output, as well as output for dvrp-software, see mode_dvrp).

omega_sor

R 1.8

Convergence factor to be used with the the SOR-scheme. 

If the SOR-scheme is selected (psolver = 'sor'), this parameter determines the value of the convergence factor, where 1.0 <= omega_sor < 2.0 . The optimum value of omega_sor depends on the number of grid points along the different directions in space. For non-equidistant grids it can only be determined by appropriate test runs.

prandtl_number

R 1.0

Ratio of the eddy diffusivities for momentum and heat (Km/Kh). 

For runs with constant eddy diffusivity (see km_constant), this parameter can be used to assign the Prandtl number (ratio Km / Kh).

precipitation_amount_
interval
R value of  dt_do2d_
xy

Temporal interval for which the precipitation amount (in mm) shall be calculated and output (in s). 

This parameter requires precipitation = .TRUE.The interval must be smaller or equal than the output interval for 2d horizontal cross sections given by dt_do2d_xy). The output of the precipitation amount also requires setting of data_output = 'pra*'.

profile_columns

I 3

Number of coordinate systems to be plotted in one row by profil

This parameter only applies for  data_output_format = 'profil'.

It determines the layout of plots of horizontally averaged profiles (data_output_pr) when plotted with the plot software profil. Generally, the number and sequence of coordinate systems (panels) to be plotted on one page are determined by cross_profiles. profile_columns determines how many panels are to be arranged next to each other in one row (number of columns). The respective number of rows on a page is assigned by profile_rows. According to their order given by data_output_pr, the panels are arranged beginning in the top row from left to right and then continued in the following row. If the number of panels cranz > profile_columns * profile_rows, the remaining panels are drawn on an additional page. If cranz < profile_columns, then profile_columns = cranz is automatically set. If row  contains any panel, then the value of profile_rows is reduced automatically.

profile_rows

I 2

Number of rows of coordinate systems to be plotted on one page by profil

This parameter only applies for  data_output_format = 'profil'.

It determines the layout of plots of horizontally averaged profiles. See profile_columns.

psolver

C * 10 'poisfft'

Scheme to be used to solve the Poisson equation for the perturbation pressure. 


The user can choose between the following schemes:
poisfft Direct method using FFT along x and y, solution of a tridiagonal matrix along z, and backward FFT (see Siano, institute reports, volume 54). The FFT routines to be used can be determined via the initialization parameter fft_method.
This solver is specially optimized for 1d domain decompositions. Vectorization is optimized for domain decompositions along x only.

poisfft_
hybrid

Direct method using FFT along x and y, solution of a tridiagonal matrix along z, and backward FFT (see Siano, institute reports, volume 54). The FFT routines to be used can be determined via the initialization parameter fft_method.
This solver is specially optimized for 1d domain decompositions. Vectorization is optimized for domain decompositions along x only.
multigrid

Multi-grid scheme (see Uhlenbrock, diploma thesis). v- and w-cycles (see cycle_mg) are implemented. The convergence of the iterative scheme can be steered by the number of v-/w-cycles to be carried out for each call of the scheme (mg_cycles) and by the number of Gauss-Seidel iterations (see ngsrb) to be carried out on each grid level. Instead the requested accuracy can be given via residual_limit. This is the default! The smaller this limit is, the more cycles have to be carried out in this case and the number of cycles may vary from timestep to timestep.


If mg_cycles is set to its optimal value, the computing time of the multi-grid scheme amounts approximately to that of the direct solver poisfft, as long as the number of grid points in the three directions of space corresponds to a power-of-two (2n) where n >= 5 must hold. With large n, the multi-grid scheme can even be faster than the direct solver (although its accuracy is several orders of magnitude worse, but this does not affect the accuracy of the simulation). Nevertheless, the user should always carry out some test runs in order to find out the optimum value for mg_cycles, because the CPU time of a run very critically depends on this parameter.

This scheme requires that the number of grid points of the subdomains (or of the total domain, if only one PE is uesd) along each of the directions can at least be devided once by 2 without rest.

With parallel runs, starting from a certain grid level the data of the subdomains are possibly gathered on PE0 in order to allow for a further coarsening of the grid. The grid level for gathering can be manually set by mg_switch_to_pe0_level.

Using this procedure requires the subdomains to be of identical size (see grid_matching).

sor Successive over relaxation method (SOR). The convergence of this iterative scheme is steered with the parameters omega_sor, nsor_ini and nsor
Compared to the direct method and the multi-grid method, this scheme needs substantially more computing time. It should only be used for test runs, e.g. if errors in the other pressure solver methods are assumed.

In order to speed-up performance, the Poisson equation is by default only solved at the last substep of a multistep Runge-Kutta scheme (see call_psolver at_all_substeps and timestep_scheme). 

rayleigh_damping
_factor

R 0.0 or
0.01

Factor for Rayleigh damping. 

A so-called Rayleigh damping is applied to all prognostic variables if a non-zero value is assigned to rayleigh_damping_factor.  If switched on, variables are forced towards the value of their respective basic states (e.g. the geostrophic wind). The intensity of damping is controlled by the value the rayleigh_damping_factor is assigned to. The damping starts weakly at a height defined by rayleigh_damping_height and rises according to a sin2-function to its maximum value at the top (ocean: bottom) boundary.

This method effectively damps gravity waves, caused by boundary layer convection, which may spread out vertically in the inversion layer and which are reflected at the top (ocean: bottom) boundary. This particularly happens with the upstream-spline scheme switched on (see momentum_advec or scalar_advec). Therefore, with this scheme the Rayleigh damping is switched on (rayleigh_damping_factor = 0.01) by default. Otherwise it remains switched off. 

The Rayleigh damping factor must hold the condition 0.0 <= rayleigh_damping_factor <= 1.0. Large values (close to 1.0) can cause numerical instabilities.

rayleigh_damping
_height

R

2/3 *
zu(nz)

(ocean: 2/3 * zu(0))

Height above (ocean: below) which the Rayleigh damping starts (in m). 

With Rayleigh damping switched on (see rayleigh_damping_factor), this parameter determines the range where damping is applied. By default, Rayleigh damping will be applied in the upper (ocean: lower) third of the model domain.

residual_limit

R 1.0E-6

Largest residual permitted for the multi-grid scheme (in s-2m-3). 

This is a parameter to steer the accuracy of the multi-grid scheme (see psolver). The assigned cycle (v- or w-cycle, see mg_cycles) is passed through until the residual falls below the limit given by residual_limit. If this is not the case after 1000 cycles, the PALM aborts with a corresponding error message.

The reciprocal value of this parameter can be interpreted as a factor by the divergence of the provisional velocity field is approximately reduced after the multi-grid scheme has been applied (thus the default value causes a reduction of the divergence by approx. 6 orders of magnitude). 

restart_time

R 9999999.9

Simulated time after which a restart run is to be carried out (in s).

The simulated time refers to the beginning of the initial run (t = 0), not to the beginning of the respective restart run. Restart runs can additionally be forced to be carried out in regular intervals using the run time parameter dt_restart.

Note:
A successful operation of this parameter requires additional modifications in the mrun-call for the respective run (see chapter 3.3).

The choice of restart_time or dt_restart does not override the automatic start of restart runs in case that the job runs out of CPU time.

For coupled runs this parameter must be equal in both parameter files PARIN and PARIN_O.

section_xy

I(100)
no section

Position of cross section(s) for output of 2d horizontal cross sections (grid point index k). 

If output of horizontal cross sections is selected (see data_output), this parameter can be used to define the position(s) of the cross section(s). Up to 100 positions of cross sections can be selected by assigning section_xy the corresponding vertical grid point index/indices k of the requested cross section(s). The exact location (height level) of the cross section depends on the variable for which the output is made: zu(k) for scalars and horizontal velocities, zw(k) for the vertical velocity. Information about the exact location of the cross section is contained in the NetCDF output file (if the default NetCDF output is switched on; see data_output_format).

Assigning section_xy = -1 creates the output of horizontal cross sections averaged along z. In the NetCDF output file these (averaged) cross sections are given the z-coordinate -1.0.

Assignments to section_xy does not effect the output of horizontal cross sections of variable u* and theta* and the liquid water path lwp*. For these quantities always only one cross section (for z=zu(1)) is output.

In case of data_output_format = 'iso2d' and if several cross sections are selected (e.g. section_xy = 1, 10, 15), then the respective data are successively written to file. The output order follows the order given by section_xy

section_xz

I(100)
no section

Position of cross section(s) for output of 2d (xz) vertical cross sections (grid point index j). 

If output of vertical xz cross sections is selected (see data_output), this parameter can be used to define the position(s) of the cross section(s). Up to 100 positions of cross sections can be selected by assigning section_xz the corresponding horizontal grid point index/indices j of the requested cross section(s). The exact position (in y-direction) of the cross section is given by j*dy or (j-0.5)*dy, depending on which grid the output quantity is defined. However, in the NetCDF output file (if the default NetCDF output is switched on; see data_output_format) no distinction is made between the quantities and j*dy is used for all positions.

Assigning section_xz = -1 creates the output of vertical cross sections averaged along y. In the NetCDF output file these (averaged) cross sections are given the y-coordinate -1.0.

In case of data_output_format = 'iso2d' and if several cross sections are selected (e.g. section_xz = 0, 12, 27), then the respective data are successively written to file. The output order follows the order given by section_xz.

section_yz

I(100)
no section

Position of cross section(s) for output of 2d (yz) vertical cross sections (grid point index i). 

If output of vertical yz cross sections is selected (see data_output), this parameter can be used to define the position(s) of the cross section(s). Up to 100 positions of cross sections can be selected by assigning section_yz the corresponding horizontal grid point index/indices i of the requested cross section(s). The exact position (in x-direction) of the cross section is given by i*dx or (i-0.5)*dx, depending on which grid the output quantity is defined. However, in the NetCDF output file (if the default NetCDF output is switched on; see data_output_format) no distinction is made between the quantities and i*dx is used for all positions.

Assigning section_yz = -1 creates the output of vertical cross sections averaged along x. In the NetCDF output file these (averaged) cross sections are given the x-coordinate -1.0.

In case of data_output_format = 'iso2d' and if several cross sections are selected (e.g. section_yz = 3, 27, 19), then the respective data are successively written to file. The output order follows the order given by section_yz.
skip_time_data_output
R
0.0
No data output before this interval has passed (in s).

This parameter causes that data output activities are starting not before this interval (counting from the beginning of the simulation, t=0) has passed. By default, this applies for output of instantaneous 3d volume data, cross section data, spectra and vertical profile data as well as for temporally averaged 2d and 3d data. Individual intervals can be assigned using parameters skip_time_do3d, skip_time_do2d_xy, skip_time_do2d_xz, skip_time_do2d_yz, skip_time_dospskip_time_dopr, and skip_time_data_output_av.

Example:
If the user has set dt_data_output = 3600.0 and skip_time_data_output = 1800.0, then the first output will be done at t = 5400 s.
skip_time_data_output_av R value of skip_time_
data_output
No output of temporally averaged 2d/3d data before this interval has passed (in s).

This parameter causes that data output activities are starting not before this interval (counting from the beginning of the simulation, t=0) has passed.

Example:
If the user has set dt_data_output_av = 3600.0 and skip_time_data_output_av = 1800.0, then the first output will be done at t = 5400 s.
skip_time_dopr
R
value of skip_time_
data_output
No output of vertical profile data before this interval has passed (in s).

This parameter causes that data output activities are starting not before this interval (counting from the beginning of the simulation, t=0) has passed.

Example:
If the user has set dt_dopr = 3600.0 and skip_time_dopr = 1800.0, then the first output will be done at t = 5400 s.
skip_time_do2d_xy
R
value of skip_time_
data_output
No output of instantaneous horizontal cross section data before this interval has passed (in s).

This parameter causes that data output activities are starting not before this interval (counting from the beginning of the simulation, t=0) has passed.

Example:
If the user has set dt_do2d_xy = 3600.0 and skip_time_do2d_xy = 1800.0, then the first output will be done at t = 5400 s.
skip_time_do2d_xz
R
value of skip_time_
data_output
No output of instantaneous vertical (xz) cross section data before this interval has passed (in s).

This parameter causes that data output activities are starting not before this interval (counting from the beginning of the simulation, t=0) has passed.

Example:
If the user has set dt_do2d_xz = 3600.0 and skip_time_do2d_xz = 1800.0, then the first output will be done at t = 5400 s.
skip_time_do2d_yz
R
value of skip_time_
data_output
No output of instantaneous vertical (yz) cross section data before this interval has passed (in s).

This parameter causes that data output activities are starting not before this interval (counting from the beginning of the simulation, t=0) has passed.

Example:
If the user has set dt_do2d_yz = 3600.0 and skip_time_do2d_yz = 1800.0, then the first output will be done at t = 5400 s.
skip_time_do3d
R
value of skip_time_
data_output
No output of instantaneous 3d volume data before this interval has passed (in s).

This parameter causes that data output activities are starting not before this interval (counting from the beginning of the simulation, t=0) has passed.

Example:
If the user has set dt_do3d = 3600.0 and skip_time_do3d = 1800.0, then the first output will be done at t = 5400 s.

termination_time
_needed

R
35.0

CPU time needed for terminal actions at the end of a run in batch mode (in s).

If the environment variable write_binary is set true (see chapter 3.3), PALM checks the remaining CPU time of the job after each timestep. Time integration must not consume the CPU time completely, since several actions still have to be carried out after time integration has finished (e.g. writing of binary data for the restart run, carrying out output commands, copying of local files to their permanent destinations, etc.) which also takes some time. The maximum possible time needed for these activities plus a reserve is to be given with the parameter termination_time_needed. Among other things, it depends on the number of grid points used. If its value is selected too small, then the respective job will be prematurely aborted by the queuing system, which may result in a data loss and will possibly interrupt the job chain.

An abort happens in any way, if the environment variable write_binary is not set to true and if moreover the job has been assigned an insufficient CPU time by mrun option -t.

Note:
On the IBM computers of the HLRN the time used by the job before the start of PALM have also to be accounted for (e.g. for compilation and copying of input files).

use_prior_plot1d
_parameters

L .F.

Additional plot of vertical profile data with profil from preceding runs of the job chain. 

This parameter only applies for  data_output_format = 'profil'.

By default, plots of horizontally averaged vertical profiles (see data_output_pr) only contain profiles of data produced by the model run. If profiles of prior times (i.e. data of preceding jobs of a job chain) shall be plotted additionally (e.g. for comparison purposes), use_prior_plot1d_parameters = .T. must be set.

For further explanation see chapter 4.5.2.

z_max_do1d

R zu(nzt+1) (model top)

Height level up to which horizontally averaged profiles are to be plotted with profil (in m). 

This parameter only applies for  data_output_format = 'profil'.

It affects plots of horizontally averaged profiles (data_output_pr) when plotted with the plot software profil. By default, profiles are plotted up to the top boundary. The height level up to which profiles are plotted can be decreased by assigning z_max_do1d a smaller value. Nevertheless, all vertical grid points (0 <= k <= nz+1) are still output to file PLOT1D_DATA.

If a normalization for the vertical axis was selected (see cross_normalized_y), z_max_do1d has no effect. Instead, z_max_do1d_normalized must be used.

z_max_do1d
_normalized

R determined by plot
data

Normalized height level up to which horizontally averaged profiles are to be plotted with profil

This parameter only applies for  data_output_format = 'profil'.

It affects plots of horizontally averaged profiles (data_output_pr) when plotted with the plot software profil, if a normalization for the vertical axis is selected (see cross_normalized_y). If e.g. the boundary layer height is used for normalization, then z_max_do1d_normalized = 1.5 means that all profiles up to the height level of z = 1.5* zi are plotted.

z_max_do2d

R
zu(nz)

Height level up to which 2d cross sections are to be plotted with iso2d (in m). 

This parameter only applies for  data_output_format = 'iso2d'.

It affects plots of  2d vertical cross sections (data_output) when plotted with iso2d. By default, vertical sections are plotted up to the top boundary. In contrast, with z_max_do2d the visualization within the plot can be limited to a certain height level (0 <= z <= z_max_do2d). Nevertheless, all grid points of the complete cross section are still output to the local files PLOT2D_XZ or PLOT2D_YZ. The level up to which the section is visualized can later be changed by manually editing the file PLOT2D_XZ_GLOBAL or PLOT2D_YZ_GLOBAL (the respective iso2d-parameter is yright).



Particle parameters:

NAMELIST group name: particles_par
Parameter name Type

Default
value

Explanation

dt_prel

R 9999999.9

Temporal interval at which particles are to be released from a particle source (in s). 

By default particles are released only at the beginning of a simulation (t_init=0). The time of the first release (t_init) can be changed with package parameter particle_advection_start. The time of the last release can be set with the package parameter end_time_prel. If dt_prel has been set, additional releases will be at t = t_init+dt_prel, t_init+2*dt_prel, t_init+3*dt_prel, etc.. Actual release times may slightly deviate from thesel values (see e.g. dt_dopr).

The domain of the particle source as well as the distance of  released particles within this source are determined via package parameters pst, psl, psr, pss, psn, psb, pdx, pdy and pdz. By default, one particle is released at all points defined by these parameters. The package parameter particles_per_point can be used to start more than one particle per point.

Up to 10 different groups of particles can be released at the same time (see number_of_particle_groups) where each group may have a different source. All particles belonging to one group have the same density ratio and the same radius. All other particle features (e.g. location of the source) are identical for all groups of particles.

Subgrid scale velocities can (optionally) be included for calculating the particle advection, using the method of Weil et al. (2004, JAS, 61, 2877-2887). This method is switched on by the package parameter use_sgs_for_particles. This also forces the Euler/upstream method to be used for time advancement of the TKE (see initialization parameter use_upstream_for_tke). The minimum timestep during the sub-timesteps is controlled by package parameter dt_min_part.

By default, particles are weightless and transported passively with the resolved scale flow. Particles can be given a mass and thus an inertia by assigning the package parameter density_ratio a non-zero value (it defines the ratio of the density of the fluid and the density of the particles). In these cases their radius must also be defined, which affects their flow resistance.

Boundary conditions for the particle transport can be defined with package parameters bc_par_t, bc_par_lr, bc_par_ns and bc_par_b.

Timeseries of particle quantities in NetCDF format can be output to local file DATA_1D_PTS_NETCDF by using package parameter dt_dopts.

For analysis, additional output of particle information in equidistant temporal intervals can be carried out using dt_write_particle_data (file PARTICLE_DATA).

Statistical informations (e.g. the total number of particles used, the number of particles exchanged between the PEs, etc.) are output to the local file PARTICLE_INFOS, if switched on by the parameter write_particle_statistics.

If a job chain is to be carried out, particle informations for the restart run (e.g. current location of all particles at the end of the run) is output to the local file PARTICLE_RESTART_DATA_OUT, which must be saved at the end of the run and given as an input file to the restart run under local file name PARTICLE_RESTART_DATA_IN using respective file connection statements in the mrun configuration file.

The output of particles for visualization with the graphic software dvrp is steered by the package parameter dt_dvrp. For visualization purposes particles can be given a diameter by the parameter dvrp_psize (this diameter only affects the visualization). All particles have the same size. Alternatively, particles can be given an individual size and a color by modifying the user-interface (subroutine user_init_particles). Particles can pull a “tail” behind themselves to improve their visualization. This is steered via the parameter use_particle_tails.

So far, the particle transport realized in PALM does only work duly in case of a constant vertical grid spacing!

bc_par_b

C*15 ´reflect´

Bottom boundary condition for particle transport.

By default, particles are reflected at the bottom boundary. Alternatively, a particle absorption can set by bc_par_b = ´absorb´.

bc_par_lr

C*15 ´cyclic´

Lateral boundary condition (x-direction) for particle transport.

By default, cyclic boundary conditions are used along x. Alternatively, reflection (bc_par_lr = ´reflect´) or absorption (bc_par_lr = ´absorb´) can be set.

This lateral boundary conditions should correspond to the lateral boundary condition used for the flow (see bc_lr).

bc_par_ns

C*15 ´cyclic´

Lateral boundary condition (y-direction) for particle transport.

By default, cyclic boundary conditions are used along y. Alternatively, reflection (bc_par_ns = ´reflect´) or absorption (bc_par_ns = ´absorb´) can be set.

This lateral boundary conditions should correspond to the lateral boundary condition used for the flow (see bc_ns).

bc_par_t

C*15 ´absorb´

Top boundary condition for particle transport.

By default, particles are absorbed at the top boundary. Alternatively, a reflection condition can be set by bc_par_t = ´reflect´.

density_ratio

R (10)

0.0, 9 *
9999999.9

Ratio of the density of the fluid and the density of the particles.

With the default value the particles are weightless and transported passively with the resolved scale flow. In case of density_ratio /= 0.0 particles have a mass and hence inertia so that their velocity deviates more or less from the velocity of the surrounding flow. Particle velocity is calculated analytically and depends on (besides the density ratio and the current velocity difference between particles and surrounding fluid) the particle radius which is determined via radius as well as on the molecular viscosity (assumed as 1.461E-5 m2/s).

If density_ratio = 1.0, the particle density corresponds to the density of the surrounding fluid and the particles do not feel any buoyancy. Otherwise, particles will be accelerated upwards (density_ratio > 1.0) or downwards (density_ratio < 1.0).

With several groups of particles (see number_of_particle_groups), each group can be assigned a different value. If the number of values given for density_ratio is less than the number of groups defined by number_of_particle_groups, then the last assigned value is used for all remaining groups. This means that by default the particle density ratio for all groups will be 0.0.

dt_dopts R value of  dt_data_
output

Temporal interval at which time series data of particle quantities shall be output (in s). 

If particle advection is switched on (see dt_prel) this parameter can be used to assign the temporal interval at which time series of particle quantities shall be output. Output is written in NetCDF format on local file DATA_1D_PTS_NETCDF.

The following list gives a short description of the quantities available. Most quantities are averages over all particles. The quantity name given in the first column is identical to the respective name of the variable on the NetCDF file (see section 4.5.1 for a general description of the NetCDF files).

In case of using more than one particle group (see number_of_particle_groups), seperate time series are output for each of the groups. The long names of the variables in the NetCDF file containing the respective timeseries all end with the string
' PG ##', where ## is the number of the particle group (01, 02, etc.).
 
tnpt total number of particles
x_ particle x-coordinate with respect to the particle origin (in m)
y_ particle y-coordinate with respect to the particle origin (in m)
z_ particle z-coordinate with respect to the particle origin (in m)
z_abs absolute particle z-coordinate (in m)
u u particle velocity component (in m/s)
v v particle velocity component (in m/s)
w w particle velocity component (in m/s)
u" subgrid-scale u particle velocity component (in m/s)
v" subgrid-scale v particle velocity component (in m/s)
w" subgrid-scale w particle velocity component (in m/s)
npt_up total number of upward moving particles
w_up vertical velocity of the upward moving particles (in m/s)
w_down vertical velocity of the downward moving particles (in m/s)
npt_max maximum number of particles in a subdomain (=tnpt for non-parallel runs)
npt_min minimum number of particles in a subdomain (=tnpt for non-parallel runs)
x*2 variance of the particle x-coordinate with respect to x_ (in m2)
y*2 variance of the particle y-coordinate with respect to y_ (in m2)
z*2 variance of the particle z-coordinate with respect to z_ (in m2)
u*2 variance of the u particle velocity component with respect to u (in m2/s2)
v*2 variance of the v particle velocity component with respect to v (in m2/s2)
w*2 variance of the w particle velocity component with respect to w (in m2/s2)
u"2 variance of the subgrid-scale u particle velocity component with respect to u" (in m2/s2)
v"2 variance of the subgrid-scale v particle velocity component with respect to v" (in m2/s2)
w"2 variance of the subgrid-scale w particle velocity component with respect to w" (in m2/s2)
npt*2 variance of the number of particles with respect to the average number of particles per subdomain
dt_min_part R 0.0002 Minimum value for the particle timestep when SGS velocities are used (in s).

For a further explanation see package parameter use_sgs_for_particles.
dt_sort_particlesR0.0Temporal interval for sorting particles (in s).

By default, particles are sorted in memory in a way that their order follows the order in which the gridpoint values are stored. This may improve cache coherence in case of larger numbers of particles and gridpoints. However, since the sorting itself is time consuming and since the requirement of sorting depends on the strength of mixing in the flow, performance can be improved if the sorting is applied only after certain time intervals. The proper length of this interval dt_sort_particles must be determined empirically by carrying out test runs with different intervals. Check file CPU_MEASURES to find the value of dt_sort_particles which gives the best performance.

Note:
In case of cloud_droplets = .T., any given non-zero value of dt_sort_particles will be reset to zero and a corresponding warning message will appear in the job protocol.

dt_write_particle_ data

R
9999999.9

Temporal interval for output of particle data (in s).

This parameter can be used to assign the temporal interval at which particle data shall be output. Data are output to the local file PARTICLE_DATA. See the file description for more details about its format.

By default, no particle data are output.

dvrp_psize

R
0.2 * dx

Diameter that the particles is given in visualizations with the dvrp software (in m). 

In case that particles are visualized with the dvrp software (see chapter 4.5.7), their size can be set by parameter dvrp_psize. All particles are displayed with this same size.

Alternatively, the particle diameters can be set with the user-interface in routine user_init_particles (at the beginning of the simulation) and/or can be redefined after each timestep in routine user_particle_attributes (both routines can be found in file user_interface.f90)

Note: This parameter determines exclusively the size under which particles appear in the dvrp visualization. The flow relevant particle radius is determined via the particle package parameter radius!

end_time_prel R 9999999.9 Time of the last release of particles (in s).

See also particle_advection_start.
initial_weighting_factor R
1.0
Factor to define the real number of initial droplets in a grid box.

In case of explicitly simulating cloud droplets (see cloud_droplets), the real number of initial droplets in a grid box is equal to the initial number of droplets in this box (defined by the particle source parameters pst, psl, psr, pss, psn, psb, pdx, pdy and pdz) times the initial_weighting_factor.

maximum_number_of_
particles

I 1000

Maximum number of particles (on a PE). 

This parameter allows to set the number of particles for which memory must be allocated at the beginning of the run. If this memory becomes insufficient during the run, due to the release of further particles (see dt_prel), then more memory is automatically allocated.

For runs on several processors, maximum_number_of_particles defines the maximum number on each PE. This number must be larger than the maximum number of particles initially released in a subdomain.

maximum_number_of_
tailpoints

I 100

Maximum number of tailpoints that a particle tail can have. 

 maximum_number_of_tailpoints sets the number of descrete points the tail consists of. A new point is added to the particle tails after each time step. If the maximum number of tail points is reached after the corresponding number of timesteps, the oldest respective tail points is deleted within the following timestep. 

All particle tails have the same number of points. The maximum length of these tails is determined by the value of maximum_number_of_tailpoints and by the minimum distance between each of the adjoining tailpoints,  which can be set by minimum_tailpoint_distance. Additionally, it can be determined that the temporal displacement between the current position of the particle and the oldest point of the tail may become not larger than a value to be assigned by maximum_tailpoint_age.

maximum_tailpoint_
age

R 100000.0

Maximum age that the end point of a particle tail is allowed to have (in s). 

If the temporal displacement between the oldest point of a particle tail and the current position of the particle becomes larger than the value given by maximum_tailpoint_age, this oldest point (which defines the end of the tail) is removed. If this time is so small that the number of points defining the particle tail do not exceed the value given by maximum_number_of_tailpoints, then the length the particle tails is a measure for the distance the particle travelled along during the time interval defined via maximum_tailpoint_age, i.e. for the particle velocity. Fast particles will have long tails, slow particles shorter ones (note: this will not neccessarily hold if minimum_tailpoint_distance = 0.0).

minimum_tailpoint_distance

R 0.0

Minimum distance allowed between two adjacent points of a particle tail (in m). 

In case of minimum_tailpoint_distance > 0.0 the particle tail is extended by a new point only if the distance between its current position and the most recent tail point exceed the distance given via minimum_tailpoint_distance.

If the length of the particle tails shall be proportional to the respective particle velocity, the parameter maximum_tailpoint_age must also be set appropriately.

Note:
A suitable choice of minimum_tailpoint_distance > 0.0 is recommended, because then the tail coordinates of slowly moving particles require less memory and can also be drawn faster. The upper limit of minimum_tailpoint_distance should be chosen in a way that the visualized particle tails still appear as smooth lines. Example: with a model domain of 1000 m and a monitor resolution of 1280 * 1024 pixels it should be sufficient to set minimum_tailpoint_distance = 5.0 (m).
number_of_particle_groups
I
1
Number of particle groups to be used.

Each particle group can be assigned its own source region (see pdx, psl, psr, etc.), particle diameter (radius) and particle density ratio (density_ratio).

If less values are given for pdx, psl, etc. than the number of particle groups, then the last value is used for the remaining values (or the default value, if the user did not set the parameter).

The maximum allowed number of particle groups is limited to 10.
particles_per_point I 1 Number of particles to be started per point.

By default, one particle is started at all points of the particle source, defined by the package parameters pst, psl, psr, pss, psn, psb, pdx, pdy and pdz.

particle_advection_
start

R 0.0

Time of the first release of particles (in s).

If particles are not to be released at the beginning of the run, the release time can be set via particle_advection_start.
If particle transport is switched on in a restart run, then read_particles_from_restartfile = .F. is also required.

See also end_time_prel.

particle_maximum_age

R 9999999.9

Maximum allowed age of particles (in s). 

If the age of a particle exceeds the time set by particle_maximum_age, the particle as well as its tail is deleted.

pdx

R (10)
10 * dx

Distance along x between particles within a particle source (in m). 

If the particle source shall be confined to one grid point, the distances given by pdx, pdy and pdz must be set larger than the respective domain size or psl = psr has to be set alternatively.

pdx can be assigned a different value for each particle group (see number_of_particle_groups).

pdy

R (10)
10 * dy Distance along y between particles within a particle source (in m). 

pdz

R (10)
10 * ( zu(2) - zu(1) ) Distance along z between particles within a particle source (in m).

psb

R (10)
10  * zu(nz/2) Bottom edge of a particle source (in m).

psl

R (10)
10 * 0.0 Left edge of a particle source (in m).

psn

R (10)
10 * (ny * dy) Rear (“north”) edge of a particle source (in m).

psr

R (10)
10 * (nx * dx) Right edge of a particle source (in m).

pss

R (10)
10 * 0.0 Front (“south”) edge of a particle source (in m).

pst

R (10)
10 * zu(nz/2) Top edge of a particle source (in m).

radius

R (10) 0.0, 9*
9999999.9
Particle radius (in m).

The viscous friction (in case of a velocity difference between particles and surrounding fluid) depends on the particle radius which must be assigned as soon as density_ratio /= 0.0.

With several groups of particles (see number_of_particle_groups), each group can be assigned a different value. If the number of values given for radius is less than the number of groups defined by number_of_particle_groups, then the last assigned value is used for all remaining groups. This means that by default the particle radius for all groups will be 0.0.

random_start_position

L
.F.

Initial position of the particles is varied randomly within certain limits. 

By default, the initial positions of particles within the source excatly correspond with the positions given by psl, psr, psn, pss, psb, pst, pdx, pdy, and pdz. With random_start_position = .T. the initial positions of the particles are allowed to randomly vary from these positions within certain limits. 

Very important:
In case of random_start_position = .T., the random-number generators on the individual PEs no longer  run synchronously. If random disturbances are applied to the velocity field (see create_disturbances), then as consequence for parallel runs the realizations of the turbulent flow fields will deviate between runs which used different numbers of PEs!

read_particles_from_
restartfile

L
.T.

Read particle data from the previous run. 

By default, with restart runs particle data is read from file PARTICLE_RESTART_DATA_IN, which is created by the preceding run. If this is not requested or if in a restart run particle transport is switched on for the first time (see particle_advection_start), then read_particles_from_restartfile = .F. is required.

skip_particles_for_tail
I
100
Limit the number of particle tails.

If particle tails are switched on (see use_particle_tails), every particle is given a tail by default. skip_particles_for_tail can be used to give only every n'th particle a tail.

Example:
skip_particles_for_tail = 10 means that only every 10th particle will be given a tail.
use_particle_tails
L
.F.
Give particles a tail.

A particle tail is defined by the path a particle has moved along starting from some point of time in the past. It consists of a set of descrete points in space which may e.g. be connected by a line in order visualize how the particle has moved.

By default, particles have no tail. Parameter skip_particles_for_tail can be used to give only every n'th particle a tail.

The length of the tail is controlled by parameters maximum_number_of_tailpointsmaximum_tailpoint_age, and minimum_tailpoint_distance.
use_sgs_for_particles L .F. Use subgrid-scale velocities for particle advection.

These velocities are calculated from the resolved and subgrid-scale TKE using the Monte-Carlo random-walk method described by Weil et al. (2004, JAS, 61, 2877-2887). When using this method, the timestep for the advancement of the particles is limited by the so-called Lagrangian time scale. This may be smaller than the current LES timestep so that several particle (sub-) timesteps have to be carried out within one LES timestep. In order to limit the number of sub-timesteps (and to limit the CPU-time), the minimum value for the particle timestep is defined by the package parameter dt_min_part.

Setting use_sgs_for_particles = .TRUE. automatically forces use_upstream_for_tke = .TRUE.. This inhibits the occurrence of large (artificial) spatial gradients of the subgrid-scale TKE which otherwise would lead to wrong results for the particle advection.

vertical_particle_
advection

L
.T.

Switch on/off vertical particle transport.

By default, particles are transported along all three directions in space. With vertical_particle_advection = .F., the particles will only be transported horizontally.

write_particle_
statistics

L
.F.

Switch on/off output of particle informations.


For write_particle_statistics = .T. statistical informations (e.g. the total number of particles used, the number of particles exchanged between the PEs, etc.) which may be used for debugging are output to the local file PARTICLE_INFOS

Note: For parallel runs files may become very large and performance of PALM may decrease.



Package parameters:


Package (mrun option -p): dvrp_graphics     NAMELIST group name: dvrp_graphics_par

Parameter name Type

Default
value

Explanation
cluster_sizeI1Vertex cluster size for polygon reduction of topography.

This parameter can be used to reduce the number of polygones which form the topography isosurface. In case of large numerical grids (large number of gridpoints) and /or complex topography, cluster_size > 1 may speed up the animation significantly. Disadvantage: buildings may loose their strict rectangular shape.

The allowed range of values is 1 <= cluster_size <= 5.

Warning: The allowed range of values is not checked. Wrong values may lead to unforseen effects or even aborts!

dt_dvrp

R 9999999.9

Temporal interval of scenes to be displayed with the dvrp software (in s). 

Isosurfaces, cross sections and particles can be displayed simultaneous. The display of particles requires that the particle transport is switched on (see dt_prel). Objects to be displayed have to be determined with mode_dvrp.

If output of scenes created by dvrp software is switched on (see mode_dvrp), this parameter can be used to assign the temporal interval at which scenes are to be created (and the respective  graphical data is to be output to the streaming server). Reference time is the beginning of  the simulation, i.e. output takes place at times t = dt_dvrp, 2*dt_dvrp, 3*dt_dvrp, etc. The actual output times can deviate from these theoretical values (see dt_dopr).  Is dt_dvrp < dt, then scenes are created and output after each time step (if this is requested it should be dt_dvrp = 0).

dvrp_directory

C*80 'default'

Name of the directory into which data created by the dvrp software shall be saved. 

By default, the directory name is generated from the user name (see package parameter dvrp_username) and the base file name (given as the argument of mrun option -d) as '<user name>/<base file name>'.

dvrp_file

C*80 'default'

Name of the file into which data created by the dvrp software shall be output. 

This parameter can be given a value only in case of dvrp_output = 'local' which determines that the data created by dvrp is output to a local file (on the machine where PALM is executed). Apart from the default, it is only allowed to assign '/dev/null' (which means that no output is really stored). This can be used for special runtime measurements of the dvrp software.

dvrp_host

C*80

'origin.rvs.
uni- hanover.de'

Name of the computer to which data created by the dvrp software shall be transferred. 

In case of dvrp_output = 'rtsp' only the default value is allowed (streaming server of the RRZN). For dvrp_output = 'local' the assigned value is ignored.

dvrp_output

C*10 'rtsp'

Output mode for the dvrp software.

The following settings are allowed:

'rtsp' Data created by the dvrp software is transferred using a special transmission protocol to a so-called streaming server, which is able to continuously transfer visualization data with a high transmission rate. 
Additionally, with this output mode a set of files is generated automatically within a directory on the streaming server (beside the visualization data e.g. some html-files) which can be used to visualize the data via an internet-browser plugin. Host (streaming-server) and directory can be defined by the user with dvrp_host and dvrp_directory.
'ftp' Data created by the dvrp software is transferred to the destination host (see dvrp_host and dvrp_directory) using ftp.
'local' Data created by the dvrp software is output locally on a file defined by dvrp_file .

dvrp_password

C*80 '********'

Password for the computer to which data created by the dvrp software is to be transferred. 

Assigning a password is only necessary in case of dvrp_output = 'ftp'. For dvrp_output = 'rtsp' the default value must not be changed!

dvrp_username

C*80

User name of a valid account on the computer to which data created by the dvrp software is to be transferred. 

Assigning a value to this parameter is required in case of dvrp_output = 'rtsp' or 'ftp'.

mode_dvrp

C*20 
(10)
10 * ''

Graphical objects (isosurfaces, slicers, particles) which are to be created by the dvrp software. 

Several different objects can be assigned simultaneously and will be displayed in the same scene. Allowed values for mode_dvrp are 'isosurface##' (isosurface), 'slicer##' (cross sections), and 'particles'. Within the strings the hash characters ("##") have to be replaced by two digits 01≤##≤99. Up to 10 objects can be assigned at the same time, e.g.: 

mode_dvrp = 'isosurface02', 'slicer01', 'particles', 'slicer02'

In this case one isosurface, two cross sections, and particles will be created. The quantities for which isosurfaces or cross sections are to be created have to be selected with the parameter data_output (data_output also determines the orientation of the cross section, thus xy, xz, or yz). Since for data_output lists of variables may be assigned, the digits at the end of the mode_dvrp-string select the quantity, which is given at the respective position in the respective list (e.g. 'isosurface02' selects the second 3D quantity of data_output, 'slicer01' selects the first 2D quantity of data_output). If e.g. data_output is assigned as data_output = 'u_xy', 'w_xz', 'v_yz', 'pt', 'u', 'w', then - assuming the above assignment of mode_dvrp - an isosurface of u, a horizontal cross section of u and a vertical cross section (xz) of w are created. For locations of the cross sections see data_output. The theshold value for which the isosurface is to be created can be defined with parameter threshold.

The vertical extension of the displayed domain is given by nz_do3d.

If user-defined dvrp objects exist (see chapter 3.5.4), then mode_dvrp may also refer to quantities selected with the parameter data_output_user (internally PALM appends them to those selected with the parameter data_output).

Assignments of mode_dvrp must correspond to those of data_output and data_output_user! If e.g. data_output = 'pt_xy', 'w' was set, then only the digits "01" are allowed for mode_dvrp, thus 'isosurface01' and/or 'slicer01'.

Further details about using the dvrp software are given in chapter 4.5.7.

Note:
The declaration color charts to be used still have to be given "manually" in subroutine user_dvrp_coltab (file user_interface.f90). 
A change of particle colors and/or particle diameters (e.g. according to the local characteristics of the flow field) to be used for the visualization, must be carried out by adding respective code extensions to user_particle_attributes (in file user_interface.f90). 
slicer_range_limits_
dvrp
R(2,10) 10 * (-1,1) Ranges of values to which a color table has to be mapped (units of the respective quantity).

In case that slicers have to be displayed (see mode_dvrp), this parameter defines the ranges of values of the respective quantities to which the colortable in use has to be mapped. If e.g. a temperature slice shall be displayed, the colortable defines colors from blue to red, and slicer_range_limits_dvrp = 290.0, 305.0 then areas with temperature of 290 K are displayed in dark blue and those with 305.0 are displayed in dark red. Temperatures within these limits will be displayed by a continuous color gradient from blue to red and Temperatures outside the limits will be displayed either in dark blue or in dark red.

Up to ten different ranges can be assigned in case that more than one slicer has to be displayed.

See mode_dvrp for the declaration of color charts.

superelevation

R 1.0

Superelevation factor for the vertical coordinate. 

For domains with unfavorable ratio between the vertical and the horizontal size (the vertical size is determined by nz_do3d) a superelevation /= 1.0 may be used. If e.g. the horizontal size is substantially larger than the vertical size, a superelevation much larger than 1.0 should be used, since otherwise the domain appears as a "flat disk" in the visualization and thus the vertical direction is only very poorly resolved.

superelevation_x

R
1.0

Superelevation factor for the horizontal (x) coordinate. 

This parameter can be used to stretch the displayed domain along the x-direction. See also superelevation.

superelevation_y

R
1.0
Superelevation factor for the horizontal (y) coordinate. 

This parameter can be used to stretch the displayed domain along the y-direction. See also superelevation.

threshold

R(10)
0.0

Threshold value for which an isosurface is to be created by the dvrp software. 

If the creation of isosurfaces is switched on via parameter mode_dvrp, then the respective threshold value for which the isosurface is to be created can be assigned via threshold. If several isosurfaces are given by mode_dvrp, then an individual threshold value for each isosurface can be assigned. The order of the threshold values refers to the order of the isosurfaces given by mode_dvrp.


Package (mrun option -p): spectra     NAMELIST group name: spectra_par

Parameter name Type

Default
value

Explanation

averaging_interval_sp

R
value of averaging_
interval

Averaging interval for spectra output to local file DATA_1D_SP_NETCDF and/or  PLOTSP_X_DATA /    PLOTSP_Y_DATA (in s). 

If this parameter is given a non-zero value, temporally averaged spectra data are output. By default, spectra data data are not subject to temporal averaging. The interval length is limited by the parameter dt_dosp. In any case averaging_interval_sp <= dt_dosp must hold.

If an interval is defined, then by default the average is calculated from the data values of all timesteps lying within this interval. The number of time levels entering into the average can be reduced with the parameter dt_averaging_input_pr.

If an averaging interval can not be completed at the end of a run, it will be finished at the beginning of the next restart run. Thus for restart runs, averaging intervals do not necessarily begin at the beginning of the run.

comp_spectra_level I(100) no level

Vertical level for which horizontal spectra are to be calculated and output (gridpoints).


Spectra can be calculated for up to 100 levels.

data_output_sp

C*10 (10) 10 * ' '

Quantities for which horizontal spectra are to be calculated and output.

Allowed standard values are:  data_output_sp = 'u', 'v', 'w', 'pt', 'q'. The user may define further quantities (see chapter 3.5.4 part 5).

Spectra are calculated using the FFT-method defined by fft_method.

By default spectra data are output to the local file DATA_1D_SP_NETCDF. The file's format is NetCDF.  Further details about processing NetCDF data are given in chapter 4.5.1.

The temporal interval of the output times of profiles is assigned via the parameter dt_dosp

The vertical levels for which spectra are to be computed and output must be given by parameter comp_spectra_level.

Note:
Beside data_output_sp, values must be given for each of the parameters,  comp_spectra_level, and spectra_direction, otherwise no output will be created!


Calculation of spectra requires cyclic boundary conditions along the respective directions (see bc_lr and bc_ns).For historical reasons, data can also be output in ASCII-format on local files PLOTSP_X_DATA and/or PLOTSP_Y_DATA (depending on the direction(s) along which spectra are to be calculated; see spectra_direction), which are readable by the graphic software profil. See parameter data_output_format for defining the format in which data shall be output. Within these file, the spectra are ordered with respect to their output times. Spectra can also be temporally averaged (see averaging_interval_sp ). Each data point of a spectrum is output in a single line (1st column: wavenumber, 2nd column: spectral coefficient). If spectra are to be calculated and output for more than one height (see comp_spectra_level), the spectral coefficients for the further heighs can be found in the subsequent columns. The order of the data in the file follows the order used in the assignment for data_output_sp (data_output_sp = 'u', 'v',… means that the file starts with the spectra of the u-component, followed by the v-component spectra, etc.). Additional to the files PLOTSP_X_DATA and PLOTSP_Y_DATA which contain the data, PALM creates NAMELIST parameter files (local name PLOTSP_X_PAR and PLOTSP_Y_PAR) which can be used as parameter input file for the plot software profil. Spectra can be directly plotted with profil using the data and the corresponding parameter file. The plot layout is steered via the parameter input file. The vertical levels for which spectra are to be plotted must be given by plot_spectra_level. Otherwise, no spectra will appear on the plot, although data are available on file. All parameter values can be changed by editing the parameter input file.

dt_dosp

R value of  dt_data_
output

Temporal interval at which spectra data shall be output (in s). 

If output of horizontal spectra is switched on (see data_output_sp), this parameter can be used to assign the temporal interval at which spectral data  shall be output. Output can be skipped at the beginning of a simulation using parameter skip_time_dosp, which has zero value by default. Reference time is the beginning of  the simulation, i.e. output takes place at times t = skip_time_dosp + dt_dosp, skip_time_dosp + 2*dt_dosp, skip_time_dosp + 3*dt_dosp, etc. The actual output times can deviate from these theoretical values (see dt_dopr).  If dt_dosp < dt, then spectral data are output after each time step (if this is requested it should be dt_dosp = 0).

plot_spectra_level

I(100) no level

Vertical level(s) for which horizontal spectra are to be plotted (in gridpoints). 

This parameter only affects the display of spectra in plots created with profil. The spectral data created and output to file are exclusively determined via comp_spectra_level.

skip_time_dosp R
value of skip_time_
data_output
No output of spectra data before this interval has passed (in s).

This parameter causes that data output activities are starting not before this interval (counting from the beginning of the simulation, t=0) has passed.

Example:
If the user has set dt_dosp = 3600.0 and skip_time_dosp = 1800.0, then the first output will be done at t = 5400 s.

spectra_direction

C*2 (10) 10 * ' '

Direction(s) along which spectra are to be calculated. 

Allowed values are 'x', 'y' and 'xy'. For every quantity given by data_output_sp a corresponding direction must be assigned.

Calculation of spectra requires cyclic boundary conditions along the respective directions (see bc_lr and bc_ns).



Last change: $Id: chapter_4.2.html 262 2009-03-18 08:32:37Z letzel $