[5] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
---|
| 2 | <html><head> |
---|
| 3 | |
---|
| 4 | <meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252"> |
---|
| 5 | |
---|
| 6 | |
---|
| 7 | |
---|
| 8 | <title>PALM chapter 3.5.1</title><meta name="GENERATOR" content="StarOffice 7 (Win32)"> |
---|
| 9 | |
---|
| 10 | <meta name="AUTHOR" content="Siegfried Raasch"> |
---|
| 11 | |
---|
| 12 | <meta name="CREATED" content="20040802;11451548"> |
---|
| 13 | |
---|
| 14 | <meta name="CHANGED" content="20041112;14401801"> |
---|
| 15 | |
---|
| 16 | <meta name="KEYWORDS" content="parallel LES model"> |
---|
| 17 | |
---|
| 18 | <style> |
---|
| 19 | <!-- |
---|
| 20 | @page { size: 21cm 29.7cm } |
---|
| 21 | --> |
---|
| 22 | </style></head> |
---|
| 23 | <body style="direction: ltr;" lang="en-US"> |
---|
| 24 | |
---|
| 25 | <h3 style="line-height: 100%;">3.5.1 Interfaces for |
---|
| 26 | user-defined code<br> |
---|
| 27 | |
---|
| 28 | </h3> |
---|
| 29 | |
---|
| 30 | <p style="margin-bottom: 0cm; line-height: 100%;">The |
---|
| 31 | following table |
---|
| 32 | describes the available interfaces for user-defined code in the model, |
---|
| 33 | the |
---|
| 34 | names and possible arguments of the subroutines involved as well as |
---|
| 35 | actions which can be accomplished in these subroutines. <br> |
---|
| 36 | |
---|
| 37 | </p> |
---|
| 38 | |
---|
| 39 | <table style="width: 100%;" border="1" cellpadding="2" cellspacing="4"> |
---|
| 40 | |
---|
| 41 | <col width="211"> <col width="117"> <col width="862"> <tbody> |
---|
| 42 | |
---|
| 43 | <tr> |
---|
| 44 | |
---|
| 45 | <td width="211"> |
---|
| 46 | <p><font size="4"><b>Call location</b></font></p> |
---|
| 47 | |
---|
| 48 | </td> |
---|
| 49 | |
---|
| 50 | <td width="117"> |
---|
| 51 | <p><font size="4"><b>Subroutine name and |
---|
| 52 | argument</b></font></p> |
---|
| 53 | |
---|
| 54 | </td> |
---|
| 55 | |
---|
| 56 | <td style="width: 862px;"> |
---|
| 57 | <p><font size="4"><b>Possible actions</b></font></p> |
---|
| 58 | |
---|
| 59 | </td> |
---|
| 60 | |
---|
| 61 | </tr> |
---|
| 62 | |
---|
| 63 | <tr><td>---</td><td><span style="font-family: monospace;"><a name="user"></a>MODULE user</span></td><td>All |
---|
| 64 | user-defined variables which are used outside the respective local |
---|
| 65 | scopes of the user-defined subroutines have to be declared here.</td></tr><tr valign="top"> |
---|
| 66 | |
---|
| 67 | <td width="211"> |
---|
| 68 | <p>End of <tt><font style="font-size: 10pt;" size="2">parin.f90</font></tt></p> |
---|
| 69 | |
---|
| 70 | </td> |
---|
| 71 | |
---|
| 72 | <td width="117"> |
---|
| 73 | <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_parin"></a>user_parin</font></font></tt></p> |
---|
| 74 | |
---|
| 75 | </td> |
---|
| 76 | |
---|
| 77 | <td width="862"> |
---|
| 78 | <p>Declaration of user-defined parameters in the NAMELIST |
---|
| 79 | group <tt><font style="font-size: 10pt;" size="2">&userpar</font></tt>. |
---|
| 80 | These |
---|
| 81 | parameters can be read from the local file <a href="chapter_3.4.html#PARIN">PARIN</a> |
---|
| 82 | and be used for steering the user-defined code (see <a href="chapter_4.0.html">chapter |
---|
| 83 | 4.0</a>). The user-defined parameter <a href="chapter_4.3.html#region">region</a> |
---|
| 84 | is already pre-defined in <tt><font style="font-size: 10pt;" size="2">&userpar</font></tt> |
---|
| 85 | and must not be changed. Additional NAMELIST groups may be declared if |
---|
| 86 | desired. <br> |
---|
| 87 | |
---|
| 88 | The CPU time needed for executing <tt><font style="font-size: 10pt;" size="2">user_parin</font></tt> |
---|
| 89 | is included in the |
---|
| 90 | local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a> |
---|
| 91 | within the category “initialisation”.</p> |
---|
| 92 | |
---|
| 93 | </td> |
---|
| 94 | |
---|
| 95 | </tr> |
---|
| 96 | |
---|
| 97 | <tr valign="top"> |
---|
| 98 | |
---|
| 99 | <td width="211"> |
---|
| 100 | <p>End of <tt><font style="font-size: 10pt;" size="2">header.f90</font></tt></p> |
---|
| 101 | |
---|
| 102 | </td> |
---|
| 103 | |
---|
| 104 | <td width="117"> |
---|
| 105 | <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_header"></a>user_header( io )</font></font></tt></p> |
---|
| 106 | |
---|
| 107 | </td> |
---|
| 108 | |
---|
| 109 | <td width="862"> |
---|
| 110 | <p>Output of the values of the user-defined parameters to |
---|
| 111 | the |
---|
| 112 | local files <a href="chapter_3.4.html#HEADER">HEADER</a> |
---|
| 113 | and <a href="chapter_3.4.html#RUN_CONTROL">RUN_CONTROL</a>. |
---|
| 114 | This output should be made anyway in order to subsequently check the |
---|
| 115 | parameter values used for the respective run. The number of the output |
---|
| 116 | unit is passed as an argument and must be used in each WRITE statement |
---|
| 117 | (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>. |
---|
| 118 | By default, this |
---|
| 119 | subroutine only creates output if a user-defined NAMELIST is found in |
---|
| 120 | file <a href="chapter_3.4.html#PARIN">PARIN</a> |
---|
| 121 | (in this case <tt><font face="Thorndale, serif">the</font></tt> |
---|
| 122 | variable <tt><font style="font-size: 10pt;" size="2">user_defined_namelist_found</font></tt> |
---|
| 123 | is set <i>.TRUE.</i> in <tt><font style="font-size: 10pt;" size="2">user_parin</font></tt>). |
---|
| 124 | The names of any |
---|
| 125 | user-defined |
---|
| 126 | subdomains are displayed by default (see <a href="chapter_4.1.html#statistic_regions">statistic_regions</a>).</p> |
---|
| 127 | |
---|
| 128 | </td> |
---|
| 129 | |
---|
| 130 | </tr> |
---|
| 131 | |
---|
| 132 | <tr valign="top"> |
---|
| 133 | |
---|
| 134 | <td width="211"> |
---|
| 135 | <p>End of <tt><font style="font-size: 10pt;" size="2">init_3d_model.f90</font></tt></p> |
---|
| 136 | |
---|
| 137 | </td> |
---|
| 138 | |
---|
| 139 | <td width="117"> |
---|
| 140 | <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_init"></a>user_init</font></font></tt></p> |
---|
| 141 | |
---|
| 142 | </td> |
---|
| 143 | |
---|
| 144 | <td width="862"> |
---|
| 145 | <p>Here, user-defined initialization actions which should |
---|
| 146 | be |
---|
| 147 | accomplished before the start of the 3D-model can be implemented (e.g. |
---|
| 148 | inhomogenous change of the surface temperature, the roughness length, |
---|
| 149 | or similar). At this point, all default parameter initializations of |
---|
| 150 | the model (<a href="chapter_4.1.html">chapter |
---|
| 151 | 4.1</a>) have already been carried out at all. </p> |
---|
| 152 | |
---|
| 153 | <p>One of the most important actions here is the definition |
---|
| 154 | of |
---|
| 155 | user-defined subdomains for statistic analysis and output (see <a href="chapter_4.1.html#statistic_regions">statistic_regions</a> |
---|
| 156 | and <a href="chapter_3.5.3.html">chapter |
---|
[48] | 157 | 3.5.3</a>) and of additional time series quantities (see comment line example in the file). <br> |
---|
[5] | 158 | |
---|
| 159 | CPU time for <tt><font style="font-size: 10pt;" size="2">user_init</font></tt> |
---|
| 160 | is considered in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a> |
---|
[46] | 161 | within the category “initialisation”.</p><p>See 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> |
---|
[5] | 162 | |
---|
| 163 | </td> |
---|
| 164 | |
---|
| 165 | </tr> |
---|
| 166 | |
---|
| 167 | <tr> |
---|
| 168 | |
---|
| 169 | <td style="vertical-align: top;"><tt><font style="font-size: 10pt;" size="2">DEFAULT</font></tt> |
---|
| 170 | case of <tt><font style="font-size: 10pt;" size="2">SELECT |
---|
| 171 | CASE( TRIM(topography) ) </font></tt>command in the |
---|
| 172 | middle of <tt><font style="font-size: 10pt;" size="2">init_grid.f90</font></tt></td> |
---|
| 173 | |
---|
| 174 | <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> |
---|
| 175 | |
---|
| 176 | <td> |
---|
| 177 | <p>Execution of user-defined grid initializing actions.</p> |
---|
| 178 | |
---|
| 179 | <p>Here, the user can define the two-dimensional index |
---|
| 180 | array <tt><font style="font-size: 10pt;" size="2">nzb_local</font></tt> that is used to |
---|
| 181 | set up a non-flat topography. This requires definition of at least one |
---|
| 182 | new <a href="chapter_4.1.html#topography">topography</a> mode |
---|
| 183 | in the <tt><font style="font-size: 10pt;" size="2">SELECT CASE( TRIM(topography) ) </font></tt>command |
---|
| 184 | in <tt><font style="font-size: 10pt;" size="2">user_init_grid</font></tt>. |
---|
| 185 | Note that the <a href="chapter_4.1.html#topography">topography</a> modes |
---|
| 186 | <span style="font-style: italic;">'flat'</span> |
---|
| 187 | and <span style="font-style: italic;">'single_building'</span> |
---|
| 188 | are not allowed here since these are the standard cases used in the |
---|
| 189 | calling routine <tt><font style="font-size: 10pt;" size="2">init_grid</font></tt>. </p> |
---|
| 190 | |
---|
| 191 | <p>CPU time for <tt><font style="font-size: 10pt;" size="2">user_init_grid</font></tt> |
---|
| 192 | is considered in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a> |
---|
| 193 | within the category “initialisation”.</p> |
---|
| 194 | |
---|
| 195 | </td> |
---|
| 196 | |
---|
| 197 | </tr> |
---|
| 198 | |
---|
[46] | 199 | <tr><td style="vertical-align: top;">In 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 |
---|
| 200 | the complete initialization of the 3d model. The user is responsible to |
---|
| 201 | 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"> |
---|
[5] | 202 | |
---|
| 203 | <td width="211"> |
---|
| 204 | <p>In the middle of <tt><font style="font-size: 10pt;" size="2">init_particles.f90</font></tt></p> |
---|
| 205 | |
---|
| 206 | </td> |
---|
| 207 | |
---|
| 208 | <td width="117"> |
---|
| 209 | <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> |
---|
| 210 | |
---|
| 211 | </font></font><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">particles</font></font></tt></p> |
---|
| 212 | |
---|
| 213 | </td> |
---|
| 214 | |
---|
| 215 | <td width="862"> |
---|
| 216 | <p>With this routine e.g. size and color of particles, |
---|
| 217 | which have |
---|
| 218 | been released initially from a source, can be specified. Like the |
---|
| 219 | calling routine <tt><font style="font-size: 10pt;" size="2">init_particles</font><font style="font-size: 11pt;" size="2">,</font></tt> |
---|
| 220 | this routine is only |
---|
| 221 | called if particle advection is switched on (see package parameter <a href="chapter_4.2.html#dt_prel">dt_prel</a>).</p> |
---|
| 222 | |
---|
| 223 | </td> |
---|
| 224 | |
---|
| 225 | </tr> |
---|
| 226 | |
---|
| 227 | <tr valign="top"> |
---|
| 228 | |
---|
| 229 | <td width="211"> |
---|
| 230 | <p>End of <tt><font style="font-size: 10pt;" size="2">advec_particles.f90</font></tt></p> |
---|
| 231 | |
---|
| 232 | </td> |
---|
| 233 | |
---|
| 234 | <td width="117"> |
---|
| 235 | <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> |
---|
| 236 | |
---|
| 237 | </font></font><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">attributes</font></font></tt></p> |
---|
| 238 | |
---|
| 239 | </td> |
---|
| 240 | |
---|
| 241 | <td width="862"> |
---|
| 242 | <p>Here the particles can be assigned new attributes |
---|
| 243 | (diameter, |
---|
| 244 | 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 |
---|
| 245 | routine is only |
---|
| 246 | called if particle advection is switched on (see package parameter <a href="chapter_4.2.html#dt_prel">dt_prel</a>).</p> |
---|
| 247 | |
---|
| 248 | </td> |
---|
| 249 | |
---|
| 250 | </tr> |
---|
| 251 | |
---|
| 252 | <tr valign="top"> |
---|
| 253 | |
---|
| 254 | <td width="211"> |
---|
| 255 | <p>Before the plot of particles and cross-sections in <br> |
---|
| 256 | |
---|
| 257 | <tt><font style="font-size: 10pt;" size="2">dvrp_plot.f90</font></tt></p> |
---|
| 258 | |
---|
| 259 | </td> |
---|
| 260 | |
---|
| 261 | <td width="117"> |
---|
| 262 | <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_dvrp_coltab"></a>user_dvrp_coltab |
---|
| 263 | (</font></font></tt><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> mode )</font></font></tt></p> |
---|
| 264 | |
---|
| 265 | </td> |
---|
| 266 | |
---|
| 267 | <td width="862"> |
---|
| 268 | <p>With this routine, color tables can be adjusted which |
---|
| 269 | should |
---|
| 270 | be used for output with the dvrp software. Individuell color tables for |
---|
| 271 | particles and cross-sections are possible. For this purpose the two |
---|
| 272 | arrays <tt><font style="font-size: 10pt;" size="2">interval_values_dvrp</font></tt> |
---|
| 273 | and <tt><font style="font-size: 10pt;" size="2">interval_h_dvrp</font></tt> |
---|
| 274 | (declared in the module <tt><font style="font-size: 10pt;" size="2">dvrp_variables</font></tt>) |
---|
| 275 | have to be preset with appropriate values. The number of color table |
---|
| 276 | entries must be assigned to the variable of <tt><font style="font-size: 10pt;" size="2">dvrp_colourtable_entries</font></tt>. |
---|
| 277 | The value of the subroutine argument <span style="font-family: monospace;">mode</span> defines, |
---|
| 278 | whether the color |
---|
| 279 | table is valid for particles or for cross-sections<span style="font-family: monospace;"></span> (i.e. <tt><font size="2">mode</font></tt> |
---|
| 280 | can have the values “<i>particles”</i> |
---|
| 281 | or “<i>slicer”</i>). <br> |
---|
| 282 | |
---|
| 283 | This routine only becomes active if dvrp-graphics is switched on (see |
---|
| 284 | package parameter <a href="chapter_4.2.html#dt_dvrp">dt_dvrp</a>).</p> |
---|
| 285 | |
---|
| 286 | </td> |
---|
| 287 | |
---|
| 288 | </tr> |
---|
| 289 | |
---|
| 290 | <tr valign="top"> |
---|
| 291 | |
---|
| 292 | <td width="211"> |
---|
| 293 | <p>Beginning and end of the time integration loop |
---|
| 294 | of <br> |
---|
| 295 | |
---|
| 296 | <tt><font style="font-size: 10pt;" size="2">time_integration.f90</font></tt> |
---|
| 297 | as well as after each prognostic equation in <br> |
---|
| 298 | |
---|
| 299 | <tt><font style="font-size: 10pt;" size="2">prognostic_equations.f90</font></tt></p> |
---|
| 300 | |
---|
| 301 | </td> |
---|
| 302 | |
---|
| 303 | <td width="117"> |
---|
| 304 | <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_actions"></a>user_actions( location )</font></font></tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> </font></font> </p> |
---|
| 305 | |
---|
| 306 | <p>or<br> |
---|
| 307 | |
---|
| 308 | <font face="Cumberland, monospace"><font style="font-size: 10pt;" size="2"> </font></font> |
---|
| 309 | </p> |
---|
| 310 | |
---|
| 311 | <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">user_actions( 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> |
---|
| 312 | |
---|
| 313 | </td> |
---|
| 314 | |
---|
| 315 | <td width="862"> |
---|
| 316 | |
---|
| 317 | |
---|
| 318 | <p>In this routine user actions can be implemented which |
---|
| 319 | are to |
---|
| 320 | be executed either at each time step or at certain times (defined by |
---|
| 321 | the user). Since in each case the routine is called at the beginning |
---|
| 322 | and at the end of a time step as well as after each prognostic equation |
---|
| 323 | it must be defined at which place (and/or at which places) the |
---|
| 324 | respective actions are supposed to be executed. For this purpose an |
---|
| 325 | appropriate CASE structure is already inserted in this routine. The |
---|
| 326 | location of the calling routine is passed to this routine via the |
---|
| 327 | argument <tt><font style="font-size: 10pt;" size="2">location</font></tt>. |
---|
| 328 | For example, if called at the beginning of a time step, <tt><font style="font-size: 10pt;" size="2">location</font></tt> |
---|
| 329 | = <i>'before_timestep' </i>and if |
---|
| 330 | 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 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> |
---|
| 331 | if the |
---|
| 332 | cache-optimized version of <span style="font-family: monospace;">prognostic_equation.f90</span> |
---|
| 333 | is used (this is the default for IBM-Regatta-Systems), the loop |
---|
| 334 | variables <tt>i</tt> and <tt>j</tt> must be |
---|
| 335 | passed as arguments for |
---|
| 336 | all calls within <span style="font-family: monospace;">prognostic_equations</span>. |
---|
| 337 | </p> |
---|
| 338 | |
---|
| 339 | <p>CPU time for <tt><font style="font-size: 10pt;" size="2">user_actions</font></tt> |
---|
| 340 | appears within the category “user_actions” in the |
---|
| 341 | local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a>. |
---|
| 342 | If the cache-optimized version of <span style="font-family: monospace;">prognostic_equation.f90</span> |
---|
| 343 | is used, this time measurement only considers the CPU time which was |
---|
| 344 | needed outside of the prognostic equations. Time needed for calls |
---|
| 345 | within prognostic_equations is considered within the category "all |
---|
| 346 | prog.equations".<br> |
---|
| 347 | |
---|
| 348 | </p> |
---|
| 349 | |
---|
| 350 | <p><b>Important:</b> this subroutine is written |
---|
| 351 | as a FORTRAN |
---|
| 352 | module, which uses so-called function overloading. It can be called in |
---|
| 353 | two ways: with one argument (<tt><font style="font-size: 10pt;" size="2">location</font></tt>) |
---|
| 354 | 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 |
---|
| 355 | three argument version |
---|
| 356 | is used in the cache-optimized version of <span style="font-family: monospace;">prognostic_equations</span>. |
---|
| 357 | Depending |
---|
| 358 | on the number of given arguments the subroutine internally calls <tt><font style="font-size: 10pt;" size="2">user_actions</font></tt> |
---|
| 359 | or <tt><font style="font-size: 10pt;" size="2">user_actions_ij</font></tt>. |
---|
| 360 | So the |
---|
| 361 | user must insert the actions (code extensions) desired for the |
---|
| 362 | 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 |
---|
| 363 | in the CASE |
---|
| 364 | structure of <tt><font style="font-size: 10pt;" size="2">user_actions_ij</font></tt>!</p> |
---|
| 365 | |
---|
| 366 | </td> |
---|
| 367 | |
---|
| 368 | </tr> |
---|
| 369 | |
---|
| 370 | <tr valign="top"> |
---|
| 371 | |
---|
| 372 | <td width="211"> |
---|
| 373 | <p><tt><font style="font-size: 10pt;" size="2">flow_statistics.f90</font></tt> |
---|
| 374 | before the summation of array <span style="font-family: monospace;">hom</span> |
---|
| 375 | (horizontal averages)<br> |
---|
| 376 | |
---|
| 377 | </p> |
---|
| 378 | |
---|
| 379 | </td> |
---|
| 380 | |
---|
| 381 | <td width="117"> |
---|
[48] | 382 | <p><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><a name="user_statistics"></a>user_statistics<br>( sr )</font></font></tt></p> |
---|
[5] | 383 | |
---|
| 384 | </td> |
---|
| 385 | |
---|
| 386 | <td width="862"> |
---|
[48] | 387 | <p>Horizontal |
---|
| 388 | averages of vertical profiles of user-defined |
---|
| 389 | quantities can be computed here. Also, additional time series |
---|
| 390 | quantities can be calculated. They have to be defined before in routine |
---|
| 391 | <a href="#user_init"><span style="font-family: Courier New,Courier,monospace;">user_init</span></a>. The routine is called once for each defined statistic region (see <a href="chapter_4.1.html#statistic_region">statistic_region</a>).</p><p></p><p>The routine contains some simple examples (as comment lines) in order to demonstrate how to use it.</p><p><br>Profiles have to be written to |
---|
[5] | 392 | the array <tt><font style="font-size: 10pt;" size="2">sums</font></tt>. |
---|
| 393 | Please use profile numbers starting from 70 upward (thus e.g. <tt><font style="font-size: 10pt;" size="2">sums (…, |
---|
| 394 | 60) =</font></tt><font style="font-size: 10pt;" size="2">…)</font>. These additional |
---|
| 395 | profiles |
---|
[48] | 396 | are temporally averaged in <tt><font style="font-size: 10pt;" size="2">flow_statistics</font></tt>.</p> |
---|
[5] | 397 | |
---|
| 398 | </td> |
---|
| 399 | |
---|
| 400 | </tr> |
---|
| 401 | |
---|
| 402 | <tr><td style="vertical-align: top;">End of <span style="font-family: monospace;">check_parameters.f90</span> where 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( variable, unit )</span></td><td style="vertical-align: top;">Here the <span style="font-family: monospace;">unit</span>(s) of user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>) have to be set. Input parameter <span style="font-family: monospace;">variable</span> contains the string identifier of the respective variable. For those variables not recognized by the user, the parameter <span style="font-family: monospace;">unit</span> is set to "illegal", which tells the calling routine that the output variable is not defined and leads to a program abort.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;"><span style="font-family: monospace;">netcdf.f90</span> (4 times) where the vertical grid coordinates for cross sections and 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( variable, found, grid_x, grid_y, grid_z )</span></td><td style="vertical-align: top;">Set the grid on which user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>) are defined. Input parameter <span style="font-family: monospace;">variable</span> contains the string identifier of the respective variable. Allowed values are <span style="font-style: italic;">'x'</span> and <span style="font-style: italic;">'xu'</span> for <span style="font-family: monospace;">grid_x</span>, <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 output parameter <span style="font-family: monospace;">found</span> has to be set <span style="font-style: italic;">.TRUE.</span> by the user, otherwise an error message will appear in the job protocol for the respective output quantity.<br><br><span style="font-weight: bold;">Example:</span><br>If an output quantity is defined at the center of the grid boxes, the 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 defining an output quantity at the grid points where the 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 <a href="chapter_3.5.4.html">chapter 3.5.4</a> about 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( av, variable, found, grid, local_pf )</span></td><td style="vertical-align: top;">Resorts user-defined quantities (to be output as cross-section data; see <a href="chapter_4.3.html#data_output_user">data_output_user</a>) with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with indices (i,j,k) and sets the <span style="font-family: monospace;">grid</span> on which they are defined. Depending on the value of input parameter <span style="font-family: monospace;">av</span> resorting is done for instantaneous (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">0</span>) or time averaged data (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">1</span>). Input parameter <span style="font-family: monospace;">variable</span> contains the string identifier of the respective variable. Allowed values for <span style="font-family: monospace;">grid</span> are <span style="font-style: italic;">'zu'</span> and <span style="font-style: italic;">'zw'</span>. The output parameter <span style="font-family: monospace;">found</span> has to be set <span style="font-style: italic;">.TRUE.</span> by the user, otherwise an error message will appear in the job protocol for the respective output quantity.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about creating user-defined output quantities.</td></tr><tr><td style="vertical-align: top;"><span style="font-family: monospace;">data_output_3d.f90</span> 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( av, variable, found, local_pf, nz_do )</span></td><td style="vertical-align: top;">Resorts user-defined quantities (to be output as volume data; see <a href="chapter_4.3.html#data_output_user">data_output_user</a>) with indices (k,j,i) to a temporary array <span style="font-family: monospace;">local_pf</span> with indices (i,j,k) and sets the <span style="font-family: monospace;">grid</span> on which they are defined. Depending on the value of input parameter <span style="font-family: monospace;">av</span> resorting is done for instantaneous (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">0</span>) or time averaged data (<span style="font-family: monospace;">av</span>=<span style="font-style: italic;">1</span>). Input parameter <span style="font-family: monospace;">variable</span> 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 parameter <span style="font-family: monospace;">nz_do</span> defines the upper limit of vertical grid index k of the output array (see <a href="chapter_4.2.html#nz_do3d">nz_do3d</a>). The output parameter <span style="font-family: monospace;">found</span> has to be set <span style="font-style: italic;">.TRUE.</span> by the user, otherwise an error message will appear in the job protocol for the respective output quantity.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about 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>, 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( mode, variable )</span></td><td style="vertical-align: top;">Sum up and time-average of user-defined output quantities (see <a href="chapter_4.3.html#data_output_user">data_output_user</a>) as well as allocation of the arrays necessary for storing the respective averages. Input parameter <span style="font-family: monospace;">variable</span> contains the string identifier of the respective variable. Depending on the requested action, input parameter <span style="font-family: monospace;">mode</span> has the value <span style="font-style: italic;">'allocate'</span>, <span style="font-style: italic;">'sum'</span>, or <span style="font-style: italic;">'average'</span>.<br><br>See <a href="chapter_3.5.4.html">chapter 3.5.4</a> about creating user-defined output quantities. </td></tr><tr valign="top"> |
---|
| 403 | |
---|
| 404 | <td width="211"> |
---|
| 405 | <p>End of <tt><font style="font-size: 10pt;" size="2">palm.f90</font></tt></p> |
---|
| 406 | |
---|
| 407 | </td> |
---|
| 408 | |
---|
| 409 | <td width="117"> |
---|
| 410 | <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> |
---|
| 411 | |
---|
| 412 | </font></font><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">action</font></font></tt></p> |
---|
| 413 | |
---|
| 414 | </td> |
---|
| 415 | |
---|
| 416 | <td width="862"> |
---|
| 417 | <p>User-defined actions which are to be executed at the end |
---|
| 418 | of a |
---|
| 419 | model run. When <tt><font style="font-size: 10pt;" size="2">user_last_actions</font></tt> |
---|
| 420 | is called all model actions are already completed, but the files opened |
---|
| 421 | by the model are not closed yet and possibly terminating actions for |
---|
| 422 | these files (see subroutine of <tt><font style="font-size: 10pt;" size="2">close_files</font></tt>) |
---|
| 423 | are also not carried |
---|
| 424 | out yet. <br> |
---|
| 425 | |
---|
| 426 | CPU time for <tt><font style="font-size: 10pt;" size="2">user_last_actions</font></tt> |
---|
| 427 | appears in the local file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a> |
---|
| 428 | within the category “last actions” (the time |
---|
| 429 | necessary for <tt><font style="font-size: 10pt;" size="2">close_files</font></tt> is included).</p> |
---|
| 430 | |
---|
| 431 | </td> |
---|
| 432 | |
---|
| 433 | </tr> |
---|
| 434 | |
---|
| 435 | </tbody> |
---|
| 436 | </table> |
---|
| 437 | |
---|
| 438 | <hr> |
---|
| 439 | <p style="line-height: 100%;"><br> |
---|
| 440 | |
---|
| 441 | <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> |
---|
| 442 | |
---|
| 443 | <p style="line-height: 100%;"><i>Last |
---|
| 444 | change: </i> 23/03/06 (SR)</p> |
---|
| 445 | |
---|
| 446 | </body></html> |
---|