Version 199 (modified by gryschka, 15 years ago) (diff)

--

Runtime parameters

Data output

Run steering

Processor grid














Data output:

Parameter Name FORTRAN
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 (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.

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 netCDF data output 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 m2/s2
lwp* liquid water path m only horizontal cross section is allowed, requires cloud_physics = .T.
p perturpation pressure N/m2, Pa
pc particle/droplet concentration #/gridbox
pr mean particle/droplet radius m
pra* precipitation amount mm only horizontal cross section is allowed, requires precipitation = .T., 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 = .T.
pt potential temperature K
q specific humidity (or total water content, if cloud physics is switched on) kg/kg requires humidity = .T.
ql liquid water content kg/kg requires cloud_physics = .T. or cloud_droplets = .T.
ql_c change in liquid water content due to condensation/evaporation during last timestep kg/kg requires cloud_droplets = .T.
ql_v volume of liquid water m3/gridbox requires cloud_droplets = .T.
ql_vp weighting factor requires cloud_droplets = .T.
qsws* latent surface heatflux kg/kg * m/s only horizontal cross section is allowed, requires humidity = .T.
qv water vapor content (specific humidity) kg/kg requires cloud_physics = .T.
rho potential density kg/m3 requires ocean = .T.
s concentration of the scalar 1/m3 requires passive_scalar = .T.
sa salinity psu requires ocean = .T.
shf* sensible surface heatflux K m/s only horizontal cross section is allowed
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 = .T.
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 User-defined output quantities). 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 (automatically activated by mrun).

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 Postprocessing with AVS?.

Important:
There is no guarantee that 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 64bit-offset format (see netCDF data output). 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.

Other netCDF formats (classic, netCDF4/HDF5) can be selected with parameter netcdf_data_format.

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

'avs' output of 3d volume data in FORTRAN binary format to be read by the graphic software AVS (see chapter Postprocessing with AVS?)

Multiple values can be assigned to data_output_format, i.e. if the user wants to have both the "old" data format as well as cross section data in netCDF format, then data_output_format = 'avs', '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_masks

C *10 (max_masks, 100)

max_masks *100* ' '

Quantities for which masked data are to be output.

Unlimited different masks can be defined (see Masked data output). For each mask different instantaneous or temporally averaged quantities (up to 100) can be output. The masks are steered with the parameters mask_x, mask_y, mask_z, mask_x_loop, mask_y_loop and mask_z_loop. It is possible to scale the masked data with a specified length for each direction (see mask_scale_x, mask_scale_y and mask_scale_z).

By default, masked data are output to local files DATA_MASK_01_NETCDF, DATA_MASK_02_NETCDF, ... . If the user has switched on the output of temporally averaged data, these are written seperately to local files DATA_MASK_01_AV_NETCDF, DATA_MASK_02_AV_NETCDF, ... . The file's format is netCDF. Further details about processing netCDF data are given in netCDF data output.

The following quantities are available for output by default:

Quantity name Meaning Unit Remarks
e SGS m2/s2
p perturpation pressure N/m2, Pa
pc particle/droplet concentration #/gridbox
pr mean particle/droplet radius m
pt potential temperature K
q specific humidity (or total water content, if cloud physics is switched on) kg/kg requires humidity = .T.
ql liquid water content kg/kg requires cloud_physics = .T. or cloud_droplets = .T.
ql_c change in liquid water content due to condensation/evaporation during last timestep kg/kg requires cloud_droplets = .T.
ql_v volume of liquid water m3/gridbox requires cloud_droplets = .T.
ql_vp weighting factor requires cloud_droplets = .T.
qv water vapor content (specific humidity) kg/kg requires cloud_physics = .T.
rho potential density kg/m3 requires ocean = .T.
s concentration of the scalar 1/m3 requires passive_scalar = .T.
sa salinity psu requires ocean = .T.
u u-component of the velocity m/s
v v-component of the velocity m/s
vpt virtual potential temperature K requires humidity = .T.
w w-component of the velocity m/s

Example:

data_output_masks (1,:) = 'u', 'v', 'u_av', 'v_av'
data_output_masks (2,:) = 'w', 'w_av'
data_output_masks (3,:) = 'pt', 'u', 'v', 'w'

This example will create the following output:
Mask 1: Instantaneous data of u- and v-velocity component (by default on file DATA_MASK_01_NETCDF) and temporally averaged data of u- and v-velocity component (by default on file DATA_MASK_01_AV_NETCDF)
Mask 2: Instantaneous data of w-velocity component (by default on file DATA_MASK_02_NETCDF) and temporally averaged data of w-velocity component (by default on file DATA_MASK_02_AV_NETCDF)
Mask 3: Instantaneous data of potential temperature, u-, v- and w-velocity component (by default on file DATA_MASK_03_NETCDF)

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

The time intervals of the output times for each mask are determined via dt_domask.
Individual time interval for output of temporally averaged data can be assigned using the parameter dt_data_output_av. The length of the averaging interval is controlled via parameter averaging_interval. No particular parameters are existent for steering the time averaged output of each separate mask.

The parameter skip_time_domask can be used to shift data output activities for a given time interval.

By default, up to 50 different masks can be assigned (max_masks = 50). If you wish to output more masks, change max_masks in module.f90 to the desired value.

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 netCDF data 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.

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.

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



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).

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.

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 Postprocessing with AVS?.

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_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_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_domask, 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_domask

R (max_masks)

max_masks * value of
dt_data
_output

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

If output of masked data is switched on (see data_output_masks), this parameter can be used to assign the temporal interval at which these data shall be output. For each mask, a separate output time can be assigned.

Example:

dt_domask = 600., 1800., 600.
In this example output of mask 1 is done every 600s, of mask 2 every 1800s and of mask 3 every 600s.

By default the temporal interval of data_output is used.

Output can be skipped at the beginning of a simulation using parameter skip_time_domask, which has zero value by default. Reference time is the beginning of the simulation, i.e. output takes place at times t = skip_time_domask + dt_domask, skip_time_domask + 2*dt_domask, skip_time_domask + 3*dt_domask, 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.

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) (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 way, end_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 way, end_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 netCDF data output.

The file contains the following timeseries quantities (the first column gives the name of the quantities as used in the netCDF file):

Quantity name Meaning Unit
E Total (resolved and subgrid-scale) kinetic energy of the flow (normalized with respect to the total number of grid points) m2/s2
E* Resolved-scale kinetic energy of the flow (normalized with respect to the total number of grid points) m2/s2
dt Time step size s
u* Friction velocity (horizontal average) m/s
w* Vertical velocity scale of the CBL (horizontal average) m/s
th* Temperature scale (Prandtl layer), defined as w"pt"0 / u* (horizontal average)K
umax Maximum u-component of the velocity m/s
vmax Maximum v-component of the velocity m/s
wmax Maximum w-component of the velocity 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) 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) 1/s
z_i_wpt Height of the convective boundary layer (horizontal average) determined by the height of the minimum sensible heat flux m
z_i_pt Height of the convective boundary layer (horizontal average) determined by the temperature profile, following the criterion of Sullivan et al. (1998) m
w"pt"0 Subgrid-scale sensible heat flux at k=0 (horizontal average), constant within Prandtl-layer K m/s
w"pt" Subgrid-scale heat flux (horizontal average) for z = zw(1) K m/s
wpt Total heat flux (horizontal average) for z = zw(1) K m/s
w"u"0 Subgrid-scale momentum flux (u-component) at k=0 (horizontal average), constant within Prandtl-layer m2/s2
w"v"0 Subgrid-scale momentum flux (v-component) at k=0 (horizontal average), constant within Prandtl-layer m2/s2
w"q"0 Subgrid-scale humidity flux at k=0 (horizontal average), constant within Prandtl-layer, zero values are output if humidity is not used kg/kg m/s
pt(0) Potential temperature at the surface (horizontal average) K
pt(zp) Potential temperature for z = zu(1) (horizontal average) K
L Monin-Obukhov length m



Additionally, the user can add his own timeseries quantities to the file, by using the user-interface subroutines user_init.f90 and user_statistics.f90 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_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.

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.

mask_scale_x

R

1.0

Scaling length for masked data output along x-direction.

This parameter defines the length which scales the positions of the masked data along x-direction.

Example:

mask_scale_x = 10. will scale the positions (e.g. 0.m, 500.m, 1000.m) for masked output along x-direction by 10.0 (-> mask_x = 0., 50., 100.).

For scaling the masked data along y-direction use mask_scale_y. For scaling the masked data along z-direction use mask_scale_z.

mask_scale_y

R

1.0

Scaling length for masked data output along y-direction.

This parameter defines the length which scales the positions of the masked data along y-direction.

Example:

mask_scale_y = 10. will scale the positions (e.g. 0.m, 500.m, 1000.m) for masked output along y-direction by 10.0 (-> mask_y = 0., 50., 100.).

For scaling the masked data along x-direction use mask_scale_x. For scaling the masked data along z-direction use mask_scale_z.

mask_scale_z

R

1.0

Scaling length for masked data output along z-direction.

This parameter defines the length which scales the positions of the masked data along z-direction.

Example:

mask_scale_z = 10. will scale the positions (e.g. 0.m, 500.m, 1000.m) for masked output along z-direction by 10.0 (-> mask_z = 0., 50., 100.).

For scaling the masked data along x-direction use mask_scale_x. For scaling the masked data along y-direction use mask_scale_y.

mask_x

R (max_masks, 100)

max_masks *100* -1.0

All x-coordinates of mask positions (in multiples of mask_scale_x).

This parameter defines all positions along x-direction where quantities for masked data are to be output (see data_output_mask). For each mask a separate mask_x has to be assigned.

Example:

mask_x (1,:) = 0., 50., 100., 500., 550., 600.
mask_x (2,:) = 1000.

This example will create outputs at the specified points (in m, if mask_scale_x is not used) of the model domain.

If you use mask_scale_x, mask_x has to be assigned in "grid point position along x-direction [m]/mask_scale_x " (e.g. mask_scale_x = 10.0 -> mask_x (1,:) = 0., 5., 10., 50., 55., 60.).

The default results in output at every grid point along the x-direction, i.e. from 0 to nx.

If you want to output quantities at positions with constant spaces (e.g. every 100m), use the parameter mask_x_loop.

Locations for y-direction can be assigned with the parameters mask_y or mask_y_loop. Locations for z-direction can be assigned with the parameters mask_z or mask_z_loop.

Further examples are given in Masked data output.

mask_y

R (max_masks, 100)

max_masks *100* -1.0

All y-coordinates of mask positions (in multiples of mask_scale_y).

This parameter defines all positions along y-direction where quantities for masked data are to be output (see data_output_mask). For each mask a separate mask_y has to be assigned.

Example:

mask_y (1,:) = 0., 50., 100., 500., 550., 600.
mask_y (2,:) = 1000.

This example will create outputs at the specified points (in m, if mask_scale_y is not used) of the model domain.

If you use mask_scale_y, mask_y has to be assigned in "grid point position along y-direction [m]/mask_scale_y " (e.g. mask_scale_y = 10.0 -> mask_y (1,:) = 0., 5., 10., 50., 55., 60.).

The default results in output at every grid point along the y-direction, i.e. from 0 to ny.

If you want to output quantities at positions with constant spaces (e.g. every 100m), use the parameter mask_y_loop.

Locations for x-direction can be assigned with the parameters mask_x or mask_x_loop. Locations for z-direction can be assigned with the parameters mask_z or mask_z_loop.

Further examples are given in Masked data output.

mask_z

R (max_masks, 100)

max_masks *100* -1.0

All z-coordinates of mask positions (in multiples of mask_scale_z).

This parameter defines all positions along z-direction where quantities for masked data are to be output (see data_output_mask). For each mask a separate mask_z has to be assigned.

Example:

mask_z (1,:) = 0., 50., 100., 500., 550., 600.
mask_z (2,:) = 1000.

This example will create outputs at the specified points (in m, if mask_scale_z is not used) of the model domain.

If you use mask_scale_z, mask_z has to be assigned in "grid point position along z-direction [m]/mask_scale_z " (e.g. mask_scale_z = 10.0 -> mask_z (1,:) = 0., 5., 10., 50., 55., 60.).

The default results in output at every grid point along the z-direction, i.e. from 0 to nz.

If you want to output quantities at positions with constant spaces (e.g. every 100m), use the parameter mask_z_loop.

Locations for x-direction can be assigned with the parameters mask_x or mask_x_loop. Locations for y-direction can be assigned with the parameters mask_y or mask_y_loop.

Further examples are given in Masked data output.

mask_x_loop

R (max_masks, 3)

max_masks * (/-1.0, -1.0, -1.0/)

Loop begin, end and stride for x-coordinates of mask locations for masks (in multiples of mask_scale_x).

This parameter should be used, if masked data are to be output at periodic positions (e.g. every 100m along x-direction). The first parameter assigns the start position (e.g. 0m), the second one the end position (e.g. 2000m) and the third one the stride (e.g. 100m) -> mask_x_loop (1,:) = 0.0,2000.,100..

For each mask a separate mask_x_loop has to be assigned.

The default results in output at every grid point along the x-direction, i.e. from 0 to nx.

Note: If mask_x is also specified, mask_x_loop will be ignored.

Further examples are given in Masked data output.

mask_y_loop

R (max_masks, 3)

max_masks * (/-1.0, -1.0, -1.0/)

Loop begin, end and stride for y-coordinates of mask locations for masks (in multiples of mask_scale_y).

This parameter should be used, if masked data are to be output at periodic positions (e.g. every 100m along y-direction). The first parameter assigns the start position (e.g. 0m), the second one the end position (e.g. 2000m) and the third one the stride (e.g. 100m) -> mask_y_loop (1,:) = 0.0,2000.,100..

For each mask a separate mask_y_loop has to be assigned.

The default results in output at every grid point along the y-direction, i.e. from 0 to ny.

Note: If mask_y is also specified, mask_y_loop will be ignored.

Further examples are given in Masked data output.

mask_z_loop

R (max_masks, 3)

max_masks * (/-1.0, -1.0, -1.0/)

Loop begin, end and stride for z-coordinates of mask locations for masks (in multiples of mask_scale_z).

This parameter should be used, if masked data are to be output at periodic positions (e.g. every 100m along z-direction). The first parameter assigns the start position (e.g. 0m), the second one the end position (e.g. 2000m) and the third one the stride (e.g. 100m) -> mask_z_loop (1,:) = 0.0,2000.,100..

For each mask a separate mask_z_loop has to be assigned.

The default results in output at every grid point along the z-direction, i.e. from 0 to nz.

Note: If mask_z is also specified, mask_z_loop will be ignored. If you have assigned dz_stretch_level, mask_z_loop will fail above dz_stretch_level. If masked outputs are desired above dz_stretch_level, you should use mask_z instead.

Further examples are given in Masked data output.

netcdf_data_format

I

2

Data format for netCDF files.

This variable defines the format of the netCDF files. Following values are allowed:

1 netCDF classic format (filesize limited to 2GB)
2 netCDF 64-bit-offset format (large file support, but single variable still limited to 2GB)
3 netCDF-4 (HDF5) format (files can be as large as file system supports; unlimited variable size; allows parallel I/O)
4 netCDF-4 format, but with NF90_CLASSIC_MODEL bit set (some new features of netCDF4 are not available)

Important:
Setting netcdf_data_format > 2 requires a netCDF4 library (set -I, -L, and -l options for compiling and linking appropriately in configuration file). Also, preprocessor switch _netcdf4 has to be set (see line starting with %cpp_opts in the mrun configuration file).

Files with netCDF4 format cannot be read with netCDF3 libraries.

netcdf_precision

C*20 (10)

single precision for all output quantities

Defines the accuracy of the netCDF output.

By default, all netCDF output data (see data_output_format) have single precision (4 byte) accuracy. Double precision (8 byte) can be choosen alternatively.
Accuracy for the different output data (cross sections, 3d-volume data, spectra, etc.) can be set independently.
'<out>_NF90_REAL4' (single precision) or '<out>_NF90_REAL8' (double precision) are the two principally allowed values for netcdf_precision, where the string '<out>' can be chosen out of the following list:

'xy' horizontal cross section
'xz' vertical (xz) cross section
'yz' vertical (yz) cross section
'2d' all cross sections
'3d' volume data
'pr' vertical profiles
'ts' time series, particle time series
'sp' spectra
'prt' particles
'all' all output quantities


Example:
If all cross section data and the particle data shall be output in double precision and all other quantities in single precision, then netcdf_precision = '2d_NF90_REAL8' , 'prt_NF90_REAL8' has to be assigned.

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).

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 = .T.. 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*'.

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.

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.

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.

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_dosp, skip_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_domask

R (max_masks)

max_masks *0.0

No output of masked 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_domask = 3600.0 and skip_time_domask = 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.

statistic_regions

I

0

Number of additional user-defined subdomains for which statistical analysis and corresponding output (profiles, time series) shall be made.

By default, vertical profiles and other statistical quantities are calculated as horizontal and/or volume average of the total model domain. Beyond that, these calculations can also be carried out for subdomains which can be defined using the field rmask within the user-defined software (see User-defined domains). The number of these subdomains is determined with the parameter statistic_regions. Maximum 9 additional subdomains are allowed. The parameter region can be used to assigned names (identifier) to these subdomains which are then used in the headers of the output files and plots.

If the default netCDF output format is selected (see parameter data_output_format), data for the total domain and all defined subdomains are output to the same file(s) (DATA_1D_PR_NETCDF, DATA_1D_TS_NETCDF). In case of statistic_regions > 0, data on the file for the different domains can be distinguished by a suffix which is appended to the quantity names. Suffix 0 means data for the total domain, suffix 1 means data for subdomain 1, etc.

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 .T. (see Initialization and restart runs), 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).

cross_normalized_x

C*10 (100)

100 * ' '

Currently this parameter cannot be used.

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*2theta* (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*2. 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 * ' '

Currently this parameter cannot be used.

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

Currently this parameter cannot be used.

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:

' 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

Currently this parameter cannot be used.

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.

profile_columns

I

3

Currently this parameter cannot be used.

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

Currently this parameter cannot be used.

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.

use_prior_plot1d_parameters

L

.F.

Currently this parameter cannot be used.

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.

z_max_do1d

R

zu(nzt+1) (model top)

Currently this parameter cannot be used.

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

Currently this parameter cannot be used.

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)

Currently this parameter cannot be used.

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).



Run steering:

Parameter Name FORTRAN
Type
Default
Value
Explanation

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.

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.

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_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_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_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.

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.

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 Initialization and restart runs).

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.



grid:

Parameter Name FORTRAN
Type
Default
Value
Explanation

npex

I

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.

npey

I

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

For further information see npex.