source: palm/trunk/DOC/app/chapter_3.5.3.html @ 1379

Last change on this file since 1379 was 555, checked in by raasch, 14 years ago

New:
---

Changed:


Documentation for surface_heatflux in case of prandtl_layer = .F. improved.

bugfix for wrong netcdf/3.6.3 module on lcsgi (mbuild, mrun)

Errors:


Bugfix in if statement (disturb_heatflux)

Bugfix: in 2201 statement: closing " was missing (interpret_config)

Bugfix: default setting of nzb_local for flat topography (init_grid)

Bugfix: wrong dimension used for ts_value_l (user_statistics)

disturb_heatflux, init_grid, interpret_config, user_statistics

  • Property svn:keywords set to Id
File size: 10.9 KB
Line 
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"><title>PALM chapter 3.5.3</title> <meta name="GENERATOR" content="StarOffice 7 (Win32)"> <meta name="AUTHOR" content="Siegfried Raasch"> <meta name="CREATED" content="20040802;14001660"> <meta name="CHANGED" content="20041112;14483720"> <meta name="KEYWORDS" content="parallel LES model"> <style>
5<!--
6@page { size: 21cm 29.7cm }
7-->
8</style></head><body style="direction: ltr;" lang="en-US"><h3 style="line-height: 100%;">3.5.3 Definition of user-defined
9subdomains</h3>
10<p style="line-height: 100%;">By default, the values of
11the timeseries quantities and the horizontally averaged vertical
12profiles (saved in local files
13<a href="chapter_3.4.html#PLOT1D_DATA">PLOT1D_DATA</a>
14and <a href="chapter_3.4.html#LIST_PROFIL">LIST_PROFIL</a>)
15always refer to the total model domain. Independently, up to 9 time
16series or profiles for different user-defined subdomains can be
17computed and plotted additionally. Steering in principle is done
18via the initialization parameter <a href="chapter_4.1.html#statistic_regions">statistic_regions</a>.
19</p>
20<p style="line-height: 100%;">The exact definition of
21these subdomains
22has to be made by the user within the user-defined subroutine <tt><font style="font-size: 10pt;" size="2">user_init</font></tt>.
23The
24subdomains are defined with a mask array named <tt><font style="font-size: 10pt;" size="2">rmask</font></tt>,
25which has to be given the value 1.0 for all horizontal grid points
26belonging to
27the user-defined subdomain and the value 0.0, where grid points do not
28belong
29to the user-defined subdomain. In the model <tt><font size="2">rmask</font></tt>
30is
31declared as: </p>
32<ul> <p style="line-height: 100%;"><tt><font style="font-size: 10pt;" size="2">REAL :: rmask
33(nys-1:nyn+1,nxl-1:nxr+1,0:9) .</font></tt></p>
34</ul><p style="line-height: 100%;">The first two
35indices are the grid point
36indices in y and x-direction. With parallel model runs <tt><font style="font-size: 10pt;" size="2">nxl</font></tt><font style="font-size: 10pt;" size="2">,
37</font><tt><font style="font-size: 10pt;" size="2">nxr</font></tt><font style="font-size: 10pt;" size="2">,
38</font><tt><font style="font-size: 10pt;" size="2">nys</font></tt><font style="font-size: 10pt;" size="2">
39<font size="3">and</font> </font><tt><font style="font-size: 10pt;" size="2">nyn</font></tt>
40are the array bounds of the respective subdomain (don't confuse this
41with the user-defined subdomain!) on the
42respective processor. With runs on one processor <tt><font style="font-size: 10pt;" size="2">nys</font></tt><font style="font-size: 10pt;" size="2">
43= </font><tt><font style="font-size: 10pt;" size="2">nxl</font></tt><font style="font-size: 10pt;" size="2">
44= 0</font> and <font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">nxr
45=</font> </font><a href="chapter_4.1.html#nx">nx</a>
46and <font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">nyn
47=</font></font> <a href="chapter_4.1.html#ny">ny</a>.
48The third index determines the user-defined subdomain. The total model
49domain
50carries the index 0, the user-defined subdomains have the values 1 to
519. </p>
52<p style="line-height: 100%;">The following example should
53illustrate
54this. Two subdomains are defined by the user. The first is determined
55by all grid
56points which lie within a circle whose center is equal to the
57(horizontal) center of the model domain and whose diameter is equal
58to half of the total horizontal domain size (square total domain
59assumed).
60The second subdomain should be defined by all points outside of this
61domain. This may be obtained by the following lines of code in <tt><font style="font-size: 10pt;" size="2">user_init</font></tt>:
62</p>
63<ul> <p style="line-height: 100%;"><tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">USE
64grid_variables</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">USE indices</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">USE statistics</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">.</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">.</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">.</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">disc_center_x = dx * (nx + 1)/2</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">disc_center_y = dy * (ny + 1)/2</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">disc_radius = 0.5 *
65disc_center_x</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">DO&nbsp; i = nxl-1, nxr+1</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">&nbsp;&nbsp; x = i * dx</font></font></tt><br>
66<tt><font style="font-size: 10pt;" size="2"><font face="Cumberland, monospace">&nbsp;&nbsp;
67DO&nbsp; j = nys-1, nyn+1</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
68y = j * dy</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
69radial_distance = SQRT( ( x - disc_center_x )**2 + &amp;</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
70( y - disc_center_y )**2 )</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">&nbsp; &nbsp;
71&nbsp; IF ( radial_distance
72&gt; disc_radius )&nbsp; THEN</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
73rmask(j,i,1) = 0.0</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
74rmask(j,i,2) = 1.0</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
75ELSE</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
76rmask(j,i,1) = 1.0</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
77rmask(j,i,2) = 0.0</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
78ENDIF</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">&nbsp;&nbsp; ENDDO</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">ENDDO</font></font></tt></p>
79</ul><p style="line-height: 100%;">The module <span style="font-family: monospace;">statistics</span> must
80be used,
81because it contains <span style="font-family: monospace;">rmask</span>
82and the modules <span style="font-family: monospace;">grid_variables</span>
83and <span style="font-family: monospace;">indices</span>
84are
85necessary in this example, because grid spacing and indices are used.
86All array elements of <span style="font-family: monospace;">rmask</span>
87(<span style="font-family: monospace;">rmask(:,:,:)</span>)
88are preset
89by the model with 1.0. In no case this assignment must be
90changed for the total domain (<span style="font-family: monospace;">rmask(:,:,0)</span>)!
91Computations and output for the user-defined subdomains only take place
92if
93the user sets <a href="chapter_4.1.html#statistic_regions">statistic_regions</a>
94&#8805; <i>1</i>. Beyond that, names for the user-defined
95subdomains can be
96assigned
97via the initialization parameter <a href="chapter_4.3.html#region">region</a>.
98Output of the names of the selected user-defined subdomains happens in
99the local files <a href="chapter_3.4.html#HEADER">HEADER</a>
100and <a href="chapter_3.4.html#RUN_CONTROL">RUN_CONTROL</a>
101within the user-defined subroutine <tt><font style="font-size: 10pt;" size="2">user_header</font></tt>.
102<br>
103&nbsp; </p>
104<hr><p style="line-height: 100%;"><br>
105<font color="#000080"><font color="#000080"><a href="chapter_3.5.2.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.4.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 change:&nbsp;</i>
106$Id: chapter_3.5.3.html 555 2010-09-07 07:32:53Z raasch $</p>
107</body></html>
Note: See TracBrowser for help on using the repository browser.