Runtime parameters

Data output

Run steering

Processor grid / MPI settings
















NAMELIST group name: runtime_parameters


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 time steps 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 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 time steps 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.

cross_profiles

C*100 (100)

see right

Determines which vertical profiles are to be presented in which coordinate system if the plot software palmplot (see also postprocessing with ncl) is used.

The default assignment is:

' u v '
' theta ',
' w"theta" w*theta* w*theta*BC wtheta wthetaBC ',
' w"u" w*u* wu w"v"w*v* wv ',
' km kh ',
' l ' ,
14 * ' '

If output of vertical profiles is produced (see data_output_pr) the appropriate data are written to a NetCDF file. Simultaneously, the model produces an attribute in the header of the NetCDF file which describes the layout for a plot to be generated with the plot software palmplot. The parameter cross_profiles determines how many coordinate systems (panels) the plot contains and which profiles are supposed to be drawn into which panel. (Currently, palmplot is limited to three profiles per 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 ', ' theta '

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

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, this profiles will be plotted separately behind the profiles defined in cross_profiles.

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

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 separately 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 are in netCDF format. Information 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. These are always output at a fictitious first grid level above the surface, i.e., at z = zu(nzb+1)):

Quantity name Meaning Unit Remarks
e SGS turbulence kinetic energym2/s2
kfd* katabatic flow depthm Only horizontal cross section is allowed. Indicates the top of a katabatic flow characterized by a jet-like structure. To detect a katabatic flow and determine its depth, the flow must show an elevated maximum of shear production and must be roughly aligned with the terrain-slope.
hr heating rateK/s Indicates the heating/cooling of an air volume by direct heating/cooling of the air volume by radiation flux divergences (only RRTMG), by diabatic processes at plants, as well as by surface forcing. Note, no heating/cooling by advection, condensation, etc. is considered. This quantity is especially useful to evaluate katabatic flows where radiative cooling of air volumes, emission at plant surfaces, and radiative surface cooling is dominant.
lwp* liquid water path kg/m2 only horizontal cross section is allowed, requires bulk_cloud_model = .T.
nc cloud drop number density 1/m3 requires bulk_cloud_model = .T. and cloud_scheme = morrison
ng graupel number density 1/m3 requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T. and snow = .T.and graupel = .T.
ni ice crystal number density 1/m3 requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T.
nr rain drop number density 1/m3 requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng
ns snow number density 1/m3 requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T. and snow = .T.and graupel = .T.
ol* Obukhov length in the constant flux layer m only horizontal cross section is allowed
p perturbation 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 total precipitation rate of all cloud specieskg/kg m/s is allowed for all schemes except of cloud_scheme = sat_adjust
prr_cloud precipitation rate of cloud droplets (by sedimentation) kg/kg m/s is allowed for all schemes except of cloud_scheme = sat_adjust but makes only sense if cloud_water_sedimentation = .T.
prr_graupel precipitation rate of graupelkg/kg m/s requires cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T. and snow = .T.and graupel = .T.
prr_ice precipitation rate of ice crystalskg/kg m/s requires cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T.
prr_rain precipitation rate of rain dropletskg/kg m/s is allowed for all schemes except of cloud_scheme = sat_adjust
prr_snow precipitation rate of snowkg/kg m/s requires cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T. and snow = .T.and graupel = .T.
q water vapor mixing ratio (or total water mixing ratio if cloud physics is switched on) kg/kg requires humidity = .T.
qc cloud water mixing ratio kg/kg requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng or morrison
qg graupel mixing ratio kg/kg requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T. and snow = .T.and graupel = .T.
qi ice crystal mixing ratio kg/kg requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T.
ql liquid water mixing ratio kg/kg requires bulk_cloud_model = .T. or cloud_droplets = .T.
ql_c change in liquid water mixing ratio due to condensation/evaporation during last time step 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.
qr rain water mixing ratio kg/kg requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng and precipitation = .T.
qs snow mixing ratio kg/kg requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng or morrison and microphysics_ice_phase = .T. and snow = .T.and graupel = .T.
qsurf* mixing ratio at the surface kg/kg only horizontal cross section is allowed
qsws* surface latent heatflux kg/kg m/s or W/m2 only horizontal cross section is allowed (see section_xy), requires humidity = .T.
qv water vapor mixing ratio kg/kg requires bulk_cloud_model = .T.
qv_2m* 2-m water vapor mixing ratio kg/kg Please see also description of theta_2m*.
rh relative humidity % requires humidity = .T.
rho density kg/m3 requires ocean = .T.
s concentration of the scalar kg m-3 or ppm requires passive_scalar = .T.
sa salinity psu requires ocean = .T.
shf* surface sensible heatflux K m/s or W/m2 only horizontal cross section is allowed
ssurf* surface scalar concentration kg/kg only horizontal cross section is allowed
ssws* surface scalarflux kg m-2 s-1 or ppm m s-1 only horizontal cross section is allowed (see section_xy), requires passive_scalar = .T.
t* (near surface) characteristic temperature K only horizontal cross section is allowed
ta air temperature °C
ta_2m* 2-m air temperature °C Please see also description of theta_2m*.
theta potential temperature K
thetal liquid water potential temperature K requires bulk_cloud_model = .T.
thetav virtual potential temperature K requires humidity = .T.
theta_2m* 2-m air potential temperature (estimated from logarithmic interpolation if the 2m level is below the first prognostic grid point, else interpolated between two vertical levels)K only horizontal cross section is allowed
ti absolute value of the curl of the velocity vector, which can be interpreted as a qualitative measure of turbulence intensity (ti) 1/s
tsurf* surface temperature K only horizontal cross section is allowed
u u-component of the velocity m/s
uu product of u and w to allow for computation of <u'u'> m2/s2 Output is defined on u-grid. Please see remarks in wq.
uv product of u and v to allow for computation of <u'v'> m2/s2 Output is defined on u-grid. This implies that output of uv is not necessarily identical to output of vu. Output of both quantities, however, can be useful for computation of spatial flux gradients. Please also see remarks in wq.
uw product of u and w to allow for computation of <u'w'> m2/s2 Output is defined on u-grid. This implies that output of uw is not necessarily identical to output of wu. Output of both quantities, however, can be useful for computation of spatial flux gradients. Please also see remarks in wq.
us* (near surface) friction velocity m/s only horizontal cross section is allowed
v v-component of the velocity m/s
vf25m* Volume-flux rate integrated up to 25m above surface m3/s Component-wise integrated volume-flux rate. This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed.
vf50m* Volume-flux rate integrated up to 50m above surface m3/s Component-wise integrated volume-flux rate. This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed.
vf75m* Volume-flux rate integrated up to 75m above surface m3/s Component-wise integrated volume-flux rate. This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed.
vf100m* Volume-flux rate integrated up to 100m above surface m3/s Component-wise integrated volume-flux rate. This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed.
vfxxm* Volume-flux rate integrated up to detected katabatic flow depth m3/s Volume-flux rate integrated up to a detected katabatic flow depth. Please see also remarks in kfd* and vf25m*. Only horizontal cross section is allowed.
vfd25m* Volume-flux density integrated up to 25m above surface m3/m/s Component-wise integrated volume-flux density (volume-flux per second through a 1-m wide column with depth of 25m). This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed.
vfd50m* Volume-flux densithy integrated up to 50m above surface m3/m/s Component-wise integrated volume-flux density (volume-flux per second through a 1-m wide column with depth of 50m). This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed.
vfd75m* Volume-flux density integrated up to 75m above surface m3/m/s Component-wise integrated volume-flux density (volume-flux per second through a 1-m wide column with depth of 75m). This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed.
vfd100m* Volume-flux density integrated up to 100m above surface m3/m/s Component-wise integrated volume-flux density (volume-flux per second through a 1-m wide column with depth of 100m). This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed.
vfdxxm* Volume-flux density integrated up to detected katabatic flow depth. m3/m/s Component-wise integrated volume-flux density (volume-flux per second through a 1-m wide column with variable depth). This quantity is useful to evaluate katabatic flows. Only horizontal cross section is allowed. Please see also remarks in kfd* and vfd25m*. Only horizontal cross section is allowed.
vu product of v and u to allow for computation of <v'u'> m2/s2 Output is defined on v-grid. This implies that output of vu is not necessarily identical to output of uv. Output of both quantities, however, can be useful for computation of spatial flux gradients. Please also see remarks in wq.
vv product of v and v to allow for computation of <v'v'> m2/s2 Output is defined on v-grid. Please also see remarks in wq.
vw product of v and w to allow for computation of <v'w'> m2/s2 Output is defined on v-grid. This implies that output of vw is not necessarily identical to output of wv. Output of both quantities, however, can be useful for computation of spatial flux gradients. Please also see remarks in wq.
w w-component of the velocity m/s
wu product of w and u to allow for computation of <w'u'> m2/s2 Output is defined on w-grid. This implies that output of wu is not necessarily identical to output of uw. Output of both quantities, however, can be useful for computation of spatial flux gradients. Please also see remarks in wq.
wv product of w and v to allow for computation of <w'v'> m2/s2 Output is defined on w-grid. This implies that output of wv is not necessarily identical to output of vw. Output of both quantities, however, can be useful for computation of spatial flux gradients. Please also see remarks in wq.
ww product of w and w to allow for computation of <w'w'> m2/s2 Output is defined on w-grid. Please also see remarks in wq.
wdir horizontal wind direction degree
wq product of w and q, output of wq_av can be used to calculate the resolved turbulent water flux according to the temporal eddy covariance method by substracting the advective water flux (product of w_av and q_av) from wq_av. kg/kg m/s requires humidity = .T.. Computation of <w'q'> is possible via temporal EC-method, i.e. <w'q'> = <wq> - <w><q>, with < > being the temporal average. For accurate flux calculation the time averaging needs to be sufficiently long (usually 30min) and data from each timestep (choose dt_averaging_input small enough) should enter the average to sample also high-frequency flux contributions. Output is defined on w-grid.
ws product of w and s to allow for computation of <w's'> m/s requires passive_scalar = .T.. Output is defined on w-grid. Please also see remarks in wq.
wspeed horizontal wind speed m/s
wspeed_10m* 10-m wind speed (estimated from logarithmic interpolation if the 10m level is below the first prognostic grid point, else interpolated between two vertical levels)m/s only horizontal cross section is allowed
wtheta product of w and theta to allow for computation of <w'theta'> K m /s Output is defined on w-grid. Please also see remarks in wq.
z0* roughness length m
z0h* roughness length for scalar quantities m


The following quantities can be additionally output when the land surface model (LSM) is used:

Quantity name Meaning Unit Remarks
c_liq* coverage of plants with liquid water only horizontal cross section is allowed
c_soil* coverage of the land surface with bare soil only horizontal cross section is allowed
c_veg* coverage of the land surface with vegetation only horizontal cross section is allowed
ghf* ground (soil) heat flux (from energy balance) W/m2 only horizontal cross section is allowed
lai* leaf area index m2/m2 only horizontal cross section is allowed
m_liq* liquid water level on plants m only horizontal cross section is allowed
m_soil volumetric soil moisture m3/m3
qsws_liq* surface latent heat flux due to evaporation/condensation of liquid water on plants (from energy balance) W/m2 only horizontal cross section is allowed
qsws_soil* surface latent heat flux due to evaporation/precipitation of bare soil (from energy balance) W/m2 only horizontal cross section is allowed
qsws_veg* surface latent heat flux due to transpiration of plants (from energy balance) W/m2 only horizontal cross section is allowed
r_a* aerodynamic resistance s/m only horizontal cross section is allowed
r_s* resistance of the surface (soil + vegetation) s/m only horizontal cross section is allowed
t_soil soil temperature K


In case the chemistry model is employed , concentration fields of all species can be output. Please note, to output chemistry profiles the prefix kc_ need to be added. In the following, X indicates the species name.

Quantity name Meaning Unit
kc_X concentration of chemial species X ppm or kg/m3


The following quantities can be additionally output when the urban surface model (USM) is used:

Quantity name Meaning Unit Remarks
usm_surfz_<d> surface height (z) 1 <d> = one of directions: up, down, south, north, west, or east
usm_surfcat_<d> Surface category 1 <d> = one of directions: up, down, south, north, west, or east
usm_surfwintrans_<d> Transmissivity window tiles W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_wshf_<d> Sensible heat flux from surface W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_qsws_<d> Latent heat flux from surface W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_qsws_veg_<d> Latent heat flux from vegetation surface W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_qsws_liq_<d> Latent heat flux from surfaces with liquid W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_wghf_<d> Ground heat flux from surface of wall or roof W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_wghf_window_<d> Ground heat flux from window surface W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_wghf_green_<d> Ground heat flux from green W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_iwghf_<d> Ground heat flux from indoor surface of wall or roof W/m2 <d> = one of directions: up, down, south, north, west, or east
usm_iwghf_window_<d> Ground heat flux from indoor surface of windowW/m2 <d> = one of directions: up, down, south, north, west, or east
usm_t_surf_wall_<d> Surface temperature of wall or roof surface K <d> = one of directions: up, down, south, north, west, or east
usm_t_surf_window_<d> Surface temperature for window surface K <d> = one of directions: up, down, south, north, west, or east
usm_t_surf_green_<d> Surface temperature for green surface K <d> = one of directions: up, down, south, north, west, or east
usm_theta_10cm_<d> Near surface temperature for whole surfaces K <d> = one of directions: up, down, south, north, west, or east, only available if the indoor model is switched on
usm_t_wall_<k>_<d> Temperature of k-th layer of wall fraction K <d> = one of directions: up, down, south, north, west, or east, <k> = number of wall layer
usm_t_window_<k>_<d> Temperature of k-th layer of window fraction K <d> = one of directions: up, down, south, north, west, or east, <k> = number of window layer
usm_t_green_<k>_<d> Temperature of k-th layer of green fraction K <d> = one of directions: up, down, south, north, west, or east, <k> = number of green layer
usm_swc_<k>_<d> Soil water content of k-th layer of green fraction m3/m3<d> = one of directions: up, down, south, north, west, or east, <k> = number of green layer


The following quantities can be additionally output when a radiation model is used:

Quantity name Meaning Unit Remarks
rad_net* Net radiation flux at the surface W/m2 only horizontal cross section is allowed
rad_lw_in* Incoming longwave radiation flux W/m2 only horizontal cross section is allowed
rad_lw_out* Outgoing longwave radiation flux W/m2 only horizontal cross section is allowed
rad_sw_in* Incoming shortwave radiation flux W/m2 only horizontal cross section is allowed
rad_sw_out* Outgoing shortwave radiation flux W/m2 only horizontal cross section is allowed


In case of radiation_scheme = 'rrtmg', the following data can be additionally output:

Quantity name Meaning Unit
rad_lw_cs_hr Clear-sky longwave radiative heating rate K/h
rad_lw_hr Longwave radiative heating rate K/h
rad_lw_in Incoming longwave radiation flux W/m2
rad_lw_out Outgoing longwave radiation flux W/m2
rad_sw_cs_hr Clear-sky shortwave radiative heating rate K/h
rad_sw_hr Shortwave radiative heating rate K/h
rad_sw_in Incoming shortwave radiation flux W/m2
rad_sw_out Outgoing shortwave radiation flux W/m2


The following quantities can be additionally output when the Radiative Transfer Model (RTM) is used by setting doc/app/radiation_parameters:

Quantity name Meaning Unit Remarks
rtm_rad_net_<d> Net radiation flux at the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_insw_<d> Complete incoming SW radiation at the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_inlw_<d> Complete incoming LW radiation at the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_inswdir_<d> Incoming direct solar SW radiation at the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_inswdif_<d> Incoming diffuse solar SW radiation at the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_inswref_<d> Incoming reflected SW radiation at the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_inlwdif_<d> Incoming diffuse LW radiation at the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_inlwref_<d> Incoming reflected and emitted LW radiation at the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_outsw_<d> Outgoing SW radiation from the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_outlw_<d> Outgoing LW radiation from the surface W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_ressw_<d> Residua of SW radiation absorbed in surface after last reflection W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_reslw_<d> Residua of LW radiation absorbed in surface after last reflection W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_pc_insw_<d> SW radiation absorbed by plant canopy W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_pc_inlw_<d> LW radiation absorbed by plant canopy W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_pc_inswdir_<d> Direct solar SW radiation absorbed by plant canopy W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_pc_inswdif_<d> Diffuse solar SW radiation absorbed by plant canopy W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_rad_pc_inswref_<d> Reflected SW radiation absorbed by plant canopy W/m2 <d> = one of directions: up, down, south, north, west, or east
rtm_mrt Mean Radiant Temperature K
rtm_mrt_sw SW fraction of MRT radiation flux W/m2
rtm_mrt_lw LW fraction of MRT radiation flux W/m2
rtm_skyvf_<d> Sky view factor 1 <d> = one of directions: up, down, south, north, west, or east
rtm_skyvft_<d> Sky view factor including transparency of plant canopy 1 <d> = one of directions: up, down, south, north, west, or east
rtm_svf_<d>_<i>_<j>_<k> View factor of the surface to surface with i,j,k coordinates 1 <d> = one of directions: up, down, south, north, west, or east, <i>,<i>,<k> = coordinates of pair surface
rtm_dif_<d>_<i>_<j>_<k> Transparency of view factor of the surface to surface with i,j,k coordinates 1 <d> = one of directions: up, down, south, north, west, or east, <i>,<i>,<k> = coordinates of pair surface
rtm_surfalb_<d> Effective albedo of the surface (weighted average of fractions) 1 <d> = one of directions: up, down, south, north, west, or east
rtm_surfemis_<d> Effective emissivity of the surface (weighted average of fractions) 1 <d> = one of directions: up, down, south, north, west, or east


The following quantities can be additionally output when the plant canopy model (PCM) is used:

Quantity name Meaning Unit Remarks
pcm_bad basal area density m2/m3 only 3D output possible
pcm_lad leaf area density m2/m3 only 3D output possible
pcm_heatrate plant canopy heating rate (by solar radiation) K/s only 3D output possible
pcm_transpirationrate plant canopy transpiration rate (by solar radiation) kg/(kg s) only 3D output possible
pcm_latentrate plant canopy latent heat flux K/s only 3D output possible


The following quantities can be additionally output when the indoor model (IM) is used:

Quantity name Meaning Unit Remarks
im_hf_roof heatflux at building roof K m / s only 3D output possible
im_hf_roof_waste waste heatflux at building roof K m / s only 3D output possible
im_hf_wall_win heatflux at building walls and windows K m / s only 3D output possible
im_hf_wall_win_waste waste heatflux at building walls and windows K m / s only 3D output possible
im_t_indoor_mean mean indoor temperature (horizontal building average at each storey) K only 3D output possible


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 to 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', 'theta_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:

Besides 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 by 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 separate 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 called by palmrun).

Alternatively, PALM is able to collect all grid points of a cross section on PE0 before an 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 grid points, 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 separately by each processor so that combine_plot_fields.x has to be called anyway after PALM has been finished.

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, mask_z_loop, and mask_k_over_surface. 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 separately 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 turbulence kinetic energy m2/s2
nr rain drop number density 1/m3 requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng and precipitation = .T.
p perturpation pressure N/m2, Pa
pc particle/droplet concentration #/gridbox
pr mean particle/droplet radius m
q water vapor mixing ratio (or total water mixing ratio if cloud physics is switched on) kg/kg requires humidity = .T.
qc cloud water mixing ratio kg/kg requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng
ql liquid water mixing ratio kg/kg requires bulk_cloud_model = .T. or cloud_droplets = .T.
ql_c change in liquid water mixing ratio due to condensation/evaporation during last time step 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 mixing ratio kg/kg requires bulk_cloud_model = .T.
qr rain water mixing ratio kg/kg requires bulk_cloud_model = .T. and cloud_scheme = seifert_beheng and precipitation = .T.
rho density kg/m3 requires ocean = .T.
s concentration of the scalar kg m-3 or ppm requires passive_scalar = .T.
sa salinity psu requires ocean = .T.
ta air temperature °C
theta potential temperature K
thetal liquid water potential temperature K requires bulk_cloud_model = .T.
thetav virtual potential temperature K requires humidity = .T.
ti turbulence intensity (absolute value of the rotation vector)1/s
u u-component of the velocity m/s
v v-component of the velocity m/s
w w-component of the velocity m/s
wdir horizontal wind direction degree
wspeed horizontal wind speed m/s

In case the chemistry model is employed , concentration fields of all species can be output. Please note, to output chemistry profiles the prefix kc_ need to be added. In the following, X indicates the species name.

Quantity name Meaning Unit
kc_X concentration of chemial species X ppm or kg/m3


Example:

data_output_masks(1,:) = 'u', 'v', 'u_av', 'v_av',
data_output_masks(2,:) = 'w', 'w_av',
data_output_masks(3,:) = 'theta', '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 constant flux layer switched on (constant_flux_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
e Turbulence kinetic energy (TKE, subgrid-scale) m2/s2
e* Perturbation energy (resolved) (composed of variances or fluxes, see details) m2/s2
eta Kolmogorov length scale (only meaningful for DNS, see note below) mm
hyp Hydrostatic Pressure hPa
kh Eddy diffusivity for heat m2/s
km Eddy diffusivity for momentum m2/s
l Mixing length m
nc Cloud drop number density 1/m3
ni Ice crystal number density 1/m3
nr Rain drop number density 1/m3
p Perturbation pressure Pa
prho Potential density kg/m3
q Total water mixing ratio kg/kg
q*2 Variance of the water vapor / total water mixing ratio (in case of bulk_cloud_model = .T.) (resolved) kg2/kg2
qc Cloud water mixing ratio kg/kg
qg Graupel mixing ratio kg/kg
qi Ice crystal mixing ratio kg/kg
ql Liquid water mixing ratio kg/kg
qr Rain water mixing ratio kg/kg
qs Snow water mixing ratio kg/kg
qv Water vapor mixing ratio kg/kg
prr Total precipitation rate kg/kg m/s
prr_cloud Precipitation rate of cloud dropletskg/kg m/s
prr_graupel Precipitation rate of graupelkg/kg m/s
prr_ice Precipitation rate of icekg/kg m/s
prr_rain Precipitation rate of rain dropletskg/kg m/s
prr_snow Precipitation rate of snowkg/kg m/s
rh Relative Humidity %
rho Air Density kg/m3
rho_sea_water Ocean Density kg/m3
s Scalar concentration (requires passive_scalar = .T.) kg m-3 or ppm
s*2 Variance of the passive scalar (resolved, requires passive_scalar = .T.) (kg m-3)2
sa Salinity psu
Sw Skewness of the w-velocity component (resolved, Sw = w3/(w2)1.5) m3/s2 / (m2/s2)1.5
td_lsa_q horizontal large scale advection tendency for humiditykg/(kg s)
td_lsa_thetal horizontal large scale advection tendency for temperatureK/s
td_nud_q nudging tendency for humiditykg/(kg s)
td_nud_thetal nudging tendency for temperatureK/s
td_nud_u nudging tendency for u-velocity componentm/s2
td_nud_v nudging tendency for v-velocity componentm/s2
td_sub_q horizontal large scale subsidence tendency for humiditykg/(kg s)
td_sub_thetal horizontal large scale subsidence tendency for temperatureK/s
theta Potential temperature K
theta*2 Variance of the potential temperature (resolved) K2
thetal Liquid water potential temperature K
thetav Virtual potential temperature K
u u-component of the velocity m/s
u*2 Variance or horizontal momentum flux (in case of momentum_advec = 'ws-scheme', see details) of the u-velocity component (resolved) m2/s2
ug u-component of the geostrophic wind m/s
v v-component of the velocity m/s
v*2 Variance or horizontal momentum flux (in case of momentum_advec = 'ws-scheme', see details) of the v-velocity component (resolved) m2/s2
vg v-component of the geostrophic wind m/s
w w-component of the velocity m/s
w*2 Variance or vertical momentum flux (in case of momentum_advec = 'ws-scheme', see details) of the w-velocity component (resolved) m2/s2
w*3 Third moment of the w-velocity component (resolved) m3/s3
w*e* Vertical flux of perturbation energy (resolved) m3/s3
w*p*:dz Transport of resolved-scale TKE due to pressure fluctuations (term in resolved TKE budget)Pa m/s2
w"q" Subgrid-scale vertical turbulent water flux kg/kg m/s or W/m2
w*q* Covariance or resolved vertical turbulent water flux (in case of scalar_advec = 'ws-scheme', see details) kg/kg m/s or W/m2
wq Total vertical turbulent water flux (w"q" + w*q*) kg/kg m/s or W/m2
w"qv" Subgrid-scale vertical turbulent latent heat flux kg/kg m/s or W/m2
w*qv* Covariance or resolved vertical turbulent latent heat flux (in case of scalar_advec = 'ws-scheme', see details) kg/kg m/s or W/m2
wqv Total vertical turbulent latent heat flux (w"qv" + w*qv*) kg/kg m/s or W/m2
w"s" Subgrid-scale vertical turbulent scalar concentration flux (requires passive_scalar = .T.) kg m-2 s-1 or ppm m s-1
w*s* Resolved vertical turbulent scalar concentration flux (requires passive_scalar = .T.) kg m-2 s-1 or ppm m s-1
ws Total vertical turbulent scalar concentration flux (w"s" + w*s*) (requires passive_scalar = .T.) kg m-2 s-1 or ppm m s-1
w"sa" Subgrid-scale vertical turbulent salinity flux psu m/s
w*sa* Covariance or resolved vertical turbulent salinity flux (in case of scalar_advec = 'ws-scheme', see details) psu m/s
wsa Total vertical turbulent salinity flux (w"sa" + w*sa*) psu m/s
w_subs large-scale vertical velocity m/s
w"theta" Subgrid-scale vertical turbulent sensible heat flux K m/s or W/m2
w*theta* Covariance or resolved vertical turbulent sensible heat flux (in case of scalar_advec = 'ws-scheme', see details) K m/s or W/m2
wtheta Total vertical turbulent sensible heat flux (w"theta" + w*theta*) K m/s or W/m2
w*theta*BC Subgrid-scale vertical turbulent sensible heat flux using the Bott-Chlond scheme K m/s or W/m2
wthetaBC Total vertical turbulent sensible heat flux using the Bott-Chlond scheme (w"theta" + w*theta*BC) K m/s or W/m2
w"thetav" Subgrid-scale vertical turbulent buoyancy flux K m/s or W/m2
w*thetav* Resolved vertical turbulent buoyancy flux K m/s or W/m2
wthetav Total vertical turbulent buoyancy flux (w"thetav" + w*thetav*) K m/s or W/m2
w*2theta* Third moment (resolved) K m2/s2
w*theta*2 Third moment (resolved) K2 m/s
w"u" u-component of the subgrid-scale vertical turbulent momentum flux m2/s2
w*u* Covariance or u-component of the resolved vertical turbulent momentum flux (in case of momentum_advec = 'ws-scheme', see details) m2/s2
wu u-component of the total vertical turbulent momentum flux (w"u" + w*u*) m2/s2
w*u*u*:dz Transport of resolved-scale TKE due to turbulence (term in resolved TKE budget)m2/s3
w"v" v-component of the subgrid-scale vertical turbulent momentum flux m2/s2
w*v* Covariance or v-component of the resolved vertical turbulent momentum flux (in case of momentum_advec = 'ws-scheme', see details) m2/s2
wv v-component of the total vertical turbulent momentum flux (w"v" + w*v*) m2/s2


The following vertical profiles can be additionally output when the land surface model (LSM) is used:

Quantity name Meaning Unit
m_soil volumetric soil moisture content m3/m3
t_soil soil temperature K


The following vertical profiles can be additionally output when the RRTMG radiation model (see also radiation_scheme is used:

Quantity name Meaning Unit
rad_lw_in incoming longwave radiation W/m2
rad_lw_out incoming longwave radiation W/m2
rad_sw_in incoming shortwave radiation W/m2
rad_sw_out incoming shortwave radiation W/m2

NOTE: The Kolmogorov length scale η is defined by (ν3/ε)1/4 with ν being the kinematic, molecular viscosity and ε being the turbulent kinetic energy dissipation rate. However, as LES is not resolving the smallest scales of the velocity field the direct determination of the dissipation rate and therefore of the Kolmogorov length scale is not possible. Only in case of DNS, η should be outputted and interpreted accordingly.

In case the chemistry model is employed , also profiles of the species and its vertical fluxes can be output. Please note, to output chemistry profiles the prefix kc_ need to be added. In the following, X indicates the species name. Please note, output of total turbulent vertical fluxes (resolved + subgrid) is currently not realized.

Quantity name Meaning Unit
kc_X profile species X ppm or kg/m3
kc_w*X* horizontally-averaged resolved-scale vertical turbulent flux of species X m ppm/s or kg/(s m2)
kc_w"X" horizontally-averaged subgrid-scale vertical turbulent flux of species X m ppm/s or kg/(s m2)



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 led by a hash "#". Allowed values are:

#u, #v, #theta, #km, #kh, #l, #thetal, #q, #qv, #s, #sa, #thetav (, #t_soil, #m_soil)

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 a 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 grid points, sufficient memory is required on PE0.

debug_output

L

.F.

Flag for debug output to UNIT 9 during initialization phase and final actions of PALM run.

By adding the parameter debug_output = .T., pre-defined debug_message(s) will be printed to the DEBUG_00* files (UNIT=9) in the temporary directory of a PALM run for each processor core. This may be helpful to narrow down the location of a model crash simply by setting this parameter instead of having to add WRITE statements and re-compile the code. Once the location is narrowed down, set debug_output = .F. and implement your own CALL debug_message (....). You may search the SOURCE code for the string "debug_message" to find out how it works.

NOTE: Adding CALL debug_message (....) in new places might require setting of

    USE control_parameters,                                                    &
        ONLY:  debug_output, debug_string

if not already set.

Additionally, the flag debug_output_timestep enables debug output during timestepping. Keep in mind that this may create very large DEBUG files.

See also open_debug_files.

IMPORTANT: Do not forget the -B option in the palmrun call. Otherwise the temporary job directory, in which the DEBUG_00* are located, will be deleted after finishing the job.

debug_output_timestep

L

.F.

Flag for debug output to UNIT 9 during timestepping.

For further details, see debug_output.

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

dt_averaging_input

R

0.0

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

By default, data from each time step 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 time step 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 time step 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 time step 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. The 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 time step 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.

Warning: In case of parallel NetCDF I/O (netcdf_data_format >= 5), setting small values for dt_data_output may result in HDF errors during model initialization, since internal NetCDF thresholds are execeeded. This especially can happen if large 3d arrays are output.

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. The 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 time step 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. The 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 time step 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. The 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. The 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 lies 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 are 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 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

minimizing the number of calls of routine flow_statistics.

The 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). If dt_dots < time step dt, then data of the time series are written after each time step. This can be forced by setting dt_dots = 0.

Time series data are output to the local file DATA_1D_TS_NETCDF, which is generally created for each model run due to the default settings of dt_dots. The file's format is NetCDF. Further details about processing of NetCDF data are given in chapter NetCDF data output.

The file contains the following time-series quantities (the first column gives the name of the quantities as used in the NetCDF file), all of which are automatically output without having to be prescribed by the user, since the size of the time-series file is rather small:

Quantity name Meaning Unit
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
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
dt Time step size s
E Total kinetic energy of the flow, E = 0.5 * (u2+v2+w2), (3D domain average) m2/s2
E* Resolved-scale turbulence kinetic energy of the flow (3D domain average) m2/s2
ol Monin-Obukhov length m
q* Humidity scale (constant flux layer), defined as w"q"0 / us* (horizontal average)kg/kg
th* Temperature scale (constant flux layer), defined as w"theta"0 / us* (horizontal average)K
theta(0) Potential temperature at the surface (horizontal average) K
theta(z_mo) Potential temperature for z = zu(1) (horizontal average) K
umax Maximum u-component of the velocity m/s
us* Friction velocity (horizontal average) m/s
vmax Maximum v-component of the velocity m/s
w* Vertical velocity scale of the CBL (horizontal average) m/s
w"q"0 Subgrid-scale vetical turbulent humidity flux at k=0 (horizontal average) within the constant flux layer, zero values are output if humidity is not used kg/kg m/s or W/m2
w"theta" Subgrid-scale vertical turbulent heat flux (horizontal average) for z = zw(1) K m/s or W/m2
w"theta"0 Subgrid-scale vertical turbulent sensible heat flux at k=0 (horizontal average) within the constant flux layer K m/s or W/m2
w"u"0 Subgrid-scale vertical turbulent momentum flux (u-component) at k=0 (horizontal average) within the constant flux layerm2/s2
w"v"0 Subgrid-scale vertical turbulent momentum flux (v-component) at k=0 (horizontal average) within the constant flux layer m2/s2
wmax Maximum w-component of the velocity m/s
wtheta Total heat flux (horizontal average) for z = zw(1) K m/s or W/m2
zi_theta Height of the convective boundary layer (horizontal average) determined by the temperature profile, following the criterion of Sullivan et al. (1998) m
zi_wtheta Height of the convective boundary layer (horizontal average) determined by the height of the minimum sensible heat flux m


The following quantities are additionally output when the land surface model (LSM) is used:

Quantity name Meaning Unit
ghf ground (soil) heat flux (horizontal average) W/m2
qsws_liq surface latent heat flux due to evaporation/condensation of liquid water on plants (from energy balance, horizontal average) W/m2
qsws_soil surface latent heat flux due to bare soil evaporation/precipitation (from energy balance, horizontal average) W/m2
qsws_veg surface latent heat flux due to transpiration of plants (from energy balance, horizontal average) W/m2
r_a aerodynamic resistance (horizontal average) s/m
r_s resistance of the surface (soil + vegetation, horizontal average) s/m


The following quantity is additionally output when a radiation model is used:

Quantity name Meaning Unit
rad_net net radiation flux at the surface (horizontal average) W/m2
rad_lw_in incoming longwave radiation flux at the surface (horizontal average) W/m2
rad_lw_out outgoing longwave radiation flux at the surface (horizontal average) W/m2
rad_sw_in incoming shortwave radiation flux at the surface (horizontal average) W/m2
rad_sw_out outgoing shortwave radiation flux at the surface (horizontal average) W/m2


The following quantities are additionally output when radiation_scheme = 'rrtmg' is set:

Quantity name Meaning Unit
rrtm_aldif albedo for diffuse longwave radiation (horizontal average) 0-1
rrtm_aldir albedo for direct longwave radiation (horizontal average) 0-1
rrtm_asdif albedo for diffuse shortwave radiation (horizontal average) 0-1
rrtm_asdir albedo for direct shortwave radiation (horizontal average) 0-1



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

By default, time-series data refer to the total domain, but data can also be output for user-defined subdomains (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. The 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. The 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. The 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. The 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).

Warning: In case of parallel NetCDF I/O (netcdf_data_format >= 5), setting small values for dt_do3d may result in HDF errors during model initialization, since internal NetCDF thresholds are execeeded. This especially can happen if large 3d arrays are output.

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. The 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_k_over_surface

I

max_masks *100* -1.0

Grid index above surface which to take for terrain-following masked output.

This parameter gives the vertical index of a grid-point layer above terrain which to output in the specified mask. mask_k_over_surface must be > 1\\
Example:

mask_k_over_surface(1,:) = 2, 5 will result in an output of all specified variables in mask 1 at the second and fith grid point above the surface.

Please note, until revision -r4894 the terrain-following output had included an offset where mask_k_over_surface = 0 or 1 outputs values at the first and second grid point. This has been revised in higher revisions.

When mask_k_over_surface is specified for a mask, mask_z and mask_z_loop are ignored for this mask. mask_scale_z has no effect on values given by mask_k_over_surface.

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,:) = 50., 100., 500., 550., 600.
mask_x(2,:) = 1000.

This example will create outputs at the specified points (at xu-grid in m, if mask_scale_x is not used; outputs on the x-grid are shifted by half of the grid spacing forward (e.g. x = 75.0, 125.0, 525.0, 575.0, 625.0, if dx= 50.0)).

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,:) = 50., 100., 500., 550., 600.
mask_y(2,:) = 1000.

This example will create outputs at the specified points (at yv-grid in m, if mask_scale_x is not used; outputs on the y-grid are shifted by half of the grid spacing forward (e.g. y = 75.0, 125.0, 525.0, 575.0, 625.0, if dy= 50.0)).

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,:) = 50., 100., 500., 550., 600.
mask_z(2,:) = 1000.

This example will create outputs at the specified points (at zw-grid in m, if mask_scale_x is not used; outputs on the zu-grid are shifted by half of the grid spacing downward (e.g. zu = 25.0, 75.0, 475.0, 525.0, 575.0, if dz= 50.0)).

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. 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.
This example will create outputs every 100m along x-direction (at xu-grid in m, if mask_scale_x is not used; outputs on the x-grid are shifted by half of the grid spacing forward).

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.
This example will create outputs every 100m along y-direction (at yv-grid in m, if mask_scale_x is not used; outputs on the y-grid are shifted by half of the grid spacing forward).

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.
This example will create outputs every 100m along z-direction (at zw-grid in m, if mask_scale_x is not used; outputs on the zu-grid are shifted by half of the grid spacing downward).

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), without parallel I/O support
4 netCDF-4 format, but with NF90_CLASSIC_MODEL bit set (some new features of netCDF4 are not available), without parallel I/O support
5 same as 3, but with parallel I/O support
6 same as 4, but with parallel I/O support

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 -D__netcdf4 has to be set (see line starting with %cpp_options in the palmrun configuration file).

Files with netCDF4 format cannot be read with netCDF3 libraries.

Parallel file support (netcdf_data_format > 4) additionally requires to set the preprocessor switch -D__netcdf4_parallel.

Warning: In case of parallel I/O (netcdf_data_format >= 5), setting small values for dt_data_output or dt_do3d may result in HDF errors during model initialization, since internal NetCDF thresholds are execeeded. This especially can happen if large 3d arrays are output.

netcdf_deflate

I

0

Data compression level for NetCDF4/HDF5 format.

The data compression must be given in the range 0-9, where 0 means no compression, and 9 highest compression. Typically, compression level 1 should be sufficient. Higher data compression rates require additional time. The compression only works for the NetCDF4/HDF5 format in non-parallel mode (see netcdf_data_format).

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

open_debug_files

L

.T.

Flag for opening debug files.

By default, debug files DEBUG_00* files (UNIT=9) will be opened for each processor core in the temorary working directory at the beginning of a run. In order to avoid the opening of very large number of files in case of runs on many cores, set open_debug_files = .F.. Debug files are opened in any case, if debug_output has been switched on.

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

profile_columns

I

2

Number of coordinate systems to be plotted in one row by plot software palmplot (see also postprocessing with ncl).

It determines the layout of plots of horizontally averaged profiles (data_output_pr) when plotted with the plot software palmplot. 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.

profile_rows

I

3

Number of rows of coordinate systems to be plotted on one page by plot software palmplot (see also postprocessing with ncl).

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

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.

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 us* 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, 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, 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

This parameter now belongs to the initialization parameters and therefore has to be set within the NAMELIST group initialization_parameters. See statistic_regions for an explanation of this parameter.

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



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 (or resolved-scale turbulence kinetic energy) E* is defined as the volume average (over the total model domain) of the sum of the squares of the deviations of the velocity components from the mean flow (horizontal average) times 0.5. 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(nzt*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(nzt-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(nzt * 2 / 3) (negative).

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

disturbance_level_t

R

zu(nzt/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(nzt-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 (i.e. the 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 time step (in s).

By default, the maximum time step 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.

If a job chain is automatically finished (i.e. end_time is reached), and the user wants to continue the run with another chain by increasing end_time, he has to activate the restart mechanism again by setting (e.g.) restart_time = (end time of first chain) + dt_restart. Only setting dt_restart will have no effect.

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_data_format

C*20

'mpi_shared_memory'

Binary format of the input and output restart files.

Allowed values are 'fortran_binary' , 'mpi' , and 'mpi_shared_memory' . In case of 'fortran_binary' each core reads/writes its own file. In case of 'mpi' , the I/O is done using a single file. This method can also be used in serial mode (when PALM has been compiled without -D__parallel option). In such a case, restart I/O is carried out using POSIX calls.

On many-core processors the I/O speed can be increased by setting restart_data_format = 'mpi_shared_memory' . With this setting, I/O is performed only by a limited number of cores on each of the nodes. With mpi every core writes and reads its relevant data. With mpi_shared_memory, only every 4th (or any other multiple integer of the cores per node) reads and writes data and distributes it to the other cores. This is possible since all processes on a node can share their memory. With this, the IO rates might increase.

This parameter can also be used in the initialization parameter NAMELIST.

restart_data_format_input

C*20

value of restart_data_format

Binary format of the input restart file.

See restart_data_format for allowed values.

This parameter can also be used in the initialization parameter NAMELIST.

restart_data_format_output

C*20

value of restart_data_format

Binary format of the output restart file.

See restart_data_format for allowed values.

This parameter can also be used in the initialization parameter NAMELIST.

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 to set option -a " ... restart ... in the palmrun-call for the respective run (see also 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.

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 time step. 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. Furthermore, the parameter has also to account for the CPU time consumed by the job before the PALM executable has started (e.g. required for providing input data, or for compiling the user-interface code, etc.). 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 activation string restart is not given with the palmrun-option -a and if the job has additionally been assigned an insufficient CPU time by palmrun option -t.



Processor grid / MPI settings:

Parameter Name FORTRAN
Type
Default
Value
Explanation

cpu_log_barrierwait

L

.F.

Set an MPI-barrier at the beginning of each CPU time measurement.

Measurement of code performance is carried out by default for most parts of the PALM code (see routine cpu_log for more information). In case that MPI-calls are part of code segments to be measured, the measurement might be seriously affected by idle times (if MPI-calls on some of the processors have to wait because of other, previous MPI-calls on other processors which are not yet finished). In order to avoid measuring these idle times, you can switch on an MPI-barrier at the beginning of each measurement by setting cpu_log_barrierwait = .TRUE.. You should keep in mind that these additional barriers may generally degrade the code performance, so they should be switched on only for getting precise CPU time measurements (and not for production runs).

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 palmrun-option -X. By default, PALM tries to generate a 2d processor net (domain decomposition along x and y), which is 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) because it minimizes the number of ghost points at the lateral boundarys of the subdomains. 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 palmrun-option -X. Otherwise the model run will abort with a corresponding error message.

A specification of npex = 1 or npey = 1 overrides the default setting for the domain decomposition, i.e. it switches to a 1d decomposition, which might have a significant effect on the code performance. On machines with very slow communication network, the performance may improve, but usually it will degrade.

npey

I

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

For further information see npex.

synchronous_exchange

L

.F.

Defines how MPI handles the exchange of ghost points. By default (.F.), asynchronous transfer with MPI_ISEND and MPI_IRECV is used. In case of synchronous_exchange = .T. MPI_SENDRECV is used instead. On most networks the asynchronous method will give better performance.

Last modified 10 months ago Last modified on Jul 24, 2023 6:22:43 AM