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

Last change on this file since 1010 was 217, checked in by letzel, 16 years ago
  • NCL scripts in trunk/SCRIPTS/NCL updated
  • Property svn:keywords set to Id
File size: 34.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. The respective
16name of a source code files is the&nbsp;subroutine name followed by "<span style="font-family: Courier New,Courier,monospace;">.f90</span>". Exception: the file containing the module<span style="font-family: Courier New,Courier,monospace;"> user </span>has the name <span style="font-family: Courier New,Courier,monospace;">user_module.f90</span>.<br>
17&nbsp; </p>
18<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
19location</b></font></p> </td> <td width="117"> <p><font size="4"><b>Subroutine
20name and
21argument(s)</b></font></p> </td> <td style="width: 862px;"> <p><font size="4"><b>Possible
22actions</b></font></p> </td> </tr> <tr><td style="vertical-align: top;">---</td><td style="vertical-align: top;"><span style="font-family: monospace;"><a name="user"></a>MODULE
23user</span></td><td style="vertical-align: top;">All
24user-defined variables which are used outside the respective local
25scopes of the user-defined subroutines have to be declared here.</td></tr><tr valign="top"> <td width="211"> <p>End
26of <tt><font style="font-size: 10pt;" size="2">parin.f90</font></tt></p>
27</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>
28</td> <td width="862"> <p>Declaration of
29user-defined parameters in the NAMELIST
30group <tt><font style="font-size: 10pt;" size="2">&amp;userpar</font></tt>.
31These
32parameters can be read from the local file <a href="chapter_3.4.html#PARIN">PARIN</a>
33and be used for steering the user-defined code (see <a href="chapter_4.0.html">chapter
344.0</a>). The user-defined parameter <a href="chapter_4.3.html#region">region</a>
35is already pre-defined in <tt><font style="font-size: 10pt;" size="2">&amp;userpar</font></tt>
36and must not be changed. Additional NAMELIST groups may be declared if
37desired.&nbsp; <br>
38The CPU time needed for executing <tt><font style="font-size: 10pt;" size="2">user_parin</font></tt>
39is included in the
40local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
41within the category &ldquo;initialisation&rdquo;.</p> </td>
42</tr> <tr valign="top"> <td width="211"><p>End
43of <tt><font style="font-size: 10pt;" size="2">header.f90</font></tt></p>
44</td>
45<td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_header"></a>user_header(
46io )</font></font></tt></p> </td> <td width="862"> <p>Output of the values of the
47user-defined parameters to
48the
49local files <a href="chapter_3.4.html#HEADER">HEADER</a>
50and <a href="chapter_3.4.html#RUN_CONTROL">RUN_CONTROL</a>.
51This output should be made anyway in order to subsequently check the
52parameter values used for the respective run. The number of the output
53unit is passed as an argument and must be used in each WRITE statement
54(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>.
55By default, this
56subroutine only creates output if a user-defined NAMELIST is found in
57file <a href="chapter_3.4.html#PARIN">PARIN</a>
58(in this case <tt><font face="Thorndale, serif">the</font></tt>
59variable <tt><font style="font-size: 10pt;" size="2">user_defined_namelist_found</font></tt>
60is set&nbsp; <i>.TRUE.</i> in <tt><font style="font-size: 10pt;" size="2">user_parin</font></tt>).
61The names of any
62user-defined
63subdomains are displayed by default (see <a href="chapter_4.1.html#statistic_regions">statistic_regions</a>).</p>
64</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>
65</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>
66</td> <td width="862"> <p>Here, user-defined
67initialization actions which should
68be
69accomplished before the start of the 3D-model can be implemented (e.g.
70inhomogenous change of the surface temperature, the roughness length,
71or similar). At this point, all default parameter initializations of
72the model (<a href="chapter_4.1.html">chapter
734.1</a>) have already been carried out at all.&nbsp; </p>
74<p>One of the most important actions here is the definition
75of
76user-defined subdomains for statistic analysis and output (see <a href="chapter_4.1.html#statistic_regions">statistic_regions</a>
77and <a href="chapter_3.5.3.html">chapter
783.5.3</a>) and of additional time series quantities (see comment
79line example in the file).&nbsp; <br>
80CPU time for <tt><font style="font-size: 10pt;" size="2">user_init</font></tt>
81is considered in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
82within the category &ldquo;initialisation&rdquo;.</p><p>See
83also <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>
84</td> </tr> <tr><td style="vertical-align: top;">End of <span style="font-family: Courier New,Courier,monospace;">read_3d_binary.f90</span></td><td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_read_restart_data"></a>user_read_<br>restart_data( nxlc, nxlf,nxl_on_file, nxrc, nxrf, nxr_on_file, nync, nynf,nyn_on_file, nysc, nysf, nys_on_file, tmp_2d, tmp_3d )</font></font></tt></td><td style="vertical-align: top;">Reading of user-defined 2d- and 3d-arrays from the restart file.<br><br>In
85case of restart runs, user-defined quantities may have to be read from
86the restart file generated by the previous run. These quantities must
87have been output by the user in the previous run using routine <a href="#user_last_actions"><span style="font-family: Courier New,Courier,monospace;">user_last_actions</span></a>.<br><br>For usage, see example contained in <span style="font-family: Courier New,Courier,monospace;">read_3d_binary.f90</span> and <span style="font-family: Courier New,Courier,monospace;">user_last_actions.f90</span>.</td></tr><tr><td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2">DEFAULT</font></tt>
88case of <tt><font style="font-size: 10pt;" size="2">SELECT
89CASE( TRIM(canopy_mode) ) </font></tt>command in the
90middle&nbsp;of <tt><font style="font-size: 10pt;" size="2">init_3d_model.f90</font></tt></td><td style="vertical-align: top;"><a name="user_init_plant_canopy"></a><code>user_init_plant_canopy</code></td><td style="vertical-align: top;">User-defined initilisation of the plant canopy model.<br><br>Here, the user can define the two three-dimensional arrays <code>lad_s and cdc </code>that
91stand for the leaf area density and the canopy drag coefficient. By
92this, the user can configure a&nbsp;plant canopy. This requires
93definition of at least one
94new&nbsp;<a href="chapter_4.1.html#canopy_mode">canopy_mode</a>&nbsp;in the&nbsp;<tt><font style="font-size: 10pt;" size="2">SELECT CASE( TRIM(canopy_mode) ) </font></tt>command
95in&nbsp;<tt><font style="font-size: 10pt;" size="2">user_init_plant_canopy</font></tt>.
96Note that the&nbsp;<a href="chapter_4.1.html#canopy_mode">canopy_mode</a>&nbsp;<span style="font-style: italic;">'block'</span> is<span style="font-style: italic;"></span> not allowed here since it is the standard case used in the
97calling routine <tt><font style="font-size: 10pt;" size="2">init_3d_model</font></tt>. </td></tr><tr> <td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2">DEFAULT</font></tt>
98case of <tt><font style="font-size: 10pt;" size="2">SELECT
99CASE( TRIM(topography) ) </font></tt>command in the
100middle&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>
101<td> <p>Execution of user-defined grid initializing
102actions.</p> <p>Here, the user can define the
103two-dimensional index
104array&nbsp;<tt><font style="font-size: 10pt;" size="2">nzb_local</font></tt> that is used to
105set up a non-flat topography. This requires definition of at least one
106new <a href="chapter_4.1.html#topography">topography</a>&nbsp;mode
107in the&nbsp;<tt><font style="font-size: 10pt;" size="2">SELECT CASE( TRIM(topography) ) </font></tt>command
108and the definition of <a href="chapter_4.3.html#topography_grid_convention">topography_grid_convention</a> in&nbsp;<tt><font style="font-size: 10pt;" size="2">user_init_grid</font></tt>.
109Note that the <a href="chapter_4.1.html#topography">topography</a>&nbsp;modes
110<span style="font-style: italic;">'flat'</span>, <span style="font-style: italic;">'single_building'</span>
111and <span style="font-style: italic;">'read_from_file'</span> are not allowed here since these are the standard cases used in the
112calling routine <tt><font style="font-size: 10pt;" size="2">init_grid</font></tt>. </p> <p>CPU
113time for <tt><font style="font-size: 10pt;" size="2">user_init_grid</font></tt>
114is considered in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
115within the category &ldquo;initialisation&rdquo;.</p> </td>
116</tr> <tr><td style="vertical-align: top;">End of <code>check_parameters</code></td><td style="vertical-align: top;"><code><a name="user_check_parameters"></a>user_check_parameters</code></td><td style="vertical-align: top;">Check &amp;userpar control parameters and deduce further quantities.</td></tr><tr><td style="vertical-align: top;">In
117the 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
118the complete initialization of the 3d model. The user is responsible to
119set 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
120the middle of <tt><font style="font-size: 10pt;" size="2">init_particles.f90</font></tt></p>
121</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>
122</td> <td width="862"> <p>With this routine
123e.g. size and color of particles,
124which have
125been released initially from a source, can be specified. Like the
126calling routine <tt><font style="font-size: 10pt;" size="2">init_particles</font><font style="font-size: 11pt;" size="2">,</font></tt>
127this routine is only
128called if particle advection is switched on (see package parameter <a href="chapter_4.2.html#dt_prel">dt_prel</a>).</p>
129</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>
130</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>
131</td> <td width="862"> <p>Here the particles
132can be assigned new attributes
133(diameter,
134color 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
135routine is only
136called if particle advection is switched on (see package parameter <a href="chapter_4.2.html#dt_prel">dt_prel</a>).</p>
137</td> </tr> <tr valign="top"> <td width="211"> <p>Before the plot of particles and
138cross-sections in <br> <tt><font style="font-size: 10pt;" size="2">dvrp_plot.f90</font></tt></p>
139</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
140(</font></font></tt><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> mode )</font></font></tt></p>
141</td> <td width="862"> <p>With this routine,
142color tables can be adjusted which
143should
144be used for output with the dvrp software. Individuell color tables for
145particles and cross-sections are possible. For this purpose the two
146arrays <tt><font style="font-size: 10pt;" size="2">interval_values_dvrp</font></tt>
147and <tt><font style="font-size: 10pt;" size="2">interval_h_dvrp</font></tt>
148(declared in the module <tt><font style="font-size: 10pt;" size="2">dvrp_variables</font></tt>)
149have to be preset with appropriate values. The number of color table
150entries must be assigned to the variable of <tt><font style="font-size: 10pt;" size="2">dvrp_colourtable_entries</font></tt>.
151The value of the subroutine argument <span style="font-family: monospace;">mode</span> defines,
152whether the color
153table is valid for particles or for cross-sections<span style="font-family: monospace;"></span> (i.e. <tt><font size="2">mode</font></tt>
154can have the values &ldquo;<i>particles&rdquo;</i>
155or &ldquo;<i>slicer&rdquo;</i>).&nbsp; <br>
156This routine only becomes active if dvrp-graphics is switched on (see
157package parameter <a href="chapter_4.2.html#dt_dvrp">dt_dvrp</a>).</p>
158</td> </tr> <tr valign="top"> <td width="211"> <p>Beginning and end of the time
159integration loop
160of&nbsp; <br> <tt><font style="font-size: 10pt;" size="2">time_integration.f90</font></tt>
161as well as after each prognostic equation in <br> <tt><font style="font-size: 10pt;" size="2">prognostic_equations.f90</font></tt></p>
162</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_actions"></a>user_actions(
163location )</font></font></tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> </font></font> </p>
164<p>or<br> <font face="Cumberland, monospace"><font style="font-size: 10pt;" size="2"> </font></font>
165</p> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">user_actions(
166i, 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>
167</td> <td width="862"> <p>In this routine
168user actions can be implemented which
169are to
170be executed either at each time step or at certain times (defined by
171the user). Since in each case the routine is called at the beginning
172and at the end of a time step as well as after each prognostic equation
173it must be defined at which place (and/or at which places) the
174respective actions are supposed to be executed. For this purpose an
175appropriate CASE structure is already inserted in this routine. The
176location of the calling routine is passed to this routine via the
177argument <tt><font style="font-size: 10pt;" size="2">location</font></tt>.
178For example, if called at the beginning of a time step, <tt><font style="font-size: 10pt;" size="2">location</font></tt>
179=&nbsp;<i>'before_timestep' </i>and if
180called 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
181of 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>
182if the
183cache-optimized version of <span style="font-family: monospace;">prognostic_equation.f90</span>
184is used (this is the default for IBM-Regatta-Systems), the loop
185variables <tt>i</tt> and <tt>j</tt> must be
186passed as arguments for
187all calls within <span style="font-family: monospace;">prognostic_equations</span>.
188</p> <p>CPU time for <tt><font style="font-size: 10pt;" size="2">user_actions</font></tt>
189appears within the category &ldquo;user_actions&rdquo; in the
190local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>.
191If the cache-optimized version of <span style="font-family: monospace;">prognostic_equation.f90</span>
192is used, this time measurement only considers the CPU time which was
193needed outside of the prognostic equations. Time needed for calls
194within prognostic_equations is considered within the category "all
195prog.equations".<br> </p> <p><b>Important:</b>
196this subroutine is written
197as a FORTRAN
198module, which uses so-called function overloading. It can be called in
199two ways: with one argument (<tt><font style="font-size: 10pt;" size="2">location</font></tt>)
200and 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
201three argument version
202is used in the cache-optimized version of <span style="font-family: monospace;">prognostic_equations</span>.
203Depending
204on the number of given arguments the subroutine internally calls <tt><font style="font-size: 10pt;" size="2">user_actions</font></tt>
205or <tt><font style="font-size: 10pt;" size="2">user_actions_ij</font></tt>.
206So the
207user must insert the actions (code extensions) desired for the
208respective 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
209in the CASE
210structure of <tt><font style="font-size: 10pt;" size="2">user_actions_ij</font></tt>!</p> </td>
211</tr> <tr><td style="vertical-align: top;"><code>SUBROUTINE preprocess_spectra</code> in <code>calc_spectra.f90</code>, and <code>data_output_spectra.f90</code></td><td style="vertical-align: top;"><p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_spectra"></a>user_spectra</font></font></tt></p></td><td style="vertical-align: top;"><p><a href="chapter_3.5.4.html#spectra">Spectra of user-defined
212quantities</a> can be computed here.</p>The
213routine contains some simple examples (as comment lines) in order to
214demonstrate how to use it.</td></tr><tr valign="top"> <td width="211"><p><tt><font style="font-size: 10pt;" size="2">flow_statistics.f90</font></tt>
215before the summation of array <span style="font-family: monospace;">hom</span>
216(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>(
217sr )</font></font></tt></p> </td> <td width="862"> <p>Horizontal
218averages of vertical profiles of user-defined
219quantities can be computed here. Also, additional time series
220quantities can be calculated. They have to be defined before in routine
221<a style="font-family: monospace;" href="#user_init">user_init</a>.
222The routine is called once for each defined statistic region (see <a href="chapter_4.1.html#statistic_region">statistic_region</a>).</p><p>The
223routine contains some simple examples (as comment lines) in order to
224demonstrate how to use it.<br><br>Profile sums have to
225be stored in
226the 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
227profiles
228are 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>
229</tr> <tr><td style="vertical-align: top;">Middle of <span style="font-family: Courier New,Courier,monospace;">advec_particles.f90</span>, after particle reflection from walls.</td><td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_advec_particles"></a>user_advec_<br>particles</font></font></tt></td><td style="vertical-align: top;">User-defined actions after the calculation of the new particle position.</td></tr><tr><td style="vertical-align: top;">End
230of <span style="font-family: monospace;">check_parameters.f90</span>
231where 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(
232variable, unit )</span></td><td style="vertical-align: top;">Here the physical <span style="font-family: monospace;">unit</span>(s) of
233user-defined 2d/3d output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
234have to be set. Input parameter <span style="font-family: monospace;">variable</span>
235contains the string identifier of the respective variable. For those
236variables not recognized by the user, the parameter <span style="font-family: monospace;">unit</span> is set to
237"illegal", which tells the calling routine that the output variable is
238not defined and leads to a program abort.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
239creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;">End
240of <span style="font-family: monospace;">check_parameters.f90</span>
241where 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
242user-defined vertical profile output quantities (see <a href="chapter_4.3.html#data_output_pr_user">data_output_pr_user</a>)
243have to be set. Input parameter <span style="font-family: monospace;">variable</span>
244contains 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
245variables not recognized by the user, the parameter <span style="font-family: monospace;">unit</span> is set to
246"illegal", which tells the calling routine that the output variable is
247not defined and leads to a program abort.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
248creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;"><span style="font-family: monospace;">netcdf.f90</span> (4
249times) where the vertical grid coordinates for cross sections and
250volume 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(
251variable, found, grid_x, grid_y, grid_z )</span></td><td style="vertical-align: top;">Set the grid on which
252user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
253are defined. Input parameter <span style="font-family: monospace;">variable</span>
254contains the string identifier of the respective variable. Allowed
255values are <span style="font-style: italic;">'x'</span>
256and <span style="font-style: italic;">'xu'</span>
257for <span style="font-family: monospace;">grid_x</span>,
258<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
259output parameter <span style="font-family: monospace;">found</span>
260has to be set <span style="font-style: italic;">.TRUE.</span>
261by the user, otherwise an error message will appear in the job protocol
262for the respective output quantity.<br><br><span style="font-weight: bold;">Example:</span><br>If
263an output quantity is defined at the center of the grid boxes, the
264following 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
265defining an output quantity at the grid points where the
266u-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
267<a href="chapter_3.5.4.html">chapter 3.5.4</a> about
268creating 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(
269av, variable, found, grid, local_pf )</span></td><td style="vertical-align: top;">Resorts&nbsp;user-defined&nbsp;quantities
270(to be output as cross-section data;&nbsp;see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
271with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
272indices (i,j,k) and sets the <span style="font-family: monospace;">grid</span>
273on which they are defined. Depending on the value of input parameter <span style="font-family: monospace;">av</span> resorting is
274done for instantaneous (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">0</span>) or time averaged
275data (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">1</span>). Input parameter
276<span style="font-family: monospace;">variable</span>
277contains the string identifier of the respective variable. Allowed
278values for <span style="font-family: monospace;">grid</span>
279are&nbsp;<span style="font-style: italic;">'zu'</span>
280and&nbsp;<span style="font-style: italic;">'zw'</span>.
281The output parameter <span style="font-family: monospace;">found</span>
282has to be set <span style="font-style: italic;">.TRUE.</span>
283by the user, otherwise an error message will appear in the job protocol
284for the respective output quantity.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
285creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;"><span style="font-family: monospace;">data_output_3d.f90</span>
286at 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(
287av, variable, found, local_pf, nz_do )</span></td><td style="vertical-align: top;">Resorts&nbsp;user-defined&nbsp;quantities
288(to be output as volume data;&nbsp;see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
289with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
290indices (i,j,k) and sets the <span style="font-family: monospace;">grid</span>
291on which they are defined. Depending on the value of input parameter <span style="font-family: monospace;">av</span> resorting is
292done for instantaneous (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">0</span>) or time averaged
293data (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">1</span>). Input parameter
294<span style="font-family: monospace;">variable</span>
295contains 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
296parameter <span style="font-family: monospace;">nz_do</span>
297defines the upper limit of vertical grid index k of the output array
298(see <a href="chapter_4.2.html#nz_do3d">nz_do3d</a>).
299The output parameter <span style="font-family: monospace;">found</span>
300has to be set <span style="font-style: italic;">.TRUE.</span>
301by the user, otherwise an error message will appear in the job protocol
302for the respective output quantity.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
303creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;">End of <span style="font-family: monospace;">average_3d_data.f90</span>,
304middle 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(
305mode, variable )</span></td><td style="vertical-align: top;">Sum up and time-average of
306user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
307as well as allocation of the arrays necessary for storing the
308respective averages. Input parameter <span style="font-family: monospace;">variable</span>
309contains the string identifier of the respective variable. Depending on
310the requested action, input parameter <span style="font-family: monospace;">mode</span> has the
311value <span style="font-style: italic;">'allocate'</span>,
312<span style="font-style: italic;">'sum'</span>, or <span style="font-style: italic;">'average'</span>.<br><br>See
313<a href="chapter_3.5.4.html">chapter 3.5.4</a> about
314creating user-defined output quantities. </td></tr><tr><td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2">DEFAULT</font></tt>
315case of <tt><font style="font-size: 10pt;" size="2">SELECT
316CASE(&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
317(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>)
318with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
319indices (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
320<a href="chapter_3.5.4.html">chapter 3.5.4</a> about
321creating user-defined output quantities.</td></tr><tr valign="top"> <td width="211"> <p>End
322of <tt><font style="font-size: 10pt;" size="2">palm.f90</font></tt></p>
323</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">actions</font></font></tt></p>
324</td> <td width="862"> <p>User-defined
325actions which are to be executed at the end
326of a
327model run. When <tt><font style="font-size: 10pt;" size="2">user_last_actions</font></tt>
328is called all model actions are already completed, but the files opened
329by the model are not closed yet and possibly terminating actions for
330these files (see subroutine of <tt><font style="font-size: 10pt;" size="2">close_files</font></tt>)
331are also not carried
332out yet.&nbsp; <br>
333CPU time for <tt><font style="font-size: 10pt;" size="2">user_last_actions</font></tt>
334appears in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
335within the category &ldquo;last actions&rdquo; (the time
336necessary for <tt><font style="font-size: 10pt;" size="2">close_files</font></tt> is included).</p>
337</td> </tr><tr><td style="vertical-align: top;">Not called in the default PALM code</td><td style="vertical-align: top;"><p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_additional_routines"></a>user_additional_</font></font></tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br> </font></font><span style="font-family: Cumberland,monospace;">routines</span></p></td><td style="vertical-align: top;">This routine may contain additional routines defined by the user to be called from other user interface routines.</td></tr> </tbody></table><hr>
338<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
339change: </i>$Id: chapter_3.5.1.html 217 2008-12-09 18:00:48Z raasch $</p>
340</body></html>
Note: See TracBrowser for help on using the repository browser.