     The {\bf P}ortable {\bf U}niversity {\bf M}odel of the
     {\bf A}tmosphere {\bf (PUMA)} is based on the multi-level spectral
     model {\bf SGCM} ({\bf S}imple {\bf G}lobal {\bf C}irculation
     {\bf M}odel) described by \citep{hossim75} and \citep{jamesgray86}.
     Originally developed as a numerical prediction model,
     it was changed to perform as a circulation model. For example,
     \citep{jamesgray86} studied the influence of surface friction
     on the circulation of a baroclinic atmosphere, \citep{jamesjames92}
      and \citep{JamFraeJam94} investigated ultra-low-frequency
     variability, and \citep{molejames90} analyzed the baroclinic
     adjustment in the context of a zonally varying flow. \citep{frisius98}
      simulated an idealized storm track by embedding
     a dipole structure in a zonally symmetric forcing field and \citep{lunkeit98}
     investigated the sensitivity of GCM scenarios by using
     an adaption technique applicable to SGCMs.
     Storm track dynamics and low frequency variability
     was investigated by \citep{fraedrich2005}. For further citations search the
     bibliography at the end of this document and the list of publications at 
     {\url{http://www.mi.uni-hamburg.de/puma}}.

    
     PUMA was created with following aims in mind: training of junior
     scientists, compatibility with the {\bf ECHAM} 
     ({\bf E}uropean {\bf C}entre - {\bf HAM}burg) model and as a tool for
     further scientific investigations.
     

\section{Training of junior scientists and students}
     PUMA contains only the main processes necessary to simulate
     the atmosphere. The source code is short and clearly arranged.
     A student can learn to work with PUMA within a few weeks, whereas a
     full size GCM requires a team of specialists for maintenance,
     experiment design and diagnostics.
    
\section{Compatibility with other models}
     PUMA is designed to be compatible with other
     circulation models like Planet Simulator and ECHAM.
     The same triangular truncation is employed,
     and analogous transformation techniques like the Legendre- and
     Fast-Fourier transformation are used.
     The postprocessor {\bf Pumaburner} differs from ECHAM's
     {\bf Afterburner} only in respect to the format of the model's
     raw data which overcomes some problems of the ECHAM data format.
     PUMA uses a more compact though more precise
     format compared to the {\bf GRIB} ({\bf GRI}dded {\bf B}inary),
     which is used for ECHAM output.
     The Pumaburner supports the output formats SERVICE and
     NetCDF. All diagnostics and graphics software that are used with the
     ECHAM/Afterburner data can be used with PUMA/Pumaburner
     in exactly the same way.

\pagebreak
    
\begin{figure}
\centering
\begin{minipage}{0.75\linewidth}
\includegraphics[height=15cm]{Pics/Processes_ECHAM}
%\centering \epsfig{figure=Tr_z.Eng.eps, width=\linewidth}
\end{minipage}
\setlength{\unitlength}{1cm}

\vspace{-2cm}

\begin{minipage}{.5\linewidth}
\begin{picture}(6,8)
\thicklines

\newsavebox{\ovalbox}
\savebox{\ovalbox}(0,0){
   \thicklines
   \put(0,-0.5){\oval(2.0,0.7)}}
\newsavebox{\frbox}
\savebox{\frbox}(0,0){
   \thicklines
   \put(0,-0.5){\framebox(2.0,0.7)}}

\put(4,4.2){\usebox{\ovalbox}}
\put(3.35,3.95){\scriptsize \shortstack[c]{Adiabatic \\ processes}}

\put(4,3.75){\vector(3,-2){1.5}}
\put(5.5,2.75){\vector(-3,2){1.5}}
\put(4,3.75){\vector(-3,-2){1.5}}
\put(2.5,2.75){\vector(3,2){1.5}}

\put(1.5,2.4){\usebox{\frbox}\makebox(2.05,0){\scriptsize Winds}}
\put(4.5,2.4){\usebox{\frbox}\makebox(2.1,0){\scriptsize Temperature}}

\put(2.5,2.05){\vector(0,-1){1.05}}
\put(2.5,1.05){\vector(0,1){1.}}
\put(5.5,2.05){\vector(0,-1){1.05}}
\put(5.5,1.05){\vector(0,1){1.}}

\put(2.5,0.7){\usebox{\ovalbox}}
\put(2.5,0.6){\makebox(0,0){\scriptsize Friction}}
\put(5.5,0.7){\usebox{\ovalbox}}
\put(4.95,0.4){\scriptsize \shortstack[c]{Diabatic \\ heating}}

\end{picture}
\end{minipage}

\vspace{1cm}

\caption{Processes in ECHAM (a) and PUMA (b)}
\label{ProcessesFig}
\end{figure}

\section{Scientific applications}
     The PUMA code is the dynamical core of a GCM forced by Newtonian
     cooling and Rayleigh friction, such as that proposed by Held \&
     Suarez (1994) to evaluate the dynamical cores of GCMs. It forms
     the basis for various applications:
\begin{itemize}
   \item The code can be utilized
     to build and test new numerical algorithms (like semi-Langrangian
     techniques).
   \item Idealized experiments can be performed to analyze nonlinear
     processes arising from internal atmospheric systems (life cycles,
     etc.).
   \item Data assimilation techniques can be incorporated to
     interpret results from GCM simulations or observations.
\end{itemize}

    Figure \ref{ProcessesFig} (a) demonstrates the complexity of the 
    interactions in a full size climate model, which leads to similar 
    complex response patterns from small parameter changes. The same 
    diagram for PUMA Figure \ref{ProcessesFig} (b) shows the simple 
    and direct paths which allow the easy identification of the effects 
    from changes to this model.

\section{Requirements}
   PUMA is open source, everyone may download and use it.
   Though it's easy to use,
   the design of experiments and the interpretation of the results
   require a thorough knowledge of atmospheric science.

   PUMA is available as FORTRAN-90 source code. So all that is needed
   to use PUMA on any computer is a FORTRAN-90 compiler.
   The GUI additionally requires a C-compiler with the graphical
   library X11, which is standard on any UNIX/Linux system
   as well as on newer MACs.
   Windows user may try a X11-emulator like Cygwin.

   The program was developed and tested with several operating systems
   including LINUX, MAC-OS, and Solaris. The main development was done
   using Linux and MAC-OS and the FORTRAN compiler gfortran and sunf90.

   The postprocessor Pumaburner requires a C++ compiler.

   There are several compilers available for the Linux operating system.
   MoSt, PUMA, and Planet Simulator were successfully tested with:

\begin{itemize}
\item SunStudio12 (development environment including
   FORTRAN-90, C, C++, and Debugger) for Solaris and Linux.
   SunStudio12 can be downloaded for free from {\url{http://www.sun.com}}.
\item Gnu FORTRAN (gfortran).
   This free and open access FORTRAN-90 compiler is part of most
   Linux distributions.
   It's also available from
   {\url{http://directory.fsf.org/devel/compilers/gfortran.html}}.
\end{itemize}




\section{History}
    
    The University of Hamburg PUMA model originates from
     the Hoskins \& Simmons SGCM ({\bf S}imple {\bf G}eneral {\bf C}irculation {\bf M}odel)
     version (\citep{hossim75}). The major differences between PUMA
     and its predecessor SGCM are:

\begin{itemize}
   \item The code is rewritten in portable
     FORTRAN-90 code, which removes problems associated with
     machine-specific properties like word lengths, floating point
     precision, output, etc. All the necessary routines are
     in the source code including the
     FFT ({\bf F}ast {\bf F}ourier {\bf T}ransformation)
     and the Legendre Transformation. The model can be run
     on any computer with a standard FORTRAN-90 compiler.
     The MPI-library is needed to run
     PUMA on parallel machines (see below).
     The Xlib (X11R6) library is needed for the graphical user
     interface.
   \item  The
     truncation scheme is changed from the jagged triangular truncation
     to the standard triangular truncation scheme making it compatible to other
     T-models like ECHAM.

   \item  The PUMA/Pumaburner system is data compatible to ECHAM/Afterburner.
     Thus all other ECHAM diagnostic software can be used on PUMA data.

   \item PUMA is fully parallelized and can use as many CPU's 
    as half of the number of latitudes (e.g. 16 in T21 resolution). It uses the MPI
    ({\bf M}essage {\bf P}assing {\bf I}nterface) library while
    running on parallel systems or a cluster.
    MPI is not needed for running PUMA on a single CPU.

   \item  The ongoing development added several new features like the preprocessor,
   graphical user interface, spherical harmonics mode selection, and many more.

\end{itemize}
