source: palm/trunk/DOC/app/chapter_3.5.1.html @ 130

Last change on this file since 130 was 130, checked in by letzel, 15 years ago

DVRP output modifications:

  • The user can now visualize user-defined quantities using dvrp.

data_output_dvrp calls the new user_interface subroutine
user_data_output_dvrp in case of unknown variables (CASE DEFAULT).

  • Two instead of one digit are allowed to specify isosurface and slicer

variables with the parameter mode_dvrp.

  • Property svn:keywords set to Id
File size: 29.9 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html><head>
3<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252"><title>PALM chapter 3.5.1</title> <meta name="GENERATOR" content="StarOffice 7 (Win32)"> <meta name="AUTHOR" content="Siegfried Raasch"> <meta name="CREATED" content="20040802;11451548"> <meta name="CHANGED" content="20041112;14401801"> <meta name="KEYWORDS" content="parallel LES model"> <style>
4<!--
5@page { size: 21cm 29.7cm }
6-->
7</style></head>
8<body style="direction: ltr;" lang="en-US"><h3 style="line-height: 100%;">3.5.1 Interfaces for
9user-defined code<br>
10</h3><p style="margin-bottom: 0cm; line-height: 100%;">The
11following table
12describes the available interfaces for user-defined code in the model,
13the
14names and possible arguments of the subroutines involved as well as
15actions which can be accomplished in these subroutines. <br>
16&nbsp; </p>
17<table style="width: 100%;" border="1" cellpadding="2" cellspacing="4"> <col width="211"> <col width="117"> <col width="862"> <tbody> <tr><td width="211"> <p><font size="4"><b>Call
18location</b></font></p> </td> <td width="117"> <p><font size="4"><b>Subroutine
19name and
20argument</b></font></p> </td> <td style="width: 862px;"> <p><font size="4"><b>Possible
21actions</b></font></p> </td> </tr> <tr><td>---</td><td><span style="font-family: monospace;"><a name="user"></a>MODULE
22user</span></td><td>All
23user-defined variables which are used outside the respective local
24scopes of the user-defined subroutines have to be declared here.</td></tr><tr valign="top"> <td width="211"> <p>End
25of <tt><font style="font-size: 10pt;" size="2">parin.f90</font></tt></p>
26</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_parin"></a>user_parin</font></font></tt></p>
27</td> <td width="862"> <p>Declaration of
28user-defined parameters in the NAMELIST
29group <tt><font style="font-size: 10pt;" size="2">&amp;userpar</font></tt>.
30These
31parameters can be read from the local file <a href="chapter_3.4.html#PARIN">PARIN</a>
32and be used for steering the user-defined code (see <a href="chapter_4.0.html">chapter
334.0</a>). The user-defined parameter <a href="chapter_4.3.html#region">region</a>
34is already pre-defined in <tt><font style="font-size: 10pt;" size="2">&amp;userpar</font></tt>
35and must not be changed. Additional NAMELIST groups may be declared if
36desired.&nbsp; <br>
37The CPU time needed for executing <tt><font style="font-size: 10pt;" size="2">user_parin</font></tt>
38is included in the
39local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
40within the category &ldquo;initialisation&rdquo;.</p> </td>
41</tr> <tr valign="top"> <td width="211"><p>End
42of <tt><font style="font-size: 10pt;" size="2">header.f90</font></tt></p>
43</td>
44<td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_header"></a>user_header(
45io )</font></font></tt></p> </td> <td width="862"> <p>Output of the values of the
46user-defined parameters to
47the
48local files <a href="chapter_3.4.html#HEADER">HEADER</a>
49and <a href="chapter_3.4.html#RUN_CONTROL">RUN_CONTROL</a>.
50This output should be made anyway in order to subsequently check the
51parameter values used for the respective run. The number of the output
52unit is passed as an argument and must be used in each WRITE statement
53(e.g.: &ldquo;<tt><font face="Cumberland, monospace"><font style="font-size: 10pt;" size="2">WRITE </font><font style="font-size: 10pt;" size="2">( io,&hellip;</font></font></tt><font style="font-size: 10pt;" size="2">&rdquo;))</font>.
54By default, this
55subroutine only creates output if a user-defined NAMELIST is found in
56file <a href="chapter_3.4.html#PARIN">PARIN</a>
57(in this case <tt><font face="Thorndale, serif">the</font></tt>
58variable <tt><font style="font-size: 10pt;" size="2">user_defined_namelist_found</font></tt>
59is set&nbsp; <i>.TRUE.</i> in <tt><font style="font-size: 10pt;" size="2">user_parin</font></tt>).
60The names of any
61user-defined
62subdomains are displayed by default (see <a href="chapter_4.1.html#statistic_regions">statistic_regions</a>).</p>
63</td> </tr> <tr valign="top"> <td width="211"> <p>End of <tt><font style="font-size: 10pt;" size="2">init_3d_model.f90</font></tt></p>
64</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_init"></a>user_init</font></font></tt></p>
65</td> <td width="862"> <p>Here, user-defined
66initialization actions which should
67be
68accomplished before the start of the 3D-model can be implemented (e.g.
69inhomogenous change of the surface temperature, the roughness length,
70or similar). At this point, all default parameter initializations of
71the model (<a href="chapter_4.1.html">chapter
724.1</a>) have already been carried out at all.&nbsp; </p>
73<p>One of the most important actions here is the definition
74of
75user-defined subdomains for statistic analysis and output (see <a href="chapter_4.1.html#statistic_regions">statistic_regions</a>
76and <a href="chapter_3.5.3.html">chapter
773.5.3</a>) and of additional time series quantities (see comment
78line example in the file).&nbsp; <br>
79CPU time for <tt><font style="font-size: 10pt;" size="2">user_init</font></tt>
80is considered in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
81within the category &ldquo;initialisation&rdquo;.</p><p>See
82also <tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a href="#user_init_3d_model">user_init_3d_model</a>.</font></font></tt></p>
83</td> </tr> <tr> <td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2">DEFAULT</font></tt>
84case of <tt><font style="font-size: 10pt;" size="2">SELECT
85CASE( TRIM(topography) ) </font></tt>command in the
86middle&nbsp;of <tt><font style="font-size: 10pt;" size="2">init_grid.f90</font></tt></td> <td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_init_grid"></a>user_init_grid</font></font></tt></td>
87<td> <p>Execution of user-defined grid initializing
88actions.</p> <p>Here, the user can define the
89two-dimensional index
90array&nbsp;<tt><font style="font-size: 10pt;" size="2">nzb_local</font></tt> that is used to
91set up a non-flat topography. This requires definition of at least one
92new <a href="chapter_4.1.html#topography">topography</a>&nbsp;mode
93in the&nbsp;<tt><font style="font-size: 10pt;" size="2">SELECT CASE( TRIM(topography) ) </font></tt>command
94in&nbsp;<tt><font style="font-size: 10pt;" size="2">user_init_grid</font></tt>.
95Note that the <a href="chapter_4.1.html#topography">topography</a>&nbsp;modes
96<span style="font-style: italic;">'flat'</span>
97and <span style="font-style: italic;">'single_building'</span>
98are not allowed here since these are the standard cases used in the
99calling routine <tt><font style="font-size: 10pt;" size="2">init_grid</font></tt>. </p> <p>CPU
100time for <tt><font style="font-size: 10pt;" size="2">user_init_grid</font></tt>
101is considered in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
102within the category &ldquo;initialisation&rdquo;.</p> </td>
103</tr> <tr><td style="vertical-align: top;">In
104the middle of <tt><font style="font-size: 10pt;" size="2">init_3d_model.f90</font></tt></td><td style="vertical-align: top;"><span style="font-family: monospace;"></span><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_init_3d_model"></a>user_init_3d_<br>model</font></font></tt></td><td style="vertical-align: top;">Initialization of the 3d-model.<br><br>Allows
105the complete initialization of the 3d model. The user is responsible to
106set at least all those quantities which are normally set within <tt><font style="font-size: 10pt;" size="2">init_3d_model</font></tt>.</td></tr><tr valign="top"> <td width="211"> <p>In
107the middle of <tt><font style="font-size: 10pt;" size="2">init_particles.f90</font></tt></p>
108</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_init_particles"></a>user_init_</font></font></tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br> </font></font><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">particles</font></font></tt></p>
109</td> <td width="862"> <p>With this routine
110e.g. size and color of particles,
111which have
112been released initially from a source, can be specified. Like the
113calling routine <tt><font style="font-size: 10pt;" size="2">init_particles</font><font style="font-size: 11pt;" size="2">,</font></tt>
114this routine is only
115called if particle advection is switched on (see package parameter <a href="chapter_4.2.html#dt_prel">dt_prel</a>).</p>
116</td> </tr> <tr valign="top"> <td width="211"> <p>End of <tt><font style="font-size: 10pt;" size="2">advec_particles.f90</font></tt></p>
117</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_particle_attributes"></a>user_particle_</font></font></tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br> </font></font><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">attributes</font></font></tt></p>
118</td> <td width="862"> <p>Here the particles
119can be assigned new attributes
120(diameter,
121color etc.) after each time step. Like the calling routine <tt><font style="font-size: 10pt;" size="2">advec_particles</font><font style="font-size: 11pt;" size="2">,</font> </tt>this
122routine is only
123called if particle advection is switched on (see package parameter <a href="chapter_4.2.html#dt_prel">dt_prel</a>).</p>
124</td> </tr> <tr valign="top"> <td width="211"> <p>Before the plot of particles and
125cross-sections in <br> <tt><font style="font-size: 10pt;" size="2">dvrp_plot.f90</font></tt></p>
126</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_dvrp_coltab"></a>user_dvrp_coltab
127(</font></font></tt><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> mode )</font></font></tt></p>
128</td> <td width="862"> <p>With this routine,
129color tables can be adjusted which
130should
131be used for output with the dvrp software. Individuell color tables for
132particles and cross-sections are possible. For this purpose the two
133arrays <tt><font style="font-size: 10pt;" size="2">interval_values_dvrp</font></tt>
134and <tt><font style="font-size: 10pt;" size="2">interval_h_dvrp</font></tt>
135(declared in the module <tt><font style="font-size: 10pt;" size="2">dvrp_variables</font></tt>)
136have to be preset with appropriate values. The number of color table
137entries must be assigned to the variable of <tt><font style="font-size: 10pt;" size="2">dvrp_colourtable_entries</font></tt>.
138The value of the subroutine argument <span style="font-family: monospace;">mode</span> defines,
139whether the color
140table is valid for particles or for cross-sections<span style="font-family: monospace;"></span> (i.e. <tt><font size="2">mode</font></tt>
141can have the values &ldquo;<i>particles&rdquo;</i>
142or &ldquo;<i>slicer&rdquo;</i>).&nbsp; <br>
143This routine only becomes active if dvrp-graphics is switched on (see
144package parameter <a href="chapter_4.2.html#dt_dvrp">dt_dvrp</a>).</p>
145</td> </tr> <tr valign="top"> <td width="211"> <p>Beginning and end of the time
146integration loop
147of&nbsp; <br> <tt><font style="font-size: 10pt;" size="2">time_integration.f90</font></tt>
148as well as after each prognostic equation in <br> <tt><font style="font-size: 10pt;" size="2">prognostic_equations.f90</font></tt></p>
149</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_actions"></a>user_actions(
150location )</font></font></tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> </font></font> </p>
151<p>or<br> <font face="Cumberland, monospace"><font style="font-size: 10pt;" size="2"> </font></font>
152</p> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">user_actions(
153i, j,</font></font></tt><span style="font-family: Cumberland,monospace;"> </span><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">location )</font></font></tt></p>
154</td> <td width="862"> <p>In this routine
155user actions can be implemented which
156are to
157be executed either at each time step or at certain times (defined by
158the user). Since in each case the routine is called at the beginning
159and at the end of a time step as well as after each prognostic equation
160it must be defined at which place (and/or at which places) the
161respective actions are supposed to be executed. For this purpose an
162appropriate CASE structure is already inserted in this routine. The
163location of the calling routine is passed to this routine via the
164argument <tt><font style="font-size: 10pt;" size="2">location</font></tt>.
165For example, if called at the beginning of a time step, <tt><font style="font-size: 10pt;" size="2">location</font></tt>
166=&nbsp;<i>'before_timestep' </i>and if
167called at the end, <tt><font style="font-size: 10pt;" size="2">location</font></tt><font style="font-size: 10pt;" size="2"> </font>=&nbsp;<i>'after_timestep'</i><span style="font-weight: bold;">.</span></p><p>Calculation
168of user-defined output quantities should be carried out at <span style="font-family: monospace;">location</span> = <span style="font-style: italic;">'after_integration'</span>.<span style="font-weight: bold;"></span></p><p><span style="font-weight: bold;">Important:</span>
169if the
170cache-optimized version of <span style="font-family: monospace;">prognostic_equation.f90</span>
171is used (this is the default for IBM-Regatta-Systems), the loop
172variables <tt>i</tt> and <tt>j</tt> must be
173passed as arguments for
174all calls within <span style="font-family: monospace;">prognostic_equations</span>.
175</p> <p>CPU time for <tt><font style="font-size: 10pt;" size="2">user_actions</font></tt>
176appears within the category &ldquo;user_actions&rdquo; in the
177local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>.
178If the cache-optimized version of <span style="font-family: monospace;">prognostic_equation.f90</span>
179is used, this time measurement only considers the CPU time which was
180needed outside of the prognostic equations. Time needed for calls
181within prognostic_equations is considered within the category "all
182prog.equations".<br> </p> <p><b>Important:</b>
183this subroutine is written
184as a FORTRAN
185module, which uses so-called function overloading. It can be called in
186two ways: with one argument (<tt><font style="font-size: 10pt;" size="2">location</font></tt>)
187and with three arguments <font style="font-size: 10pt;" size="2">(</font><tt><font style="font-size: 10pt;" size="2">i, j, location</font></tt><font style="font-size: 10pt;" size="2">)</font>. The
188three argument version
189is used in the cache-optimized version of <span style="font-family: monospace;">prognostic_equations</span>.
190Depending
191on the number of given arguments the subroutine internally calls <tt><font style="font-size: 10pt;" size="2">user_actions</font></tt>
192or <tt><font style="font-size: 10pt;" size="2">user_actions_ij</font></tt>.
193So the
194user must insert the actions (code extensions) desired for the
195respective prognostic equation either in the CASE structure of <tt><font style="font-size: 10pt;" size="2">user_actions</font><font style="font-size: 11pt;" size="2">,</font> </tt>or/and
196in the CASE
197structure of <tt><font style="font-size: 10pt;" size="2">user_actions_ij</font></tt>!</p> </td>
198</tr> <tr valign="top"> <td width="211"><p><tt><font style="font-size: 10pt;" size="2">flow_statistics.f90</font></tt>
199before the summation of array <span style="font-family: monospace;">hom</span>
200(horizontal averages)<br> </p> </td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_statistics"></a>user_statistics<br>(
201sr )</font></font></tt></p> </td> <td width="862"> <p>Horizontal
202averages of vertical profiles of user-defined
203quantities can be computed here. Also, additional time series
204quantities can be calculated. They have to be defined before in routine
205<a style="font-family: monospace;" href="#user_init">user_init</a>.
206The routine is called once for each defined statistic region (see <a href="chapter_4.1.html#statistic_region">statistic_region</a>).</p><p>The
207routine contains some simple examples (as comment lines) in order to
208demonstrate how to use it.<br><br>Profile sums have to
209be stored in
210the array <tt><font style="font-size: 10pt;" size="2">sums_l</font></tt>.&nbsp;The profile identification number (second index of array <span style="font-family: monospace;">sums_l</span>) must be within the range [<span style="font-family: monospace;"> pr_palm+1 , pr_palm+max_pr_user</span> ], where <span style="font-family: monospace;">pr_palm</span> is an internal parameter and&nbsp; <span style="font-family: Courier New,Courier,monospace;">max_pr_user</span> is the number of&nbsp;user-defined profiles as given by parameter <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/doc/app/chapter_4.3.html#data_output_pr_user">data_output_pr_user</a> in the respective PALM run.</p><p> These additional
211profiles
212are further processed (e.g. temporally averaged), like the standard profiles, in <tt><font style="font-size: 10pt;" size="2">flow_statistics</font></tt>.</p> </td>
213</tr> <tr><td style="vertical-align: top;">End
214of <span style="font-family: monospace;">check_parameters.f90</span>
215where 2d/3d output quantities are checked</td><td style="vertical-align: top;"><span style="font-family: monospace;"><a name="user_check_data_output"></a>user_check_data_<br>output(
216variable, unit )</span></td><td style="vertical-align: top;">Here the physical <span style="font-family: monospace;">unit</span>(s) of
217user-defined 2d/3d output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
218have to be set. Input parameter <span style="font-family: monospace;">variable</span>
219contains the string identifier of the respective variable. For those
220variables not recognized by the user, the parameter <span style="font-family: monospace;">unit</span> is set to
221"illegal", which tells the calling routine that the output variable is
222not defined and leads to a program abort.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
223creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;">End
224of <span style="font-family: monospace;">check_parameters.f90</span>
225where vertical profile output quantities are checked</td><td style="vertical-align: top;"><a name="user_check_data_output_pr"></a><br><span style="font-family: monospace;">user_check_data_</span><br style="font-family: monospace;"><span style="font-family: monospace;">output_pr(</span><br style="font-family: monospace;"><span style="font-family: monospace;">variable, var_count, unit )</span></td><td style="vertical-align: top;">Here the physical <span style="font-family: monospace;">unit</span>(s) and vertical grid (u- or w-grid) of
226user-defined vertical profile output quantities (see <a href="chapter_4.3.html#data_output_pr_user">data_output_pr_user</a>)
227have to be set. Input parameter <span style="font-family: monospace;">variable</span>
228contains the string identifier of the respective variable. Parameter<span style="font-family: monospace;"> var_count </span>contains the internal profile number and must not be changed by the user. For those
229variables not recognized by the user, the parameter <span style="font-family: monospace;">unit</span> is set to
230"illegal", which tells the calling routine that the output variable is
231not defined and leads to a program abort.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
232creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;"><span style="font-family: monospace;">netcdf.f90</span> (4
233times) where the vertical grid coordinates for cross sections and
234volume data are defined</td><td style="vertical-align: top;"><span style="font-family: monospace;"><a name="user_define_netcdf_grid"></a>user_define_<br>netcdf_grid(
235variable, found, grid_x, grid_y, grid_z )</span></td><td style="vertical-align: top;">Set the grid on which
236user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
237are defined. Input parameter <span style="font-family: monospace;">variable</span>
238contains the string identifier of the respective variable. Allowed
239values are <span style="font-style: italic;">'x'</span>
240and <span style="font-style: italic;">'xu'</span>
241for <span style="font-family: monospace;">grid_x</span>,
242<span style="font-style: italic;">'y'</span> and <span style="font-style: italic;">'yv'</span> for <span style="font-family: monospace;">grid_y</span>, and<span style="font-family: monospace;"></span>&nbsp;<span style="font-style: italic;">'zu'</span> and <span style="font-style: italic;">'zw'</span> for <span style="font-family: monospace;">grid_z</span>. The
243output parameter <span style="font-family: monospace;">found</span>
244has to be set <span style="font-style: italic;">.TRUE.</span>
245by the user, otherwise an error message will appear in the job protocol
246for the respective output quantity.<br><br><span style="font-weight: bold;">Example:</span><br>If
247an output quantity is defined at the center of the grid boxes, the
248following settings have to be used:<br><br><div style="margin-left: 40px;"><span style="font-family: monospace;">grid_x = <span style="font-style: italic;">'x'</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">grid_y = <span style="font-style: italic;">'y'</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">grid_z = <span style="font-style: italic;">'zu'</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">found &nbsp;= <span style="font-style: italic;">.TRUE.</span></span><br></div><br>For
249defining an output quantity at the grid points where the
250u-velocity-component is defined, please use<br><br><div style="margin-left: 40px;"><span style="font-family: monospace;">grid_x = <span style="font-style: italic;">'xu'</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">grid_y = <span style="font-style: italic;">'y'</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">grid_z = <span style="font-style: italic;">'zu'</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">found &nbsp;= <span style="font-style: italic;">.TRUE.</span></span><br></div><br>See
251<a href="chapter_3.5.4.html">chapter 3.5.4</a> about
252creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;">Middle of <span style="font-family: monospace;">data_output_2d.f90</span></td><td style="vertical-align: top;"><span style="font-family: monospace;"><a name="user_data_output_2d"></a>user_data_<br>output_2d(
253av, variable, found, grid, local_pf )</span></td><td style="vertical-align: top;">Resorts&nbsp;user-defined&nbsp;quantities
254(to be output as cross-section data;&nbsp;see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
255with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
256indices (i,j,k) and sets the <span style="font-family: monospace;">grid</span>
257on which they are defined. Depending on the value of input parameter <span style="font-family: monospace;">av</span> resorting is
258done for instantaneous (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">0</span>) or time averaged
259data (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">1</span>). Input parameter
260<span style="font-family: monospace;">variable</span>
261contains the string identifier of the respective variable. Allowed
262values for <span style="font-family: monospace;">grid</span>
263are&nbsp;<span style="font-style: italic;">'zu'</span>
264and&nbsp;<span style="font-style: italic;">'zw'</span>.
265The output parameter <span style="font-family: monospace;">found</span>
266has to be set <span style="font-style: italic;">.TRUE.</span>
267by the user, otherwise an error message will appear in the job protocol
268for the respective output quantity.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
269creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;"><span style="font-family: monospace;">data_output_3d.f90</span>
270at the end of the CASE structure</td><td style="vertical-align: top;"><span style="font-family: monospace;"><a name="user_data_output_3d"></a>user_data_<br>output_3d(
271av, variable, found, local_pf, nz_do )</span></td><td style="vertical-align: top;">Resorts&nbsp;user-defined&nbsp;quantities
272(to be output as volume data;&nbsp;see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
273with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
274indices (i,j,k) and sets the <span style="font-family: monospace;">grid</span>
275on which they are defined. Depending on the value of input parameter <span style="font-family: monospace;">av</span> resorting is
276done for instantaneous (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">0</span>) or time averaged
277data (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">1</span>). Input parameter
278<span style="font-family: monospace;">variable</span>
279contains the string identifier of the respective variable<span style="font-family: monospace;"></span><span style="font-style: italic;"></span><span style="font-style: italic;"></span>. The input
280parameter <span style="font-family: monospace;">nz_do</span>
281defines the upper limit of vertical grid index k of the output array
282(see <a href="chapter_4.2.html#nz_do3d">nz_do3d</a>).
283The output parameter <span style="font-family: monospace;">found</span>
284has to be set <span style="font-style: italic;">.TRUE.</span>
285by the user, otherwise an error message will appear in the job protocol
286for the respective output quantity.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
287creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;">End of <span style="font-family: monospace;">average_3d_data.f90</span>,
288middle and end of <span style="font-family: monospace;">sum_up_3d_data.f90</span></td><td style="vertical-align: top;"><span style="font-family: monospace;"><a name="user_3d_data_averaging"></a>user_3d_data_<br>averaging(
289mode, variable )</span></td><td style="vertical-align: top;">Sum up and time-average of
290user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
291as well as allocation of the arrays necessary for storing the
292respective averages. Input parameter <span style="font-family: monospace;">variable</span>
293contains the string identifier of the respective variable. Depending on
294the requested action, input parameter <span style="font-family: monospace;">mode</span> has the
295value <span style="font-style: italic;">'allocate'</span>,
296<span style="font-style: italic;">'sum'</span>, or <span style="font-style: italic;">'average'</span>.<br><br>See
297<a href="chapter_3.5.4.html">chapter 3.5.4</a> about
298creating user-defined output quantities. </td></tr><tr><td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2">DEFAULT</font></tt>
299case of <tt><font style="font-size: 10pt;" size="2">SELECT
300CASE(&nbsp;</font></tt><font style="font-size: 10pt; font-family: Courier New,Courier,monospace;" size="2"><code></code></font><tt><font style="font-size: 10pt;" size="2"><code>output_variable</code> ) </font></tt>command near the end of <code>data_output_dvrp.f90</code></td><td style="vertical-align: top;"><code><a name="user_data_output_dvrp"></a>user_data_<br>output_dvrp(<br>output_variable, local_pf )</code></td><td style="vertical-align: top;">Resorts&nbsp;user-defined&nbsp;quantities
301(to be output as dvrp objects;&nbsp;see <a href="chapter_4.3.html#data_output_user">data_output_user</a> and <a href="chapter_4.2.html#mode_dvrp">mode_dvrp</a>)
302with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
303indices (i,j,k). The array  <span style="font-family: monospace;">local_pf</span> is then handed back to the calling subroutine&nbsp;<code>data_output_dvrp.f90</code>.<br><br>See
304<a href="chapter_3.5.4.html">chapter 3.5.4</a> about
305creating user-defined output quantities.</td></tr><tr valign="top"> <td width="211"> <p>End
306of <tt><font style="font-size: 10pt;" size="2">palm.f90</font></tt></p>
307</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_last_action"></a>user_last_</font></font></tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br> </font></font><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">action</font></font></tt></p>
308</td> <td width="862"> <p>User-defined
309actions which are to be executed at the end
310of a
311model run. When <tt><font style="font-size: 10pt;" size="2">user_last_actions</font></tt>
312is called all model actions are already completed, but the files opened
313by the model are not closed yet and possibly terminating actions for
314these files (see subroutine of <tt><font style="font-size: 10pt;" size="2">close_files</font></tt>)
315are also not carried
316out yet.&nbsp; <br>
317CPU time for <tt><font style="font-size: 10pt;" size="2">user_last_actions</font></tt>
318appears in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
319within the category &ldquo;last actions&rdquo; (the time
320necessary for <tt><font style="font-size: 10pt;" size="2">close_files</font></tt> is included).</p>
321</td> </tr> </tbody></table><hr>
322<p style="line-height: 100%;"><br><font color="#000080"><font color="#000080"><a href="chapter_3.5.html"><font color="#000080"><img src="left.gif" name="Grafik1" align="bottom" border="2" height="32" width="32"></font></a><a href="index.html"><font color="#000080"><img src="up.gif" name="Grafik2" align="bottom" border="2" height="32" width="32"></font></a><a href="chapter_3.5.2.html"><font color="#000080"><img src="right.gif" name="Grafik3" align="bottom" border="2" height="32" width="32"></font></a></font></font></p><p style="line-height: 100%;"><i>Last
323change: </i>$Id: chapter_3.5.1.html 130 2007-11-13 14:08:40Z letzel $</p>
324</body></html>
Note: See TracBrowser for help on using the repository browser.