Ignore:
Timestamp:
Jan 2, 2015 11:35:51 AM (7 years ago)
Author:
boeske
Message:

several updates in the tutorial

File:
1 edited

Legend:

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

    r1234 r1515  
    66\usepackage{ngerman}
    77\usepackage{pgf}
    8 \usetheme{Dresden}
    98\usepackage{subfigure}
    109\usepackage{units}
     
    2524
    2625
    27 \institute{Institut fÃŒr Meteorologie und Klimatologie, Leibniz UniversitÀt Hannover}
     26\institute{Institute of Meteorology and Climatology, Leibniz UniversitÀt Hannover}
     27\selectlanguage{english}
    2828\date{last update: \today}
    2929\event{PALM Seminar}
     
    4545
    4646\title[PALM Program Structure]{PALM Program Structure}
    47 \author{Siegfried Raasch}
     47\author{PALM group}
    4848
    4949
     
    6161
    6262%Folie 01
    63 \begin{frame}
    64    \begin{center}
    65       PALM - Program Structure
    66    \end{center}
    67 \end{frame}
    68 
    69 %Folie 02
    7063\begin{frame}
    7164   \frametitle{Contents}
     
    8073\end{frame}
    8174
    82 %Folie 03
     75%Folie 02
    8376\begin{frame}[fragile]
    8477   \frametitle{PALM Code: General Features}
    8578   \begin{itemize}
    86       \item<2->{PALM is written in FORTRAN90. Current version number is 3.9.}
    87       \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.}
     79      \item<2->{PALM is written in FORTRAN90. Current version number is 3.10.}
     80      \vspace{2.5mm}
     81      \item<3->{With some very minor exceptions, the code is using the FORTRAN standard, so it should compile without error on any FORTRAN 2003/2008 compiler. (90/95 may give problems)}
     82      \vspace{2.5mm}
    8883      \item<4->{Data handling between subroutines is mostly done using FORTRAN90-modules instead of using parameter lists.
    89       \begin{minipage}{0.45\textwidth}
     84      \begin{minipage}{0.5\textwidth}
    9085         \centering
    9186         \begin{lstlisting}
    9287SUBROUTINE parin
    93    USE control_parameters
    94    USE grid_variables
     88   USE control_parameters, ONLY: ...
     89   USE grid_variables, ONLY: ...
    9590   .
    9691   .
    9792         \end{lstlisting}
    9893      \end{minipage}
    99       \begin{minipage}{0.45\textwidth}
     94      \begin{minipage}{0.4\textwidth}
    10095         \centering
    10196         \begin{lstlisting}
    10297SUBROUTINE parin( a, b, c, ... )
    103    INTEGER ::  a, b
    104    REAL    ::  c, ...
     98   INTEGER(iwp) ::  a, b
     99   REAL(wp)     ::  c, ...
    105100   .
    106101   .
     
    111106\end{frame}
    112107
    113 %Folie 04
     108%Folie 03
    114109\begin{frame}
    115110   \frametitle{PALM Code: General Features}
     111   \small
    116112   \begin{itemize}
    117       \item<2->{Machine dependent code segments, e.g. calls for flushing of buffers (CALL FLUSH / CALL FLUSH\_), or calls of special software (e.g. netCDF or dvrp), which are available on some machines only, are activated using preprocessor directives.}
    118       \item<3->{The serial and parallel PALM version is also activated by preprocessor directives.}
     113      \item<2->{Machine dependent code segments, e.g. calls of routines from external libraries (e.g. NetCDF or FFTW), which may not be available on some machines, are activated using preprocessor directives.}
     114      \item<3->{The serial and parallel (MPI) PALM version is also activated by preprocessor directives.}
    119115      \item<4->{The code is splitted into several files, most of them containing just one subroutine, e.g. file ``parin.f90'' contains ``SUBROUTINE parin''.}
    120       \item<5->{The code includes an interface which can be used by users to add their own code extensions. Advantage: These code extensions can be reused (normally) for future PALM releases without requiring any changes.}
     116      \item<5->{The code includes an interface which can be used to add your own code extensions. Advantage: These code extensions can be reused (normally) for future PALM releases without requiring any changes.}
    121117   \end{itemize}
    122118\end{frame}
    123119
    124 %Folie 05
     120%Folie 04
    125121\begin{frame}
    126122   \frametitle{PALM Flow Chart (I)}
     
    177173\end{frame}
    178174
    179 %Folie 06
     175%Folie 05
    180176\begin{frame}
    181177   \frametitle{PALM Flow Chart (II)}
     
    231227         \path<4-> [line,dashed] (init3d.south) |- (userinit3d.west);
    232228
    233          \uncover<4->{\node [yellow, below=0.05cm of userinit3d] (disturbh) {disturb\_heatflux};}
     229         \uncover<4->{\node [yellow, below=0.05cm of userinit3d] (randomfuncini) {random\_function\_ini};}
     230         \path<4-> [line] (init3d.south) |- (randomfuncini.west);
     231
     232         \uncover<4->{\node [yellow, below=0.05cm of randomfuncini] (disturbh) {disturb\_heatflux};}
    234233         \path<4-> [line,dashed] (init3d.south) |- (disturbh.west);
    235234
     
    253252         \path<4-> [line,dashed] (init3d.south) |- (initpt.west);
    254253
    255          \uncover<4->{\node [yellow, below=0.05cm of initpt] (randomfuncini) {random\_function\_ini};}
    256          \path<4-> [line] (init3d.south) |- (randomfuncini.west);
     254         \uncover<4->{\node [yellow, below=0.05cm of initpt] (readpart) {read\_part\_of\_varlist};}
     255         \path<4-> [line] (init3d.south) |- (readpart.west);
    257256
    258257      \uncover<1->{\node [white2, below=6.6cm of PALM] (continu2) {};}
     
    271270\end{frame}
    272271
    273 %Folie 07
     272%Folie 06
    274273\begin{frame}
    275274   \frametitle{PALM Flow Chart (III)}
     
    364363\end{frame}
    365364
    366 %Folie 08
     365%Folie 07
    367366\begin{frame}
    368367   \frametitle{PALM Flow Chart (IV)}
     
    406405               \path<7-> [line] (dataoutpdvrp.south) |- (userdataoutdvrp.west);
    407406
    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);
     407       \uncover<8->{\node [yellow, below=1cm of lpminit] (wsinit) {ws\_init};}
     408       \path<8-> [line] (init3d.south) |- (wsinit.west);
     409
     410       \uncover<9->{\node [green, below=0.05cm of wsinit] (userinit) {user\_init};}
     411       \path<9-> [line] (init3d.south) |- (userinit.west);
     412
     413       \uncover<10->{\node [yellow, below=2.5cm of init3d] (header) {header};}
     414       \path<10-> [line] (PALM.south) |- (header.west);
     415
     416          \uncover<11->{\node [green, right=0.05cm of header] (userheader) {user\_header};}
     417          \path<11-> [line] (header.east) |- (userheader.west);
     418
     419       \uncover<12->{\node [yellow, below=0.05cm of header] (dataoutput2d) {data\_output\_2d};}
     420       \path<12-> [line,dashed] (PALM.south) |- (dataoutput2d.west);
     421
     422          \uncover<13->{\node [green, right=0.05cm of dataoutput2d] (userdataoutput2d) {user\_data\_output\_2d};}
     423          \path<13-> [line] (dataoutput2d.east) |- (userdataoutput2d.west);
     424
     425       \uncover<14->{\node [yellow, below=0.05cm of dataoutput2d] (dataoutput3d) {data\_output\_3d};}
     426       \path<14-> [line,dashed] (PALM.south) |- (dataoutput3d.west);
     427
     428          \uncover<15->{\node [green, right=0.05cm of dataoutput3d] (userdataoutput3d) {user\_data\_output\_3d};}
     429          \path<15-> [line] (dataoutput3d.east) |- (userdataoutput3d.west);
     430
     431       \uncover<16->{\node [yellow, below=0.05cm of dataoutput3d] (timeintegr) {time\_integration};}
     432       \path<16-> [line] (PALM.south) |- (timeintegr.west);
     433       \uncover<16->{\node [white, right=0.2cm of timeintegr] (timeintspace) {};}
     434
     435          \uncover<17->{\node [yellow, below=0.05cm of timeintspace] (runcontr) {run\_control};}
     436          \path<17-> [line] (timeintegr.south) |- (runcontr.west);
     437          \uncover<17->{\node [white, right=0.2cm of runcontr] (runcontrspace) {};}
     438
     439             \uncover<18->{\node [yellow, below=0.05cm of runcontrspace] (flowstat1) {flow\_statistics};}
     440             \path<18-> [line,dashed] (runcontr.south) |- (flowstat1.west);
     441
     442                \uncover<19->{\node [green, right=0.05cm of flowstat1] (userstat1) {user\_statistics};}
     443                \path<19-> [line] (flowstat1.east) |- (userstat1.west);
     444
     445          \uncover<20->{\node [yellow, below=0.5cm of runcontr] (surfcoup) {surface\_coupler};}
     446          \path<20-> [line,dashed] (timeintegr.south) |- (surfcoup.west);
    445447
    446448
     
    455457
    456458
    457 %Folie 09
     459%Folie 08
    458460\begin{frame}
    459461   \frametitle{PALM Flow Chart (V)}
     
    510512            \uncover<1->{\node [yellowLarge, below=0.4cm of timestepscheme] (prognosticequve) {prognostic\_equations\_vector};}
    511513            \uncover<1->{\node [yellowLarge, right=0.05cm of prognosticequve] (prognosticequca) {prognostic\_equations\_cache};}
     514            \uncover<1->{\node [yellowLarge, below=0.025cm of prognosticequca] (prognosticequacc) {prognostic\_equations\_acc};}
     515            \coordinate [right=0.2cm of prognosticequacc] (testdummyhaha);
    512516%            \uncover<1->{\node [yellowLarge, below=0.05cm of prognosticequca] (prognosticequve) {prognostic\_equations\_vector};}
    513517            \uncover<1->{\node [boxinfo, below=-0.025cm of prognosticequve] (Boxinfo) {For details, see \\ PALM Flow Chart (VIII).};}
    514518            \path<1-> [line] (boxlinespace.north) -| (prognosticequca.north);
    515519            \path<1-> [line] (boxlinespace.north) -| (prognosticequve.north);
     520            \path<1-> [line] (boxlinespace.north) -| (testdummyhaha) -- (prognosticequacc.east);
    516521%            \uncover<1->{\node [redsmall, above=0.3cm of prognosticequca] (redadv) {standard\\advection};}
    517522
     
    545550\end{frame}
    546551
    547 %Folie 10
     552%Folie 09
    548553\begin{frame}
    549554   \frametitle{PALM Flow Chart (VI)}
     
    638643\end{frame}
    639644
    640 %Folie 11
     645%Folie 10
    641646\begin{frame}
    642647   \frametitle{PALM Flow Chart (VII)}
     
    699704
    700705
    701 %Folie 12
     706%Folie 11
    702707\begin{frame}
    703708   \frametitle{PALM Flow Chart (VIII)}
     
    718723   \tikzstyle{boxinfo} = [rectangle, align=center, text width=0.3\textwidth, minimum size=12pt, font=\tiny]
    719724   \tikzstyle{whitebox} = [rectangle, text width=0.2\textwidth, minimum size=12pt, font=\tiny]
    720    \tikzstyle{bigbox} = [rectangle, draw, fill=white!100, text width=0.21\textwidth, minimum size=12pt, font=\tiny]
     725   \tikzstyle{bigbox} = [rectangle, draw, fill=white!100, text width=0.22\textwidth, minimum size=12pt, font=\tiny]
    721726   \tikzstyle{bigbox2} = [rectangle, draw, align=center, fill=white!100, text width=0.29\textwidth, minimum size=12pt, font=\tiny]
    722727   
    723728   \tikzstyle{framebox} = [rectangle, draw, text width=0.2\textwidth, minimum size=104pt, font=\tiny]
    724729   \tikzstyle{Endbox} = [rectangle, draw, fill=gray!20, text width=0.21\textwidth, minimum size=12pt, font=\tiny]
    725 
     730   \tikzstyle{Endbox2} = [rectangle, draw, fill=gray!20, text width=0.23\textwidth, minimum size=12pt, font=\tiny]
    726731   
    727732   %"align=center" hinzufÃŒgen, um in den boxen zu zentrieren.
     
    736741      \uncover<1->{\node [yellowLarge, left=0.5cm of calcmeanptprofile] (prognosticequationscache) {prognostic\_equations\_cache};}
    737742      \uncover<1->{\node [yellowLarge, right=0.5cm of calcmeanptprofile] (prognosticequationsvector) {prognostic\_equations\_vector};}
    738 
     743      \uncover<1->{\node [yellowLarge, below=0.1cm of prognosticequationsvector] (prognosticequationsacc) {prognostic\_equations\_acc};}
    739744      \uncover<1->{\node [yellow, below=-0.05cm of calcmeanptprofile] (calcradiation) {calc\_radiation};}
    740745      \uncover<1->{\node [yellow, below=-0.05cm of calcradiation] (impactoflatentheat) {impact\_of\_latent\_heat};}
     
    749754            DO i=nxl,nxr\\
    750755            \quad DO j=nys,nyn\\
    751             \quad \quad CALL \textcolor{blue}{u-subr}\\
    752             \quad \quad CALL \textcolor{blue}{v-subr}\\
    753             \quad \quad CALL \textcolor{blue}{w-subr}\\
    754             \quad \quad CALL \textcolor{blue}{pt-subr}\\
    755             \quad \quad CALL \textcolor{blue}{q or s-subr}\\
    756             \quad \quad CALL \textcolor{blue}{e-subr}\\
     756            \quad \quad CALL \textcolor{blue}{u-subr(i,j)}\\
     757            \quad \quad CALL \textcolor{blue}{v-subr(i,j)}\\
     758            \quad \quad CALL \textcolor{blue}{w-subr(i,j)}\\
     759            \quad \quad CALL \textcolor{blue}{pt-subr(i,j)}\\
     760            \quad \quad CALL \textcolor{blue}{q or }\\
     761            \quad \quad \hphantom{CALL} \textcolor{blue}{s-subr(i,j)}\\
     762            \quad \quad CALL \textcolor{blue}{e-subr(i,j)}\\
    757763            \quad ENDDO\\
    758764            ENDDO\\
     
    760766      };}
    761767     
    762       \uncover<1->{\node [bigbox, below=0.05cm of prognosticequationsvector] (listingsvector) {
     768      \uncover<1->{\node [bigbox, below=0.05cm of prognosticequationsacc] (listingsvector) {
    763769         \texttt{\linespread {0.7}\selectfont\noindent
    764770            CALL \textcolor{blue}{u-subr}\\
     
    816822            !within subroutines:\\
    817823            DO k=nzb+1,nzt\\
    818             \quad \quad \textcolor{blue}{...}\\
     824            \quad \quad \textcolor{blue}{tend(k,j,i)=...}\\
    819825            ENDDO\\
    820826         }
    821827      };}
    822828
    823       \uncover<2->{\node [Endbox, below=2.5cm of listingsvector] (endboxvec) {
     829      \uncover<2->{\node [Endbox2, below=2.0cm of listingsvector] (endboxvec) {
    824830         \texttt{\linespread {0.7}\selectfont\noindent
    825831            !within subroutines:\\
     
    827833            \quad DO j = nys, nyn \\
    828834            \quad \quad DO k=nzb+1,nzt\\
    829             \quad \quad \quad \textcolor{blue}{...}\\
     835            \quad \quad \quad \textcolor{blue}{tend(k,j,i)=...}\\
    830836            \quad \quad ENDDO \\
    831837            \quad ENDDO \\
     
    840846\end{frame}
    841847
    842 %Folie 13
     848%Folie 12
    843849\begin{frame}
    844850   \frametitle{PALM Flow Chart (IX)}
     
    906912\end{frame}
    907913
    908 %Folie 14
     914%Folie 13
    909915\begin{frame}[fragile]
    910916   \frametitle{Important Variables and Their Declaration}
    911917   \begin{itemize}
    912       \item<2->{3D-arrays of prognostic variables are named $\Psi_m$, $\Psi$, and $\Psi_p$ for time level $t-\Delta t$, $t$, and $t+\Delta T$, respectively, with $\Psi = u$, $v$, $w$, $pt$, $q$, $e$, $sa$}
     918      \item<2->{3D-arrays of prognostic variables are named $\Psi$, and $\Psi_p$ for time level $t$, and $t+\Delta t$, respectively, with $\Psi = u$, $v$, $w$, $pt$, $q$, $e$, $sa$}
     919      \vspace{2.5mm}
    913920      \item<3->{They are by default declared as $\Psi$($z$,$y$,$x$) or $\Psi$($k$,$j$,$i$), e.g.\\
    914921      \begin{minipage}{0.2\textwidth}
     
    921928
    922929
    923 nysg = nys - ngl,  nyng = nyn + ngl
    924 nxlg = nxl - ngl,  nxrg = nxr + ngl
     930nysg = nys - nbgp,  nyng = nyn + nbgp
     931nxlg = nxl - nbgp,  nxrg = nxr + nbgp
    925932nzb, nzt (bottom, top)
    926933nys, nyn (south, north)
     
    928935         \end{lstlisting}
    929936      \end{minipage}\\
    930       as the index limits of the (sub-)domain. ngl is the number of ghost layers which depends on the advection scheme ( ngl = 3 for the default Wicker-Skamarock scheme)
     937      as the index limits of the (sub-)domain.\\ nbgp is the number of ghost points which depends on the advection scheme (nbgp = 3 for the default Wicker-Skamarock scheme).
    931938      }
    932939   \end{itemize}
    933940\end{frame}
    934941
    935 %Folie 15
     942%Folie 14
    936943\begin{frame}[fragile]
    937944   \frametitle{Important Variables and Their Declaration}
    938945   \begin{itemize}
    939       \item<1->{If only one processor is used, then\\
     946      \item<1->{If only one process/core is used, then\\
    940947      \begin{minipage}{0.2\textwidth}
    941948         \quad \\\\
     
    956963         \centering
    957964         \begin{lstlisting}
    958 REAL, DIMENSION(:,:,:), POINTER ::  u, u_p, v, v_p, ...
     965REAL(wp), DIMENSION(:,:,:), POINTER ::  u, u_p, v, v_p, ...
    959966         \end{lstlisting}
    960967      \end{minipage}\\
    961       This does not affect the usage of these variables in the code in (almost) any way.
    962       }
     968      This does not affect the usage of these variables in the code in (almost) any way.}
     969      \vspace{1.0mm}
     970      \item<3->{A pointer free version can be activated with preprocessor-option \texttt{-D\_\_nopointer}.}
    963971   \end{itemize}
    964972\end{frame}
    965973
    966 %Folie 16
     974%Folie 15
    967975\begin{frame}[fragile]
    968976   \frametitle{Some Other Frequently Used Variables}
     
    9981006
    9991007
    1000 %Folie 17
     1008%Folie 16
    10011009\begin{frame}[fragile]
    10021010   \frametitle{Preprocessor Directives (I)}
    10031011   \begin{itemize}
    10041012      \item<1->{Preprocessor directives are special lines in the code which allows to compile alternative parts of the code depending on so-called \textbf{define-string} switches.\\ Code example:\\
    1005       \begin{minipage}{0.2\textwidth}
     1013      \begin{minipage}{0.01\textwidth}
    10061014         \quad \\\\
    10071015      \end{minipage}
    1008       \begin{minipage}{0.7\textwidth}
     1016      \begin{minipage}{0.8\textwidth}
    10091017         \centering
    10101018         \begin{lstlisting}
    1011 #if defined( __abc )
    1012 CALL FLUSH( 9 )
     1019#if defined( __nopointer )
     1020REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET :: e, e_p, ...
    10131021#else
    1014 CALL FLUSH_( 9 )
     1022REAL(wp), DIMENSION(:,:,:), POINTER :: e, e_p, ...
    10151023#endif
    10161024         \end{lstlisting}
    10171025      \end{minipage}\\
    1018       If now the compiler is called e.g.\\
    1019       \begin{minipage}{0.2\textwidth}
     1026      \onslide<2->If now the compiler is called e.g.\\
     1027      \begin{minipage}{0.01\textwidth}
    10201028         \quad \\\\
    10211029      \end{minipage}
    1022       \begin{minipage}{0.7\textwidth}
     1030      \begin{minipage}{0.8\textwidth}
    10231031         \centering
    1024          \begin{lstlisting}
    1025 ifort -cpp -D __abc ... (other options)
     1032         \begin{lstlisting}[basicstyle=\ttfamily \scriptsize]
     1033ifort -cpp -D __nopointer ... (other options)
    10261034         \end{lstlisting}
    10271035      \end{minipage}\\
    1028       then the line containing ``\texttt{\tiny CALL FLUSH( 9 )}'' is compiled. \\If the compiler call is\\
    1029       \begin{minipage}{0.2\textwidth}
     1036      then the line containing ``\texttt{\tiny ..., ALLOCATABLE, TARGET :: ...}'' is compiled. \\If the compiler call is\\
     1037      \begin{minipage}{0.01\textwidth}
    10301038         \quad \\\\
    10311039      \end{minipage}
    1032       \begin{minipage}{0.7\textwidth}
     1040      \begin{minipage}{0.8\textwidth}
    10331041         \centering
    1034          \begin{lstlisting}
     1042         \begin{lstlisting}[basicstyle=\ttfamily \scriptsize]
    10351043ifort -cpp ... (other options)
    10361044         \end{lstlisting}
    10371045      \end{minipage}\\
    1038       the line containing ``\texttt{\tiny CALL FLUSH\_( 9 )}'' is compiled.
     1046      the line containing ``\texttt{\tiny ..., POINTER :: ...}'' is compiled.
    10391047      }
    10401048   \end{itemize}
     
    10421050
    10431051
    1044 %Folie 18
     1052%Folie 17
    10451053\begin{frame}[fragile]
    10461054   \frametitle{Preprocessor Directives (II)}
     
    10551063      \begin{minipage}{0.7\textwidth}
    10561064         \centering
    1057          \begin{lstlisting}
     1065         \begin{lstlisting}[basicstyle=\ttfamily \scriptsize]
    10581066#if defined ( __abc  &&  __def )
    10591067         \end{lstlisting}
     
    10641072
    10651073
    1066 %Folie 19
     1074%Folie 18
    10671075\begin{frame}[fragile]
    10681076   \frametitle{Preprocessor Directives (III)}
     
    10721080      \begin{itemize}
    10731081         \item<2->{\texttt{\scriptsize \_\_ibm}} \quad IBM-Regatta systems\\
    1074          \item<2->{\texttt{\scriptsize \_\_lc}}\;\: \quad Linux clusters (using Intel compiler ifort)\\
     1082         \item<2->{\texttt{\scriptsize \_\_lc}}\;\: \quad Linux clusters\\
    10751083         \item<2->{\texttt{\scriptsize \_\_nec}} \quad NEC-SX systems\\
    10761084      \end{itemize}
    1077       Switches are set automatically depending on mrun-option ``\texttt{\scriptsize-h}'', eg. ``\texttt{\scriptsize-h lcmine}'' sets ``\texttt{\scriptsize-D \_\_lc}''}
     1085      Switches are set automatically depending on the host identifier string given with mrun-option ``\texttt{\scriptsize-h}'',\\ eg. ``\texttt{\scriptsize-h lclocal}'' sets ``\texttt{\scriptsize-D \_\_lc}''}
    10781086      \item<3->{To switch between the serial and the parallel code:\\
    10791087      \begin{itemize}
     
    10851093
    10861094
    1087 %Folie 20
     1095%Folie 19
    10881096\begin{frame}[fragile]
    10891097   \frametitle{Preprocessor Directives (IV)}
    1090    In the PALM code, define-string switches are used for following reasons:
     1098   \small
     1099   In the PALM code, define-string switches are additionally used for following reasons:
    10911100   \begin{itemize}
    10921101      \item<1->{To enable usage of special software packages which are not included in the compilation process by default\\
    10931102      \begin{itemize}
    1094          \item<1->{\texttt{\scriptsize \_\_dvrp\_graphics}} \quad 3D visualization system\\
    1095          \item<1->{\texttt{\scriptsize \_\_spectra}} \quad \quad \quad \quad calculation and output of power spectra\\
     1103         \item<1->{\texttt{\scriptsize \_\_dvrp\_graphics}} \quad 3D visualization system (currently out of\\ \hspace{24.5mm} order)\\
     1104         \item<1->{\texttt{\scriptsize \_\_spectra}} \hspace{10.7mm} calculation and output of power spectra\\
    10961105      \end{itemize}
    10971106      Switches are activated with mrun-option ``\texttt{\scriptsize-p}'', \mbox{eg. ``\texttt{\scriptsize-p} ``\texttt{\scriptsize spectra dvrp\_graphics}''''}}
     1107      \item<2->{To enable special features
     1108      \begin{itemize}
     1109         \item<1->{\texttt{\scriptsize \_\_openacc}} \quad activates call of external routines required for\\ \hspace{15.7mm} OpenACC programming\\
     1110         \item<1->{\texttt{\scriptsize \_\_netcdf, \_\_netcdf4, \_\_netcdf\_parallel}} \quad NetCDF I/O with\\ \hspace{15.7mm} different NetCDF versions\\
     1111      \end{itemize}
     1112      }
    10981113   \end{itemize}
    10991114    {\small \quad\\ \quad\\ \quad}\\ \quad  \\ \quad %nicht fragen, was das soll!! Mir ist leider nichts bsseres eingefallen um den Satz unter der Überschrift deckungsgleich auf beiden Folien zu haben.
     
    11011116
    11021117
    1103 %Folie 21
     1118\lstset{language=[90]Fortran,
     1119  basicstyle=\ttfamily \scriptsize,
     1120  keywordstyle=\color{black},
     1121  commentstyle=\color{black},
     1122  morecomment=[l]{!\ }% Comment only with space after !
     1123}
     1124
     1125%Folie 20
    11041126\begin{frame}[fragile]
    11051127   \frametitle{Preprocessor Directives (V)}
     1128   \small
    11061129   \begin{itemize}
    1107       \item<1->{Preprocessor directives are also used for string replacement in the code.\\ Example:\\A compiler call with preprocessor option\\
     1130      \item<1->{Preprocessor directives are also used for string replacement in the code.\\
     1131      \ \\
     1132      Example:\\A compiler call with preprocessor option\\
    11081133      \begin{minipage}{0.2\textwidth}
    11091134         \quad \\\\
     
    11161141      \end{minipage}
    11171142      will replace all strings ``\texttt{\scriptsize abcd}'' in the code with ``\texttt{\scriptsize efgh}'' \textbf{before} the code is compiled.\\
    1118       This is used in PALM to change the MPI\_REAL datatypes (which are 4 Byte long by default), to 8 Bytes. The respective cpp-directives are given in the configuration file \texttt{\scriptsize .mrun.config.}:\\
    1119       \begin{minipage}{0.2\textwidth}
     1143      \ \\
     1144      This is used in PALM to change the MPI\_REAL datatypes (which are 4 byte long by default), to 8 bytes. The respective cpp-directives are given in the configuration file \texttt{\scriptsize .mrun.config.}:\\
     1145      \begin{minipage}{0.01\textwidth}
    11201146         \quad \\\\
    11211147      \end{minipage}
Note: See TracChangeset for help on using the changeset viewer.