Changeset 1226 for palm/trunk/TUTORIAL


Ignore:
Timestamp:
Sep 18, 2013 1:19:19 PM (11 years ago)
Author:
fuhrmann
Message:

several updates in the tutorial

Location:
palm/trunk/TUTORIAL/SOURCE
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/TUTORIAL/SOURCE/exercise_neutral.tex

    r1198 r1226  
    113113        \begin{itemize}
    114114           \tiny
    115            \item<4-> You probably will find it difficult to get the mean flow to a stationary state (for the 1D-model as well as for the 3D-model. Can you identify the mechanism responsible for this? Try parameters \texttt{\textcolor{blue}{damp\_level\_1d}} (for the 1D-model) and \texttt{\textcolor{blue}{rayleigh\_damping\_factor}} (for the 3D-model; this is a \texttt{d3par}-parameter!) to overcome this problem.
     115           \item<4-> You probably will find it difficult to get the mean flow to a stationary state (for the 1D-model as well as for the 3D-model. Can you identify the mechanism responsible for this? Try parameters \texttt{\textcolor{blue}{damp\_level\_1d}} (for the 1D-model) and \texttt{\textcolor{blue}{rayleigh\_damping\_factor}} (for the 3D-model; this is a \texttt{inipar}-parameter!) to overcome this problem.
    116116           \vspace{0.5em}
    117117           \item<5-> You can switch on a Galilei-transformation in order to save CPU-time (see parameter \texttt{\textcolor{blue}{galilei\_transformation}}).
     
    129129           \scriptsize
    130130           \item<2-> Output of spectra requires to switch on the spectra-package using \textbf{mrun}-option \texttt{-p}:\\
    131                      \texttt{mrun ... -p spectra}
     131                     \texttt{mrun ... -p spectra -r 'sp\#'}
    132132           \vspace{0.5em}
    133133           \item<3-> Spectra output is controlled by parameters \texttt{\textcolor{blue}{data\_output\_sp}}, \texttt{\textcolor{blue}{dt\_dosp}}, etc. These package-parameters have to be given     in a separate NAMELIST-block which has to follow the \texttt{d3par}-block:\\
  • palm/trunk/TUTORIAL/SOURCE/installation.tex

    r1205 r1226  
    853853           }
    854854           \uncover<5->{
    855               \draw[->, thick] (input) |- (instal);
     855              \draw[<-, thick] (input) |- (instal);
    856856           }
    857857        \end{tikzpicture}
  • palm/trunk/TUTORIAL/SOURCE/non_cyclic_boundary_conditions.tex

    r945 r1226  
    6666      \item<4->{Non-cyclic boundary conditions give problems:}
    6767      \begin{itemize}
     68         \par\smallskip
    6869         \item<5->{If Dirichlet conditions (fixed vertical profiles) are used at the inflow, the inflow is laminar and some (significant) domain space is needed in order to develop                         turbulence.}
     70         \par\smallskip
    6971         \item<6->{At the outflow, a boundary condition is required which allows the eddies to freely leave the domain.}
    7072      \end{itemize}
     
    8183   The main motivation for non-cyclic boundary conditions are studies of isolated phenomena.
    8284   \begin{tabbing}
    83    \uncover<2->{\textbf{Example:} \= Turbulence generated by a single obstacle. \\}                   
     85   \uncover<2->{\textbf{Example:} \= Turbulence generated by a single obstacle. \\}   
     86                    \\
    8487                    \uncover<6->{ \> Cyclic boundary conditions along x would allow the generated turbulence\\
    8588                     \>  to enter the domain again, and so finally to modify the turbulence \\
     
    8790                     \\
    8891                     \uncover<9>{ \> This wouldn't be a simulation of a single building, but of an\\
    89                      \> infinite row of buildings! \\  }
     92                     \> infinite row of buildings!   }
    9093   \end{tabbing}
    9194   \begin{center}
    92    \includegraphics<3>[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_1.png}
    93    \includegraphics<4>[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_2.png}
    94    \includegraphics<5-6>[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_3.png}
    95    \includegraphics<7>[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_4.png}
    96    \uncover<8->{\begin{center} \includegraphics[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_5.png} \end{center}}
     95   \includegraphics<3|handout:0>[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_1.png}
     96   \includegraphics<4|handout:0>[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_2.png}
     97   \includegraphics<5-6|handout:0>[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_3.png}
     98   \includegraphics<7|handout:0>[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_4.png}
     99   \uncover<8-|handout:1>{\begin{center} \includegraphics[width=0.7\textwidth]{non_cyclic_figures/motivation_non_cyclic_5.png} \end{center}}
    97100   \end{center}
    98101   \normalsize
     
    105108   \onslide<2->{Using Dirichlet-conditions (e.g u(z) = const.), there is no turbulence at the inflow. $\rightarrow $the flow is laminar $\rightarrow$ LES approach fails!}
    106109   \par\bigskip
    107    \includegraphics<3>[width=0.8\textwidth]{non_cyclic_figures/implications_non_cyclic_1.png}
    108    \includegraphics<4>[width=0.8\textwidth]{non_cyclic_figures/implications_non_cyclic_2.png}
    109    \uncover<5->{\includegraphics[width=0.8\textwidth]{non_cyclic_figures/implications_non_cyclic_3.png}}
     110   \includegraphics<3|handout:0>[width=0.8\textwidth]{non_cyclic_figures/implications_non_cyclic_1.png}
     111   \includegraphics<4|handout:0>[width=0.8\textwidth]{non_cyclic_figures/implications_non_cyclic_2.png}
     112   \uncover<5-|handout:1>{\includegraphics[width=0.8\textwidth]{non_cyclic_figures/implications_non_cyclic_3.png}}
    110113   \par\bigskip
    111114   \onslide<6->{Flow internal turbulence may develop, but this may require a very long model domain.}
    112115   \par\bigskip
    113    \includegraphics<7>[width=\textwidth]{non_cyclic_figures/implications_non_cyclic_4.png}
    114    \includegraphics<8>[width=\textwidth]{non_cyclic_figures/implications_non_cyclic_5.png}
    115    \uncover<9->{\includegraphics[width=\textwidth]{non_cyclic_figures/implications_non_cyclic_6.png}}
     116   \includegraphics<7|handout:0>[width=\textwidth]{non_cyclic_figures/implications_non_cyclic_4.png}
     117   \includegraphics<8|handout:0>[width=\textwidth]{non_cyclic_figures/implications_non_cyclic_5.png}
     118   \uncover<9-|handout:1>{\includegraphics[width=\textwidth]{non_cyclic_figures/implications_non_cyclic_6.png}}
    116119   \onslide<10->{There is a need to supply turbulence information at the inflow.}
    117120\end{frame}
     
    128131      \item<3->{by recycling-method  (Lund et al., 1998)}
    129132   \end{itemize}
    130    \includegraphics<4>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_1_neu.png}
    131    \includegraphics<5>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_2_neu.png}
    132    \includegraphics<6>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_3_neu.png}
    133    \includegraphics<7>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_4_neu.png}
    134    \includegraphics<8>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_5_neu.png}
    135    \uncover<9->{\includegraphics[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_6.png}}
     133   \includegraphics<4|handout:0>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_1_neu.png}
     134   \includegraphics<5|handout:0>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_2_neu.png}
     135   \includegraphics<6|handout:0>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_3_neu.png}
     136   \includegraphics<7|handout:0>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_4_neu.png}
     137   \includegraphics<8|handout:0>[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_5_neu.png}
     138   \uncover<9-|handout:1>{\includegraphics[width=\textwidth]{non_cyclic_figures/create_turbulent_inflow_1/create_turbulent_inflow_6.png}}
    136139   \par\bigskip
    137140   \uncover<10>{How do we get the initial turbulence in the recycle area? \\
     
    236239   \begin{itemize}
    237240      \item<2->{The \textbf{multigrid-method} has to be used for solving the Poisson-equation.}
    238       \item<3->{A \textbf{damping zone} has sometimes to be activated in the vicinity of the outflow in order to avoid reflection of outgoing gravity waves.}
     241      \item<3->{A \textbf{damping zone} has sometimes to be activated in the vicinity of the in- and outflow in order to avoid reflection of gravity waves.}
    239242      \item<4->{\textbf{Volume flow conservation} should be activated, because otherwise flow acceleration or deceleration may occur along the non-cyclic direction.}
    240243      \item<5->{If turbulence recycling is not used, it may be neccessary to \textbf{continuously impose perturbations} on the horizontal velocity field in the vicinity of the
     
    308311      \item<2->{Restart data has to be output and output of instantaneous, horizontally averaged profiles has to be switched on and performed at the end of the run.
    309312                This enables writing of profiles to the restart file, which can then be used by the main run.}
     313      \item<3->{Instead of using averaged profiles from the prerun, inflow profiles for the main run can also be prescribed using parameters u\_profile and v\_profile.}
    310314   \end{itemize}
    311315   \tikzstyle{box} = [rectangle, draw, text width=\textwidth, font=\small]
     
    376380   \begin{itemize}
    377381      \item<1->{Non-cyclic boundary conditions and turbulence recycling method require extreme care with setting of the respective parameters.}
    378       \item<2->{So far, these methods have been applied only to a few special cases (cold air outbreaks). Other setups may require modifications.}
    379       \item<3->{Biggest problems are caused by gravity waves in capping inversions. Simulations with pure neutral stratification are expected to cause less problems.}
     382      \item<2->{So far, these methods have been applied only to a few special cases (cold air outbreaks, urban canopy layer for neutral stratification). Other setups may require modifications.}
     383      \item<3->{Biggest problems are caused by gravity waves in capping inversions. Simulations with pure neutral stratification cause less problems.}
    380384   \end{itemize}
    381385\end{frame}
  • palm/trunk/TUTORIAL/SOURCE/numerics_bc.tex

    r915 r1226  
    6161      \item<3-> \textbf{Explicit timestep methods:}\\
    6262         - Euler\\
    63          - Leapfrog\\
    6463         - \underline{Runge-Kutta}, second or \underline{third order}
    6564      \item<4-> \textbf{Advection method}\\
    6665         - Upstream\\
    6766         - Piacsek-Williams (second order central finite differences)\\
    68          - Upstream-spline\\
    6967         - Bott-Chlond-scheme (monotone, positiv definit, for scalars only)\\
    7068         - \underline{5th-order scheme of Wicker and Skamarock}, (as used in WRF model)
     
    122120   \begin{itemize}
    123121      \item<1->\textbf{Euler}\\
    124       \vspace{1mm}
     122      \vspace{3mm}
    125123      $\dfrac{\partial \psi(t)}{\partial t} = F (\psi(t)) \rightarrow
    126124      \dfrac{\psi(t + \Delta t) - \psi(t)}{\Delta t}
     
    136134         
    137135      \vspace{3mm}
    138       \item<3-> \textbf{Leapfrog}\\
    139       $\psi(t + \Delta t) = \psi(t - \Delta t)+2 \Delta t \cdot F(\psi(t))$ \hspace{16mm} $
    140       \mathcal{O}(\Delta t^2)$ \hspace{3mm} $C \le 0.1$\\
    141       Time-splitting requires a weak time filter (Asselin filter)
    142          
    143       \vspace{3mm}
    144       \item<4-> \textbf{Runge-Kutta, third-order}\\
     136      \item<3-> \textbf{Runge-Kutta, third-order}\\
     137      \vspace{2mm}
    145138      $k_1=F(\psi(t))$\\
    146139      \vspace{1mm}
     
    172165            \bf{Scheme} & \bf{c$_1$} & \bf{c$_2$} & \bf{c$_3$}\\
    173166            Euler & 1 & 1 & 0\\
    174             Leapfrog & 0 & 2 & 0\\
    175167            RK (1st step) & 1 & 1/3 & 0\\
    176168            RK (2nd step) & 1 & 15/16 & -25/48\\
     
    211203   \frametitle{Advection Methods (II)}
    212204   \begin{itemize}
    213       \item<1-> \small Upstream-spline\\ \scriptsize
    214          \onslide<1-> - Requires Euler timestep\\
    215          \onslide<2-> - Nonlocal scheme: produces heavy load on communication network\\
    216          \onslide<3-> - Numerically unstable under stable stratification
    217       \item<4-> \small Bott-Chlond\\ \scriptsize
    218          \onslide<4-> - Chlond (1994)\\
    219          \onslide<5-> - Monotone, positive definit. Can only be used for scalars\\
    220          \onslide<6-> - Conserves sharp gradients\\
    221          \onslide<7-> - Numerically expensive\\
    222          \onslide<8-> - Not optimized for use on cache-based machines.
    223       \item<9-> \small Default: Wicker and Skamarock scheme (5th order)\\ \scriptsize
    224          \onslide<9-> - Much better accuracy than Piacsek Williams\\
    225          \onslide<10-> - Much simpler algorithm than Bott-Chlond\\
    226          \onslide<11-> - Requires additional ghost layers\\
    227          \onslide<12-> - Adds additional numerical dissipation
     205   
     206      \item<1-> \small Bott-Chlond\\ \scriptsize
     207         \onslide<1-> - Chlond (1994)\\
     208         \onslide<2-> - Monotone, positive definit. Can only be used for scalars\\
     209         \onslide<3-> - Conserves sharp gradients\\
     210         \onslide<4-> - Numerically expensive\\
     211         \onslide<5-> - Not optimized for use on cache-based machines.
     212      \par\bigskip
     213      \item<6-> \small Default: Wicker and Skamarock scheme (5th order)\\ \scriptsize
     214         \onslide<6-> - Much better accuracy than Piacsek Williams\\
     215         \onslide<7-> - Much simpler algorithm than Bott-Chlond\\
     216         \onslide<8-> - Requires additional ghost layers\\
     217         \onslide<9-> - Adds additional numerical dissipation
    228218         
    229219   \end{itemize}
     
    286276
    287277
    288    \textbf{Finite difference approxiamtion of 6$^{\text{th}}$ order}
     278   \textbf{Finite difference approximation of 6$^{\text{th}}$ order}
    289279   \begin{tikzpicture}[scale=2]
    290280      \tikzstyle{ann} = [draw=none,fill=none,right]
     
    305295      \matrix[nodes={draw, thick, fill=blue!40}, row sep=0.3cm,column sep=0.5cm]{
    306296      \node[rectangle, rounded corners]{
    307       $\frac{-1}{60} \left| u_{i-\frac{1}{2}} \right| \left( 10 (\Psi_i -
     297      $-\frac{1}{60} \left| u_{i-\frac{1}{2}} \right| \left( 10 (\Psi_i -
    308298      \Psi_{i-1}) - 5 (\Psi_{i+1} - \Psi_{i-2}) + (\Psi_{i+2} - \Psi_{i-3}) \right)$
    309299       };\\
     
    341331\begin{frame}
    342332   \frametitle{Advection Methods – Wicker/Skamarock (IV)}
    343    \footnotesize
    344    
    345    \begin{columns}[T]
    346       \begin{column}{0.1\textwidth}
    347             \begin{tikzpicture}[scale=2]
    348       \tikzstyle{ann} = [draw=none,fill=none,right]
    349       \matrix[nodes={draw, thick, fill=blue!40}, row sep=0.3cm,column sep=0.5cm]{
    350       \node[draw=none,fill=none]{
    351       $F^{\text{5th}}_{i-\frac{1}{2}} = F^{\text{6th}}_{i-\frac{1}{2}}$
    352       };\\
    353        };
    354    \end{tikzpicture}
    355       \end{column}
    356       \begin{column}{0.8\textwidth}
    357             \begin{tikzpicture}[scale=2]
     333   \footnotesize   
     334
     335   \begin{tikzpicture}[scale=2]
    358336      \tikzstyle{ann} = [draw=none,fill=none,right]
    359337      \matrix[nodes={draw, thick, fill=blue!40}, row sep=0.3cm,column sep=0.5cm]{
    360338      \node[rectangle, rounded corners]{
    361       $- \frac{1}{60} \left| u_{i-\frac{1}{2}} \right| \left( 10 (\Psi_i - \Psi_{i-1}) -
    362       5 (\Psi_{i+1} - \Psi_{i-2}) + (\Psi_{i+2} - \Psi_{i-3}) \right)$
     339      $F^{\text{5th}}_{i-\frac{1}{2}} = F^{\text{6th}}_{i-\frac{1}{2}}
     340         - \frac{1}{60} \left| u_{i-\frac{1}{2}} \right| \left( 10 (\Psi_i - \Psi_{i-1}) -
     341            5 (\Psi_{i+1} - \Psi_{i-2}) + (\Psi_{i+2} - \Psi_{i-3}) \right)$
    363342       };\\
    364343       };
    365344   \end{tikzpicture}
    366       \end{column}
    367    \end{columns}
    368345   
    369346   \begin{columns}[T]
     
    415392            1. Momentum equations are solved without the pressure term giving a
    416393            provisional velocity field which is not free of divergence.\\
     394            \vspace{2mm}
    417395            $\overline{u}^{t+\Delta t}_{i_{\mathrm{prov}}} = \overline{u}^t_i +
    418396            \Delta t \left( - \frac{\partial}{\partial x_k} \overline{u}^t_k
     
    421399            + g \frac{\overline{\theta^*}^t}{\theta_0} \delta_{i3}
    422400            - \frac{\partial}{\partial x_k} \overline{u'_k u'_i}^t \right)$\\
    423             \vspace{3mm}
     401            \vspace{2mm}
    424402            \onslide<3-> 2. Assign all remaining divergences to the (perturbation)
    425403            pressure $p^*$ so that the new corrected velocity field is the sum of the
    426404            provisional, divergent field and the perturbation pressure term.\\
     405            \vspace{2mm}
    427406            $\overline{u}^{t+\Delta t}_{i} =
    428             \overline{u}^{t+\Delta t}_{i_{\mathrm{prov}}} -
    429             \frac{\Delta t}{\rho_0} \frac{\partial \overline{p^*}^t}{\partial x_i}$\\
    430             \vspace{3mm}
     407            \overline{u}^{t+\Delta t}_{i_{\mathrm{prov}}} +
     408            \Delta t \left(-\frac{1}{\rho_0} \frac{\partial \overline{p^*}^t}{\partial x_i} \right)$\\
     409            \vspace{2mm}
    431410            \onslide<4-> 3. The divergence operator is applied to this equation.
    432411            Demanding a corrected velocity field free of divergence, this leads to a
    433412            Poisson equation for the perturbation pressure.\\
     413            \vspace{2mm}
    434414            $\frac{\partial^2 \overline{p^*}^t}{\partial x_i^2} = \frac{\rho_0}
    435415            {\Delta t} \frac{\partial \overline{u}_{i_{\mathrm{prov}}}^{t + \Delta t}}
    436416            {\partial x_i}$\\
    437             \vspace{3mm}
     417            \vspace{2mm}
    438418            \onslide<5-> 4. After solving the Poisson equation, the final velocity field
    439419            is \\
     
    462442         \item<7-> Due to non-locality of the FFT, transpositions are required
    463443         on parallel computers
    464          \item<8-> Usage requires periodic boundary conditions and uniform grids
     444         \item<8-> Requires periodic boundary conditions and uniform grids
    465445         along $x$ and $y$
    466446      \end{itemize}
  • palm/trunk/TUTORIAL/SOURCE/parallelization.tex

    r973 r1226  
    1515\usepackage{tikz}
    1616\usetikzlibrary{shapes,arrows,positioning}
    17 \usetikzlibrary{decorations.markings}             %neues paket
    18 \usetikzlibrary{decorations.pathreplacing}        %neues paket
     17%\usetikzlibrary{decorations.markings}             %neues paket
     18%\usetikzlibrary{decorations.pathreplacing}        %neues paket
    1919\def\Tiny{\fontsize{4pt}{4pt}\selectfont}
    2020\usepackage{amsmath}
     
    7676         \onslide<5->each PE solves the equations for a different subdomain of the total domain
    7777         \begin{center}
    78             \includegraphics[width=0.5\textwidth]{parallelization_figures/subdomain.png}
     78            \includegraphics[width=0.3\textwidth]{parallelization_figures/subdomain_folie2.png}
    7979         \end{center}
    8080         \onslide<7->each PE only knows the variable values from its subdomain, communication / data exchange between PEs is necessary\\
     
    109109         \node (center) at (0,1) {};
    110110         \onslide<2-> \node (Network) at (-3.5,1) [draw, ellipse,fill=green!20] {Network};
    111          \node (dis_mem) at (-3.5,-1) [text width=0.28\textwidth] {\footnotesize \textbf{distributed} memory\\(Cray-T3E)};
     111         \node (dis_mem) at (-3.5,-1) [text width=0.28\textwidth] {\footnotesize \textbf{distributed} memory\\(Cray-XC30)};
    112112         \onslide<3-> \node (add_mem) at (3.5,1) [rectangle, draw] {adressable memory};
    113113         \node (sha_mem) at (3.5,-1) [text width=0.35\textwidth] {\footnotesize \textbf{shared} memory\\(SGI-Altix, multicore PCs)};
     
    116116         \onslide<6-> \node (clustered_systems) at (0,-3) [draw, text width=0.15\textwidth] {clustered systems};
    117117         \node (cs_info) at (0,-4.2) [text width=0.4\textwidth] {\footnotesize (IBM-Regatta, Linux-Cluster,
    118 NEC-SX, SGI-ICE, Cray-XE6)};
     118            NEC-SX, SGI-ICE, Cray-XC)};
    119119
    120120% Adressable memory node (big)
     
    248248   \vspace{2mm}
    249249   \begin{itemize}
    250       \item<10-> Alternatively, a 1D-decomposition along $x$ or $y$ may be used in case of slow networks, but this generally doesn't scale for processor numbers $>$ 256.
     250      \item<10-> Alternatively, a 1D-decomposition along $x$ or $y$ may be used.
    251251      \vspace{2mm}
    252252      \item<11-> Message passing is realized using MPI.
    253253      \vspace{2mm}
    254254      \item<12-> OpenMP parallelization as well as mixed usage of OpenMP and
    255 MPI is also possible. (OpenMP tests and optimization is under way)
     255                    MPI is also possible.
    256256   \end{itemize}
    257257\end{frame}
     
    285285         \onslide<5-> \includegraphics[width=0.8\textwidth]{parallelization_figures/fft.png} \end{center}
    286286         \vspace{-4mm}
    287          \textbf{Example: transpositions for solving the Poisson\\ \hspace{4em}equation}
     287         \textbf{Example: transpositions for solving the Poisson\\ \hspace{4.1em}equation}
    288288      \end{column}
    289289   \end{columns}   
     
    302302                 \item<3-> If a normal unix-kernel operating system (not a micro-kernel) is running on each CPU, then there migth be a speed-up of the code, if 1-2 PEs less than the total number of PEs on the node are used.
    303303                 \item<4-> On machines with a comparably slow network, a 1D-decomposition (along $x$) should be used, because then only two transpositions have to be carried out by the pressure solver. A 1D-decomposition is automatically used for NEC-machines (e.g.  \texttt{-h necriam}). The virtual processor grid to be used can be set manually by d3par-parameters \texttt{npex} and \texttt{npey}.
    304             \item<6-> Using the Open-MP parallelization does not yield any advantage over using a pure domain decomposition with MPI (contrary to expectations, it mostly slows down the computational speed), but this may change on cluster systems for very large number of processors ($>$10000?).\\       
     304            \item<5-> Using the Open-MP parallelization does not yield any advantage over using a pure domain decomposition with MPI (contrary to expectations, it mostly slows down the computational speed), but this may change on cluster systems for very large number of processors ($>$10000?).\\       
    305305         \end{itemize}
    306306         \begin{center}
    307307         \vspace{-7mm}
    308          \onslide<5-> \includegraphics[width=0.13\textwidth]{parallelization_figures/folie_6.png}
     308         \onslide<4-> \includegraphics[width=0.13\textwidth]{parallelization_figures/folie_6.png}
    309309         \end{center}
    310310      \end{column}
     
    325325                 \quad \texttt{\%modules   ...:mpt:...}
    326326            \vspace{2mm}
    327                  \item<2-> The path to the MPI-library may have to be given in the compiler call, by setting an appropriate option in the configuration file .mrun.config:
    328 
    329                  \quad \texttt{\%lopts  -axW:-cpp:-r8:-nbs:-Vaxlib:\textcolor{blue}{-L:<replace by mpi library path>:-lmpi}}
     327                 \item<3-> The path to the MPI-library may have to be given in the compiler call, by setting an appropriate option in the configuration file .mrun.config:
     328
     329                 \quad \texttt{\%lopts  -r8:-nbs:\textcolor{blue}{-L:<replace by mpi library path>:-lmpi}}
    330330            \vspace{2mm}
    331                  \item<3-> All MPI calls must be within\\
     331                 \item<4-> All MPI calls must be within\\
    332332                 \quad \texttt{CALL MPI\_INIT( ierror )}\\
    333333                 \quad $\vdots$\\
     
    417417            \quad \texttt{CALL MPI\underline{\ }TYPE\underline{\ }COMMIT( type\underline{\ }yz(0), ierr )   ! see file init\underline{\ }pegrid.f90}\\
    418418            \ \\
    419             \quad \texttt{CALL MPI\underline{\ }SENDRECV( ar(nzb,nys-ngl,nxl), type\underline{\ }yz(grid\underline{\ }level), MPI\underline{\ }REAL, pleft, 0, ...}\\
     419            \quad \texttt{CALL MPI\underline{\ }SENDRECV( ar(nzb,nys-ngl,nxl), 1, type\underline{\ }yz(grid\underline{\ }level), pleft, 0, ...}\\
    420420         \end{itemize}       
    421421\end{frame}
     
    468468         \onslide<4-> \textbf{General comment:}
    469469         \begin{itemize}
    470             \item Parallel I/O on a large number of files ($>$1000) currently may cause severe file system problems (e.g. on Lustre file systems).\\ \textbf{Workaround:} reduce the maximum number of parallel I/O streams\\ \hspace{5.75em}(see \texttt{mrun}-options)
     470            \item Parallel I/O on a large number of files ($>$1000) currently may cause severe file system problems (e.g. on Lustre file systems).\\ \textbf{Workaround:} reduce the maximum number of parallel I/O streams\\ \hspace{5.75em}(see \texttt{mrun}-option \texttt{-w})
    471471         \end{itemize}
    472472      \end{column}
     
    476476
    477477
    478 % Folie 13
     478%Folie 13
    479479\begin{frame}
    480480   \frametitle{PALM Parallel I/O for 2D/3D Data}
     
    492492\end{frame}
    493493
    494 % Folie 14
     494%Folie 14
    495495\begin{frame}
    496496   \frametitle{Performance Examples (I)}
     
    520520\end{frame}
    521521
    522 % Folie 15
     522%Folie 15
    523523\begin{frame}
    524524   \frametitle{Performance Examples (II)}
     
    542542\end{frame}
    543543
     544%Folie 16
     545\begin{frame}
     546   \frametitle{Performance Examples (III)}
     547   \begin{itemize}
     548      \item Simulation with $2160^3$ grid points  ($\sim$ 2 TByte memory)
     549   \end{itemize}
     550      \begin{columns}[T]
     551         \begin{column}{0.5\textwidth}
     552            \includegraphics[scale=0.3]{parallelization_figures/perf_4.png} \\
     553            \scriptsize
     554            \quad Cray-XC30, HLRN-III, Hannover\\
     555            \quad (2D-domain decomposition)
     556         \end{column}
     557         \begin{column}{0.5\textwidth}
     558            \vspace{35mm}
     559            \onslide<2-> currently largest simulation feasible on that system:\\
     560            \ \\
     561            $5600^3$ grid points
     562         \end{column}
     563      \end{columns}
     564\end{frame}
     565
    544566\end{document}
  • palm/trunk/TUTORIAL/SOURCE/program_structure.tex

    r945 r1226  
    8484   \frametitle{PALM Code: General Features}
    8585   \begin{itemize}
    86       \item<2->{PALM is written in FORTRAN90. Current version number is 3.8.}
     86      \item<2->{PALM is written in FORTRAN90. Current version number is 3.9.}
    8787      \item<3->{With some very minor exceptions, the code is using the FORTRAN standard, so it should compile without error on any FORTRAN90/95 compiler.}
    8888      \item<4->{Data handling between subroutines is mostly done using FORTRAN90-modules instead of using parameter lists.
     
    107107         \end{lstlisting}
    108108      \end{minipage}
    109       \mbox{All modules can be found in file .../trunk/SOURCE/modules.f90}}
     109      \mbox{Most modules can be found in file .../trunk/SOURCE/modules.f90}}
    110110   \end{itemize}
    111111\end{frame}
     
    129129   \tikzstyle{white2} = [rectangle, text width=0]
    130130   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=15pt, font=\tiny]
     131   \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.2\textwidth, minimum size=15pt, font=\tiny]
    131132   \tikzstyle{line} = [draw, -]
    132133
     
    134135      \uncover<1->{\node [yellow] (PALM) {PALM};}
    135136      \uncover<1->{\node [white2, right=0.2cm of PALM] (PALMspace) {};}
    136 
    137       \uncover<2->{\node [yellow, below=0.2cm of PALMspace] (localtre) {local\_tremain\_ini};}
    138       \path<2-> [line] (PALM.south) |- (localtre.west);
    139 
    140       \uncover<3->{\node [yellow, below=0.05cm of localtre] (initdvrp) {init\_dvrp\_logging};}
    141       \path<3-> [line] (PALM.south) |- (initdvrp.west);
    142 
    143       \uncover<4->{\node [yellow, below=0.05cm of initdvrp] (parin) {parin};}
    144       \path<4-> [line] (PALM.south) |- (parin.west);
    145       \uncover<4->{\node [white, right=0.2cm of parin] (parinspace) {};}
     137     
     138      \uncover<2->{\node [yellow, below=0.2cm of PALMspace] (initcoup) {init\_coupling};}
     139      \path<2-> [line] (PALM.south) |- (initcoup.west);
     140
     141      \uncover<3->{\node [yellow, below=0.05cm of initcoup] (localtre) {local\_tremain\_ini};}
     142      \path<3-> [line] (PALM.south) |- (localtre.west);
     143
     144      \uncover<4->{\node [yellow, below=0.05cm of localtre] (initdvrp) {init\_dvrp\_logging};}
     145      \path<4-> [line] (PALM.south) |- (initdvrp.west);
     146
     147      \uncover<5->{\node [yellow, below=0.05cm of initdvrp] (parin) {parin};}
     148      \path<5-> [line] (PALM.south) |- (parin.west);
     149      \uncover<5->{\node [white, right=0.2cm of parin] (parinspace) {};}
    146150
    147151         \uncover<5->{\node [yellow, below=0cm of parinspace] (readvar) {read\_var\_list};}
    148152         \path<5-> [line,dashed] (parin.south) |- (readvar.west);
    149153
    150          \uncover<6->{\node [yellow, below=0.05cm of readvar] (packageparin) {package\_parin};}
    151          \path<6-> [line,dashed] (parin.south) |- (packageparin.west);
    152 
    153          \uncover<7->{\node [yellow, below=0.05cm of packageparin] (userparin) {user\_parin};}
    154          \path<7-> [line] (parin.south) |- (userparin.west);
    155 
    156       \uncover<8->{\node [yellow, below=1.4cm of parin] (initpeg) {init\_pegrid};}
    157       \path<8-> [line] (PALM.south) |- (initpeg.west);
    158       \uncover<8->{\node [white, right=0.2cm of initpeg] (initpegspace) {};}
    159 
    160          \uncover<9->{\node [yellow, below=0cm of initpegspace] (poisfftinit) {poisfft\_init};}
    161          \path<9-> [line] (initpeg.south) |- (poisfftinit.west);
    162 
    163       \uncover<10->{\node [yellow, below=0.3cm of initpeg] (initgrid) {init\_grid};}
    164       \path<10-> [line] (PALM.south) |- (initgrid.west);
    165 
    166       \uncover<11->{\node [yellow, below=0.05cm of initgrid] (checkpara) {check\_parameters};}
    167       \path<11-> [line] (PALM.south) |- (checkpara.west);
    168 
    169       \uncover<12->{\node [yellow, below=0.05cm of checkpara] (header) {header};}
    170       \path<12-> [line] (PALM.south) |- (header.west);
    171       \uncover<12->{\node [white, right=0.2cm of header] (headerspace) {};}
    172 
    173          \uncover<13->{\node [yellow, below=0cm of headerspace] (userheader) {user\_header};}
    174          \path<13-> [line,dashed] (header.south) |- (userheader.west);
     154         \uncover<5->{\node [yellow, below=0.05cm of readvar] (packageparin) {package\_parin};}
     155         \path<5-> [line,dashed] (parin.south) |- (packageparin.west);
     156
     157          \uncover<5->{\node [green, below=0.05cm of packageparin] (userparin) {user\_parin};}
     158          \path<5-> [line] (parin.south) |- (userparin.west);
     159
     160      \uncover<6->{\node [yellow, below=1.4cm of parin] (initpeg) {init\_pegrid};}
     161      \path<6-> [line] (PALM.south) |- (initpeg.west);
     162      \uncover<6->{\node [white, right=0.2cm of initpeg] (initpegspace) {};}
     163
     164      \uncover<7->{\node [yellow, below=0.05cm of initpeg] (initgrid) {init\_grid};}
     165      \path<7-> [line] (PALM.south) |- (initgrid.west);
     166      \uncover<7->{\node [white, right=0.2cm of initgrid] (initgridspace) {};}
     167     
     168         \uncover<7->{\node [green, below=0cm of initgridspace] (userinitgrid) {user\_init\_grid};}
     169         \path<7-> [line,dashed] (initgrid.south) |- (userinitgrid.west);
    175170
    176171      \uncover<1->{\node [white, below=5.8cm of PALM] (continu2) {};}
     
    194189   \tikzstyle{yellowlarge} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
    195190   \tikzstyle{yellowLarge} = [rectangle, draw, fill=yellow!20, text width=0.43\textwidth, minimum size=13pt, font=\tiny]
     191   \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     192   \tikzstyle{green1} = [rectangle, draw, fill=green!20, text width=0.23\textwidth, minimum size=13pt, font=\tiny]
    196193   \tikzstyle{line} = [draw, -]
    197194
     
    200197      \uncover<1->{\node [white2, below=0.26cm of contino1] (PALM) {};}
    201198
    202       \uncover<2->{\node [yellow, right=0.2cm of PALM] (init3d) {init\_3d\_model};}
    203       \path<2-> [line] (PALM.south) |- (init3d.west);
    204       \uncover<2->{\node [white, right=0.05cm of init3d] (init3dspace) {};}
    205       \uncover<2->{\node [whitelarge, right=0.05cm of init3d] (init3dspacelarge) {};}
    206 
    207          \uncover<3->{\node [yellowLarge, below=-0.05cm of init3dspacelarge] (init1d) {init\_1d\_model (calls various subroutines)};}
    208          \path<3-> [line,dashed] (init3d.south) |- (init1d.west);
     199      \uncover<1->{\node [yellow, right=0.2cm of PALM] (checkpara) {check\_parameters};}
     200      \path<1-> [line] (PALM.south) |- (checkpara.west);
     201      \uncover<1->{\node [white, right=0.2cm of checkpara] (checkparaspace) {};}
     202      \uncover<1->{\node [white, right=0.365cm of checkpara] (checkparaspacelarge) {};}
     203 
     204          \uncover<2->{\node [green1, below=0cm of checkparaspacelarge] (usercheckdatapr) {user\_check\_data\_output\_pr};}
     205          \path<2-> [line] (checkpara.south) |- (usercheckdatapr.west);
     206
     207          \uncover<2->{\node [green, below=0.52cm of checkparaspace] (usercheckdata) {user\_check\_data\_output};}
     208          \path<2-> [line] (checkpara.south) |- (usercheckdata.west);
     209
     210          \uncover<2->{\node [yellow, below=0.05cm of usercheckdata] (initmasks) {init\_masks};}
     211          \path<2-> [line,dashed] (checkpara.south) |- (initmasks.west);
     212
     213             \uncover<2->{\node [green, right=0.2cm of initmasks] (usercheckdata2) {user\_check\_data\_output};}
     214             \path<2-> [line] (initmasks.east) |- (usercheckdata2.west);
     215
     216          \uncover<2->{\node [yellow, below=0.05cm of initmasks] (usercheckpara) {user\_check\_parameters};}
     217          \path<2-> [line] (checkpara.south) |- (usercheckpara.west);
     218
     219      \uncover<3->{\node [yellow, below=1.9cm of checkpara] (init3d) {init\_3d\_model};}
     220      \path<3-> [line] (PALM.south) |- (init3d.west);
     221      \uncover<3->{\node [white, right=0.05cm of init3d] (init3dspace) {};}
     222      \uncover<3->{\node [whitelarge, right=0.05cm of init3d] (init3dspacelarge) {};}
     223
     224         \uncover<4->{\node [yellowLarge, below=-0.05cm of init3dspacelarge] (init1d) {init\_1d\_model (calls various subroutines)};}
     225         \path<4-> [line,dashed] (init3d.south) |- (init1d.west);
    209226
    210227         \uncover<4->{\node [yellow, below=0.5cm of init3dspace] (initslope) {init\_slope};}
    211228         \path<4-> [line,dashed] (init3d.south) |- (initslope.west);
    212229
    213          \uncover<5->{\node [yellow, below=0.05cm of initslope] (disturbh) {disturb\_heatflux};}
    214          \path<5-> [line,dashed] (init3d.south) |- (disturbh.west);
    215 
    216          \uncover<6->{\node [yellow, below=0.05cm of disturbh] (initrank) {init\_rankine};}
    217          \path<6-> [line,dashed] (init3d.south) |- (initrank.west);
    218 
    219             \uncover<7->{\node [yellow, right=0.05cm of initrank] (initpt) {init\_pt\_anomaly};}
    220             \path<7-> [line] (initrank.east) -- (initpt.west);
    221 
    222          \uncover<8->{\node [yellow, below=0.05cm of initrank] (disturbf) {disturb\_field};}
    223          \path<8-> [line,dashed] (init3d.south) |- (disturbf.west);
    224 
    225             \uncover<9->{\node [yellow, right=0.05cm of disturbf] (pres) {pres};}
    226             \path<9-> [line] (disturbf.east) -- (pres.west);
    227             \uncover<9->{\node [white, below=-0.05cm of pres] (presspace) {};}
    228 
    229                \uncover<10->{\node [yellowsmall, right=0.05cm of presspace] (poisfft) {poisfft};}
    230                \path<10-> [line] (pres.east) -| (poisfft.north);
    231 
    232                \uncover<11->{\node [yellowsmall, right=0.05cm of poisfft] (sor) {sor};}
    233                \path<11-> [line] (pres.east) -| (sor.north);
    234 
    235                \uncover<12->{\node [yellowsmall, right=0.05cm of sor] (poismg) {poismg};}
    236                \path<12-> [line] (pres.east) -| (poismg.north);
    237 
    238          \uncover<13->{\node [yellow, below=0.4cm of disturbf] (read3d) {read\_3d\_binary};}
    239          \path<13-> [line,dashed] (init3d.south) |- (read3d.west);
    240 
    241             \uncover<14->{\node [yellow, right=0.05cm of read3d] (initdvrp) {init\_dvrp};}
    242             \path<14-> [line] (read3d.east) -- (initdvrp.west);
    243 
    244                \uncover<15->{\node [yellowlarge, right=0.05cm of initdvrp] (initcloud) {init\_cloud\_physics};}
    245                \path<15-> [line] (initdvrp.east) -- (initcloud.west);
    246 
    247          \uncover<16->{\node [yellow, below=0.05cm of read3d] (initpart) {init\_particles};}
    248          \path<16-> [line] (init3d.south) |- (initpart.west);
    249          \uncover<16->{\node [white, right=0.05cm of initpart] (initpartspace) {};}
    250 
    251             \uncover<17->{\node [yellow, below=-0.05cm of initpartspace] (userinitpart) {user\_init\_particles};}
    252             \path<17-> [line] (initpart.south) |- (userinitpart.west);
    253 
    254             \uncover<18->{\node [yellow, below=0.05cm of userinitpart] (sortpart) {sort\_particles};}
    255             \path<18-> [line] (initpart.south) |- (sortpart.west);
    256 
    257             \uncover<19->{\node [yellow, below=0.05cm of sortpart] (dataoutput) {data\_output\_dvrp};}
    258             \path<19-> [line,dashed] (initpart.south) |- (dataoutput.west);
    259 
    260                \uncover<20->{\node [yellow, right=0.05cm of dataoutput] (userdvrp) {user\_dvrp\_coltab};}
    261                \path<20-> [line,dashed] (dataoutput.east) -- (userdvrp.west);
    262 
    263          \uncover<21->{\node [yellow, below=1.45cm of initpart] (initadvec) {init\_advec};}
    264          \path<21-> [line] (init3d.south) |- (initadvec.west);
    265 
    266             \uncover<22->{\node [yellow, right=0.05cm of initadvec] (userinit) {user\_init};}
    267             \path<22-> [line] (initadvec.east) -- (userinit.west);
    268 
    269       \uncover<23->{\node [yellow, below=5.8cm of init3d] (dataout2d) {data\_output\_2d};}
    270       \path<23-> [line,dashed] (PALM.south) |- (dataout2d.west);
    271 
    272          \uncover<24->{\node [yellow, right=0.05cm of dataout2d] (dataout3d) {data\_output\_3d};}
    273          \path<24-> [line] (dataout2d.east) -- (dataout3d.west);
     230         \uncover<4->{\node [green, below=0.05cm of initslope] (userinit3d) {user\_init\_3d\_model};}
     231         \path<4-> [line,dashed] (init3d.south) |- (userinit3d.west);
     232
     233         \uncover<4->{\node [yellow, below=0.05cm of userinit3d] (disturbh) {disturb\_heatflux};}
     234         \path<4-> [line,dashed] (init3d.south) |- (disturbh.west);
     235
     236         \uncover<4->{\node [yellow, below=0.05cm of disturbh] (initrank) {init\_rankine};}
     237         \path<4-> [line,dashed] (init3d.south) |- (initrank.west);
     238
     239            \uncover<4->{\node [yellow, right=0.05cm of initrank] (pres) {pres};}
     240            \path<4-> [line] (initrank.east) -- (pres.west);
     241            \uncover<4->{\node [white, below=-0.05cm of pres] (presspace) {};}
     242
     243               \uncover<4->{\node [yellowsmall, right=0.05cm of presspace] (poisfft) {poisfft};}
     244               \path<4-> [line] (pres.east) -| (poisfft.north);
     245
     246               \uncover<4->{\node [yellowsmall, right=0.05cm of poisfft] (sor) {sor};}
     247               \path<4-> [line] (pres.east) -| (sor.north);
     248
     249               \uncover<4->{\node [yellowsmall, right=0.05cm of sor] (poismg) {poismg};}
     250               \path<4-> [line] (pres.east) -| (poismg.north);
     251
     252         \uncover<4->{\node [yellow, below=0.05cm of initrank] (initpt) {init\_pt\_anomaly};}
     253         \path<4-> [line,dashed] (init3d.south) |- (initpt.west);
     254
     255         \uncover<4->{\node [yellow, below=0.05cm of initpt] (randomfuncini) {random\_function\_ini};}
     256         \path<4-> [line] (init3d.south) |- (randomfuncini.west);
    274257
    275258      \uncover<1->{\node [white2, below=6.6cm of PALM] (continu2) {};}
     
    278261      \uncover<1->{\node [white2, below=6.0cm of PALM] (continu1) {};}
    279262      \path<1-> [line] (PALM.south) |- (continu1.north);
     263
     264      \uncover<4->{\node [white2, below=6.6cm of checkpara] (continu3) {};}
     265      \path<4-> [line,dashed] (init3d.south) |- (continu3.north);
     266
     267      \uncover<4->{\node [white2, below=6.0cm of checkpara] (continu4) {};}
     268      \path<4-> [line] (init3d.south) |- (continu4.north);
     269
    280270   \end{tikzpicture}
    281271\end{frame}
    282272
    283 
    284273%Folie 07
    285274\begin{frame}
    286275   \frametitle{PALM Flow Chart (III)}
     276
     277   \tikzstyle{white} = [rectangle, text width=0.2\textwidth, font=\tiny]
     278   \tikzstyle{whitelarge} = [rectangle, text width=0.43\textwidth, font=\tiny]
     279   \tikzstyle{whitesmall} = [rectangle, text width=0.08\textwidth, minimum size=13pt, font=\tiny]
     280   \tikzstyle{white2} = [rectangle, text width=0]
     281   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     282   \tikzstyle{yellowsmall} = [rectangle, draw, fill=yellow!20, text width=0.08\textwidth, minimum size=13pt, font=\tiny]
     283   \tikzstyle{yellowlarge} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     284   \tikzstyle{yellowLarge} = [rectangle, draw, fill=yellow!20, text width=0.43\textwidth, minimum size=13pt, font=\tiny]
     285   \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     286   \tikzstyle{green1} = [rectangle, draw, fill=green!20, text width=0.23\textwidth, minimum size=13pt, font=\tiny]
     287   \tikzstyle{line} = [draw, -]
     288
     289   \begin{tikzpicture}[auto, node distance=0]
     290      \uncover<1->{\node [white2] (contino1) {};}
     291      \uncover<1->{\node [white2, below=0.26cm of contino1] (PALM) {};}
     292
     293       \uncover<1->{\node [yellow, right=0.2cm of PALM] (init3d) {init\_3d\_model};}
     294       \path<1-> [line] (PALM.south) |- (init3d.west);
     295       \uncover<1->{\node [white, right=0.05cm of init3d] (init3dspace) {};}
     296       \uncover<1->{\node [whitelarge, right=0.05cm of init3d] (init3dspacelarge) {};}
     297
     298         \uncover<2->{\node [yellow, below=0.05cm of init3dspace] (read3d) {read\_3d\_binary};}
     299         \path<2-> [line,dashed] (init3d.south) |- (read3d.west);
     300
     301            \uncover<2->{\node [green, right=0.05cm of read3d] (userreadrestart) {user\_read\_restart\_data};}
     302            \path<2-> [line] (read3d.east) -- (userreadrestart.west);
     303
     304         \uncover<2->{\node [yellow, below=0.5cm of init3dspace] (initslope) {init\_slope};}
     305         \path<2-> [line,dashed] (init3d.south) |- (initslope.west);
     306
     307         \uncover<2->{\node [yellow, below=0.05cm of initslope] (initadvec) {init\_advec};}
     308         \path<2-> [line] (init3d.south) |- (initadvec.west);
     309
     310         \uncover<2->{\node [yellow, below=0.05cm of initadvec] (distfield) {disturb\_field};}
     311         \path<2-> [line,dashed] (init3d.south) |- (distfield.west);
     312
     313         \uncover<2->{\node [yellow, below=0.05cm of distfield] (pres) {pres};}
     314         \path<2-> [line,dashed] (init3d.south) |- (pres.west);
     315         \uncover<2->{\node [white, below=-0.05cm of pres] (presspace) {};}
     316
     317            \uncover<2->{\node [yellowsmall, right=0.05cm of presspace] (poisfft) {poisfft};}
     318            \path<2-> [line] (pres.east) -| (poisfft.north);
     319
     320            \uncover<2->{\node [yellowsmall, right=0.05cm of poisfft] (sor) {sor};}
     321            \path<2-> [line] (pres.east) -| (sor.north);
     322
     323            \uncover<2->{\node [yellowsmall, right=0.05cm of sor] (poismg) {poismg};}
     324            \path<2-> [line] (pres.east) -| (poismg.north);
     325
     326         \uncover<2->{\node [green, below=0.05cm of pres] (userinitplant) {user\_init\_plant\_canopy};}
     327         \path<2-> [line,dashed] (init3d.south) |- (userinitplant.west);
     328
     329         \uncover<2->{\node [yellow, below=0.05cm of userinitplant] (initdvrp) {init\_dvrp};}
     330         \path<2-> [line,dashed] (init3d.south) |- (initdvrp.west);
     331
     332         \uncover<2->{\node [yellow, below=0.05cm of initdvrp] (initocean) {init\_ocean};}
     333         \path<2-> [line,dashed] (init3d.south) |- (initocean.west);
     334
     335            \uncover<2->{\node [yellow, right=0.05cm of initocean] (eqnstsea) {eqn\_state\_seawater};}
     336            \path<2-> [line] (initocean.east) -| (eqnstsea.west);
     337
     338         \uncover<2->{\node [yellow, below=0.05cm of initocean] (initcloudphys) {init\_cloud\_physics};}
     339         \path<2-> [line,dashed] (init3d.south) |- (initcloudphys.west);
     340
     341        \uncover<2->{\node [yellow, below=0.05cm of initcloudphys] (lpminit) {lpm\_init};}
     342        \path<2-> [line,dashed] (init3d.south) |- (lpminit.west);
     343        \uncover<2->{\node [white, right=0.2cm of lpminit] (lpminspace) {};}
     344
     345            \uncover<2->{\node [yellow, below=0.05cm of lpminspace] (lpmreadrestart) {lpm\_read\_restart\_file};}
     346            \path<2-> [line,dashed] (lpminit.south) |- (lpmreadrestart.west);
     347
     348            \uncover<2->{\node [green, below=0.05cm of lpmreadrestart] (userlpmin) {user\_lpm\_init};}
     349            \path<2-> [line] (lpminit.south) |- (userlpmin.west);
     350
     351      \uncover<1->{\node [white2, below=6.6cm of PALM] (continu2) {};}
     352      \path<1-> [line,dashed] (contino1.south) |- (continu2.north);
     353
     354      \uncover<1->{\node [white2, below=6.0cm of PALM] (continu1) {};}
     355      \path<1-> [line] (PALM.south) |- (continu1.north);
     356
     357      \uncover<2->{\node [white2, below=6.6cm of init3d] (continu3) {};}
     358      \path<2-> [line,dashed] (init3d.south) |- (continu3.north);
     359
     360      \uncover<2->{\node [white2, below=6.0cm of init3d] (continu4) {};}
     361      \path<2-> [line] (init3d.south) |- (continu4.north);
     362
     363   \end{tikzpicture}
     364\end{frame}
     365
     366%Folie 08
     367\begin{frame}
     368   \frametitle{PALM Flow Chart (IV)}
     369
     370   \tikzstyle{white} = [rectangle, text width=0.2\textwidth, font=\tiny]
     371   \tikzstyle{whitelarge} = [rectangle, text width=0.43\textwidth, font=\tiny]
     372   \tikzstyle{whitesmall} = [rectangle, text width=0.08\textwidth, minimum size=13pt, font=\tiny]
     373   \tikzstyle{white2} = [rectangle, text width=0]
     374   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     375   \tikzstyle{yellowsmall} = [rectangle, draw, fill=yellow!20, text width=0.08\textwidth, minimum size=13pt, font=\tiny]
     376   \tikzstyle{yellowlarge} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     377   \tikzstyle{yellowLarge} = [rectangle, draw, fill=yellow!20, text width=0.43\textwidth, minimum size=13pt, font=\tiny]
     378   \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     379   \tikzstyle{green1} = [rectangle, draw, fill=green!20, text width=0.23\textwidth, minimum size=13pt, font=\tiny]
     380   \tikzstyle{line} = [draw, -]
     381
     382   \begin{tikzpicture}[auto, node distance=0]
     383      \uncover<1->{\node [white2] (contino1) {};}
     384      \uncover<1->{\node [white2, below=0.26cm of contino1] (PALM) {};}
     385
     386       \uncover<2->{\node [yellow, right=0.2cm of PALM] (init3d) {init\_3d\_model};}
     387       \path<2-> [line] (PALM.south) |- (init3d.west);
     388       \uncover<2->{\node [white, right=0.05cm of init3d] (init3dspace) {};}
     389       \uncover<2->{\node [whitelarge, right=0.05cm of init3d] (init3dspacelarge) {};}
     390
     391       \uncover<3->{\node [yellow, below=0.05cm of init3dspace] (lpminit) {lpm\_init};}
     392       \path<3-> [line,dashed] (init3d.south) |- (lpminit.west);
     393       \uncover<3->{\node [white, right=0.2cm of lpminit] (lpminspace) {};}
     394
     395            \uncover<4->{\node [yellow, below=0.05cm of lpminspace] (lpmsortar) {lpm\_sort\_arrays};}
     396            \path<4-> [line,dashed] (lpminit.south) |- (lpmsortar.west);
     397
     398            \uncover<5->{\node [yellow, below=0.05cm of lpmsortar] (dataoutpdvrp) {data\_output\_dvrp};}
     399            \path<5-> [line,dashed] (lpminit.south) |- (dataoutpdvrp.west);
     400            \uncover<5->{\node [white, right=0.2cm of dataoutpdvrp] (dataoutpdvrpspace) {};}
     401
     402               \uncover<6->{\node [green, below=0.05cm of dataoutpdvrpspace] (usercoltap) {user\_dvrp\_coltab};}
     403               \path<6-> [line,dashed] (dataoutpdvrp.south) |- (usercoltap.west);
     404
     405               \uncover<7->{\node [green, below=0.05cm of usercoltap] (userdataoutdvrp) {user\_data\_output\_dvrp};}
     406               \path<7-> [line] (dataoutpdvrp.south) |- (userdataoutdvrp.west);
     407
     408       \uncover<8->{\node [green, below=1cm of lpminit] (userinit) {user\_init};}
     409       \path<8-> [line] (init3d.south) |- (userinit.west);
     410
     411       \uncover<9->{\node [yellow, below=2.3cm of init3d] (header) {header};}
     412       \path<9-> [line] (PALM.south) |- (header.west);
     413
     414          \uncover<10->{\node [green, right=0.05cm of header] (userheader) {user\_header};}
     415          \path<10-> [line] (header.east) |- (userheader.west);
     416
     417       \uncover<11->{\node [yellow, below=0.05cm of header] (dataoutput2d) {data\_output\_2d};}
     418       \path<11-> [line,dashed] (PALM.south) |- (dataoutput2d.west);
     419
     420          \uncover<12->{\node [green, right=0.05cm of dataoutput2d] (userdataoutput2d) {user\_data\_output\_2d};}
     421          \path<12-> [line] (dataoutput2d.east) |- (userdataoutput2d.west);
     422
     423       \uncover<13->{\node [yellow, below=0.05cm of dataoutput2d] (dataoutput3d) {data\_output\_3d};}
     424       \path<13-> [line,dashed] (PALM.south) |- (dataoutput3d.west);
     425
     426          \uncover<14->{\node [green, right=0.05cm of dataoutput3d] (userdataoutput3d) {user\_data\_output\_3d};}
     427          \path<14-> [line] (dataoutput3d.east) |- (userdataoutput3d.west);
     428
     429       \uncover<15->{\node [yellow, below=0.05cm of dataoutput3d] (timeintegr) {time\_integration};}
     430       \path<15-> [line] (PALM.south) |- (timeintegr.west);
     431       \uncover<15->{\node [white, right=0.2cm of timeintegr] (timeintspace) {};}
     432
     433          \uncover<16->{\node [yellow, below=0.05cm of timeintspace] (runcontr) {run\_control};}
     434          \path<16-> [line] (timeintegr.south) |- (runcontr.west);
     435          \uncover<16->{\node [white, right=0.2cm of runcontr] (runcontrspace) {};}
     436
     437             \uncover<17->{\node [yellow, below=0.05cm of runcontrspace] (flowstat1) {flow\_statistics};}
     438             \path<17-> [line,dashed] (runcontr.south) |- (flowstat1.west);
     439
     440                \uncover<18->{\node [green, right=0.05cm of flowstat1] (userstat1) {user\_statistics};}
     441                \path<18-> [line] (flowstat1.east) |- (userstat1.west);
     442
     443          \uncover<19->{\node [yellow, below=0.5cm of runcontr] (surfcoup) {surface\_coupler};}
     444          \path<19-> [line,dashed] (timeintegr.south) |- (surfcoup.west);
     445
     446
     447      \uncover<1->{\node [white2, below=6.6cm of PALM] (continu2) {};}
     448      \path<1-> [line,dashed] (contino1.south) |- (continu2.north);
     449
     450      \uncover<1->{\node [white2, below=6.0cm of PALM] (continu1) {};}
     451      \path<1-> [line] (PALM.south) |- (continu1.north);
     452
     453   \end{tikzpicture}
     454\end{frame}
     455
     456
     457%Folie 09
     458\begin{frame}
     459   \frametitle{PALM Flow Chart (V)}
    287460
    288461   \tikzstyle{white} = [rectangle, text width=0.2\textwidth, font=\tiny]
     
    294467   \tikzstyle{yellowlarge} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=12pt, font=\tiny]
    295468   \tikzstyle{yellowLarge} = [rectangle, draw, fill=yellow!20, text width=0.3\textwidth, minimum size=12pt, font=\tiny]
     469   \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     470   \tikzstyle{green1} = [rectangle, draw, fill=green!20, text width=0.23\textwidth, minimum size=13pt, font=\tiny]
     471   \tikzstyle{greenLarge} = [rectangle, draw, fill=green!20, text width=0.3\textwidth, minimum size=12pt, font=\tiny]
    296472   \tikzstyle{line} = [draw, -]
    297473   \tikzstyle{linered} = [draw, color=red, -]
     
    318494         \path<1-> [line] (timeintegr.south) |- (timestep.west);
    319495
    320          \uncover<1->{\node [yellow, below=0.05cm of timestep] (runcontrol) {run\_control};}
    321          \path<1-> [line] (timeintegr.south) |- (runcontrol.west);
    322 
    323             \uncover<1->{\node [yellow, right=0.05cm of runcontrol] (flowstatistics) {flow\_statistics};}
    324             \path<1-> [line] (runcontrol.east) -- (flowstatistics.west);
    325 
    326          \uncover<1->{\node [yellowLarge, below=0.95cm of timeintegrspacelarge] (useractions) {user\_actions (before\_timestep)};}
     496            \uncover<1->{\node [yellow, right=0.05cm of timestep] (globminmax) {global\_min\_max};}
     497            \path<1-> [line] (timestep.east) |- (globminmax.west);
     498
     499         \uncover<1->{\node [greenLarge, below=0.5cm of timeintegrspacelarge] (useractions) {user\_actions (before\_timestep)};}
    327500         \path<1-> [line] (timeintegr.south) |- (useractions.west);
    328501
     
    330503         \path<1-> [line] (timeintegr.south) |- (timestepscheme.west);
    331504
    332          \uncover<1->{\node [Bigbox, below=1.75cm of timeintegrspacebox] (bigbox) {};}
     505         \uncover<1->{\node [Bigbox, below=1.3cm of timeintegrspacebox] (bigbox) {};}
    333506%         \path<1-> [line] (timeintegr.south) |- (bigbox.west);
    334          \uncover<1->{\node [white, below=2cm of timeintegrline] (boxlinespace) {};}
    335          \path<1-> [line] (timeintegrline.south) |- (boxlinespace.north);
    336 
    337             \uncover<1->{\node [yellowLarge, below=0.4cm of timestepscheme] (prognosticequno) {prognostic\_equations\_noopt};}
    338             \uncover<1->{\node [yellowLarge, right=0.05cm of prognosticequno] (prognosticequca) {prognostic\_equations\_cache};}
    339             \uncover<1->{\node [yellowLarge, below=0.05cm of prognosticequca] (prognosticequve) {prognostic\_equations\_vector};}
    340             \uncover<1->{\node [boxinfo, below=-0.025cm of prognosticequno] (Boxinfo) {For details, see \\ PALM Flow Chart (V).};}
     507         \uncover<1->{\node [white, below=1.6cm of timeintegrline] (boxlinespace) {};}
     508         \path<1-> [line] (timeintegr.south) |- (boxlinespace.north);
     509
     510            \uncover<1->{\node [yellowLarge, below=0.4cm of timestepscheme] (prognosticequve) {prognostic\_equations\_vector};}
     511            \uncover<1->{\node [yellowLarge, right=0.05cm of prognosticequve] (prognosticequca) {prognostic\_equations\_cache};}
     512%            \uncover<1->{\node [yellowLarge, below=0.05cm of prognosticequca] (prognosticequve) {prognostic\_equations\_vector};}
     513            \uncover<1->{\node [boxinfo, below=-0.025cm of prognosticequve] (Boxinfo) {For details, see \\ PALM Flow Chart (VIII).};}
    341514            \path<1-> [linered] (boxlinespace.north) -| (prognosticequca.north);
    342             \path<1-> [line] (boxlinespace.north) -| (prognosticequno.north);
     515            \path<1-> [line] (boxlinespace.north) -| (prognosticequve.north);
    343516            \uncover<1->{\node [redsmall, above=0.3cm of prognosticequca] (redadv) {standard\\advection};}
    344517
    345          \uncover<1->{\node [yellow, below=2.7cm of runcontrol] (advecpart) {advec\_particles};}
    346          \path<1-> [line,dashed] (advecpart.west) -| (timeintegr.south);
    347 
    348             \uncover<1->{\node [yellowLarge, right=0.05cm of advecpart] (userpartatt) {user\_particle\_attributes + more};}
    349             \path<1-> [line] (advecpart.east) -- (userpartatt.west);
     518         \uncover<1->{\node [yellow, below=3.1cm of timeintegrspace] (lpm) {lpm};}
     519         \path<1-> [line,dashed] (timeintegr.south) |- (lpm.west) ;
     520
     521            \uncover<1->{\node [yellowLarge, right=0.05cm of lpm] (lpmmore) {user\_lpm\_advec + more};}
     522            \path<1-> [line] (lpm.east) -- (lpmmore.west);
    350523
    351524         \uncover<1->{\node [yellowLarge, below=2.15cm of timestepscheme] (interactiondrop) {interaction\_droplets\_ptq};}
    352525         \path<1-> [line,dashed] (interactiondrop.west) -| (timeintegr.south);
    353526
    354          \uncover<1->{\node [yellow, below=0.535cm of advecpart] (asselinfilter) {asselin\_filter};}
    355          \path<1-> [line,dashed] (asselinfilter.west) -| (timeintegr.south);
    356 
    357          \uncover<1->{\node [yellow, below=0.05cm of asselinfilter] (swaptimelevel) {swap\_timelevel};}
     527         \uncover<1->{\node [yellow, below=0.65cm of lpm] (boundconds) {boundary\_conds};}
     528         \path<1-> [line,dashed] (boundconds.west) -| (timeintegr.south);
     529
     530         \uncover<1->{\node [yellow, below=0.05cm of boundconds] (swaptimelevel) {swap\_timelevel};}
    358531         \path<1-> [line] (swaptimelevel.west) -| (timeintegr.south);
    359532
    360             \uncover<1->{\node [yellow, right=0.05cm of swaptimelevel] (boundaryconds) {boundary\_conds};}
    361             \path<1-> [line] (swaptimelevel.east) -- (boundaryconds.west);
    362 
    363          \uncover<1->{\node [yellow, below=0.05cm of swaptimelevel] (disturbfield) {disturb\_field};}
    364          \path<1-> [line,dashed] (disturbfield.west) -| (timeintegr.south);
     533         \uncover<1->{\node [yellow, below=0.05cm of swaptimelevel] (inflowturb) {inflow\_turbulence};}
     534         \path<1-> [line,dashed] (inflowturb.west) -| (timeintegr.south);
     535
     536         \uncover<1->{\node [yellow, below=0.05cm of inflowturb] (distfield) {disturb\_field};}
     537         \path<1-> [line,dashed] (distfield.west) -| (timeintegr.south);
    365538
    366539      \uncover<1->{\node [white2, below=6.6cm of PALM] (continu2) {};}
     
    372545\end{frame}
    373546
    374 
    375 %Folie 08
    376 \begin{frame}
    377    \frametitle{PALM Flow Chart (IV)}
     547%Folie 10
     548\begin{frame}
     549   \frametitle{PALM Flow Chart (VI)}
    378550
    379551   \tikzstyle{white} = [rectangle, text width=0.2\textwidth, font=\tiny]
     
    385557   \tikzstyle{yellowlarge} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
    386558   \tikzstyle{yellowLarge} = [rectangle, draw, fill=yellow!20, text width=0.3\textwidth, minimum size=13pt, font=\tiny]
     559   \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     560   \tikzstyle{greenLarge} = [rectangle, draw, fill=green!20, text width=0.3\textwidth, minimum size=13pt, font=\tiny]
    387561   \tikzstyle{line} = [draw, -]
    388562   \tikzstyle{linered} = [draw, color=red, -]
     
    417591            \path<1-> [line] (pres.east) -| (poismg.north);
    418592
    419          \uncover<1->{\node [yellow, below=0.355cm of pres] (boundaryconds) {boundary\_conds};}
    420          \path<1-> [line,dashed] (timeintegr.south) |- (boundaryconds.west);
    421 
    422          \uncover<1->{\node [yellow, below=0.05cm of boundaryconds] (computevpt) {compute\_vpt};}
     593         \uncover<1->{\node [yellowLarge, below=0.8cm of timeintegrspacelarge] (calcliquidwatercontent) {calc\_liquid\_water\_content};}
     594         \path<1-> [line,dashed] (timeintegr.south) |- (calcliquidwatercontent.west);
     595
     596         \uncover<1->{\node [yellow, below=0.9cm of pres] (computevpt) {compute\_vpt};}
    423597         \path<1-> [line,dashed] (timeintegr.south) |- (computevpt.west);
    424 
    425             \uncover<1->{\node [yellowLarge, right=0.05cm of computevpt] (calcliquidwatercontent) {calc\_liquid\_water\_content};}
    426             \path<1-> [line] (computevpt.east) -- (calcliquidwatercontent.west);
    427598
    428599         \uncover<1->{\node [yellow, below=0.05cm of computevpt] (prandtlfluxes) {prandtl\_fluxes};}
     
    430601
    431602         \uncover<1->{\node [yellow, below=0.05cm of prandtlfluxes] (diffusivities) {diffusivities};}
    432          \path<1-> [line] (timeintegr.south) |- (diffusivities.west);
    433 
    434          \uncover<1->{\node [yellowLarge, below=2.855cm of timeintegrspacelarge] (useractionsafter) {user\_actions (after\_integration)};}
     603         \path<1-> [line,dashed] (timeintegr.south) |- (diffusivities.west);
     604
     605         \uncover<1->{\node [greenLarge, below=2.88cm of timeintegrspacelarge] (useractionsafter) {user\_actions (after\_integration)};}
    435606         \path<1-> [line] (timeintegr.south) |- (useractionsafter.west);
    436607
    437608         \uncover<1->{\node [yellow, below=0.575cm of diffusivities] (checkforrestart) {check\_for\_restart};}
    438          \path<1-> [line] (timeintegr.south) |- (checkforrestart.west);
     609         \path<1-> [line,dashed] (timeintegr.south) |- (checkforrestart.west);
    439610
    440611            \uncover<1->{\node [yellow, right=0.05cm of checkforrestart] (localtremain) {local\_tremain};}
     
    444615         \path<1-> [line,dashed] (timeintegr.south) |- (flowstatistics.west);
    445616
    446             \uncover<1->{\node [yellow, right=0.05cm of flowstatistics] (sumup3ddata) {sum\_up\_3d\_data};}
    447             \path<1-> [line] (flowstatistics.east) -- (sumup3ddata.west);
    448 
    449                \uncover<1->{\node [yellow, right=0.05cm of sumup3ddata] (calcspectra) {calc\_spectra};}
    450                \path<1-> [line] (sumup3ddata.east) -- (calcspectra.west);
    451 
    452          \uncover<1->{\node [yellow, below=0.05cm of flowstatistics] (runcontrol) {run\_control};}
    453          \path<1-> [line,dashed] (timeintegr.south) |- (runcontrol.west);
    454 
    455             \uncover<1->{\node [yellow, right=0.05cm of runcontrol] (dataoutput) {data\_output\_***};}
    456             \path<1-> [line] (runcontrol.east) -- (dataoutput.west);
    457 
    458          \uncover<1->{\node [yellow, below=0.05cm of runcontrol] (disturbheatflux) {disturb\_heatflux};}
    459          \path<1-> [line,dashed] (timeintegr.south) |- (disturbheatflux.west);
    460 
    461          \uncover<1->{\node [yellowLarge, below=2.125cm of useractionsafter] (useractionsaftert) {user\_actions (after\_timestep)};}
    462          \path<1-> [line] (timeintegr.south) |- (useractionsaftert.west);
     617            \uncover<1->{\node [green, right=0.05cm of flowstatistics] (userstat) {user\_statistics};}
     618            \path<1-> [line] (flowstatistics.east) -- (userstat.west);
     619
     620         \uncover<1->{\node [yellow, below=0.05cm of flowstatistics] (sumup3d) {sum\_up\_3d\_data};}
     621         \path<1-> [line,dashed] (timeintegr.south) |- (sumup3d.west);
     622
     623            \uncover<1->{\node [greenLarge, right=0.05cm of sumup3d] (user3ddataav) {user\_3d\_data\_averaging};}
     624            \path<1-> [line] (sumup3d.east) -- (user3ddataav.west);
     625
     626         \uncover<1->{\node [yellow, below=0.05cm of sumup3d] (calcspec) {calc\_spectra};}
     627         \path<1-> [line,dashed] (timeintegr.south) |- (calcspec.west);
     628
     629            \uncover<1->{\node [green, right=0.05cm of calcspec] (userspec) {user\_spectra};}
     630            \path<1-> [line] (calcspec.east) -- (userspec.west);
    463631
    464632      \uncover<1->{\node [white2, below=6.6cm of PALM] (continu2) {};}
     
    470638\end{frame}
    471639
    472 
    473 %Folie 09
    474 \begin{frame}
    475    \frametitle{PALM Flow Chart (V)}
     640%Folie 11
     641\begin{frame}
     642   \frametitle{PALM Flow Chart (VII)}
     643
     644   \tikzstyle{white} = [rectangle, text width=0.2\textwidth, font=\tiny]
     645   \tikzstyle{whitelarge} = [rectangle, text width=0.3\textwidth, font=\tiny]
     646   \tikzstyle{whitesmall} = [rectangle, text width=0.08\textwidth, minimum size=13pt, font=\tiny]
     647   \tikzstyle{white2} = [rectangle, text width=0]
     648   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     649   \tikzstyle{yellowsmall} = [rectangle, draw, fill=yellow!20, text width=0.08\textwidth, minimum size=13pt, font=\tiny]
     650   \tikzstyle{yellowlarge} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     651   \tikzstyle{yellowLarge} = [rectangle, draw, fill=yellow!20, text width=0.3\textwidth, minimum size=13pt, font=\tiny]
     652   \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
     653   \tikzstyle{greenLarge} = [rectangle, draw, fill=green!20, text width=0.3\textwidth, minimum size=13pt, font=\tiny]
     654   \tikzstyle{line} = [draw, -]
     655   \tikzstyle{linered} = [draw, color=red, -]
     656   \tikzstyle{Bigwhite} = [rectangle, text width=0.63\textwidth, minimum size=35pt, font=\tiny]
     657   \tikzstyle{Bigbox} = [rectangle, draw, fill=gray!20, text width=0.65\textwidth, minimum size=33pt, font=\tiny]
     658   \tikzstyle{redsmall} = [rectangle, draw, align=center, fill=red!100, text width=0.08\textwidth, minimum size=12pt, font=\tiny]
     659   \tikzstyle{boxinfo} = [rectangle, align=center, text width=0.3\textwidth, minimum size=12pt, font=\tiny]
     660   \tikzstyle{whitebox} = [rectangle, text width=0.2\textwidth, minimum size=12pt, font=\tiny]
     661   
     662   %"align=center" hinzufÃŒgen, um in den boxen zu zentrieren.
     663   
     664   \begin{tikzpicture}[auto, node distance=0]
     665      \uncover<1->{\node [white2] (contino1) {};}
     666      \uncover<1->{\node [white2, below=0.26cm of contino1] (PALM) {};}
     667
     668      \uncover<1->{\node [yellow, right=0.2cm of PALM] (timeintegr) {time\_integration};}
     669      \path<1-> [line] (PALM.south) |- (timeintegr.west);
     670      \uncover<1->{\node [white, right=0.05cm of timeintegr] (timeintegrspace) {};}
     671      \uncover<1->{\node [whitelarge, right=0.05cm of timeintegr] (timeintegrspacelarge) {};}
     672
     673         \uncover<1->{\node [yellow, below=-0.05cm of timeintegrspace] (runcontr) {run\_control};}
     674         \path<1-> [line,dashed] (timeintegr.south) |- (runcontr.west);
     675         \uncover<1->{\node [white, right=0.2cm of runcontr] (runcontrspace) {};}
     676
     677             \uncover<1->{\node [yellow, below=0.05cm of runcontrspace] (flowstat1) {flow\_statistics};}
     678             \path<1-> [line,dashed] (runcontr.south) |- (flowstat1.west);
     679
     680                \uncover<1->{\node [green, right=0.05cm of flowstat1] (userstat1) {user\_statistics};}
     681                \path<1-> [line] (flowstat1.east) |- (userstat1.west);
     682
     683         \uncover<1->{\node [yellow, below=1cm of timeintegrspace] (print1d) {print\_1d};}
     684         \path<1-> [line,dashed] (timeintegr.south) |- (print1d.west);
     685
     686         \uncover<1->{\node [yellow, below=0.05cm of print1d] (dataoutp) {data\_output\_***};}
     687         \path<1-> [line,dashed] (timeintegr.south) |- (dataoutp.west);
     688
     689         \uncover<1->{\node [greenLarge, below=2.15cm of timeintegrspacelarge] (useractionsaftert) {user\_actions (after\_timestep)};}
     690         \path<1-> [line] (timeintegr.south) |- (useractionsaftert.west);
     691
     692      \uncover<1->{\node [white2, below=6.6cm of PALM] (continu2) {};}
     693      \path<1-> [line,dashed] (contino1.south) |- (continu2.north);
     694
     695      \uncover<1->{\node [white2, below=6.0cm of PALM] (continu1) {};}
     696      \path<1-> [line] (PALM.south) |- (continu1.north);
     697   \end{tikzpicture}
     698\end{frame}
     699
     700
     701%Folie 12
     702\begin{frame}
     703   \frametitle{PALM Flow Chart (VIII)}
    476704
    477705   \tikzstyle{white} = [rectangle, text width=0.2\textwidth, font=\tiny]
     
    506734      \uncover<1->{\node [yellow, below=0.1cm of redadv] (calcmeanptprofile) {calc\_mean\_pt\_profile};}
    507735
    508       \uncover<1->{\node [yellowLarge, left=0.5cm of calcmeanptprofile] (prognosticequationsnoopt) {prognostic\_equations\_noopt};}
    509       \uncover<1->{\node [yellowLarge, right=0.5cm of calcmeanptprofile] (prognosticequationscache) {prognostic\_equations\_cache};}
    510       \uncover<1->{\node [yellowLarge, below=2.35cm of prognosticequationscache] (prognosticequationsvector) {prognostic\_equations\_vector};}
     736%      \uncover<1->{\node [yellowLarge, left=0.5cm of calcmeanptprofile] (prognosticequationsnoopt) {prognostic\_equations\_noopt};}
     737      \uncover<1->{\node [yellowLarge, left=0.5cm of calcmeanptprofile] (prognosticequationscache) {prognostic\_equations\_cache};}
     738      \uncover<1->{\node [yellowLarge, right=0.5cm of calcmeanptprofile] (prognosticequationsvector) {prognostic\_equations\_vector};}
    511739
    512740      \uncover<1->{\node [yellow, below=-0.05cm of calcmeanptprofile] (calcradiation) {calc\_radiation};}
     
    540768            .\\
    541769            .\\
    542             !within subroutines:\\
    543             DO i=nxl,nxr\\
    544             \quad DO j=nys,nyn\\
    545             \quad \quad DO k=nzb+1,nzt\\
    546             \quad \quad \quad \quad ...\\
    547             \quad \quad ENDDO\\
    548             \quad ENDDO\\
    549             ENDDO\\
     770%             !within subroutines:\\
     771%             DO i=nxl,nxr\\
     772%             \quad DO j=nys,nyn\\
     773%             \quad \quad DO k=nzb+1,nzt\\
     774%             \quad \quad \quad \quad ...\\
     775%             \quad \quad ENDDO\\
     776%             \quad ENDDO\\
     777%             ENDDO\\
    550778         }
    551779      };}
    552 
    553       \uncover<1->{\node [bigbox, below=0.05cm of prognosticequationsnoopt] (listingsnoopt1) {
    554          \texttt{\linespread {0.7}\selectfont\noindent
    555             DO i=nxl,nxr\\
    556             \quad DO j=nys,nyn\\
    557             \quad \quad CALL \textcolor{blue}{u-subr}\\
    558             \quad ENDDO\\
    559             ENDDO\\
    560          }
    561       };}
    562 
    563       \uncover<1->{\node [bigbox, below=0.05cm of listingsnoopt1] (listingsnoopt2) {
    564          \texttt{\linespread {0.7}\selectfont\noindent
    565             DO i=nxl,nxr\\
    566             \quad DO j=nys,nyn\\
    567             \quad \quad CALL \textcolor{blue}{v-subr}\\
    568             \quad ENDDO\\
    569             ENDDO\\
    570          }
    571       };}
    572 
    573       \uncover<1->{\node [bigbox, below=1.95cm of listingsnoopt2] (listingsnoopt3) {
    574          \texttt{\linespread {0.7}\selectfont\noindent
    575             DO i=nxl,nxr\\
    576             \quad DO j=nys,nyn\\
    577             \quad \quad CALL \textcolor{blue}{e-subr}\\
    578             \quad ENDDO\\
    579             ENDDO\\
    580          }
    581       };}
    582 
    583       \path<1-> [line,dotted] (listingsnoopt2.south) |- (listingsnoopt3.north);
    584 
    585       \uncover<1->{\node [whitesmall, right=-1.35cm of listingsnoopt2] (listingsnoopt251) {};}
    586       \uncover<1->{\node [whitesmall, below=0.8cm of listingsnoopt251] (listingsnoopt252) {\texttt{\textcolor{blue}{w\\pt\\q or s}}};}
    587 
    588780      \uncover<1->{\node [bigbox2, below=-0.25cm of productioneinitspace2] (foreachvariable) {
    589781         \textcolor{blue}{
     
    621813
    622814
    623       \uncover<2->{\node [Endbox, below=6.05cm of redadv] (endbox) {
     815      \uncover<2->{\node [Endbox, below=1.5cm of listingscache] (endboxcache) {
    624816         \texttt{\linespread {0.7}\selectfont\noindent
    625817            !within subroutines:\\
     
    630822      };}
    631823
    632       \uncover<2->{\draw [<-,thick] (endbox.east) -- (listingscache.west);}
    633       \uncover<2->{\draw [<-,thick] (endbox.west) -- (listingsnoopt1.east);}
    634       \uncover<2->{\draw [<-,thick] (endbox.west) -- (listingsnoopt2.east);}
    635       \uncover<2->{\draw [<-,thick] (endbox.west) -- (listingsnoopt3.east);}
     824      \uncover<2->{\node [Endbox, below=2.5cm of listingsvector] (endboxvec) {
     825         \texttt{\linespread {0.7}\selectfont\noindent
     826            !within subroutines:\\
     827            DO i = nxl, nxr \\
     828            \quad DO j = nys, nyn \\
     829            \quad \quad DO k=nzb+1,nzt\\
     830            \quad \quad \quad \textcolor{blue}{...}\\
     831            \quad \quad ENDDO \\
     832            \quad ENDDO \\
     833            ENDDO\\
     834         }
     835      };}
     836
     837      \uncover<2->{\draw [<-,thick] (endboxcache.north) -- (listingscache.south);}
     838      \uncover<2->{\draw [<-,thick] (endboxvec.north) -- (listingsvector.south);}
    636839
    637840   \end{tikzpicture}
    638841\end{frame}
    639842
    640 
    641 %Folie 10
    642 \begin{frame}
    643    \frametitle{PALM Flow Chart (VI)}
     843%Folie 13
     844\begin{frame}
     845   \frametitle{PALM Flow Chart (IX)}
    644846
    645847   \tikzstyle{white} = [rectangle, text width=0.2\textwidth, font=\tiny]
     
    651853   \tikzstyle{yellowlarge} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
    652854   \tikzstyle{yellowLarge} = [rectangle, draw, fill=yellow!20, text width=0.3\textwidth, minimum size=13pt, font=\tiny]
     855   \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.2\textwidth, minimum size=13pt, font=\tiny]
    653856   \tikzstyle{line} = [draw, -]
    654857   \tikzstyle{linered} = [draw, color=red, -]
     
    681884         \path<1-> [line] (write3dbinary.east) -- (writevarlist.west);
    682885
    683       \uncover<1->{\node [yellow, below=0.05cm of write3dbinary] (writeparticles) {write\_particles};}
     886      \uncover<1->{\node [yellow, below=0.05cm of write3dbinary] (writeparticles) {lpm\_write\_restart\_file};}
    684887      \path<1-> [line] (PALM.south) |- (writeparticles.west);
    685888
     
    687890      \path<1-> [line] (PALM.south) |- (header.west);
    688891
    689          \uncover<1->{\node [yellow, right=0.05cm of header] (userheader) {user\_header};}
     892         \uncover<1->{\node [green, right=0.05cm of header] (userheader) {user\_header};}
    690893         \path<1-> [line] (header.east) -- (userheader.west);
    691894
    692       \uncover<1->{\node [yellow, below=0.05cm of header] (userlastactions) {user\_last\_actions};}
     895      \uncover<1->{\node [green, below=0.05cm of header] (userlastactions) {user\_last\_actions};}
    693896      \path<1-> [line] (PALM.south) |- (userlastactions.west);
    694897
     
    704907\end{frame}
    705908
    706 %Folie 11
     909%Folie 14
    707910\begin{frame}[fragile]
    708911   \frametitle{Important Variables and Their Declaration}
     
    731934\end{frame}
    732935
    733 %Folie 12
     936%Folie 15
    734937\begin{frame}[fragile]
    735938   \frametitle{Important Variables and Their Declaration}
     
    754957         \centering
    755958         \begin{lstlisting}
    756 REAL, DIMENSION(:,:,:), POINTER ::  u, u_m, u_p, ...
     959REAL, DIMENSION(:,:,:), POINTER ::  u, u_p, v, v_p, ...
    757960         \end{lstlisting}
    758961      \end{minipage}\\
     
    762965\end{frame}
    763966
    764 %Folie 13
     967%Folie 16
    765968\begin{frame}[fragile]
    766969   \frametitle{Some Other Frequently Used Variables}
     
    796999
    7971000
    798 %Folie 14
     1001%Folie 17
    7991002\begin{frame}[fragile]
    8001003   \frametitle{Preprocessor Directives (I)}
     
    8401043
    8411044
    842 %Folie 14
     1045%Folie 18
    8431046\begin{frame}[fragile]
    844    \frametitle{Preprocessor Directives (I)}
     1047   \frametitle{Preprocessor Directives (II)}
    8451048   \begin{itemize}
    846       \item<1->{The preprocessor directives require to include the compiler option ``\texttt{\scriptsize-cpp}'' in any way. Otherwise, the compilation will give error messages. \textbf{The option has to be given in the configuration file} \texttt{\scriptsize .mrun.config.} \textbf{Different compilers may require different options!}}\\
     1049      \item<1->{The preprocessor directives require to include the compiler option ``\texttt{\scriptsize-cpp}'' in any way. Otherwise, the compilation will give error messages. \textbf{The option has to be given in the configuration file}
     1050                \texttt{\scriptsize .mrun.config} in the \texttt{\scriptsize \%cpp\_options} line. \textbf{Different compilers may require different options!}}\\
    8471051
    8481052      \item<2->{Define-string switches can be combined using logical AND / OR operators \&\& / $\lvert \lvert$.\\
     
    8611065
    8621066
    863 %Folie 15
     1067%Folie 19
    8641068\begin{frame}[fragile]
    865    \frametitle{Preprocessor Directives (II)}
     1069   \frametitle{Preprocessor Directives (III)}
    8661070   In the PALM code, define-string switches are used for following reasons:
    8671071   \begin{itemize}
     
    8821086
    8831087
    884 %Folie 15
     1088%Folie 20
    8851089\begin{frame}[fragile]
    886    \frametitle{Preprocessor Directives (II)}
     1090   \frametitle{Preprocessor Directives (IV)}
    8871091   In the PALM code, define-string switches are used for following reasons:
    8881092   \begin{itemize}
     
    8981102
    8991103
    900 %Folie 14
     1104%Folie 21
    9011105\begin{frame}[fragile]
    902    \frametitle{Preprocessor Directives (III)}
     1106   \frametitle{Preprocessor Directives (V)}
    9031107   \begin{itemize}
    9041108      \item<1->{Preprocessor directives are also used for string replacement in the code.\\ Example:\\A compiler call with preprocessor option\\
     
    9201124         \centering
    9211125         \begin{lstlisting}
    922 %cpp_options -DMPI_REAL=MPI_DOUBLE_PRECISION:
     1126%cpp_options -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:
    9231127             -DMPI_2REAL=MPI_2DOUBLE_PRECISION: ....
    9241128         \end{lstlisting}
  • palm/trunk/TUTORIAL/SOURCE/runs_with_mrun.tex

    r1165 r1226  
    6565      \texttt{ksh}-syntax) which can be used to compile and run programs, including
    6666      the handling of input/output files.
    67       \vspace{4mm}
     67      \vspace{3mm}
    6868      \item<2-> The \texttt{mrun}-command has a number of options to control the
    6969      program execution\\
     70         \vspace{2mm}
    7071         \quad \footnotesize \texttt{mrun -d example\underline{ }cbl -h lcsgih -K parallel -X8 -T2 ...}\\
     72         \vspace{2mm}
    7173         \normalsize All options including a short description can be displayed by entering\\
     74         \vspace{2mm}
    7275         \quad \footnotesize \texttt{mrun ?}
    73       \vspace{4mm}
     76      \vspace{3mm}
    7477      \item<3-> \normalsize The shellscript execution is also controlled by a configuration file with default name \texttt{.mrun.config}
    7578   \end{itemize}
     
    184187            \draw<7-> [-] (yellow3.east) -- (yellow4.west);
    185188           
    186             \node [dummy, right=0.1cm of yellow4] (dummy1) {};
    187             \node [dummy, right=2.055cm of green] (dummy2) {};
     189            \node [dummy, right=0.06cm of yellow4] (dummy1) {};
     190            \node [dummy, below=0.38cm of dummy1] (dummy2) {};
    188191           
    189192            \draw<9-> [-] (yellow4.east) -- (dummy1.center);
     
    240243\begin{frame}
    241244   \tikzstyle{green} = [rectangle, draw, fill=green!20, font=\scriptsize, minimum height=0.6cm]
    242    \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.18\textwidth, font=\scriptsize, minimum height=0.6cm]
     245   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, font=\scriptsize, minimum height=0.6cm]
    243246   \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\scriptsize, minimum height=0.6cm]
    244247   
     
    248251      \setcounter{enumi}{5}
    249252           \item<1-> Copy the output files from the working directory to a (permanent) directory of the user:\\
     253       \vspace{1mm}
    250254       \tiny \quad \texttt{cp /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }output\underline{ }file1> <user\underline{ }output\underline{ }file1>}\\
    251255      \quad \texttt{cp /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }output\underline{ }file2> <user\underline{ }output\underline{ }file2>}\\
    252256      \footnotesize
    253257      \begin{center}
    254               \begin{tikzpicture}[auto, node distance=0]
    255             \uncover<2->{\node [yellow] (yellow1) {MONITORING/};}
     258         \begin{tikzpicture}[auto, node distance=0]
     259            \uncover<2->{\node [yellow] (yellow1) {MONITORING/ };}
    256260
    257261            \uncover<2->{\node [dummy, right=0.2cm of yellow1] (dummy2) {};}
     
    264268            \uncover<2->{\node [yellow, left=0.2cm of yellow4] (yellow5) {current\underline{ }version/};}
    265269                                             
    266                  \uncover<2-3>{\node [green, left=5.0cm of dummy1] (green) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};}
     270                 \uncover<2-3>{\node [green, left=4.0cm of dummy1] (green) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};}
    267271                 
    268272            \draw<2-3> [-] (green.east) -- (dummy1.center);
     
    277281            \draw<2-> [-] (yellow4.west) -- (yellow5.east);
    278282               
    279               \end{tikzpicture}
    280            \end{center}
     283        \end{tikzpicture}
     284     \end{center}
    281285           
    282286           \item<3-> Delete the temporary working directory\\
     
    348352   \onslide<1-> The \textbf{base name} can additionally be a part of the directory name
    349353   by using \textcolor{blue}{\texttt{\$fname}} in the directory column of the file connection statement:\\
     354   \vspace{1mm}
    350355   \quad \texttt{PARIN in d3\# \~{}/palm/current\underline{ }version/JOBS/\textcolor{blue}{\$fname}/INPUT \underline{ }p3d}\\
    351    \ \\
     356   \vspace{1mm}
    352357   \onslide<2-> Using the call\\
     358   \vspace{1mm}
    353359   \quad \texttt{mrun -d \textcolor{blue}{abcde} ...}\\
     360   \vspace{1mm}
    354361   the input file will be expected under\\
     362   \vspace{1mm}
    355363   \quad \texttt{\~{}/palm/current\underline{ }version/JOBS/\textcolor{blue}{abcde}/INPUT/\textcolor{blue}{abcde}\underline{ }p3d }\\
    356    \ \\
     364   \vspace{1mm}
    357365   \onslide<3-> In this way, all files handled by the \texttt{mrun}-call are stored in
    358366   the same subdirectory (\textcolor{blue}{abcde/}) and will have the same string (\texttt{\textcolor{blue}{abcde}}) as
     
    364372   this at the beginning of the configuration file and be used in the file
    365373   connection statements:\\
     374   \vspace{1mm}
    366375   \quad \texttt{\%base\underline{ }data  \~{}/palm/current\underline{ }version/JOBS}\\
    367376   \quad \texttt{PARIN in d3\#  \textcolor{blue}{\$base\underline{ }data}/\textcolor{blue}{\$fname}/INPUT \underline{ }p3d}\\
     
    379388   have to be activated by giving their activation string in the
    380389   \texttt{mrun}-option \texttt{-r}:\\
     390   \vspace{1mm}
    381391   \quad \texttt{PARIN in d3\# \~{}/palm/current\underline{ }version/JOBS/\$fname/INPUT \underline{ }p3d}\\
    382392   \ \\
    383393   \onslide<2-> The permanent file
     394   \vspace{1mm}
    384395   \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/INPUT/example\underline{ }cbl\underline{ }p3d}
     396   \vspace{1mm}
    385397   will only be copied to the local file PARIN by using the call:\\
     398   \vspace{1mm}
    386399   \quad \texttt{mrun -d example\underline{ }cbl -r \dq d3\#\dq\, ...}\\
    387400   \ \\
    388401   \onslide<3-> \textbf{Example for an output file:}\\
    389402   The file connection statement\\
    390    \quad \texttt{DATA\underline{ }1D\underline{ }PR\underline{ }NETCDF out:loc pr\#
    391    \~{}/palm/current\underline{ }version/JOBS/\$fname/OUTPUT \underline{ }pr nc}\\
     403   \vspace{1mm}
     404   \quad \texttt{DATA\underline{ }1D\underline{ }PR\_NETCDF out:loc pr\# \textbackslash} \\
     405   ~~~~~~\texttt{\~{}/palm/current\underline{ }version/JOBS/\$fname/OUTPUT \underline{ }pr nc}s\\
     406   \vspace{1mm}
    392407   \onslide<4-> will copy (after program execution) the local file
    393408   \texttt{DATA\underline{ }1D\underline{ }PR\underline{ }NETCDF} to the permanent file
     409   \vspace{1mm}
    394410   \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/OUTPUT/example\underline{ }cbl\underline{ }pr.nc} if
    395411   \texttt{mrun} is called with the options\\
     412   \vspace{1mm}
    396413   \quad \texttt{mrun -d example\underline{ }cbl -r \dq d3\# pr\#\dq\, ...}
    397414   
     
    458475HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
    459476HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
    460 CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
    461 CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
    462 #
    463 DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
    464 DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
    465 DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
    466 DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
    467 DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
    468 DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
    469 DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
    470 DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
    471 DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
    472 DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
    473 DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
    474 DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
    475 DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
    476 DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
    477 DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
    478 DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
    479 DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
    480 DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
    481 DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
    482 DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
    483 DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
    484 DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
    485 DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
    486 DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
    487 DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
    488 DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
    489 DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
    490 DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
    491 DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
    492 DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
    493 DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
    494 DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
    495 DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
    496 DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
    497 DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
    498 DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
    499 DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
    500 DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
    501 DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
    502 DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
    503 DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
    504 DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
    505 DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
    506 DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
    507 DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
    508 DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
    509 DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
    510 DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
    511 DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
    512 DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
    513 DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
    514 DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
    515 DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
    516 DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
    517 #
    518 DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
    519 DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
    520 PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
    521 PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
    522 PARTICLE_DATA     out:loc:flpe prt#:prtf $base_data/$fname/OUTPUT      _prt_dat
    523 
    524477      \end{lstlisting}
    525478   \end{columns}
     479% CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
     480% CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
     481% #
     482% DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
     483% DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
     484% DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
     485% DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
     486% DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
     487% DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
     488% DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
     489% DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
     490% DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
     491% DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
     492% DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
     493% DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
     494% DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
     495% DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
     496% DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
     497% DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
     498% DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
     499% DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
     500% DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
     501% DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
     502% DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
     503% DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
     504% DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
     505% DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
     506% DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
     507% DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
     508% DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
     509% DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
     510% DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
     511% DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
     512% DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
     513% DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
     514% DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
     515% DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
     516% DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
     517% DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
     518% DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
     519% DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
     520% DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
     521% DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
     522% DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
     523% DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
     524% DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
     525% DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
     526% DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
     527% DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
     528% DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
     529% DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
     530% DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
     531% DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
     532% DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
     533% DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
     534% DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
     535% DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
     536% #
     537% DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
     538% DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
     539% PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
     540% PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
     541% PARTICLE_DATA     out:loc:flpe prt#:prtf $base_data/$fname/OUTPUT      _prt_dat
     542
    526543\end{frame}
    527544
    528545% Folie 12
    529546\begin{frame}
    530    \frametitle{Additional Features of \texttt{mrun}}
     547   \frametitle{Additional Features of \texttt{mrun} (I)}
     548   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=1.15\textwidth, font=\Tiny]
    531549   \begin{itemize}
    532550      \footnotesize
     
    535553      \item<3-> Values have to be set in the \texttt{mrun} configuration file \texttt{.mrun.config}:
    536554   \end{itemize}
    537    \onslide<4->\hspace{-1cm}\includegraphics[scale=0.3]{mrun_figures/add_feat1.png}
     555   \onslide<4->{\hspace{-0.95cm}\begin{tikzpicture}[auto]
     556         \node[yellow]{\texttt{\%sgi\_feature \hspace{0.53cm} ice2 \hspace{2.71cm} lcsgih parallel}\\
     557                       \texttt{\%modules \hspace{0.87cm}  intel.compiler/11.1.072:mpt:phdf5/1.8.5-mpt-intel-11.1:pnetcdf/4.1.1-mpt-intel-11.1 \quad\quad lcsgih parallel}\\
     558                       \texttt{\%login\_init\_cmd \hspace{0.25cm} .:/usr/share/modules/init/bash  \quad\quad lcsgih parallel}\\
     559                       \texttt{\#\%remote\_username \hspace{0.07cm} <replace by your HLRN username> \quad\quad lcsgih parallel}\\
     560                       \texttt{\%compiler\_name \hspace{0.35cm} ifort \hspace{2.61cm} lcsgih parallel}\\
     561                       \texttt{\%compiler\_name\_ser~ ifort \hspace{2.61cm} lcsgih parallel}\\
     562                       \texttt{\%cpp\_options \hspace{0.53cm} -DMPI\_REAL=MPI\_DOUBLE\_PRECISION:-DMPI\_2REAL=MPI\_2DOUBLE\_PRECISION:-D\_\_netcdf:-D\_\_netcdf4:-D\_\_mpi2 \quad lcsgih parallel}\\
     563                       \texttt{\%netcdf\_inc \hspace{0.62cm} -I:/sw/dataformats/pnetcdf/netcdf-4.1.1-mpt-intel-11.1/include:-I:/sw/dataformats/phdf5/hdf5-1.8.5-mpt-intel-11.1/in}\\ %clude    lcsgih parallel}\\
     564                       \texttt{\%netcdf\_lib \hspace{0.62cm} -L/sw/dataformats/pnetcdf/netcdf-4.1.1-mpt-intel-11.1/lib:-lnetcdf:-lnetcdff:-L/sw/dataformats/phdf5/hdf5-1.8.5-mpt-}\\ %intel-11.1/lib:-lhdf5:-lhdf5\_hl:-lz      lcsgih parallel}\\
     565                       \texttt{\%mopts \hspace{1.06cm} -j:4 \hspace{2.71cm} lcsgih parallel}\\
     566                       \texttt{\%fopts \hspace{1.06cm} -fpe0:-O3:-cpp:-r8:-fp-model:precise:-align:all:-ftz:-fno-alias:-no-scalar-rep:-no-prec-div:-no-prec-sqrt:-ip:-nbs:}\\ %-convert:little\_endian:-diag-disable:8290,8291  lcsgih parallel}\\
     567                       \texttt{\%lopts \hspace{1.06cm} -fpe0:-O3:-cpp:-r8:-fp-model:precise:-align:all:-ftz:-fno-alias:-no-scalar-rep:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-}\\ %Vaxlib:-lmpi:-limf:-lm           lcsgih parallel}\\
     568                       \texttt{\%memory \hspace{0.97cm} 1500 \hspace{2.71cm} lcsgih parallel}\\
     569                       \texttt{\#\%tmp\_data\_catalog~  /gfs2/work/<replace by your HLRN username>/palm\_restart\_data \quad\quad lcsgih parallel}\\
     570                       \texttt{\#\%tmp\_user\_catalog~  /gfs2/tmp/<replace by your HLRN username> \hspace{2.03cm} lcsgih parallel}};
     571   \end{tikzpicture}}
     572%  \onslide<4->\hspace{-1cm}\includegraphics[scale=0.3]{mrun_figures/add_feat1.png}
     573%    \begin{itemize}
     574%       \footnotesize
     575%       \item<5-> User-defined unix commands are carried out before or after execution of the model (input/output commands) or in case of errors during the compile- or run-step (error commands).
     576%       These commands can also be defined in the \texttt{mrun} configuration file:
     577%       \onslide<6-> \includegraphics[scale=0.3]{mrun_figures/add_feat2.png}
     578%       \item<7-> Automatic generation of restart jobs.
     579%    \end{itemize}
     580\end{frame}
     581
     582\begin{frame}
     583   \frametitle{Additional Features of \texttt{mrun} (II)}
     584   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.75\textwidth, font=\Tiny]
     585
    538586   \begin{itemize}
    539587      \footnotesize
    540       \item<5-> User-defined unix commands are carried out before or after execution of the model (input/output commands) or in case of errors during the compile- or run-step (error commands).
     588      \item<1-> User-defined unix commands are carried out before or after execution of the model (input/output commands) or in case of errors during the compile- or run-step (error commands).
    541589      These commands can also be defined in the \texttt{mrun} configuration file:
    542       \onslide<6-> \includegraphics[scale=0.3]{mrun_figures/add_feat2.png}
    543       \item<7-> Automatic generation of restart jobs.
     590      \begin{center}
     591         \onslide<2->{\begin{tikzpicture}
     592            \node[yellow]{~\texttt{IC:echo ``PALM will soon start to execute in \textbackslash\$PWD'' > /home/h/niksiraa/mrun\_messages}\\
     593                          ~\texttt{EC:ls -al}\\
     594                          \vspace{0.5mm}
     595                          ~\texttt{OC:tar -cf DEBUG.tar DEBUG\_*}};
     596         \end{tikzpicture}}
     597      \end{center}
     598
     599%      \onslide<2-> \includegraphics[scale=0.3]{mrun_figures/add_feat2.png}
     600      \item<3-> Automatic generation of restart jobs.
    544601   \end{itemize}
     602
    545603\end{frame}
    546604
     
    595653   \frametitle{PALM \textit{Batch} Example Run (on HLRN, remote) Using \texttt{mrun}: Tracing the Run by the User}
    596654\tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.3\textwidth, font=\Tiny]
     655\tikzstyle{yellow2} = [rectangle, draw, fill=yellow!20, text width=0.4\textwidth, font=\Tiny]
    597656\tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.4\textwidth, font=\Tiny]
    598657\tikzstyle{dummy} = [text width=0.2\textwidth, font=\Tiny]
     
    624683    \node [green, below=0.2cm of second] (third) {
    625684       \textbf{if job is running, you may follow its progress by watching the job protocol:} \\
    626        \texttt{cd \~/job\underline{ }queue \\ tail lcmuk\underline{ }example\underline{ }cbl}
     685       \texttt{cd \~{}/job\underline{ }queue \\ tail lcmuk\underline{ }example\underline{ }cbl}
    627686    };
    628687}
     
    636695    \node [green, below=0.2cm of fourth] (fifth) {
    637696       \textbf{when the job is finished, watch, if the job protocol is transferred to the local host without errors:}\\
    638        \texttt{cd \~/job\underline{ }queue \\ cat last\underline{ }job\underline{ }transfer\underline{ }protocol}
     697       \texttt{cd \~{}/job\underline{ }queue \\ cat last\underline{ }job\underline{ }transfer\underline{ }protocol}
    639698    };
    640699}
    641700\uncover<7->{
    642     \node [dummy, left=0.5cm of fifth] (dummy) {
     701    \node [dummy, left=0.001mm of fifth] (dummy) {
    643702       transfer results by \texttt{scp} \\
    644703       \ \\
     
    647706}
    648707\uncover<8->{
    649     \node [yellow, left=3.5cm of fifth] (sixth) {
     708    \node [yellow2, left=2.5cm of fifth] (sixth) {
    650709       \textbf{check, if the job protocol and all output files have successfully been transferred to the local machine:}\\
    651        \texttt{cd \~/job\underline{ }queue \\ ls -al \\ cd ~/palm/current\underline{ }version/JOBS/example \\ ls -al *}
     710       \texttt{cd \~{}/job\_queue \\ ls -al \\ cd \~{}/palm/current\_version/JOBS/example \\ ls -al *}
    652711    };
    653712}
  • palm/trunk/TUTORIAL/SOURCE/sgs_models.tex

    r991 r1226  
    9494\begin{frame}
    9595   \frametitle{SGS Models (III)}
    96    \onslide<1-> All the above observation suggest the use of an eddy viscosity type SGS model:
     96   \onslide<1-> All the above observations suggest the use of an eddy viscosity type SGS model:
    9797   \begin{footnotesize}
    9898      \begin{itemize}
     
    104104      \end{itemize}
    105105   \end{footnotesize}
     106   \vspace{-0.3cm}
    106107   \onslide<3->Now we need a model for the eddy viscosity:
    107108   \begin{footnotesize}
    108109      \begin{itemize}
    109110         \item<4-> Dimensionality of $\nu_T$ is $l^2/t$
    110          \item<5-> Obvious choice: $\nu_T = Cql$ \hspace{5mm} (q, l: characterictic velocity / length scale)
     111         \item<5-> Obvious choice: $\nu_T = Cql$ \hspace{5mm} (q, l: characteristic velocity / length scale)
    111112         \item<6-> Turbulence length scale is easy to define: largest size of the unresolved scales is $\Delta$ \hspace{10mm} $l = \Delta$
    112113         \item<7-> Velocity scale not obvious (smallest resolved scales, their size is of the order of the variation of velocity over one grid element)
    113114         \begin{flalign*}
    114115            &q = l \frac{\partial \overline{u}}{\partial x} = l \overline{S}& \text{for 3D: } \overline{S} = \sqrt{2 \overline{S}_{ki}\,\overline{S}_{ki}} \hspace{15mm} \\
    115             & & \text{characterictic filtered rate of strain}\hspace{15mm}
     116            & & \text{characteristic filtered rate of strain}\hspace{15mm}
    116117         \end{flalign*}
    117118      \end{itemize}
     
    163164\end{frame}
    164165
    165 
    166 % Folie 7
    167 \begin{frame}
    168    \frametitle{The Smagorinsky Model: Performance}
    169    \begin{itemize}
    170       \item<2-> Predicts many flows reasonably well
    171       \item<3-> Problems:
    172       \begin{itemize}
    173          \item<3-> Optimum parameter value varies with flow type:
    174          \begin{itemize}
    175             \item Isotropic turbulence: $C_S \approx 0.2$\\
    176             \item Shear (channel) flows: $C_S \approx 0.065$
    177          \end{itemize}
    178          \item<4-> Length scale uncertain with anisotropic filter:
    179          \begin{equation*}
    180             (\Delta_x \Delta_y \Delta_z)^{1/3} \hspace{5mm} (\Delta_x + \Delta_y + \Delta_z)/3
    181          \end{equation*}
    182          \item<5-> Needs modification to account for:
    183          \begin{itemize}
    184             \item stratification: $C_S = F(Ri,...)$, $Ri$: Richardson number\\
    185             \item near-wall region: $C_S = F(z+)$, $z+$: distance from wall
    186          \end{itemize}
    187       \end{itemize}
    188    \end{itemize}
    189 \end{frame}
    190 
    191 
    192166\section{Deardoff Modification}
    193167\subsection{Deardoff Modification}
    194168
    195 % Folie 8
     169% Folie 7
    196170\begin{frame}
    197171   \frametitle{Deardorff (1980) Modification (Used in PALM) (I)}
     
    199173   \onslide<1->{
    200174      $ \nu_T = Cql = C_M \Lambda \sqrt{\bar{e}} $ \quad \textbf{with} \quad $ \bar{e} = \frac{\overline{u_i' u_i'}}{2} $ \quad \textbf{SGS-turbulent kinetic energy}}
    201    \normalsize
    202    \begin{itemize}
    203       \item<2->{The SGS-TKE allows a much better estimation of the velocity scale for the SGS fluctuations and also contains information about the past history of the local fluid.}
     175   \small
     176   \begin{itemize}
     177      \item<2->{The SGS-TKE allows a much better estimation of the velocity scale for the SGS fluctuations and also contains information about the past history of the
     178                              local fluid.}
    204179   \end{itemize}
     180   \small
    205181   \onslide<3->{
    206182      $ C_M = const. = 0.1 $
     
    210186                          min\left( 0.7 \cdot z, \Delta, 0.76 \sqrt{\bar{e}} \left[ \frac{g}{\Theta_0} \frac{\partial \bar{\Theta}}{\partial z} \right]^{-1/2} \right), & \textbf{stable                             stratification}
    211187                  \end{cases} $     
    212       \normalsize
     188      \small
    213189      \par\bigskip
    214190      $ \Delta = \left( \Delta x \Delta y \Delta z \right)^{1/3} $ }
    215191\end{frame}
    216192
    217 % Folie 9
     193% Folie 8
    218194\begin{frame}
    219195   \frametitle{Deardorff (1980) Modification (Used in PALM) (II)}
     
    236212\end{frame}
    237213
    238 % Folie 10
     214% Folie 9
    239215\begin{frame}
    240216   \frametitle{Deardorff (1980) Modification (Used in PALM) (III)}
     
    261237\subsection{Summary / Important Points for Beginners}
    262238
    263 % Folie 11
     239% Folie 10
    264240\begin{frame}
    265241   \frametitle{Summary / Important Points for Beginners (I)}
    266242   \begin{columns}[c]
    267243   \column[T]{0.4\textwidth}
    268       \includegraphics<2-7>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_2.png}   
    269       \includegraphics<8>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_8.png}
    270       \includegraphics<9>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_9.png}
    271       \includegraphics<10>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_10.png}
     244      \includegraphics<2-7|handout:0>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_2.png}   
     245      \includegraphics<8|handout:0>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_8.png}
     246      \includegraphics<9|handout:0>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_9.png}
     247      \includegraphics<10|handout:1>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_10.png}
    272248      \onslide<8-10>{\begin{flushright} \begin{tiny} after Schatzmann and Leitl (2001) \end{tiny} \end{flushright}}             
    273249   \column[T]{0.2\textwidth}
    274250      \vspace{0.9cm}
    275       \includegraphics<8-10>[width=0.7\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_arrow.png}
     251      \includegraphics<8-10|handout:1>[width=0.7\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_arrow.png}
    276252      \par
    277       \onslide<8->{\begin{small} fluctuations (\textbf{u},c) \end{small}}
     253      \onslide<8-|handout:1>{\begin{small} fluctuations (\textbf{u},c) \end{small}}
    278254      \par\bigskip
    279255      \thicklines
    280       \onslide<9->{\mbox{\line(6,0){5} \, \line(1,0){5} \, \line(1,0){5} \quad \begin{small} {critical concentration level} \end{small}}}
     256      \onslide<9-|handout:1>{\mbox{\line(6,0){5} \, \line(1,0){5} \, \line(1,0){5} \quad \begin{small} {critical concentration level} \end{small}}}
    281257      \vspace{1cm}
    282258     
    283       \includegraphics<8-10>[width=0.7\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_arrow.png}
     259      \includegraphics<8-10|handout:1>[width=0.7\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_arrow.png}
    284260      \par
    285261      \onslide<8->{\begin{small} smooth result \end{small}}   
    286262   \column[T]{0.4\textwidth}     
    287       \includegraphics<1-2>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_1_neu.png}
    288       \includegraphics<3>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_3_neu.png}
    289       \includegraphics<4>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_4.png}
    290       \includegraphics<5-10>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_5.png}
     263      \includegraphics<1-2|handout:0>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_1_neu.png}
     264      \includegraphics<3|handout:0>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_3_neu.png}
     265      \includegraphics<4|handout:0>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_4.png}
     266      \includegraphics<5-10|handout:1>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_5.png}
    291267      \vspace{1.3cm}
    292       \includegraphics<6>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_6_neu.png}
    293       \uncover<7->{\includegraphics[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_7_neu.png}}       
     268      \includegraphics<6|handout:0>[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_6_neu.png}
     269      \uncover<7-|handout:1>{\includegraphics[width=\textwidth]{sgs_models_figures/Important_Points/Important_Points_1_7_neu.png}}       
    294270   \end{columns}
    295271\end{frame}
    296272
    297 % Folie 12
     273% Folie 11
    298274\begin{frame}
    299275   \frametitle{Summary / Important Points for Beginners (II)}
     
    315291\subsection{Example Output}
    316292
     293% Folie 12
     294\begin{frame}
     295   \frametitle{Example Output (I)}
     296   \begin{itemize}
     297      \item{LES of a convective boundary layer}
     298   \end{itemize}
     299   \includegraphics<1|handout:0>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_1.png}
     300   \includegraphics<2|handout:0>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_2.png}
     301   \includegraphics<3|handout:0>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_3.png}
     302   \includegraphics<4|handout:0>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_4.png}
     303   \includegraphics<5|handout:0>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_5.png}
     304   \includegraphics<6|handout:0>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_6.png}
     305   \includegraphics<7|handout:1>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_7.png}
     306\end{frame}
     307
    317308% Folie 13
    318 \begin{frame}
    319    \frametitle{Example Output (I)}
    320    \begin{itemize}
    321       \item{LES of a convective boundary layer}
    322    \end{itemize}
    323    \includegraphics<1>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_1.png}
    324    \includegraphics<2>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_2.png}
    325    \includegraphics<3>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_3.png}
    326    \includegraphics<4>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_4.png}
    327    \includegraphics<5>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_5.png}
    328    \includegraphics<6>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_6.png}
    329    \includegraphics<7>[width=\textwidth]{sgs_models_figures/Example_Output_1/Example_Output_1_7.png}
    330 \end{frame}
    331 
    332 % Folie 14
    333309\begin{frame}
    334310   \frametitle{Example Output (II)}
     
    342318\end{frame}
    343319
    344 % Folie 15
     320% Folie 14
    345321\begin{frame}
    346322   \frametitle{Some Symbols}
  • palm/trunk/TUTORIAL/SOURCE/topography.tex

    r973 r1226  
    216216%      \includegraphics[width=0.6\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_small3.png}
    217217   \column{0.6\textwidth}
    218       \includegraphics<1>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_1.png}
    219       \includegraphics<2>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_2.png}
    220       \includegraphics<3>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_3.png}
    221       \includegraphics<4>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_4.png}
    222       \includegraphics<5>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_5.png}
     218      \includegraphics<1|handout:0>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_1.png}
     219      \includegraphics<2|handout:0>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_2.png}
     220      \includegraphics<3|handout:0>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_3.png}
     221      \includegraphics<4|handout:0>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_4.png}
     222      \includegraphics<5|handout:1>[width=\textwidth]{topography_figures/technical_implementation_grid/technical_implementation_grid_5.png}
    223223   \end{columns}
    224224\end{frame}
     
    234234      \item{The layout of example\_topo must conform to the computational domain size and to the grid size dx and dy.}
    235235      \item{The rastered height data of example\_topo are given in m above ground and do not need to match
    236             the vertical grid, since they are interpolated.}
     236            the vertical grid, since they will be interpolated, if required.}
    237237      \par\bigskip
    238238      \item{Software known to be able to perfom the rastering process of GIS data in vector and/or raster format to PALM raster format:}
     
    259259         \end{itemize}
    260260      \end{itemize}     
    261       \item{\dq 2 $\Delta$x\dq instabilities}
     261      \item{\dq 2 $\Delta$x\dq instabilities (only if Piacsek-Williams advection scheme is used)}
    262262      \begin{itemize}
    263263         \item{Upstream of obstacle walls}
    264264         \item{Due to second-order finite difference advection scheme}
    265265         \item{Model remains stable throughout the simulation}
     266         \item{The default Wicker-Skamarock scheme does not show any instabilities}
    266267      \end{itemize}
    267268   \end{itemize}
     
    332333      \item{{\tt '\textcolor{blue}{cell\_center}'} \hspace{1.9cm} default for \textcolor{blue}{rastered} topography: \textcolor{blue}{$\bigcirc$ $\leftrightarrow$}}
    333334   \end{itemize}
    334    \includegraphics<1>[width=0.5\textwidth]{topography_figures/control_parameters_1.png}
    335    \includegraphics<2>[width=0.5\textwidth]{topography_figures/control_parameters_2.png}
    336    \includegraphics<3>[width=0.5\textwidth]{topography_figures/control_parameters_3.png}
    337    \includegraphics<4>[width=0.5\textwidth]{topography_figures/control_parameters_4.png}
     335   \includegraphics<1|handout:0>[width=0.5\textwidth]{topography_figures/control_parameters_1.png}
     336   \includegraphics<2|handout:0>[width=0.5\textwidth]{topography_figures/control_parameters_2.png}
     337   \includegraphics<3|handout:0>[width=0.5\textwidth]{topography_figures/control_parameters_3.png}
     338   \includegraphics<4|handout:1>[width=0.5\textwidth]{topography_figures/control_parameters_4.png}
    338339\end{frame}
    339340
     
    595596   We are unable to check all these combinations by ourselves and rely on your help!
    596597   \par\bigskip
    597    For example, the combination of topography and non-cyclic lateral boundary conditions has not yet been tested
    598    because both features have originally been introduced separately for different research projects.
    599    \par\bigskip
     598%    For example, the combination of topography and non-cyclic lateral boundary conditions has not yet been tested
     599%    because both features have originally been introduced separately for different research projects.
     600%    \par\bigskip
    600601   Therefore, we ask you for your responsibility and contribution:
    601602   \begin{itemize}
  • palm/trunk/TUTORIAL/SOURCE/user_defined_code.tex

    r1080 r1226  
    1515\usepackage{tikz}
    1616\usetikzlibrary{shapes,arrows,positioning}
    17 \usetikzlibrary{decorations.markings}             %neues paket
    18 \usetikzlibrary{decorations.pathreplacing}        %neues paket
     17%\usetikzlibrary{decorations.markings}             %neues paket
     18%\usetikzlibrary{decorations.pathreplacing}        %neues paket
    1919\def\Tiny{\fontsize{4pt}{4pt}\selectfont}
    2020\usepackage{amsmath}
     
    7070   \textbf{Problem:}
    7171   \begin{itemize}
    72       \item<3-> If a new PALM version is released (current release is 3.8) and the user wants to use it, he would have to add his modifications to the new release again.
     72      \item<3-> If a new PALM version is released (current release is 3.9) and the user wants to use it, he would have to add his modifications to the new release again.
    7373   \end{itemize}   
    7474   \vspace{3mm}
     
    8585\begin{frame}
    8686   \frametitle{General Structure of the User-Interface}
     87   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.7\textwidth, font=\Tiny]
    8788   \scriptsize
    8889   \begin{itemize}
     
    9293   \end{itemize}
    9394   \onslide<3->
    94    \centering
    95    \includegraphics[scale=0.3]{user_defined_code_figures/user_last_actions.png}\\   
     95   \begin{center}
     96   \begin{tikzpicture}[auto]
     97      \node[yellow]{~\texttt{SUBROUTINE user\_last\_actions} \\
     98                    \par\medskip
     99                    \texttt{!------------------------------------------------------------------------------!}\\
     100                    \texttt{!}\\
     101                    \texttt{! Description:}\\
     102                    \texttt{! ------------}\\
     103                    \texttt{! Execution of user-defined actions at the end of a job.}\\
     104                    \texttt{!------------------------------------------------------------------------------!}\\
     105                    \par\medskip
     106                    ~~~~\texttt{USE control\_parameters}\\
     107                    ~~~~\texttt{USE user}\\
     108                    \par\medskip
     109                    ~~~~\texttt{IMPLICIT NONE}\\
     110                    \par\medskip
     111                    \texttt{!}\\
     112                    \texttt{!-- Here the user-defined actions at the end of a job follow.}\\
     113                    \texttt{!-- Sample for user-defined output:}\\
     114                    \vspace{0.5mm}
     115                    ~~~~\texttt{IF ( write\_binary(1:4) == 'true' )  THEN}\\
     116                    \vspace{0.5mm}
     117                    \texttt{!~~~~~~~IF ( ALLOCATED( u2\_av ) )  THEN}\\
     118                    \vspace{0.5mm}
     119                    \texttt{!~~~~~~~~~~WRITE ( 14 )  'u2\_av~~~~~~~~~~~~~~~';  WRITE ( 14 )  u2\_av}\\
     120                    \vspace{0.5mm}
     121                    \texttt{!~~~~~~~ENDIF}\\
     122                    \par\medskip
     123                    ~~~~~~~\texttt{WRITE ( 14 )  '*** end user ***~~~~'}\\
     124                    \par\medskip
     125                    ~~~~\texttt{ENDIF}\\
     126                    \par\medskip
     127                    ~\texttt{END SUBROUTINE user\_last\_actions}};
     128   \end{tikzpicture}
     129   \end{center}
     130%   \includegraphics[scale=0.3]{user_defined_code_figures/user_last_actions.png}\\   
    96131\end{frame}
    97132
     
    99134\begin{frame}
    100135   \frametitle{Embedding of User-Interface Routines}
     136   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.7\textwidth, font=\Tiny]
    101137   \scriptsize
    102138   \begin{itemize}
     
    106142   \end{itemize}
    107143   \onslide<2->
    108    \centering
    109    \includegraphics[scale=0.33]{user_defined_code_figures/embedding.png}\\
     144   \begin{center}
     145      \begin{tikzpicture}[auto]
     146         \node[yellow]{~\texttt{...}\\
     147                       \vspace{0.5mm}
     148                       \texttt{!}\\
     149                       \texttt{!-- If required, final user-defined actions, and}\\
     150                       \texttt{!-- last actions on the open files and close files. Unit 14 was opened}\\
     151                       \texttt{!-- in write\_3d\_binary but it is closed here, to allow writing on this}\\
     152                       \texttt{!-- unit in routine user\_last\_actions.}\\
     153                       \vspace{0.5mm}
     154                       ~~~~\texttt{CALL cpu\_log( log\_point(4), 'last actions', 'start' )}\\
     155                       ~~~~\texttt{DO  i = 0, io\_blocks-1}\\
     156                       ~~~~~~~\texttt{IF ( i == io\_group )  THEN}\\
     157                       ~~~~~~~~~~\texttt{\textcolor{blue}{CALL user\_last\_actions}}\\
     158                       \vspace{0.5mm}
     159                       ~~~~~~~~~~\texttt{IF ( write\_binary(1:4) == 'true' )  CALL close\_file( 14 )}\\
     160                       ~~~~~~~\texttt{ENDIF}\\
     161                       \vspace{0.5mm}
     162                       \texttt{\#if defined( \_\_parallel )}\\
     163                       ~~~~~~~\texttt{CALL MPI\_BARRIER( comm2d, ierr )}\\
     164                       \vspace{0.5mm}
     165                       \texttt{\#endif}\\
     166                       \vspace{0.5mm}
     167                       ~~~~\texttt{ENDDO}\\
     168                       \vspace{0.5mm}
     169                       ~~~~\texttt{CALL close\_file( 0 )}\\
     170                       \vspace{0.5mm}
     171                       ~~~~\texttt{CALL close\_dvrp}\\
     172                       ~~~~\texttt{CALL cpu\_log( log\_point(4), 'last actions', 'stop' )}\\
     173                       \vspace{1mm}
     174                       ~\texttt{...}\\
     175                       \vspace{1mm}
     176                       \texttt{!}\\
     177                       \texttt{!-- Take final CPU-time for CPU-time analysis}\\
     178                       ~~~~\texttt{CALL cpu\_log( log\_point(1), 'total', 'stop' )}\\
     179                       ~~~~\texttt{CALL cpu\_statistics}\\
     180                       \texttt{\#if defined( \_\_parallel )}\\
     181                       ~~~~\texttt{CALL MPI\_FINALIZE( ierr )}\\
     182                       \vspace{0.5mm}
     183                       \texttt{\#endif}\\
     184                       \par\medskip
     185                       ~\texttt{END PROGRAM palm}};
     186      \end{tikzpicture}
     187   \end{center}
     188
     189%   \includegraphics[scale=0.33]{user_defined_code_figures/embedding.png}\\
    110190\end{frame}
    111191
     
    119199      % Define colours
    120200      \tikzstyle{green} = [draw, fill=green!30, text width=7.1em, text centered, minimum height=1.6em]
     201      \tikzstyle{green1} = [draw, fill=green!30, text width=12em, text centered, minimum height=1.6em]
     202      \tikzstyle{green2} = [draw, fill=green!30, text width=10em, text centered, minimum height=1.6em]
    121203      \tikzstyle{yellow} = [draw, fill=yellow!30, text width=7.1em, text centered, minimum height=1.6em]
    122204      \tikzstyle{orange} = [draw, fill=orange!60, text width=7.1em, text centered]
    123205     
    124206      % Define coordinates and draw nodes     
    125       \node[green, text width=5em] (PALM) at (0,0.1) {PALM};
     207      \node[yellow, text width=5em] (PALM) at (0,0.1) {PALM};
    126208
    127209      \coordinate (A) at (0,-0.7);
    128 
    129       \node[green, right=0.6cm of A] (parin) {parin};
    130      
    131       \coordinate[below=0.3cm of parin] (B);
    132       \coordinate[below=0.9cm of parin] (C);
    133       \coordinate[below=1.5cm of parin] (D);
    134      
    135       \node[green, right=0.6cm of B] (read) {read\_var\_list};
    136       \node[green, right=0.6cm of C] (package) {package\_parin};
    137       \node[yellow, right=0.6cm of D] (userparin) {user\_parin};
    138      
    139       \coordinate[below=3cm of PALM] (E);     
    140       \coordinate[below=3.6cm of PALM] (F);   
    141       \coordinate[below=4.2cm of PALM] (G);     
    142       \coordinate[below=4.8cm of PALM] (H);
    143       \coordinate[below=5.6cm of PALM] (I);
    144       \coordinate[below=7.4cm of PALM] (J);             
    145                
    146       \node[green, right=0.6cm of E] (initpegrid) {init\_pegrid};     
    147       \node[green, right=0.6cm of F] (initgrid) {init\_grid};
    148       \node[yellow, right=0.9cm of initgrid] (userinitgrid) {user\_init\_grid};
    149      
    150       \node[green, right=0.6cm of G] (checkparameters) {check\_parameters};       
    151       \node[yellow, right=0.9cm of checkparameters, text width=9.5em] (usercheckdataoutput) {user\_check\_data\_output};
    152       \node[green, right=0.6cm of H] (header) {header};
    153       \node[green, right=0.6cm of I] (init3dmodel) {init\_3d\_model};       
    154       \node[yellow, right=0.9cm of header] (userheader) {user\_header};
    155            
    156       \node[orange, right=0.6cm of J] (timeint) {time\_integration};       
    157      
    158       \coordinate[below=0.3cm of init3dmodel] (K);   
    159       \coordinate[below=0.9cm of init3dmodel] (L);       
    160      
    161       \node[green, right=0.6cm of K] (initparticles) {init\_particles};       
    162       \node[yellow, right=0.9cm of initparticles] (userinitparticles) {user\_init\_particles};   
    163       \node[yellow, right=0.6cm of L] (userinit) {user\_init};       
    164      
    165       % Draw lines
    166       \draw[-, thick] (PALM) -- (0,-7.8);
    167       \draw[dotted, thick] (0,-8.2) -- (0,-7.8);
    168       \draw[-, thick] (A) -- (parin);
    169       \draw[-, thick] (parin) -- (D); 
    170       \draw[dashed, thick] (B) -- (read);
    171       \draw[dashed, thick] (C) -- (package);
    172       \draw[-, thick] (D) -- (userparin);
    173       \draw[-, thick] (E) -- (initpegrid);
    174       \draw[-, thick] (F) -- (initgrid);
    175       \draw[-, thick] (G) -- (checkparameters);
    176       \draw[-, thick] (H) -- (header);
    177       \draw[-, thick] (I) -- (init3dmodel);
    178       \draw[-, thick] (J) -- (timeint);
    179       \draw[dotted, thick] (init3dmodel) -- (K);
    180       \draw[-, thick] (K) -- (L);
    181       \draw[dashed, thick] (K) -- (initparticles);
    182       \draw[-, thick] (L) -- (userinit);
    183       \draw[-, thick] (initgrid) -- (userinitgrid);     
    184       \draw[-, thick] (checkparameters) -- (usercheckdataoutput);     
    185       \draw[-, thick] (header) -- (userheader);     
    186       \draw[-, thick] (initparticles) -- (userinitparticles);     
     210      \node[yellow, right=0.6cm of A] (parin) {parin};
     211
     212      \node[green, right=1mm of parin] (userparin) {user\_parin};
     213      \draw[-] (parin) -- (userparin);
     214
     215      \coordinate[below=0.6cm of A] (B);
     216      \node[yellow, right=0.6cm of B] (initgrid) {init\_grid};
     217
     218      \node[green, right=1mm of initgrid] (userinigrid) {user\_init\_grid};
     219      \draw[-] (initgrid) -- (userinigrid);
     220
     221      \coordinate[below=0.6cm of B] (C);
     222      \node[yellow, right=0.6cm of C] (checkparam) {check\_parameters};
     223
     224      \coordinate[below=0.3cm of checkparam] (D);
     225      \node[green1, right=0.6cm of D] (usercheckdataout) {user\_check\_data\_output/\_pr};
     226
     227      \coordinate[below=0.55cm of D] (E);
     228      \node[green1, right=0.6cm of E] (usercheckparam) {user\_check\_parameters};
     229
     230      \coordinate[below=1.7cm of C] (F);
     231      \node[yellow, right=0.6cm of F] (init3dmodel) {init\_3d\_model};
     232
     233      \coordinate[below=0.3cm of init3dmodel] (G);
     234      \node[green2, right=0.6cm of G] (userinit3d) {user\_init\_3d\_model};
     235
     236      \coordinate[below=0.55cm of G] (H);
     237      \node[yellow, right=0.6cm of H] (read3dbin) {read\_3d\_binary};
     238
     239      \coordinate[below=0.3cm of read3dbin] (I);
     240      \node[green1, right=0.6cm of I] (userreadrestart) {user\_read\_restart\_data};
     241
     242      \coordinate[below=1.15cm of H] (J);
     243      \node[green1, right=0.6cm of J] (userinitplan) {user\_init\_plant\_canopy};
     244
     245      \coordinate[below=0.6cm of J] (K);
     246      \node[yellow, right=0.6cm of K] (lpminit) {lpm\_init};
     247
     248      \node[green, right=1mm of lpminit] (userlpminit) {user\_lpm\_init};
     249      \draw[-] (lpminit) -- (userlpminit);     
     250
     251      \coordinate[below=0.6cm of K] (L);
     252      \node[green, right=0.6cm of L] (userinit) {user\_init};
     253
     254      \coordinate[below=4.05cm of F] (M);
     255      \node[yellow, right=0.6cm of M] (header) {header};
     256
     257      \node[green, right=1mm of header] (userheader) {user\_header};
     258      \draw[-] (header) -- (userheader);     
     259%     
     260       % Draw lines
     261       \draw[-, thick] (PALM) -- (0,-7.8);
     262       \draw[dotted, thick] (0,-8.2) -- (0,-7.8);
     263       \draw[-] (A) -- (parin);
     264       \draw[-] (B) -- (initgrid);
     265       \draw[-] (C) -- (checkparam);
     266       \draw[-] (checkparam.south) |- (usercheckdataout.west);
     267       \draw[-] (checkparam.south) |- (usercheckparam.west);
     268       \draw[-] (F) -- (init3dmodel);
     269       \draw[-,dashed] (init3dmodel.south) |- (userinit3d.west);
     270       \draw[-,dashed] (init3dmodel.south) |- (read3dbin.west);
     271       \draw[-] (read3dbin.south) |- (userreadrestart.west);
     272       \draw[-,dashed] (init3dmodel.south) |- (userinitplan);
     273       \draw[-,dashed] (init3dmodel.south) |- (lpminit);
     274       \draw[-] (init3dmodel.south) |- (userinit);
     275       \draw[-] (M) -- (header);   
    187276     
    188277   \end{tikzpicture}
     
    197286      % Define colours
    198287      \tikzstyle{green} = [draw, fill=green!30, text width=7.1em, text centered, minimum height=1.6em]
     288      \tikzstyle{green1} = [draw, fill=green!30, text width=10em, text centered, minimum height=1.6em]
    199289      \tikzstyle{yellow} = [draw, fill=yellow!30, text width=7.1em, text centered, minimum height=1.6em]
    200290      \tikzstyle{orange} = [draw, fill=orange!60, text width=7.1em, text centered]
     
    214304      \coordinate[right=3.8cm of D] (E);
    215305                 
    216       \node[yellow, right=0.6cm of B, text width=14em] (useractions1) {\textcolor{blue}{user\_actions\_(\textit{'before\_timestep'})}};   
     306      \node[green, right=0.6cm of B, text width=14em] (useractions1) {\textcolor{blue}{user\_actions\_(\textit{'before\_timestep'})}};   
    217307         
    218308      \node[orange1, below=0.2cm of D] (progeq) {prognostic\_equations};   
     
    220310      \node[draw, fill=red, text width=4em] at (8.6,-0.8) {\textcolor{white}{standard advection}};
    221311               
    222       \node[yellow, right=0.3cm of progframe, text width=14em] (useractions2) {\textcolor{blue}{user\_actions\_(\textit{'*\_tendency'})}};
     312      \node[green, right=0.3cm of progframe, text width=14em] (useractions2) {\textcolor{blue}{user\_actions\_(\textit{'*\_tendency'})}};
    223313     
    224314     
     
    229319
    230320                             
    231       \node[green, right=0.6cm of F] (advecparticles) {advec\_particles};
    232       \node[yellow, right=0.9cm of advecparticles, text width=10em] (userparticlesattributes) {user\_particles\_attributes};
    233       \node[green, right=0.6cm of G] (exchangehoriz) {exchange\_horiz}; 
    234       \node[green, right=0.0cm of exchangehoriz] (asselin) {asselin\_filter};     
    235       \node[green, right=0.6cm of H] (swaptimelevel) {swap\_timelevel};
    236       \node[green, right=0.6cm of I] (pres) {pres};
     321      \node[yellow, right=0.6cm of F] (lpm) {lpm};
     322      \node[green, right=0.9cm of lpm, text width=10em] (userlpmadvec) {user\_lpm\_advec};
     323      \node[yellow, right=0.6cm of G] (exchangehoriz) {exchange\_horiz}; 
     324%      \node[yellow, right=0.0cm of exchangehoriz] (asselin) {asselin\_filter};     
     325      \node[yellow, right=0.6cm of H] (swaptimelevel) {swap\_timelevel};
     326      \node[yellow, right=0.6cm of I] (pres) {pres};
    237327     
    238328      \coordinate[below=0.3cm of pres] (J);   
     
    244334      \coordinate[below=8.8cm of timeint] (P);     
    245335                 
    246       \node[green, right=0.6cm of K] (prandtlfluxes) {prandtl\_fluxes};   
    247       \node[yellow, right=0.6cm of L, text width=14em] (useractions3) {\textcolor{blue}{user\_actions\_(\textit{'after\_integration'})}};             
    248       \node[green, right=0.6cm of M] (diffusivities) {diffusivities};             
    249       \node[green, right=0.0cm of diffusivities] {check\_for\_restart};     
    250       \node[green, right=0.6cm of N] (flowstat) {flow\_statistics};
    251       \node[green, right=0.0cm of flowstat] (runcontrol) {run\_control}; 
    252       \node[yellow, below=0.2cm of flowstat] (userstat) {user\_statistics}; 
    253       \node[yellow, right=0.6cm of O, text width=14em] (useractions4) {\textcolor{blue}{user\_actions\_(\textit{'after\_timestep'})}};
    254       \node[green, right=0.6cm of P] (timestep) {timestep};             
    255 
    256       \node[green, right=0.2cm of runcontrol] (dataoutput) {data\_output\_***};
    257       \node[yellow, right=0.2cm of dataoutput] (userdvrpcoltab) {user\_dvrp\_coltab};
     336%      \node[yellow, right=0.6cm of K] (prandtlfluxes) {prandtl\_fluxes};   
     337      \node[green, right=0.6cm of K, text width=14em] (useractions3) {\textcolor{blue}{user\_actions\_(\textit{'after\_integration'})}};             
     338%      \node[yellow, right=0.6cm of L] (diffusivities) {diffusivities};             
     339%      \node[yellow, right=0.6cm of L] (checkrestart) {check\_for\_restart};     
     340      \node[yellow, right=0.6cm of L] (flowstat) {flow\_statistics};
     341      \node[green, right=0.6cm of flowstat] (userstat2) {user\_statistics}; 
     342
     343      \node[yellow, right=0.6cm of M] (sum3ddata) {sum\_up\_3d\_data}; 
     344      \node[green1, right=0.6cm of sum3ddata] (user3ddataav) {user\_3d\_data\_averaging};
     345
     346      \node[green, right=0.6cm of O, text width=14em] (useractions4) {\textcolor{blue}{user\_actions\_(\textit{'after\_timestep'})}};
     347%      \node[yellow, right=0.6cm of P] (timestep) {timestep};             
     348
     349      \node[yellow, right=0.2cm of user3ddataav] (dataoutput) {data\_output\_***};
     350      \node[green, right=0.2cm of dataoutput] (userdvrpcoltab) {user\_dvrp\_coltab};
    258351      \coordinate[below=0.2cm of dataoutput] (Q);   
    259352      \coordinate[right=0.4cm of Q] (R);   
    260353      \coordinate[right=3.0cm of R] (S);
    261354         
    262       \node[yellow, below=0.2cm of R, text width=9em] (output2d) {user\_data\_output\_2d};
    263       \node[yellow, below=0.2cm of S, text width=9em] (output3d) {user\_data\_output\_3d};
     355      \node[green, below=0.2cm of R, text width=9em] (output2d) {user\_data\_output\_2d};
     356      \node[green, below=0.2cm of S, text width=9em] (output3d) {user\_data\_output\_3d};
    264357     
    265358
     
    276369      \draw[->, thick, color=red] (E) -- (progeqfast);       
    277370      \draw[-, thick] (progframe) -- (useractions2);
    278       \draw[-, thick] (F) -- (advecparticles);   
    279       \draw[-, thick] (userparticlesattributes) -- (advecparticles);   
     371      \draw[-, thick] (F) -- (lpm);   
     372      \draw[-, thick] (userlpmadvec) -- (lpm);   
    280373      \draw[-, thick] (G) -- (exchangehoriz);
    281374      \draw[-, thick] (H) -- (swaptimelevel);
    282375      \draw[-, thick] (I) -- (pres);     
    283376      \draw[dotted, thick] (pres) -- (J);
    284       \draw[-, thick] (K) -- (prandtlfluxes);   
    285       \draw[-, thick] (L) -- (useractions3);     
    286       \draw[-, thick] (M) -- (diffusivities); 
    287       \draw[-, thick] (N) -- (flowstat); 
    288       \draw[-, thick] (userstat) -- (flowstat); 
     377%      \draw[-, thick] (K) -- (prandtlfluxes);   
     378      \draw[-, thick] (K) -- (useractions3);     
     379      \draw[-, thick] (L) -- (flowstat); 
     380      \draw[-, thick] (M) -- (sum3ddata); 
     381      \draw[-, thick] (sum3ddata) -- (user3ddataav);
     382
     383      \draw[-, thick] (userstat2) -- (flowstat); 
    289384      \draw[-, thick] (O) -- (useractions4);
    290       \draw[-, thick] (P) -- (timestep);   
     385%      \draw[-, thick] (O) -- (timestep);   
    291386      \draw[-, thick] (dataoutput) -- (Q);
    292387      \draw[-, thick] (S) -- (Q);
     
    320415      \coordinate[below=2.5cm of PALM] (D); 
    321416     
    322       \node[green, right=0.6cm of D] (write3dbinary) {write\_3d\_binary};
    323       \node[green, right=0.9cm of write3dbinary] (writevarlist) {write\_var\_list};   
     417      \node[yellow, right=0.6cm of D] (write3dbinary) {write\_3d\_binary};
     418      \node[yellow, right=0.9cm of write3dbinary] (writevarlist) {write\_var\_list};   
    324419       
    325420      \coordinate[below=3.5cm of PALM] (E);
    326421      \coordinate[below=4.1cm of PALM] (F);
    327422      \coordinate[below=4.7cm of PALM] (G);
    328       \node[green, right=0.6cm of E] (header) {header};     
    329       \node[yellow, right=0.6cm of F] (userlastactions) {user\_last\_actions};   
    330       \node[green, right=0.6cm of G] (cpustat) {cpu\_statistics};               
     423      \node[yellow, right=0.6cm of E] (header) {header};     
     424      \node[green, right=0.6cm of F] (userlastactions) {user\_last\_actions};   
     425      \node[yellow, right=0.6cm of G] (cpustat) {cpu\_statistics};               
    331426      % Draw lines
    332427      \draw[-, thick] (PALM) -- (G);
     
    351446           \textbf{Name} & \textbf{Arguments} & \textbf{Called from} & \textbf{Task}\\
    352447           \hline
    353            \texttt{user\_3d\_data\_averaging} & \texttt{mode}, \texttt{variable} & \texttt{sum\_up\_3d\_data} & temporal averaging for user-defined quantities\\
     448           \texttt{user\_3d\_data\_averaging} & \texttt{mode}, \texttt{variable} & \texttt{average\_3d\_data} + \texttt{sum\_up\_3d\_data} & temporal averaging for user-defined quantities\\
    354449           \hline
    355450           \texttt{user\_actions} \texttt{user\_actions} & \texttt{location} \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \texttt{i}, \texttt{j}, \texttt{location} & \texttt{time\_integration} +
     
    358453           \texttt{user\_dummy (user\_additional \_routines.f90)} & - - - & - - - & for additional subroutines defined by the user\\
    359454           \hline
    360            \texttt{user\_advec\_particles} & - - - & \texttt{advec\_particles} & modification of particles after advection\\
    361            \hline
    362            \texttt{user\_check\_data\_output} & \texttt{variable}, \texttt{unit} & \texttt{check\_parameters} & check the user-defined output quantities\\
     455           \texttt{user\_check\_data\_output} & \texttt{variable}, \texttt{unit} & \texttt{check\_parameters} + \texttt{init\_masks}& check the user-defined output quantities\\
    363456           \hline
    364457           \texttt{user\_check\_data\_output\_pr} & \texttt{variable}, \texttt{var\_count}, \texttt{unit} & \texttt{check\_parameters} & check the user-defined profile output quantities\\
     
    366459           \texttt{user\_check\_parameters} & - - - & \texttt{check\_parameters} & check user-defined variables\\
    367460           \hline         
    368            \texttt{user\_data\_output\_2d} & \texttt{av}, \texttt{variable}, \texttt{found}, \texttt{grid}, \texttt{local\_pf} & \texttt{data\_output\_2d} & output/calculation of additional user-defined quantities\\
     461           \texttt{user\_data\_output\_2d} & \texttt{av}, \texttt{variable}, \texttt{found}, \texttt{grid}, \texttt{local\_pf}, \texttt{two\_d} & \texttt{data\_output\_2d} & output/calculation of additional user-defined quantities\\       
    369462           \hline         
    370463           \texttt{user\_data\_output\_3d} & \texttt{av}, \texttt{variable}, \texttt{found}, \texttt{local\_pf}, \texttt{nz\_do} & \texttt{data\_output\_3d} & output/calculation of additional user-defined quantities\\
     
    377470           \hline
    378471           \texttt{user\_dvrp\_coltab} & \texttt{mode}, \texttt{variable} & \texttt{data\_output\_dvrp} & defining color tables for particles\\   
    379            \hline         
     472           \hline
     473           \texttt{user\_header} & \texttt{io} & \texttt{header} & output user variables to header\\
     474           \hline
     475           \texttt{user\_init} & - - - & \texttt{init\_3d\_model} & e.g. reading from restart file\\
     476           \hline
    380477   \end{tabular}
    381478
     
    391488           \textbf{Name} & \textbf{Arguments} & \textbf{Called from} & \textbf{Task}\\
    392489           \hline
    393            \texttt{user\_header} & \texttt{io} & \texttt{header} & output user variables to header\\
    394            \hline
    395            \texttt{user\_init} & - - - & \texttt{init\_3d\_model} & e.g. reading from restart file\\
    396            \hline
    397490           \texttt{user\_init\_3d\_model} & - - - & \texttt{init\_3d\_model} & special initializations\\
    398491           \hline
    399            \texttt{user\_init\_grid} & \texttt{gls}, \texttt{nzb\_local} & \texttt{init\_grid} & defining a special topography\\
     492           \texttt{user\_init\_grid} & \texttt{gls} & \texttt{init\_grid} & defining a special topography\\
    400493           \hline         
    401            \texttt{user\_init\_particles} & - - - & \texttt{init\_particles} & defining initial particle sources\\
    402            \hline                 
    403494           \texttt{user\_init\_plant\_canopy} & - - - & \texttt{init\_3d\_model} & setting of leaf area density and canopy drag coefficient\\
    404495           \hline
    405496           \texttt{user\_last\_actions} & - - - & \texttt{palm} & e.g. output for restart runs\\
    406            \hline         
     497           \hline
     498           \texttt{user\_lpm\_advec} & - - - & \texttt{lpm} & modification of particles after advection \\
     499           \hline
     500           \texttt{user\_lmp\_init} & - - - & \texttt{lpm\_init} & defining initial particle sources \\
     501           \hline
     502           \texttt{user\_lpm\_set\_attributes} & - - - & \texttt{lpm} & defining particles attributes \\
     503           \hline
    407504           \texttt{MODULE user (user\_module.f90)} & - - - & - - - & contains user defined variables\\
    408505           \hline                 
    409506           \texttt{user\_parin} &  & \texttt{parin} & reading user variables\\     
    410            \hline         
    411            \texttt{user\_particle\_attributes} & - - - & \texttt{advec\_particles} & defining particles attributes\\       
    412            \hline
     507           \hline 
    413508           \texttt{user\_read\_restart\_data} & \texttt{i}, \texttt{nxlfa}, \texttt{nxl\_on\_file}, \texttt{nxrfa}, \texttt{nxr\_on\_file}, \texttt{nynfa}, \texttt{nyn\_on\_file}, \texttt{nysfa}, \texttt{nys\_on\_file}, \texttt{offset\_xa}, \texttt{offset\_ya}, \texttt{overlap\_count}, \texttt{tmp\_2d}, \texttt{tmp\_3d} & \texttt{read\_3d\_binary} & reading user-defined 2d/3d-arrays from the restart file\\         
    414509           \hline                 
    415            \texttt{user\_spectra} & \texttt{mode}, \texttt{m}, \texttt{pr} & \texttt{data\_output\_spectra} & output/calculation of additional user-defined quantities\\           
     510           \texttt{user\_spectra} & \texttt{mode}, \texttt{m}, \texttt{pr} & \texttt{calc\_spectra} + \texttt{data\_output\_spectra} & output/calculation of additional user-defined quantities\\         
    416511           \hline         
    417512           \texttt{user\_statistics} & \texttt{mode}, \texttt{sr}, \texttt{tn} & \texttt{flow\_statistics} & calculating additional horizontal averages + time series quantities\\             
     
    429524\begin{frame}
    430525   \frametitle{Data Access / Exchange}
     526   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.6\textwidth, font=\tiny]
    431527   \footnotesize
    432528   \begin{itemize}
     
    436532         \item<3-> by including the respective PALM modules in the user-interface subroutines.\\
    437533         \begin{center}
    438             \includegraphics[scale=0.3]{user_defined_code_figures/data_access_exchange.png}
     534%           \includegraphics[scale=0.3]{user_defined_code_figures/data_access_exchange.png}
     535            \begin{tikzpicture}[auto]
     536               \node[yellow]{\texttt{SUBROUTINE user\_actions( location )} \\
     537                             \par\medskip
     538                             ~~~~~\texttt{\textcolor{blue}{USE arrays\_3d}} \\
     539                             ~~~~~\texttt{\textcolor{blue}{USE control\_parameters}} \\
     540                             ~~~~~\texttt{\textcolor{blue}{USE cpulog}} \\
     541                             ~~~~~\texttt{\textcolor{blue}{USE indices}} \\
     542                             ~~~~~\texttt{\textcolor{blue}{USE interfaces}} \\
     543                             ~~~~~\texttt{\textcolor{blue}{USE pegrid}} \\
     544                             ~~~~~\texttt{\textcolor{red}{USE user}} \\
     545                             \par\medskip
     546                             ~~~~~\texttt{IMPLICIT NONE} \\
     547                             \par\medskip
     548                             ~~~~~\texttt{CHARACTER (LEN=$^\ast$) ::  location} \\
     549                             \par\medskip
     550                             ~~~~~\texttt{INTEGER ::  i, j, k}};
     551            \end{tikzpicture}
    439552         \end{center}
    440553      \end{itemize}
     
    451564\begin{frame}
    452565   \frametitle{Usage of \texttt{user\underline{ }actions} (I)}
     566   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.7\textwidth, font=\tiny]
    453567   \scriptsize
    454568   \begin{itemize}
    455569      \item<1-> \texttt{user\underline{ }actions} is designed to add additional terms to the prognostic equations or to carry out special actions at the beginning or the end of each timestep.
    456       \vspace{2mm}
     570      \vspace{1.8mm}
    457571      \item<2-> Therefore, several calls of \texttt{user\underline{ }actions} can be found in the default PALM routines \texttt{time\underline{ }integration} and \texttt{prognostic\underline{ }equations}. The place from which it is called is communicated to the routine by a string-argument, e.g.\\
    458572   \ \\
     
    461575        \onslide<3-> It means that this call is from a place within \texttt{prognostic\underline{ }equations}, where the tendencies for the u-component are calculated and integrated:
    462576   \end{itemize}
    463    \vspace{-2mm}
     577   \vspace{-3mm}
    464578   \begin{center}
    465       \includegraphics[scale=0.33]{user_defined_code_figures/user_actions_1.png}
     579   \begin{tikzpicture}[auto]
     580      \node[yellow] {\texttt{DO  i = nxl, nxr} \\
     581                     ~~~\texttt{DO  j = nys, nyn} \\
     582                     \texttt{...} \\
     583                     ~~~~~~\texttt{CALL diffusion\_u( i, j )}\\
     584                     ~~~~~~\texttt{CALL coriolis( i, j, 1 )} \\
     585                     \texttt{...}\\
     586                     ~~~~~~\texttt{\textcolor{blue}{CALL user\_actions( i, j, 'u-tendency' )}}\\
     587                     \texttt{!} \\
     588                     \texttt{!-- Prognostic equation for u-velocity component} \\
     589                     ~~~~~~\texttt{DO  k = nzb\_u\_inner(j,i)+1, nzt} \\
     590                     ~~~~~~~~~\texttt{u\_p(k,j,i) = u(k,j,i) + dt\_3d * ( tsc(2) * tend(k,j,i) + \&} \\
     591                     \hspace{4.08cm} \texttt{tsc(3) * tu\_m(k,j,i) )       \&} \\
     592                     \hspace{2.93cm} \texttt{- tsc(5) * rdf(k) * ( u(k,j,i) - ug(k) )}\\
     593                     ~~~~~~\texttt{ENDDO} \\
     594                     \texttt{...}};
     595   \end{tikzpicture}
    466596   \end{center}
     597%    \begin{center}
     598%       \includegraphics[scale=0.33]{user_defined_code_figures/user_actions_1.png}
     599%    \end{center}
    467600\end{frame}
    468601
     
    470603\begin{frame}
    471604   \frametitle{Usage of \texttt{user\underline{ }actions} (II)}
     605   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.7\textwidth, font=\tiny]
    472606   \scriptsize
    473607   \begin{itemize}
     
    475609   \end{itemize}
    476610   \begin{center}
    477       \includegraphics[scale=0.35]{user_defined_code_figures/user_actions_2.png}
     611      \begin{tikzpicture}[auto]
     612         \node[yellow]{~\texttt{SUBROUTINE user\_actions( location )}\\
     613                       \texttt{...}\\
     614                       \texttt{!}\\
     615                       \texttt{!--    Here the user-defined actions follow}\\
     616                       \texttt{!--    No calls for single grid points are allowed at locations before and}\\
     617                       \texttt{!--    after the timestep, since these calls are not within an i,j-loop}\\
     618                       ~~~~~~~\texttt{SELECT CASE ( location )}\\
     619                       \texttt{...}\\
     620                       ~~~~~~~~~~\texttt{CASE ( 'after\_timestep' )}\\
     621                       \texttt{!}\\
     622                       \texttt{!-- Enter actions to be done after every timestep here}\\
     623                       \par\medskip
     624                       ~~~~~~~~~~\texttt{CASE ( 'u-tendency' )}\\
     625                       \texttt{!}\\
     626                       \texttt{!-- Enter actions to be done in the u-tendency term here}\\
     627                       ~~~~~~~~~~~~~\texttt{\textcolor{blue}{DO i = nxl, nxr}}\\
     628                       ~~~~~~~~~~~~~~~~\texttt{\textcolor{blue}{DO j = nys, nyn}}\\
     629                       ~~~~~~~~~~~~~~~~~~~\texttt{\textcolor{blue}{DO k = nxb+1, nzt}}\\
     630                       ~~~~~~~~~~~~~~~~~~~~~~~~~\texttt{\textcolor{blue}{tend(k,j,i) = tend(k,j,i) - const * u(k,j,i) ...}}\\
     631                       ~~~~~~~~~~~~~~~~~~~\texttt{\textcolor{blue}{ENDDO}}\\
     632                       ~~~~~~~~~~~~~~~~\texttt{\textcolor{blue}{ENDDO}}\\
     633                       ~~~~~~~~~~~~~\texttt{\textcolor{blue}{ENDDO}}\\
     634                       \par\bigskip
     635                       ~~~~~~~~~~\texttt{CASE ( 'v-tendency' )}\\
     636                       \texttt{...}};
     637      \end{tikzpicture}
     638%      \includegraphics[scale=0.35]{user_defined_code_figures/user_actions_2.png}
    478639   \end{center}
    479640\end{frame}
     
    482643\begin{frame}[t]
    483644   \frametitle{Usage of \texttt{user\underline{ }actions} (III)}
     645   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.5\textwidth, font=\Tiny]
    484646   \scriptsize
    485647   \begin{columns}[T]
     
    507669   \uncover<4->{%
    508670   \begin{tikzpicture}[remember picture, overlay]
    509       \node [shift={(8.3 cm,3.0cm)}]  at (current page.south west)
    510          {%
    511          \begin{tikzpicture}[remember picture, overlay]
    512             \node[text width=14em] at (0,0) {\includegraphics[scale=0.3]{user_defined_code_figures/user_actions_3.png}};
    513          \end{tikzpicture}
    514          };
     671      \node [yellow,shift={(9.2 cm,3.0cm)}]  at (current page.south west){~\texttt{SUBROUTINE user\_actions\_ij( i, j, location )}\\
     672                                                                          \par\medskip
     673                                                                          ~~~\texttt{USE control\_parameters}\\
     674                                                                          ~~~\texttt{USE pegrid}\\
     675                                                                          ~~~\texttt{USE user}\\
     676                                                                          \par\medskip
     677                                                                          ~~~\texttt{IMPLICIT NONE}\
     678                                                                          \par\medskip
     679                                                                          ~~~\texttt{CHARACTER (LEN=*) ::  location}\\
     680                                                                          \par\medskip
     681                                                                          ~~~\texttt{INTEGER ::  i, idum, j}\\
     682                                                                          \par\medskip
     683                                                                          \texttt{!}\\
     684                                                                          \texttt{!--    Here the user-defined actions follow}\\
     685                                                                          \vspace{0.5mm}
     686                                                                          ~~~\texttt{SELECT CASE ( location )}\\
     687                                                                          \par\medskip
     688                                                                          ~~~~~~\texttt{CASE ( 'u-tendency' )}\\
     689                                                                          \texttt{!}\\
     690                                                                          \texttt{!--Enter actions to be done in the u-tendency term here}\\
     691                                                                          ~~~~~~~~~\texttt{\textcolor{blue}{DO k = nzb+1, nzt-1}}\\
     692                                                                          ~~~~~~~~~~~~~~~\texttt{\textcolor{blue}{tend(k,j,i) = tend(k,j,i) + ...}}\\
     693                                                                          ~~~~~~~~~\texttt{\textcolor{blue}{ENDDO}}\\
     694                                                                          \par\medskip
     695                                                                          ~~~~~~\texttt{CASE ( 'v-tendency' )}};
     696%          {%
     697%          \begin{tikzpicture}[remember picture, overlay]
     698% %            \node[text width=14em] at (0,0) {\includegraphics[scale=0.3]{user_defined_code_figures/user_actions_3.png}};
     699%          \end{tikzpicture}
     700%          };
    515701    \end{tikzpicture}}
    516702   
     
    520706\begin{frame}
    521707   \frametitle{Steering the User-Interface}
     708   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.7\textwidth, font=\Tiny]
    522709   \scriptsize
    523710   \begin{columns}[T]
     
    530717         \item<1-> Add the variable name to module \texttt{user} in order to define it and to make it available in all user-interface subroutines. Set a default value for this variable.
    531718         \begin{center}
    532             \includegraphics[scale=0.3]{user_defined_code_figures/steering_1.png}
     719%            \includegraphics[scale=0.3]{user_defined_code_figures/steering_1.png}
     720            \begin{tikzpicture}
     721               \node[yellow]{~\texttt{MODULE user}\\
     722                             \vspace{0.4mm}
     723                             \texttt{...}\\
     724                             \vspace{0.4mm}
     725                             ~\texttt{REAL \hspace{0.4cm}:: ~~\textcolor{blue}{foo = 0.0}}\\
     726                             \vspace{0.4mm}
     727                             \texttt{...}\\
     728                             \vspace{0.4mm}
     729                             ~\texttt{END MODULE user}};
     730            \end{tikzpicture}
    533731         \end{center}
    534732         \vspace{1mm}
    535733         \item<2-> Add the variable to the NAMELIST \texttt{/userpar/}. This NAMELIST already contains four predefined variables.
    536734         \begin{center}
    537             \includegraphics[scale=0.3]{user_defined_code_figures/steering_2.png}
     735%            \includegraphics[scale=0.3]{user_defined_code_figures/steering_2.png}
     736            \begin{tikzpicture}
     737               \node[yellow]{~\texttt{SUBROUTINE user\_parin}\\
     738                             \vspace{0.4mm}
     739                             \texttt{...}\\
     740                             \vspace{0.4mm}
     741                             ~~~~~\texttt{NAMELIST ~~/userpar/ ~~ data\_output\_pr\_user, data\_output\_user,}\\
     742                             \vspace{0.4mm}
     743                             \hspace{3cm}\texttt{\textcolor{blue}{foo}, region}\\
     744                             \vspace{0.4mm}
     745                             \texttt{...}\\
     746                             \vspace{0.4mm}
     747                             ~\texttt{END SUBROUTINE user\_parin}};
     748            \end{tikzpicture}
    538749         \end{center}
    539750         \vspace{1mm}
    540751         \item<3-> Add the NAMELIST \texttt{\&userpar} to the parameter file (e.g. \texttt{example\underline{ }cbl\underline{ }p3d}) and assign a value to this variable.         
    541752         \begin{center}
    542             \includegraphics[scale=0.3]{user_defined_code_figures/steering_3.png}
     753%            \includegraphics[scale=0.3]{user_defined_code_figures/steering_3.png}
     754            \begin{tikzpicture}
     755               \node[yellow]{~\texttt{\&inipar ~~~ nx = ... ~~/}\\
     756                             \vspace{0.4mm}
     757                             ~\texttt{\&d3par ~~~ end\_time = 3600.0, ... ~~/}\\
     758                             \par\smallskip
     759                             ~\texttt{\textcolor{blue}{\&userpar ~~foo = 12345.6 ~~/}}};
     760            \end{tikzpicture}
    543761         \end{center}
    544762         \vspace{1mm}
     
    575793\begin{frame}
    576794   \frametitle{User-Defined Data for Restart Runs (I)}
     795   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.7\textwidth, font=\tiny]
    577796   \scriptsize
    578797   \begin{itemize}
     
    583802   \end{itemize}
    584803   \begin{center}
    585       \includegraphics[scale=0.3]{user_defined_code_figures/restart_1.png}
     804%      \includegraphics[scale=0.3]{user_defined_code_figures/restart_1.png}
     805      \begin{tikzpicture}[auto]
     806         \node[yellow]{~\texttt{SUBROUTINE user\_last\_actions}\\
     807                       \texttt{...}\\
     808                       ~~~~~\texttt{\textcolor{blue}{WRITE ( 14 )  'foo \hspace{2cm}';  WRITE ( 14 )  foo}}\\
     809                       ~~~~~\texttt{\textcolor{blue}{WRITE ( 14 )  'bar \hspace{2cm}';  WRITE ( 14 )  bar}}
     810                       \par\smallskip
     811                       ~~~~~\texttt{WRITE ( 14 ) '*** end user *** \hspace{0.66cm}'}
     812                       \par\smallskip
     813                       ~\texttt{END SUBROUTINE user\_last\_actions}};
     814      \end{tikzpicture}
    586815   \end{center}
    587816\end{frame}
     
    590819\begin{frame}
    591820   \frametitle{User-Defined Data for Restart Runs (II)}
     821   \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.95\textwidth, font=\tiny]
    592822   \scriptsize
    593823   \begin{itemize}
    594824      \item Additionally, these variables have to be read from the restart file (file-id \grqq \texttt{13}\grqq\,, local filename \texttt{BININ}) by adding code to the routine \texttt{user\underline{ }read\underline{ }restart\underline{ }data}:
    595825   \end{itemize}
     826   \vspace{-2.7mm}
    596827   \begin{center}
    597       \includegraphics[scale=0.3]{user_defined_code_figures/restart_2.png}
     828%      \includegraphics[scale=0.3]{user_defined_code_figures/restart_2.png}
     829      \begin{tikzpicture}
     830         \node[yellow]{\texttt{~SUBROUTINE user\_read\_restart\_data( i, nxlfa, nxl\_on\_file, nxrfa, nxr\_on\_file, \&} \\
     831                       \hspace{3.84cm}\texttt{nynfa, nyn\_on\_file, nysfa, nys\_on\_file,    \&} \\
     832                       \hspace{3.84cm}\texttt{offset\_xa, offset\_ya, overlap\_count,       \&} \\
     833                       \hspace{3.84cm}\texttt{tmp\_2d, tmp\_3d )}\\
     834                       \texttt{...} \\
     835                       ~~~~~\texttt{IF ( initializing\_actions == 'read\_restart\_data' )  THEN}\\
     836                       ~~~~~~~~~\texttt{READ ( 13 )  field\_char} \\
     837                       ~~~~~~~~~\texttt{DO  WHILE ( TRIM( field\_char )  '*** end user ***' )}\\
     838                       \par\smallskip
     839                       ~~~~~~~~~~~~~\texttt{nxlf = nxlfa(i,k)}
     840                       \texttt{...} \\
     841                       ~~~~~~~~~~~~~\texttt{SELECT CASE ( TRIM( field\_char ) )}\\
     842                       \par\smallskip
     843                       ~~~~~~~~~~~~~~~~~\texttt{CASE ( '\textcolor{blue}{foo}' )} \\
     844                       ~~~~~~~~~~~~~~~~~~~~~\texttt{IF ( .NOT. ALLOCATED( \textcolor{blue}{foo} ) ) THEN}\\
     845                       ~~~~~~~~~~~~~~~~~~~~~~~~~\texttt{ALLOCATE( \textcolor{blue}{foo}(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )}\\
     846                       ~~~~~~~~~~~~~~~~~~~~~\texttt{ENDIF}\\
     847                       ~~~~~~~~~~~~~~~~~~~~~\texttt{IF ( k == 1 )  READ ( 13 )  tmp\_3d}\\
     848                       ~~~~~~~~~~~~~~~~~~~~~\texttt{\textcolor{blue}{foo}(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = \&} \\
     849                       \hspace{4.5cm}\texttt{tmp\_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)}\\
     850                       \texttt{...}\\
     851                       ~~~~~~~~~~~~~\texttt{END SELECT}\\
     852                       \par\smallskip
     853                       ~~~~~~~~~\texttt{ENDDO}
     854                       \par\smallskip
     855                       ~~~~~~~~~\texttt{READ ( 13 )  field\_char}\\
     856                       \par\smallskip
     857                       ~~~~~~~~~\texttt{ENDDO}\\
     858                       ~~~~~\texttt{ENDIF}\\
     859                       \par\smallskip
     860                       ~\texttt{END SUBROUTINE user\_read\_restart\_data}};
     861      \end{tikzpicture}
    598862   \end{center}
    599863\end{frame}
     
    610874            \item<2-> Copy the default (empty) user-interface files that you need (e.g. user\underline{ }module.f90, user\underline{ }parin.f90, user\underline{ }actions.f90) to a directory of your choice, e.g.:\\
    611875            \tiny
     876            \par\smallskip
    612877                 \quad \texttt{cd \~{ }/palm/current\underline{ }version}\\
    613878                 \quad \texttt{mkdir -p USER\underline{ }CODE/example\underline{ }cbl}\\
Note: See TracChangeset for help on using the changeset viewer.