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

Last change on this file since 212 was 212, checked in by raasch, 15 years ago

manual updated for changes in the user interface

  • Property svn:keywords set to Id
File size: 34.4 KB
RevLine 
[5]1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
[212]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
108in&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>
111and <span style="font-style: italic;">'single_building'</span>
112are not allowed here since these are the standard cases used in the
113calling routine <tt><font style="font-size: 10pt;" size="2">init_grid</font></tt>. </p> <p>CPU
114time for <tt><font style="font-size: 10pt;" size="2">user_init_grid</font></tt>
115is considered in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
116within the category &ldquo;initialisation&rdquo;.</p> </td>
117</tr> <tr><td style="vertical-align: top;">In
118the 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
119the complete initialization of the 3d model. The user is responsible to
120set 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
121the middle of <tt><font style="font-size: 10pt;" size="2">init_particles.f90</font></tt></p>
122</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>
123</td> <td width="862"> <p>With this routine
124e.g. size and color of particles,
125which have
126been released initially from a source, can be specified. Like the
127calling routine <tt><font style="font-size: 10pt;" size="2">init_particles</font><font style="font-size: 11pt;" size="2">,</font></tt>
128this routine is only
129called if particle advection is switched on (see package parameter <a href="chapter_4.2.html#dt_prel">dt_prel</a>).</p>
130</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>
131</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>
132</td> <td width="862"> <p>Here the particles
133can be assigned new attributes
134(diameter,
135color 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
136routine is only
137called if particle advection is switched on (see package parameter <a href="chapter_4.2.html#dt_prel">dt_prel</a>).</p>
138</td> </tr> <tr valign="top"> <td width="211"> <p>Before the plot of particles and
139cross-sections in <br> <tt><font style="font-size: 10pt;" size="2">dvrp_plot.f90</font></tt></p>
140</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
141(</font></font></tt><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> mode )</font></font></tt></p>
142</td> <td width="862"> <p>With this routine,
143color tables can be adjusted which
144should
145be used for output with the dvrp software. Individuell color tables for
146particles and cross-sections are possible. For this purpose the two
147arrays <tt><font style="font-size: 10pt;" size="2">interval_values_dvrp</font></tt>
148and <tt><font style="font-size: 10pt;" size="2">interval_h_dvrp</font></tt>
149(declared in the module <tt><font style="font-size: 10pt;" size="2">dvrp_variables</font></tt>)
150have to be preset with appropriate values. The number of color table
151entries must be assigned to the variable of <tt><font style="font-size: 10pt;" size="2">dvrp_colourtable_entries</font></tt>.
152The value of the subroutine argument <span style="font-family: monospace;">mode</span> defines,
153whether the color
154table is valid for particles or for cross-sections<span style="font-family: monospace;"></span> (i.e. <tt><font size="2">mode</font></tt>
155can have the values &ldquo;<i>particles&rdquo;</i>
156or &ldquo;<i>slicer&rdquo;</i>).&nbsp; <br>
157This routine only becomes active if dvrp-graphics is switched on (see
158package parameter <a href="chapter_4.2.html#dt_dvrp">dt_dvrp</a>).</p>
159</td> </tr> <tr valign="top"> <td width="211"> <p>Beginning and end of the time
160integration loop
161of&nbsp; <br> <tt><font style="font-size: 10pt;" size="2">time_integration.f90</font></tt>
162as well as after each prognostic equation in <br> <tt><font style="font-size: 10pt;" size="2">prognostic_equations.f90</font></tt></p>
163</td> <td width="117"> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_actions"></a>user_actions(
164location )</font></font></tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> </font></font> </p>
165<p>or<br> <font face="Cumberland, monospace"><font style="font-size: 10pt;" size="2"> </font></font>
166</p> <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">user_actions(
167i, 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>
168</td> <td width="862"> <p>In this routine
169user actions can be implemented which
170are to
171be executed either at each time step or at certain times (defined by
172the user). Since in each case the routine is called at the beginning
173and at the end of a time step as well as after each prognostic equation
174it must be defined at which place (and/or at which places) the
175respective actions are supposed to be executed. For this purpose an
176appropriate CASE structure is already inserted in this routine. The
177location of the calling routine is passed to this routine via the
178argument <tt><font style="font-size: 10pt;" size="2">location</font></tt>.
179For example, if called at the beginning of a time step, <tt><font style="font-size: 10pt;" size="2">location</font></tt>
180=&nbsp;<i>'before_timestep' </i>and if
181called 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
182of 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>
183if the
184cache-optimized version of <span style="font-family: monospace;">prognostic_equation.f90</span>
185is used (this is the default for IBM-Regatta-Systems), the loop
186variables <tt>i</tt> and <tt>j</tt> must be
187passed as arguments for
188all calls within <span style="font-family: monospace;">prognostic_equations</span>.
189</p> <p>CPU time for <tt><font style="font-size: 10pt;" size="2">user_actions</font></tt>
190appears within the category &ldquo;user_actions&rdquo; in the
191local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>.
192If the cache-optimized version of <span style="font-family: monospace;">prognostic_equation.f90</span>
193is used, this time measurement only considers the CPU time which was
194needed outside of the prognostic equations. Time needed for calls
195within prognostic_equations is considered within the category "all
196prog.equations".<br> </p> <p><b>Important:</b>
197this subroutine is written
198as a FORTRAN
199module, which uses so-called function overloading. It can be called in
200two ways: with one argument (<tt><font style="font-size: 10pt;" size="2">location</font></tt>)
201and 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
202three argument version
203is used in the cache-optimized version of <span style="font-family: monospace;">prognostic_equations</span>.
204Depending
205on the number of given arguments the subroutine internally calls <tt><font style="font-size: 10pt;" size="2">user_actions</font></tt>
206or <tt><font style="font-size: 10pt;" size="2">user_actions_ij</font></tt>.
207So the
208user must insert the actions (code extensions) desired for the
209respective 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
210in the CASE
211structure of <tt><font style="font-size: 10pt;" size="2">user_actions_ij</font></tt>!</p> </td>
212</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
213quantities</a> can be computed here.</p>The
214routine contains some simple examples (as comment lines) in order to
215demonstrate 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>
216before the summation of array <span style="font-family: monospace;">hom</span>
217(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>(
218sr )</font></font></tt></p> </td> <td width="862"> <p>Horizontal
219averages of vertical profiles of user-defined
220quantities can be computed here. Also, additional time series
221quantities can be calculated. They have to be defined before in routine
222<a style="font-family: monospace;" href="#user_init">user_init</a>.
223The routine is called once for each defined statistic region (see <a href="chapter_4.1.html#statistic_region">statistic_region</a>).</p><p>The
224routine contains some simple examples (as comment lines) in order to
225demonstrate how to use it.<br><br>Profile sums have to
226be stored in
227the 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
228profiles
229are 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>
230</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
231of <span style="font-family: monospace;">check_parameters.f90</span>
232where 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(
233variable, unit )</span></td><td style="vertical-align: top;">Here the physical <span style="font-family: monospace;">unit</span>(s) of
234user-defined 2d/3d output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
235have to be set. Input parameter <span style="font-family: monospace;">variable</span>
236contains the string identifier of the respective variable. For those
237variables not recognized by the user, the parameter <span style="font-family: monospace;">unit</span> is set to
238"illegal", which tells the calling routine that the output variable is
239not defined and leads to a program abort.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
240creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;">End
241of <span style="font-family: monospace;">check_parameters.f90</span>
242where 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
243user-defined vertical profile output quantities (see <a href="chapter_4.3.html#data_output_pr_user">data_output_pr_user</a>)
244have to be set. Input parameter <span style="font-family: monospace;">variable</span>
245contains 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
246variables not recognized by the user, the parameter <span style="font-family: monospace;">unit</span> is set to
247"illegal", which tells the calling routine that the output variable is
248not defined and leads to a program abort.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
249creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;"><span style="font-family: monospace;">netcdf.f90</span> (4
250times) where the vertical grid coordinates for cross sections and
251volume 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(
252variable, found, grid_x, grid_y, grid_z )</span></td><td style="vertical-align: top;">Set the grid on which
253user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
254are defined. Input parameter <span style="font-family: monospace;">variable</span>
255contains the string identifier of the respective variable. Allowed
256values are <span style="font-style: italic;">'x'</span>
257and <span style="font-style: italic;">'xu'</span>
258for <span style="font-family: monospace;">grid_x</span>,
259<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
260output parameter <span style="font-family: monospace;">found</span>
261has to be set <span style="font-style: italic;">.TRUE.</span>
262by the user, otherwise an error message will appear in the job protocol
263for the respective output quantity.<br><br><span style="font-weight: bold;">Example:</span><br>If
264an output quantity is defined at the center of the grid boxes, the
265following 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
266defining an output quantity at the grid points where the
267u-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
268<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;">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(
270av, variable, found, grid, local_pf )</span></td><td style="vertical-align: top;">Resorts&nbsp;user-defined&nbsp;quantities
271(to be output as cross-section data;&nbsp;see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
272with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
273indices (i,j,k) and sets the <span style="font-family: monospace;">grid</span>
274on which they are defined. Depending on the value of input parameter <span style="font-family: monospace;">av</span> resorting is
275done for instantaneous (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">0</span>) or time averaged
276data (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">1</span>). Input parameter
277<span style="font-family: monospace;">variable</span>
278contains the string identifier of the respective variable. Allowed
279values for <span style="font-family: monospace;">grid</span>
280are&nbsp;<span style="font-style: italic;">'zu'</span>
281and&nbsp;<span style="font-style: italic;">'zw'</span>.
282The output parameter <span style="font-family: monospace;">found</span>
283has to be set <span style="font-style: italic;">.TRUE.</span>
284by the user, otherwise an error message will appear in the job protocol
285for the respective output quantity.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
286creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;"><span style="font-family: monospace;">data_output_3d.f90</span>
287at 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(
288av, variable, found, local_pf, nz_do )</span></td><td style="vertical-align: top;">Resorts&nbsp;user-defined&nbsp;quantities
289(to be output as volume data;&nbsp;see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
290with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
291indices (i,j,k) and sets the <span style="font-family: monospace;">grid</span>
292on which they are defined. Depending on the value of input parameter <span style="font-family: monospace;">av</span> resorting is
293done for instantaneous (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">0</span>) or time averaged
294data (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">1</span>). Input parameter
295<span style="font-family: monospace;">variable</span>
296contains 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
297parameter <span style="font-family: monospace;">nz_do</span>
298defines the upper limit of vertical grid index k of the output array
299(see <a href="chapter_4.2.html#nz_do3d">nz_do3d</a>).
300The output parameter <span style="font-family: monospace;">found</span>
301has to be set <span style="font-style: italic;">.TRUE.</span>
302by the user, otherwise an error message will appear in the job protocol
303for the respective output quantity.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about
304creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;">End of <span style="font-family: monospace;">average_3d_data.f90</span>,
305middle 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(
306mode, variable )</span></td><td style="vertical-align: top;">Sum up and time-average of
307user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>)
308as well as allocation of the arrays necessary for storing the
309respective averages. Input parameter <span style="font-family: monospace;">variable</span>
310contains the string identifier of the respective variable. Depending on
311the requested action, input parameter <span style="font-family: monospace;">mode</span> has the
312value <span style="font-style: italic;">'allocate'</span>,
313<span style="font-style: italic;">'sum'</span>, or <span style="font-style: italic;">'average'</span>.<br><br>See
314<a href="chapter_3.5.4.html">chapter 3.5.4</a> about
315creating user-defined output quantities. </td></tr><tr><td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2">DEFAULT</font></tt>
316case of <tt><font style="font-size: 10pt;" size="2">SELECT
317CASE(&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
318(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>)
319with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with
320indices (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
321<a href="chapter_3.5.4.html">chapter 3.5.4</a> about
322creating user-defined output quantities.</td></tr><tr valign="top"> <td width="211"> <p>End
323of <tt><font style="font-size: 10pt;" size="2">palm.f90</font></tt></p>
324</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>
325</td> <td width="862"> <p>User-defined
326actions which are to be executed at the end
327of a
328model run. When <tt><font style="font-size: 10pt;" size="2">user_last_actions</font></tt>
329is called all model actions are already completed, but the files opened
330by the model are not closed yet and possibly terminating actions for
331these files (see subroutine of <tt><font style="font-size: 10pt;" size="2">close_files</font></tt>)
332are also not carried
333out yet.&nbsp; <br>
334CPU time for <tt><font style="font-size: 10pt;" size="2">user_last_actions</font></tt>
335appears in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>
336within the category &ldquo;last actions&rdquo; (the time
337necessary for <tt><font style="font-size: 10pt;" size="2">close_files</font></tt> is included).</p>
338</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>
339<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
340change: </i>$Id: chapter_3.5.1.html 212 2008-11-11 09:09:24Z raasch $</p>
[5]341</body></html>
Note: See TracBrowser for help on using the repository browser.