1 | % $Id: program_control.tex 1649 2015-09-15 16:34:42Z maronga $ |
---|
2 | \input{header_tmp.tex} |
---|
3 | %\input{header_LECTURE.tex} |
---|
4 | |
---|
5 | \usepackage[utf8]{inputenc} |
---|
6 | \usepackage{ngerman} |
---|
7 | \usepackage{pgf} |
---|
8 | \usepackage{subfigure} |
---|
9 | \usepackage{units} |
---|
10 | \usepackage{multimedia} |
---|
11 | \usepackage{hyperref} |
---|
12 | \newcommand{\event}[1]{\newcommand{\eventname}{#1}} |
---|
13 | \usepackage{xmpmulti} |
---|
14 | \usepackage{tikz} |
---|
15 | \usetikzlibrary{shapes,arrows,positioning,decorations.pathreplacing} |
---|
16 | \def\Tiny{\fontsize{4pt}{4pt}\selectfont} |
---|
17 | \def\Tinytwo{\fontsize{3pt}{3pt}\selectfont} |
---|
18 | |
---|
19 | %---------- neue Pakete |
---|
20 | \usepackage{amsmath} |
---|
21 | \usepackage{amssymb} |
---|
22 | \usepackage{multicol} |
---|
23 | \usepackage{pdfcomment} |
---|
24 | \usepackage{listings} |
---|
25 | \lstset{showspaces=false,language=fortran,basicstyle= |
---|
26 | \ttfamily,showstringspaces=false, captionpos=b,aboveskip=0pt,belowskip=0pt} |
---|
27 | |
---|
28 | \institute{Institute of Meteorology and Climatology, Leibniz UniversitÀt Hannover} |
---|
29 | \selectlanguage{english} |
---|
30 | \date{last update: \today} |
---|
31 | \event{PALM Seminar} |
---|
32 | \setbeamertemplate{navigation symbols}{} |
---|
33 | |
---|
34 | \setbeamertemplate{footline} |
---|
35 | {% |
---|
36 | \begin{beamercolorbox}[rightskip=-0.1cm]& |
---|
37 | {\includegraphics[height=0.65cm]{imuk_logo.pdf}\hfill \includegraphics[height=0.65cm]{luh_logo.pdf}} |
---|
38 | \end{beamercolorbox} |
---|
39 | \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% |
---|
40 | leftskip=.3cm,rightskip=0.3cm plus1fil]{title in head/foot}% |
---|
41 | {\leavevmode{\usebeamerfont{author in head/foot}\insertshortauthor} \hfill \eventname \hfill \insertframenumber \; / \inserttotalframenumber}% |
---|
42 | \end{beamercolorbox}% |
---|
43 | % \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot}% |
---|
44 | % \end{beamercolorbox} |
---|
45 | }%\logo{\includegraphics[width=0.3\textwidth]{luhimuk_logo.eps}} |
---|
46 | |
---|
47 | \title[Program Control by Physical Parameters]{Program Control by Physical Parameters} |
---|
48 | \author{PALM group} |
---|
49 | |
---|
50 | % Notes: |
---|
51 | % jede subsection bekommt einen punkt im menu (vertikal ausgerichtet. |
---|
52 | % jeder frame in einer subsection bekommt einen punkt (horizontal ausgerichtet) |
---|
53 | \begin{document} |
---|
54 | % Folie 1 |
---|
55 | \begin{frame} |
---|
56 | \titlepage |
---|
57 | \end{frame} |
---|
58 | |
---|
59 | \section{Program Control by Physical Parameters} |
---|
60 | \subsection{Program Control by Physical Parameters} |
---|
61 | |
---|
62 | % Folie 2 |
---|
63 | \begin{frame} |
---|
64 | \frametitle{Steering of PALM and Interpreting the Output} |
---|
65 | \begin{itemize} |
---|
66 | \item<1->{This section section describes how to steer the model and how to interpret the model output (\textbf{it does not explain, how to start and control model runs}).} |
---|
67 | \item<2->{It gives a general overview of the input and output files and explaines the contents of the most important files in some detail.} |
---|
68 | \end{itemize} |
---|
69 | \end{frame} |
---|
70 | |
---|
71 | % Folie 3 |
---|
72 | \begin{frame} |
---|
73 | \frametitle{PALM Input/Output Overview (I)} |
---|
74 | \tikzstyle{start} = [ellipse, draw, fill=green!20, font=\small] |
---|
75 | \tikzstyle{yellow1} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, font=\Tiny] |
---|
76 | \tikzstyle{yellow2} = [rectangle, draw, fill=yellow!20, text width=0.1\textwidth, font=\Tiny] |
---|
77 | \tikzstyle{yellow3} = [rectangle, draw, fill=yellow!20, text width=0.03\textwidth, font=\Tiny] |
---|
78 | \tikzstyle{red} = [rectangle, draw, fill=red!100, text width=0.1\textwidth, font=\Tiny] |
---|
79 | \tikzstyle{red2} = [rectangle, draw, fill=red!100, text width=0.03\textwidth, font=\Tiny] |
---|
80 | \tikzstyle{orange1} = [rectangle, draw, fill=orange!50, text width=0.1\textwidth, font=\Tiny] |
---|
81 | \tikzstyle{orange2} = [rectangle, draw, fill=orange!50, text width=0.11\textwidth, font=\Tiny] |
---|
82 | \tikzstyle{orange3} = [rectangle, draw, fill=orange!50, text width=0.03\textwidth, font=\Tiny] |
---|
83 | |
---|
84 | \tikzstyle{line} = [draw, -latex'] |
---|
85 | |
---|
86 | \begin{tikzpicture} [auto] |
---|
87 | \node[start] (palm) {\textbf{PALM}}; |
---|
88 | |
---|
89 | \uncover<2->{\node[yellow1] (parameterfile) [above left=1.5cm of palm] {parameter file \\ for steering};} |
---|
90 | \uncover<6->{\node[red] (restartdata1) [above right=1.8cm of palm] {restart data};} |
---|
91 | \uncover<5->{\node[red] (restartdata2) [below=4.5cm of restartdata1] {restart data};} |
---|
92 | |
---|
93 | \uncover<4->{ |
---|
94 | \node[orange1] (timeseries) [below left=4.4cm of palm] {time series}; |
---|
95 | \node[orange2] (2dsectionstime) [right=0.5cm of timeseries] {2D sections \\ time averaged}; |
---|
96 | \node[orange2] (3ddatatime) [right=0.39cm of 2dsectionstime] {3D data \\ time averaged}; |
---|
97 | |
---|
98 | \path<4->[line] (palm) -- (timeseries); |
---|
99 | \path<4->[line] (palm) -- (2dsectionstime); |
---|
100 | \path<4->[line] (palm) -- (3ddatatime); |
---|
101 | |
---|
102 | \node[orange1] (1dmean) [above=0.2cm of timeseries] {1D mean \\ profiles}; |
---|
103 | \node[orange1] (2dsections) [right=0.5cm of 1dmean] {2D sections}; |
---|
104 | \node[orange1] (3ddata) [right=0.5cm of 2dsections] {3D data};} |
---|
105 | |
---|
106 | \path<4->[line] (palm) -- (1dmean); |
---|
107 | \path<4->[line] (palm) -- (2dsections); |
---|
108 | \path<4->[line] (palm) -- (3ddata); |
---|
109 | |
---|
110 | \uncover<3->{\node[yellow2] (headerfile) [above=0.5cm of 2dsections]{header file};} |
---|
111 | \uncover<3->{\node[yellow1] (runcontrol) [right=0.5cm of headerfile]{run control output\\ (parameter settings + \\ timestep informations)};} |
---|
112 | \uncover<3->{\node[yellow2] (cpumeasure) [left=0.5cm of headerfile]{cpu\\ measurements};} |
---|
113 | |
---|
114 | \node (program) [right=2.8cm of palm] {program}; |
---|
115 | \uncover<2->{\node (steeringdata) [right=0.45cm of restartdata1] {steering data};} |
---|
116 | \uncover<3->{\node (run) [right=2.7cm of runcontrol] {run informations};} |
---|
117 | \uncover<4->{\node (analysis) [right=3.8cm of 3ddata] {analysis data};} |
---|
118 | |
---|
119 | \uncover<7->{ |
---|
120 | \node[yellow3] (yellow) [below=0.5 of timeseries] {}; |
---|
121 | \node (ascii) [right=0.1cm of yellow] {ASCII}; |
---|
122 | \node[orange3] (orange) [right=0.4cm of ascii] {}; |
---|
123 | \node (netcdf) [right=0.1cm of orange] {netCDF}; |
---|
124 | \node[red2] (red) [right=0.4cm of netcdf] {}; |
---|
125 | \node (binary) [right=0.1cm of red] {binary};} |
---|
126 | |
---|
127 | \path<2->[line] (parameterfile) -- (palm); |
---|
128 | \path<3->[line] (palm) -- (cpumeasure); |
---|
129 | \path<3->[line] (palm) -- (headerfile); |
---|
130 | \path<3->[line] (palm) -- (runcontrol); |
---|
131 | \path<5->[line] (palm) -- (restartdata2); |
---|
132 | \path<6->[line] (restartdata1) -- (palm); |
---|
133 | \path<6->[line,dashed] (restartdata2) -- (restartdata1); |
---|
134 | \end{tikzpicture} |
---|
135 | \end{frame} |
---|
136 | |
---|
137 | % Folie 4 |
---|
138 | \begin{frame} |
---|
139 | \frametitle{PALM Input/Output Overview (II)} |
---|
140 | \tikzstyle{start} = [ellipse, draw, fill=green!20, font=\small] |
---|
141 | \tikzstyle{yellow1} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, font=\Tiny] |
---|
142 | \tikzstyle{yellow2} = [rectangle, draw, fill=yellow!20, text width=0.1\textwidth, font=\Tiny] |
---|
143 | \tikzstyle{yellow3} = [rectangle, draw, fill=yellow!20, text width=0.03\textwidth, font=\Tiny] |
---|
144 | \tikzstyle{yellow4} = [rectangle, draw, fill=yellow!100, text width=1.8cm, font=\Tiny] |
---|
145 | \tikzstyle{red} = [rectangle, draw, fill=red!100, text width=0.1\textwidth, font=\Tiny] |
---|
146 | \tikzstyle{red2} = [rectangle, draw, fill=red!100, text width=0.03\textwidth, font=\Tiny] |
---|
147 | \tikzstyle{orange1} = [rectangle, draw, fill=orange!50, text width=0.1\textwidth, font=\Tiny] |
---|
148 | \tikzstyle{orange2} = [rectangle, draw, fill=orange!50, text width=0.11\textwidth, font=\Tiny] |
---|
149 | \tikzstyle{orange3} = [rectangle, draw, fill=orange!50, text width=0.03\textwidth, font=\Tiny] |
---|
150 | |
---|
151 | \tikzstyle{line} = [draw, -] |
---|
152 | |
---|
153 | \begin{tikzpicture} [auto] |
---|
154 | \node[start] (palm) {\textbf{PALM}}; |
---|
155 | |
---|
156 | \node[yellow1] (parameterfile) [above left=1cm of palm] {parameter file \\ for steering}; |
---|
157 | \node[red] (restartdata1) [above right=1.3cm of palm] {restart data}; |
---|
158 | \node[red] (restartdata2) [below=2.5cm of restartdata1] {restart data}; |
---|
159 | |
---|
160 | \node[yellow1] (runcontrol) [below=0.4cm of palm]{run control output\\ (parameter settings + \\ timestep informations)}; |
---|
161 | \node[yellow2] (headerfile) [left=0.5cm of runcontrol]{header file}; |
---|
162 | \node[yellow2] (cpumeasure) [left=0.5cm of headerfile]{cpu\\ measurements}; |
---|
163 | |
---|
164 | \node[orange1] (1dmean) [below=0.3cm of cpumeasure] {1D mean \\ profiles}; |
---|
165 | \node[orange1] (2dsections) [right=0.5cm of 1dmean] {2D sections}; |
---|
166 | \node[orange1] (3ddata) [right=0.5cm of 2dsections] {3D data}; |
---|
167 | |
---|
168 | \node[orange1] (timeseries) [below=0.2cm of 1dmean] {time series}; |
---|
169 | \node[orange2] (2dsectionstime) [right=0.5cm of timeseries] {2D sections \\ time averaged}; |
---|
170 | \node[orange2] (3ddatatime) [right=0.39cm of 2dsectionstime] {3D data \\ time averaged}; |
---|
171 | |
---|
172 | \node (program) [right=2.8cm of palm] {program}; |
---|
173 | \node (steeringdata) [right=0.8cm of restartdata1] {steering data}; |
---|
174 | \node (run) [right=2.5cm of runcontrol] {run informations}; |
---|
175 | \node (analysis) [right=3.6cm of 3ddata] {analysis data}; |
---|
176 | |
---|
177 | \node[yellow3] (yellow) [below=0.3 of timeseries] {}; |
---|
178 | \node (ascii) [right=0.1cm of yellow] {ASCII}; |
---|
179 | \node[orange3] (orange) [right=0.4cm of ascii] {}; |
---|
180 | \node (netcdf) [right=0.1cm of orange] {netCDF}; |
---|
181 | \node[red2] (red) [right=0.4cm of netcdf] {}; |
---|
182 | \node (binary) [right=0.1cm of red] {binary}; |
---|
183 | |
---|
184 | %--------- neue Ordner |
---|
185 | \uncover<2->{ |
---|
186 | \node[yellow4] (currentversion) [above=0.6cm of parameterfile] {current\_version/}; |
---|
187 | \node[yellow4] (jobs) [right=0.3cm of currentversion] {JOBS/}; |
---|
188 | \node[yellow4] (runidentifier) [right=0.4cm of jobs] {\textless run\_identifier \textgreater/}; |
---|
189 | \node[yellow4] (input) [above right=1cm of runidentifier] {INPUT/}; |
---|
190 | \node[yellow4] (monitoring) [below=0.1cm of input] {MONITORING/}; |
---|
191 | \node[yellow4] (output) [below=0.1cm of monitoring] {OUTPUT/}; |
---|
192 | \node[yellow4] (restart) [below=0.1cm of output] {RESTART\_DATA/};} |
---|
193 | |
---|
194 | \uncover<3->{\node[yellow4] (input2) [below=0.1cm of parameterfile] {INPUT/};} |
---|
195 | \uncover<4->{\node[yellow4] (monitoring2) [above=0.6cm of headerfile] {MONITORING/};} |
---|
196 | \uncover<6->{\node[yellow4] (restart2) [below=0.1cm of restartdata1] {RESTART\_DATA/};} |
---|
197 | \uncover<7->{\node[yellow4] (tmpdata) [below=0.1cm of restart2] {/tmp\_data\_catalog/};} |
---|
198 | \uncover<5->{\node[yellow4] (output2) [below=0.5cm of restartdata2] {OUTPUT/};} |
---|
199 | |
---|
200 | \path[line]<2-> (currentversion) -- (jobs); |
---|
201 | \path[line]<2-> (jobs) -- (runidentifier); |
---|
202 | \path[line]<2-> (runidentifier.east) -- (input.west); |
---|
203 | \path[line]<2-> (runidentifier.east) -- (monitoring.west); |
---|
204 | \path[line]<2-> (runidentifier.east) -- (output.west); |
---|
205 | \path[line]<2-> (runidentifier.east) -- (restart.west); |
---|
206 | |
---|
207 | \draw<4->[decorate,decoration={brace,raise=6pt,amplitude=9pt},thick] |
---|
208 | (-4.5,-0.95)--(-1,-0.95) ; |
---|
209 | \draw<5->[decorate,decoration={brace,mirror,raise=5pt,amplitude=6pt},thick] |
---|
210 | (0.45,-3)--(0.45,-1.9) ; |
---|
211 | \end{tikzpicture} |
---|
212 | \end{frame} |
---|
213 | |
---|
214 | % Folie 5 |
---|
215 | \begin{frame} |
---|
216 | \frametitle{The Parameter File} |
---|
217 | \tikzstyle{box} = [rectangle, draw, text width=0.9\textwidth, font=\tiny] |
---|
218 | \tikzstyle{line} = [draw, thick, -latex'] |
---|
219 | \footnotesize |
---|
220 | \begin{itemize} |
---|
221 | \item<1->{Physical and numerical features of a PALM run (e.g. initial and boundary conditions, numerical methods) |
---|
222 | are controlled by a so called \textbf{parameter file} which uses FORTRAN-NAMELIST syntax.} |
---|
223 | \item<2->{General structure of a FORTRAN-NAMELIST file} |
---|
224 | \end{itemize} |
---|
225 | \begin{tikzpicture}[auto] |
---|
226 | \uncover<3->{ |
---|
227 | \node[box](firstbox){ \begin{tabbing} |
---|
228 | \quad \&abcd \quad \=no\_of\_eggs = 100, litres\_of\_milk = 50.0, \= \\ |
---|
229 | \>kilos\_of\_butter = 20.0, \> / \end{tabbing}}; |
---|
230 | \node[font=\tiny] (leading_blank) at (-5,0.8) {\textbf{leading blank}}; |
---|
231 | \node[font=\tiny] (namelist) at (-2,0.8) {\textbf{NAMELIST group}}; |
---|
232 | \node[font=\tiny] (terminating) at (3,0.8) {\textbf{terminating character}}; |
---|
233 | \path[line] (-5,0.7) -- (-4.8,0); |
---|
234 | \path[line] (-2,0.7) -- (-4,0); |
---|
235 | \path[line] (3,0.7) -- (0.2,-0.3);} |
---|
236 | \end{tikzpicture} |
---|
237 | \begin{itemize} |
---|
238 | \item<4->{This file can be read from a FORTRAN program in the following way:} |
---|
239 | \end{itemize} |
---|
240 | \begin{tikzpicture}[auto, node distance=0] |
---|
241 | \uncover<4->{ |
---|
242 | \node[box](secondbox){ \begin{tabbing} |
---|
243 | INTEGER :: \=no\_of\_eggs = 30 \\ |
---|
244 | REAL :: \> litres\_of\_milk = 0.0, kilos\_of\_butter, kilos\_of\_cream = 33.0 \\ |
---|
245 | \\ |
---|
246 | NAMELIST /abcd/ \quad no\_of\_eggs, litres\_of\_milk, kilos\_of\_butter, kilos\_of\_cream \\ |
---|
247 | \\ |
---|
248 | OPEN ( 1, FILE='Filename' ) \\ |
---|
249 | \\ |
---|
250 | READ ( 1, abcd ) \end{tabbing}};} |
---|
251 | \end{tikzpicture} |
---|
252 | \normalsize |
---|
253 | \end{frame} |
---|
254 | |
---|
255 | % Folie 6 |
---|
256 | \begin{frame} |
---|
257 | \frametitle{An Example of PALM - NAMELIST Input} |
---|
258 | \tikzstyle{box} = [rectangle, draw, text width=\textwidth, font=\tiny] |
---|
259 | \begin{tikzpicture}[auto, node distance=0] |
---|
260 | \node[box](box){ \begin{tabbing} |
---|
261 | \&inipar \=nx = 39, ny = 39, nz = 40, \\ |
---|
262 | \>dx = 50.0, dy = 50.0, dz = 50.0, \\ |
---|
263 | \\ |
---|
264 | \>initializing\_actions = 'set\_constant\_profiles', \\ |
---|
265 | \>ug\_surface = 0.0, vg\_surface = 0.0, \\ |
---|
266 | \\ |
---|
267 | \>pt\_vertical\_gradient \qquad = 0.0, 1.0, \\ |
---|
268 | \>pt\_vertical\_gradient\_level = 0.0, 800.0, \\ |
---|
269 | \\ |
---|
270 | \>surface\_heatflux = 0.1, bc\_pt\_b ='neumann', / \\ |
---|
271 | \\ |
---|
272 | \\ |
---|
273 | \&d3par \>end\_time = 3600.0, \\ |
---|
274 | \\ |
---|
275 | \>dt\_dopr = 900.0, averaging\_interval\_pr = 600.0, \\ |
---|
276 | \>data\_output\_pr = 'pt', 'u', 'v', / \\ \end{tabbing}}; |
---|
277 | \end{tikzpicture} |
---|
278 | \footnotesize |
---|
279 | \vspace{-3mm} |
---|
280 | \begin{itemize} |
---|
281 | \item<2->{There are two NAMELIST groups ({\tt \&inipar} and {\tt \&d3par}).} |
---|
282 | \item<3->{Assignments to parameters in {\tt\&inipar} are ignored within restart runs \\ |
---|
283 | (exception: {\tt initializing\_actions} = {\tt'read\_restart\_data'} is obligatory for restart runs).} |
---|
284 | \item<4->{Values of {\tt \&d3par} parameters can be changed for restart runs.} |
---|
285 | \end{itemize} |
---|
286 | \end{frame} |
---|
287 | |
---|
288 | % Folie 7 |
---|
289 | \begin{frame}[fragile] |
---|
290 | \tikzstyle{green} = [rectangle, draw, fill=green!30, text width=2.1\textwidth, font=\Tinytwo] |
---|
291 | \frametitle{The Run Control File} |
---|
292 | \scriptsize |
---|
293 | \begin{itemize} |
---|
294 | \item<1->{For initial runs, the parameter settings and many additional informations about the run (header informations) are printed at the beginning of this file.} |
---|
295 | \item<2->{The parameter settings are followed by values of specific model variables for certain timesteps (one line for each timestep, the output intervall can be |
---|
296 | controlled by run parameter {\tt dt\_run\_control}).} |
---|
297 | \end{itemize} |
---|
298 | \onslide<3->{\textbf{Contents of this timestep output should be carefully checked after each run, because it allows a first control, if the model had run correctly, or if any |
---|
299 | errors have occurred!}} |
---|
300 | \par\bigskip |
---|
301 | \begin{tikzpicture}[scale=0.51, every node/.style={scale=0.51}] |
---|
302 | \node [green]{\begin{lstlisting} |
---|
303 | ****************************** -------------------------------------------- |
---|
304 | * PALM 4.0 Rev: 1648 * atmosphere - 3D - run without 1D - prerun |
---|
305 | ****************************** -------------------------------------------- |
---|
306 | |
---|
307 | Date: 15-09-15 Run: example_cbl |
---|
308 | Time: 17:34:44 Run-No.: 00 |
---|
309 | Run on host: lcmuk |
---|
310 | Number of PEs: 4 Processor grid (x,y): ( 2, 2) calculated |
---|
311 | ------------------------------------------------------------------------------ |
---|
312 | . |
---|
313 | . |
---|
314 | . |
---|
315 | Run-control output: |
---|
316 | ------------------ |
---|
317 | |
---|
318 | RUN ITER. HH:MM:SS.SS DT(E) UMAX VMAX WMAX U* W* THETA* Z_I ENERG. DISTENERG DIVOLD DIVNEW UMAX(KJI) VMAX(KJI) WMAX(KJI) ADVECX ADVECY MGCYC |
---|
319 | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
---|
320 | 0 0 00:00:00.00 20.0000A -0.2192D -0.2169D -0.1214 0.000 1.38 0.000E+00 800. 0.106E-02 0.000E+00 0.000E+00 0.000E+00 11 32 5 5 37 29 4 26 0 0.000 0.000 0 |
---|
321 | 0 1 00:00:20.00 20.0000A -0.2192 -0.2169 -0.1214 0.001 0.69 -0.124E+03 100. 0.105E-02 0.948E-03 0.491E-05 0.355E-15 11 32 5 5 37 29 4 26 0 0.000 0.000 0 |
---|
322 | 0 2 00:00:40.00 20.0000D -0.2151 -0.2176 -0.1209 0.001 0.69 -0.125E+03 100. 0.104E-02 0.940E-03 0.802E-05 0.359E-15 11 32 5 5 37 29 4 26 0 0.000 0.000 0 |
---|
323 | . |
---|
324 | . |
---|
325 | |
---|
326 | \end{lstlisting} |
---|
327 | }; |
---|
328 | \end{tikzpicture} |
---|
329 | \end{frame} |
---|
330 | |
---|
331 | % Folie 8 |
---|
332 | \begin{frame}[fragile] |
---|
333 | \tikzstyle{green} = [rectangle, draw, fill=green!30, text width=0.9\textwidth, font=\Tiny] |
---|
334 | \frametitle{The Header File} |
---|
335 | \scriptsize |
---|
336 | \begin{itemize} |
---|
337 | \item{The header file contains nearly the same informations as the header of the run control file of the initial run.} |
---|
338 | \item<2->{It is generated for \textbf{every} run (initial run as well as restart runs).} |
---|
339 | \item<3->{It is created at the beginning \textbf{and} at the end of a run (overwrites the file created at beginning).} |
---|
340 | \item<4->{Only at the end, cpu time information is included!} |
---|
341 | \end{itemize} |
---|
342 | \begin{center} |
---|
343 | \begin{tikzpicture}[scale=1, every node/.style={scale=1}] |
---|
344 | \node [green]{\begin{lstlisting} |
---|
345 | . |
---|
346 | . |
---|
347 | . |
---|
348 | Run time and time step information: |
---|
349 | ---------------------------------- |
---|
350 | |
---|
351 | Timestep: variable maximum value: 20.000 s CFL-factor: 0.90 |
---|
352 | Start time: 0.000 s |
---|
353 | End time: 3600.000 s |
---|
354 | |
---|
355 | Time reached: 3601.930 s |
---|
356 | CPU-time used: 4.391 s per timestep: 0.017 s |
---|
357 | per second of simulated time: 0.001 s |
---|
358 | |
---|
359 | |
---|
360 | Computational grid and domain size: |
---|
361 | ---------------------------------- |
---|
362 | |
---|
363 | Grid length: dx = 50.000 m dy = 50.000 m dz = 50.000 m |
---|
364 | . |
---|
365 | . |
---|
366 | . |
---|
367 | \end{lstlisting} |
---|
368 | }; |
---|
369 | \end{tikzpicture} |
---|
370 | \end{center} |
---|
371 | \normalsize |
---|
372 | \end{frame} |
---|
373 | |
---|
374 | % Folie 9 |
---|
375 | \begin{frame}[fragile] |
---|
376 | \tikzstyle{green} = [rectangle, draw, fill=green!30, text width=1.4\textwidth, font=\Tiny] |
---|
377 | \frametitle{CPU Measurements File} |
---|
378 | \begin{columns}[c] |
---|
379 | \column{0.42\textwidth} |
---|
380 | \scriptsize |
---|
381 | \begin{itemize} |
---|
382 | \item{Contains informations about the CPU requirements of single parts of the program.} |
---|
383 | \item<2->{It should be inspected regularly in order to find out, if the code is still well optimized (e.g. load balance).} |
---|
384 | \item<3->{Prognostic-equations and pressure solver ({\tt pres}) should be the main consumer.} |
---|
385 | \item<4->{For larger grids ($1024^3$ points), {\tt pres} may need up to 50\% of the total time or more.} |
---|
386 | \item<5->{Time needed for communication (sum of {\tt exchange\_horiz}({\tt \_2d}) and {\tt mpi\_alltoall}) should not exceed about 10-15\% of the total time.} |
---|
387 | \end{itemize} |
---|
388 | \normalsize |
---|
389 | \column{0.58\textwidth} |
---|
390 | \vspace{-5mm} |
---|
391 | \begin{tikzpicture}[scale=0.75, every node/.style={scale=0.75}] |
---|
392 | \node [green]{\begin{lstlisting} |
---|
393 | PALM 4.0 Rev: 1648 run: example_cbl.00 host: lcmuk 15-09-15 17:34:44 |
---|
394 | ----------- |
---|
395 | |
---|
396 | CPU measures for 4 PEs ( 2(x) * 2(y) tasks * 1 threads): |
---|
397 | |
---|
398 | gridpoints (x/y/z): 40 * 40 * 40 |
---|
399 | nr of timesteps: 253 |
---|
400 | cpu time per grid point and timestep: 0.57070 * 10**-6 s |
---|
401 | ---------------------------------------------------------------------- |
---|
402 | |
---|
403 | place: mean counts min max rms |
---|
404 | sec. % sec. sec. sec. |
---|
405 | ------------------------------------------------------------------------------ |
---|
406 | total 9.241 100.00 1 9.241 9.241 0.000 |
---|
407 | all progn.equations 5.899 63.83 759 5.827 5.977 0.056 |
---|
408 | pres 1.508 16.32 760 1.506 1.508 0.002 |
---|
409 | diffusivities 0.632 6.84 759 0.624 0.642 0.006 |
---|
410 | exchange-horiz-progn 0.412 4.45 759 0.333 0.441 0.056 |
---|
411 | flow_statistics 0.270 2.92 254 0.269 0.271 0.001 |
---|
412 | calculate_timestep 0.205 2.21 253 0.150 0.223 0.031 |
---|
413 | prandtl_fluxes 0.150 1.63 759 0.148 0.153 0.002 |
---|
414 | sum_up_3d_data 0.016 0.17 146 0.016 0.016 0.000 |
---|
415 | initialisation 0.014 0.15 1 0.014 0.014 0.000 |
---|
416 | disturb_field 0.006 0.06 10 0.005 0.006 0.001 |
---|
417 | data_output_2d 0.004 0.04 10 0.003 0.004 0.000 |
---|
418 | data_output_tseries 0.003 0.04 253 0.000 0.000 0.006 |
---|
419 | run_control 0.003 0.03 254 0.000 0.000 0.005 |
---|
420 | swap_timelevel 0.001 0.01 759 0.001 0.001 0.000 |
---|
421 | last actions 0.001 0.01 1 0.000 0.001 0.000 |
---|
422 | average_3d_data 0.000 0.00 2 0.000 0.000 0.000 |
---|
423 | user_actions 0.000 0.00 759 0.000 0.000 0.000 |
---|
424 | data_output_profiles 0.000 0.00 4 0.000 0.000 0.000 |
---|
425 | |
---|
426 | special measures: |
---|
427 | ------------------------------------------------------------------------------- |
---|
428 | timesteps 9.222 99.80 253 9.222 9.222 0.000 |
---|
429 | poisfft 0.871 9.42 760 0.868 0.873 0.002 |
---|
430 | exchange_horiz 0.588 6.37 6866 0.505 0.619 0.058 |
---|
431 | divergence 0.259 2.81 1520 0.258 0.261 0.001 |
---|
432 | fft_y 0.239 2.59 760 0.236 0.244 0.003 |
---|
433 | fft_x 0.238 2.58 760 0.236 0.243 0.002 |
---|
434 | transpo forward 0.195 2.12 760 0.187 0.202 0.006 |
---|
435 | mpi_alltoall 0.162 1.75 4560 0.148 0.169 0.008 |
---|
436 | transpo invers 0.113 1.22 760 0.109 0.114 0.002 |
---|
437 | tridia 0.083 0.90 760 0.082 0.084 0.000 |
---|
438 | exchange_horiz_2d 0.040 0.44 3795 0.034 0.046 0.005 |
---|
439 | \end{lstlisting} |
---|
440 | }; |
---|
441 | \end{tikzpicture} |
---|
442 | \end{columns} |
---|
443 | \end{frame} |
---|
444 | |
---|
445 | % Folie 10 |
---|
446 | \begin{frame} |
---|
447 | \frametitle{Other Files} |
---|
448 | \small |
---|
449 | \begin{itemize} |
---|
450 | \item<1->{Data output files (1D profiles and timeseries, 2D cross sections, 3D volume data) are by default in \textbf{netCDF} format which is suitable to be processed by |
---|
451 | public domain graphics software like \textbf{ncview}, \textbf{ferret}, \textbf{ncl} (used by PALM group), \textbf{IDL}, etc. \\ |
---|
452 | \par\bigskip |
---|
453 | For a first look, {\tt ncview} is a convenient tool.} |
---|
454 | \item<2->{{\tt ncdump} can be used to display the netCDF file contents in ASCII format ({\tt ncdump -c} displays only header informations).} |
---|
455 | \item<3->{The simple viewer for netCDF-data - {\tt ncview} - as well as ncl graphic software is available on the notebooks and on the IMUK-cluster.} |
---|
456 | \end{itemize} |
---|
457 | \end{frame} |
---|
458 | |
---|
459 | % Folie 11 |
---|
460 | \begin{frame} |
---|
461 | \frametitle{Steering by Unix Environment Variables} |
---|
462 | \scriptsize |
---|
463 | Most features of PALM are controlled by the parameter file but a few are exclusively controlled by unix environment variables. The most important one is {\tt write\_binary}. \\ |
---|
464 | \par\bigskip |
---|
465 | Setting \\ |
---|
466 | \par\medskip |
---|
467 | {\centering \texttt{ write\_binary = true} \\ |
---|
468 | \par\medskip |
---|
469 | within the shell causes PALM to write binary data for restart runs at the end of a run.} |
---|
470 | \par\bigskip |
---|
471 | \uncover<2->{Setting of these environment variables is automatically done by {\tt mrun}. It generates a local file (named {\tt ENVPAR}) in FORTRAN-NAMELIST-format, which is then |
---|
472 | read by PALM. This file includes the following variables:} \\ |
---|
473 | \par\bigskip |
---|
474 | \tiny |
---|
475 | \uncover<3->{ |
---|
476 | \begin{tabular}{|p{3cm}|p{4cm}|p{3cm}|} \hline |
---|
477 | \textbf{Variable} & \textbf{Meaning} & \textbf{Value set by {\tt mrun}-option} \\ |
---|
478 | \hline |
---|
479 | {\tt host} & host identifier that mrun is using for the host on which the job is running & {\tt -h} \\ |
---|
480 | {\tt maximum\_cpu\_time\_allowed} & cpu time allowed for the job & {\tt -t} \\ |
---|
481 | {\tt run\_identifier} & identification string for the run & {\tt -d} \\ |
---|
482 | {\tt tasks\_per\_node} & number of MPI tasks to be started on each node & {\tt -T} \\ |
---|
483 | {\tt write\_binary} & switch for writing binary data to be used for restart runs & {\tt -r} (+setting in configuration file {\tt .mrun.config)} \\ |
---|
484 | \hline |
---|
485 | \end{tabular}} |
---|
486 | \normalsize |
---|
487 | \end{frame} |
---|
488 | |
---|
489 | % Folie 12 |
---|
490 | \begin{frame} |
---|
491 | \frametitle{PALM / netCDF Documentation} |
---|
492 | \begin{itemize} |
---|
493 | \item<1->{A detailed description of how to use PALM and a complete list of steering parameters and their meaning can be found on the PALM-server: \\ |
---|
494 | \par\bigskip |
---|
495 | \textbf{http://palm.muk.uni-hannover.de/trac/wiki/doc/toc}} |
---|
496 | \par\bigskip |
---|
497 | \item<2->{General information about the netCDF data format can be found under \\ |
---|
498 | \par\bigskip |
---|
499 | \textbf{http://www.unidata.ucar.edu/software/netcdf/}} |
---|
500 | \end{itemize} |
---|
501 | \end{frame} |
---|
502 | |
---|
503 | \end{document} |
---|