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

Last change on this file since 7 was 5, checked in by raasch, 18 years ago

html-documentation added

File size: 11.2 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3<head>
4  <meta http-equiv="CONTENT-TYPE"
5 content="text/html; charset=windows-1252">
6  <title>PALM chapter 3.5.3</title>
7  <meta name="GENERATOR" content="StarOffice 7  (Win32)">
8  <meta name="AUTHOR" content="Siegfried Raasch">
9  <meta name="CREATED" content="20040802;14001660">
10  <meta name="CHANGED" content="20041112;14483720">
11  <meta name="KEYWORDS" content="parallel LES model">
12  <style>
13        <!--
14                @page { size: 21cm 29.7cm }
15        -->
16        </style>
17</head>
18<body dir="ltr" lang="en-US">
19<h3 style="line-height: 100%;">3.5.3 Definition of user-defined
20subdomains</h3>
21<p style="line-height: 100%;">By default, the values of the time
22series (saved in local file <a href="chapter_3.4.html#PLOTTS_DATA">PLOTTS_DATA</a>)
23and the horizontally averaged vertical profiles (saved in local files
24<a href="chapter_3.4.html#PLOT1D_DATA">PLOT1D_DATA</a>
25and <a href="chapter_3.4.html#LIST_PROFIL">LIST_PROFIL</a>)
26always refer to the total model domain. Independently, up to 9 time
27series or profiles for different user-defined subdomains can be
28computed and plotted additionally. Steering in principle is done
29via the initialization parameter <a
30 href="chapter_4.1.html#statistic_regions">statistic_regions</a>.
31</p>
32<p style="line-height: 100%;">The exact definition of these subdomains
33has to be made by the user within the user-defined subroutine
34<tt><font style="font-size: 10pt;" size="2">init_user</font></tt>. The
35subdomains are defined with a mask array named <tt><font
36 style="font-size: 10pt;" size="2">rmask</font></tt>,
37which has to be given the value 1.0 for all horizontal grid points
38belonging to
39the user-defined subdomain and the value 0.0, where grid points do not
40belong
41to the user-defined subdomain. In the model <tt><font size="2">rmask</font></tt>
42is
43declared as: </p>
44<ul>
45  <p style="line-height: 100%;"><tt><font style="font-size: 10pt;"
46 size="2">REAL :: rmask (nys-1:nyn+1,nxl-1,nxr+1,0:9) .</font></tt></p>
47</ul>
48<p style="line-height: 100%;">The first two indices are the grid point
49indices in y and x-direction. With parallel model runs <tt><font
50 style="font-size: 10pt;" size="2">nxl</font></tt><font
51 style="font-size: 10pt;" size="2">,
52</font><tt><font style="font-size: 10pt;" size="2">nxr</font></tt><font
53 style="font-size: 10pt;" size="2">,
54</font><tt><font style="font-size: 10pt;" size="2">nys</font></tt><font
55 style="font-size: 10pt;" size="2">
56<font size="3">and</font> </font><tt><font style="font-size: 10pt;"
57 size="2">nyn</font></tt>
58are the array bounds of the respective subdomain (don't confuse this
59with the user-defined subdomain!) on the
60respective processor. With runs on one processor <tt><font
61 style="font-size: 10pt;" size="2">nys</font></tt><font
62 style="font-size: 10pt;" size="2">
63= </font><tt><font style="font-size: 10pt;" size="2">nxl</font></tt><font
64 style="font-size: 10pt;" size="2">
65= 0</font> and <font style="font-size: 10pt;" size="2"><font
66 face="Cumberland, monospace">nxr
67=</font> </font><a href="chapter_4.1.html#nx">nx</a>
68and <font style="font-size: 10pt;" size="2"><font
69 face="Cumberland, monospace">nyn
70=</font></font> <a href="chapter_4.1.html#ny">ny</a>.
71The third index determines the user-defined subdomain. The total model
72domain
73carries the index 0, the user-defined subdomains have the values 1 to
749. </p>
75<p style="line-height: 100%;">The following example should illustrate
76this. Two subdomains are defined by the user. The first is determined
77by all grid
78points which lie within a circle whose center is equal to the
79(horizontal) center of the model domain and whose diameter is equal
80to half of the total horizontal domain size (square total domain
81assumed).
82The second subdomain should be defined by all points outside of this
83domain. This may be obtained by the following lines of code in <tt><font
84 style="font-size: 10pt;" size="2">user_init</font></tt>:
85</p>
86<ul>
87  <p style="line-height: 100%;"><tt><font style="font-size: 10pt;"
88 size="2"><font face="Cumberland, monospace">USE
89grid_variables</font></font></tt><font style="font-size: 10pt;" size="2"><font
90 face="Cumberland, monospace"> <br>
91  </font></font><tt><font style="font-size: 10pt;" size="2"><font
92 face="Cumberland, monospace">USE indices</font></font></tt><font
93 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
94  </font></font><tt><font style="font-size: 10pt;" size="2"><font
95 face="Cumberland, monospace">USE statistics</font></font></tt><font
96 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
97  </font></font><tt><font style="font-size: 10pt;" size="2"><font
98 face="Cumberland, monospace">.</font></font></tt><font
99 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><br>
100  </font></font><tt><font style="font-size: 10pt;" size="2"><font
101 face="Cumberland, monospace">.</font></font></tt><font
102 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><br>
103  </font></font><tt><font style="font-size: 10pt;" size="2"><font
104 face="Cumberland, monospace">.</font></font></tt><font
105 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><br>
106  </font></font><tt><font style="font-size: 10pt;" size="2"><font
107 face="Cumberland, monospace">disc_center_x = dx * (nx + 1)/2</font></font></tt><font
108 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
109  </font></font><tt><font style="font-size: 10pt;" size="2"><font
110 face="Cumberland, monospace">disc_center_y = dy * (ny + 1)/2</font></font></tt><font
111 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
112  </font></font><tt><font style="font-size: 10pt;" size="2"><font
113 face="Cumberland, monospace">disc_radius = 0.5 * disc_center_x</font></font></tt><font
114 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
115  </font></font><tt><font style="font-size: 10pt;" size="2"><font
116 face="Cumberland, monospace">DO&nbsp; i = nxl-1, nxr+1</font></font></tt><font
117 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
118  </font></font><tt><font style="font-size: 10pt;" size="2"><font
119 face="Cumberland, monospace">&nbsp;&nbsp; x = i * dx</font></font></tt><br>
120  <tt><font style="font-size: 10pt;" size="2"><font
121 face="Cumberland, monospace">&nbsp;&nbsp; DO&nbsp; j = nys-1, nyn+1</font></font></tt><font
122 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
123  </font></font><tt><font style="font-size: 10pt;" size="2"><font
124 face="Cumberland, monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y = j * dy</font></font></tt><font
125 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><br>
126  </font></font><tt><font style="font-size: 10pt;" size="2"><font
127 face="Cumberland, monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
128radial_distance = SQRT( ( x - disc_center_x )**2 + &amp;</font></font></tt><font
129 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
130  </font></font><tt><font style="font-size: 10pt;" size="2"><font
131 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;
132( y - disc_center_y )**2 )</font></font></tt><font
133 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
134  </font></font><tt><font style="font-size: 10pt;" size="2"><font
135 face="Cumberland, monospace">&nbsp; &nbsp; &nbsp; IF ( radial_distance
136&gt; disc_radius )&nbsp; THEN</font></font></tt><font
137 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><br>
138  </font></font><tt><font style="font-size: 10pt;" size="2"><font
139 face="Cumberland, monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
140rmask(j,i,1) = 0.0</font></font></tt><font style="font-size: 10pt;"
141 size="2"><font face="Cumberland, monospace"><br>
142  </font></font><tt><font style="font-size: 10pt;" size="2"><font
143 face="Cumberland, monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
144rmask(j,i,2) = 1.0</font></font></tt><font style="font-size: 10pt;"
145 size="2"><font face="Cumberland, monospace"><br>
146  </font></font><tt><font style="font-size: 10pt;" size="2"><font
147 face="Cumberland, monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ELSE</font></font></tt><font
148 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><br>
149  </font></font><tt><font style="font-size: 10pt;" size="2"><font
150 face="Cumberland, monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
151rmask(j,i,1) = 1.0</font></font></tt><font style="font-size: 10pt;"
152 size="2"><font face="Cumberland, monospace"><br>
153  </font></font><tt><font style="font-size: 10pt;" size="2"><font
154 face="Cumberland, monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
155rmask(j,i,2) = 0.0</font></font></tt><font style="font-size: 10pt;"
156 size="2"><font face="Cumberland, monospace"><br>
157  </font></font><tt><font style="font-size: 10pt;" size="2"><font
158 face="Cumberland, monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDIF</font></font></tt><font
159 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"> <br>
160  </font></font><tt><font style="font-size: 10pt;" size="2"><font
161 face="Cumberland, monospace">&nbsp;&nbsp; ENDDO</font></font></tt><font
162 style="font-size: 10pt;" size="2"><font face="Cumberland, monospace"><br>
163  </font></font><tt><font style="font-size: 10pt;" size="2"><font
164 face="Cumberland, monospace">ENDDO</font></font></tt></p>
165</ul>
166<p style="line-height: 100%;">The module <span
167 style="font-family: monospace;">statistics</span> must be used,
168because it contains <span style="font-family: monospace;">rmask</span>
169and the modules <span style="font-family: monospace;">grid_variables</span>
170and <span style="font-family: monospace;">indices</span> are
171necessary in this example, because grid spacing and indices are used.
172All array elements of <span style="font-family: monospace;">rmask</span>
173(<span style="font-family: monospace;">rmask(:,:,:)</span>) are preset
174by the model with 1.0. In no case this assignment must be
175changed for the total domain (<span style="font-family: monospace;">rmask(:,:,0)</span>)!
176Computations and output for the user-defined subdomains only take place
177if
178the user sets <a href="chapter_4.1.html#statistic_regions">statistic_regions</a>
179&#8805; <i>1</i>. Beyond that, names for the user-defined subdomains can be
180assigned
181via the initialization parameter <a href="chapter_4.3.html#region">region</a>.
182Output of the names of the selected user-defined subdomains happens in
183the local files <a href="chapter_3.4.html#HEADER">HEADER</a>
184and <a href="chapter_3.4.html#RUN_CONTROL">RUN_CONTROL</a>
185within the user-defined subroutine <tt><font style="font-size: 10pt;"
186 size="2">user_header</font></tt>.
187<br>
188&nbsp; </p>
189<hr>
190<p style="line-height: 100%;"><br>
191<font color="#000080"><font color="#000080"><a href="chapter_3.5.2.html"><font
192 color="#000080"><img src="left.gif" name="Grafik1" align="bottom"
193 border="2" height="32" width="32"></font></a><a href="index.html"><font
194 color="#000080"><img src="up.gif" name="Grafik2" align="bottom"
195 border="2" height="32" width="32"></font></a><a
196 href="chapter_3.5.4.html"><font color="#000080"><img src="right.gif"
197 name="Grafik3" align="bottom" border="2" height="32" width="32"></font></a></font></font></p>
198<p style="line-height: 100%;"><i>Last change:&nbsp;</i> 15/04/05 (SR)</p>
199</body>
200</html>
Note: See TracBrowser for help on using the repository browser.