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