
% ================================================================
% INTRODUCTION
% ================================================================

\chapter{Introduction}

The Nucleus for European Modelling of the Ocean (\NEMO) is a framework of ocean 
related engines, namely OPA\footnote{OPA = Oc\'{e}an PArall\'{e}lis\'{e}} for the 
ocean dynamics and thermodynamics, LIM\footnote{LIM= Louvain)la-neuve Ice 
Model} for the sea-ice dynamics and thermodynamics, TOP\footnote{TOP = Tracer 
in the Ocean Paradigm} for the biogeochemistry (both transport (TRP) and sources 
minus sinks (LOBSTER, PISCES)\footnote{Both LOBSTER and PISCES are not 
acronyms just name}. It is intended to be a flexible tool for studying the ocean and 
its interactions with the other components of the earth climate system (atmosphere, 
sea-ice, biogeochemical tracers, ...) over a wide range of space and time scales. 
This documentation provides information about the physics represented by the ocean 
component of \NEMO and the rationale for the choice of numerical schemes and 
the model design. More specific information about running the model on different 
computers, or how to set up a configuration, are found on the \NEMO web site 
(www.locean-ipsl.upmc.fr/NEMO). 

The ocean component of \NEMO has been developed from the OPA model, 
release 8.2, described in \citet{Madec1998}. This model has been used for a wide 
range of applications, both regional or global, as a forced ocean model and as a 
model coupled with the atmosphere. A complete list of references is found on the 
\NEMO web site. 

This manual is organised in as follows. Chapter~\ref{PE} presents the model basics, 
$i.e.$ the equations and their assumptions, the vertical coordinates used, and the 
subgrid scale physics. This part deals with the continuous equations of the model 
(primitive equations, with potential temperature, salinity and an equation of state). 
The equations are written in a curvilinear coordinate system, with a choice of vertical 
coordinates ($z$ or $s$, with the rescaled height coordinate formulation \textit{z*}, or  
\textit{s*}). Momentum equations are formulated in the vector invariant form or in the 
flux form. Dimensional units in the meter, kilogram, second (MKS) international system 
are used throughout.

The following chapters deal with the discrete equations. Chapter~\ref{STP} presents the 
time domain. The model time stepping environment is a three level scheme in which 
the tendency terms of the equations are evaluated either centered  in time, or forward, 
or backward depending of the nature of the term.
Chapter~\ref{DOM} presents the space domain. The model is discretised on a staggered grid 
(Arakawa C grid) with masking of land areas and uses a Leap-frog environment for time-stepping. 
Vertical discretisation used depends on both how the bottom topography is represented and 
whether the free surface is linear or not. Full step or partial step $z$-coordinate or 
$s$- (terrain-following) coordinate is used with linear free surface (level position are then 
fixed in time). In non-linear free surface, the corresponding rescaled height coordinate 
formulation (\textit{z*} or \textit{s*}) is used (the level position then vary in time as a 
function of the sea surface heigh). The following two chapters (\ref{TRA} and \ref{DYN}) 
describe the discretisation of the prognostic equations for the active tracers and the 
momentum. Explicit, split-explicit and filtered free surface formulations are implemented. 
A number of numerical schemes are available for momentum advection, for the computation 
of the pressure gradients, as well as for the advection of tracers (second or higher 
order advection schemes, including positive ones).

Surface boundary conditions (chapter~\ref{SBC}) can be implemented as prescribed
fluxes, or bulk formulations for the surface fluxes (wind stress, heat, freshwater). The 
model allows penetration of solar radiation  There is an optional geothermal heating at 
the ocean bottom. Within the \NEMO system the ocean model is interactively coupled 
with a sea ice model (LIM) and with biogeochemistry models (PISCES, LOBSTER). 
Interactive coupling to Atmospheric models is possible via the OASIS coupler 
\citep{OASIS2006}. Two-way nesting is also available through an interface to the
AGRIF package (Adaptative Grid Refinement in \textsc{Fortran}) \citep{Debreu_al_CG2008}.

Other model characteristics are the lateral boundary conditions (chapter~\ref{LBC}).  
Global configurations of the model make use of the ORCA tripolar grid, with special north 
fold boundary condition. Free-slip or no-slip boundary conditions are allowed at land 
boundaries. Closed basin geometries as well as periodic domains and open boundary 
conditions are possible. 

Physical parameterisations are described in chapters~\ref{LDF} and \ref{ZDF}. The 
model includes an implicit treatment of vertical viscosity and diffusivity. The lateral 
Laplacian and biharmonic viscosity and diffusion can be rotated following a geopotential 
or neutral direction. There is an optional eddy induced velocity \citep{Gent1990} with a 
space and time variable coefficient \citet{Treguier1997}. The model has vertical harmonic 
viscosity and diffusion with a space and time variable coefficient, with options to compute 
the coefficients with \citet{Blanke1993}, \citet{Large_al_RG94}, \citet{Pacanowski_Philander_JPO81}, 
or \citet{Umlauf_Burchard_JMS03} mixing schemes.

Chapter~\ref{OBS} describes a tool which reads in observation files (profile temperature and salinity, 
sea surface temperature, sea level anomaly and sea ice concentration) and calculates an interpolated 
model equivalent value at the observation location and nearest model timestep. Originally 
developed of data assimilation, it is a fantastic tool for model and data comparison.
Other Specific online diagnostics (not documented yet) are available in the model: output of all 
the tendencies of the momentum and tracers equations, output of tracers tendencies 
averaged over the time evolving mixed layer, output of the tendencies of the barotropic 
vorticity equation, on-line floats trajectories...

The model is implemented in \textsc{Fortran 90}, with preprocessing (C-pre-processor). 
It runs under UNIX. It is optimized for vector computers and parallelised by domain  
decomposition with MPI. All input and output is done in NetCDF (Network Common Data 
Format) with a optional direct access format for output. To ensure the clarity and 
readability of the code it is necessary to follow coding rules. The coding rules for OPA 
include conventions for naming variables, with different starting letters for different types 
of variables (real, integer, parameter\ldots). Those rules are briefly presented in 
Appendix~\ref{Apdx_D} and a more complete document is available on the \NEMO web site.

The model is organized with a high internal modularity based on physics. For example, 
each trend ($i.e.$, a term in the RHS of the prognostic equation) for momentum and 
tracers is computed in a dedicated module.  To make it easier for the user to find his way 
around the code, the module names follow a three-letter rule. For example, \mdl{traldf} 
is a module related to the TRAcers equation, computing the Lateral DiFfussion. 
The complete list of module names is presented in Appendix~\ref{Apdx_D}. 
Furthermore, modules are organized in a few directories that correspond to their category, 
as indicated by the first three letters of their name (Tab.~\ref{Tab_chap}). 

The manual mirrors the organization of the model. 
After the presentation of the continuous equations (Chapter \ref{PE}), the following chapters 
refer to specific terms of the equations each associated with a group of modules (Tab.~\ref{Tab_chap}).


%--------------------------------------------------TABLE--------------------------------------------------
\begin{table}[!t]	
%\begin{center} \begin{tabular}{|p{143pt}|l|l|}	\hline
\begin{center} 	\begin{tabular}{|l|l|l|}	\hline
Chapter \ref{STP}	& -   		        & model time STePping environment \\		\hline
Chapter \ref{DOM}	& DOM		& model DOMain \\		\hline
Chapter \ref{TRA}	& TRA		& TRAcer equations (potential temperature and salinity) \\   \hline
Chapter \ref{DYN}	& DYN		& DYNamic equations (momentum) \\		\hline
Chapter \ref{SBC} 	& SBC		& Surface Boundary Conditions \\			\hline
Chapter \ref{LBC}	& LBC		& Lateral Boundary Conditions (also OBC and BDY)  \\ 		\hline
Chapter \ref{LDF}	& LDF		& Lateral DiFfusion (parameterisations) \\	\hline
Chapter \ref{ZDF}	& ZDF		& vertical (Z) DiFfusion (parameterisations)  \\		\hline
Chapter \ref{OBS}	& OBS		& OBServation and model comparison  \\		\hline
Chapter \ref{ASM}	& ASM		& ASsimilation increment  \\		\hline
Chapter \ref{MISC}	& ...			& Miscellaneous  topics (DIA, DTA, IOM,   \\
						&				   & SOL, TRD, FLO...)   \\       \hline
Chapter \ref{CFG}	&  - 			& predefined configurations  \\		\hline
\end{tabular} 	
\caption{	 \label{Tab_chap}
Organization of Chapters which miminc the one of the model directories. }
\end{center}	\end{table}
%--------------------------------------------------------------------------------------------------------------


\subsubsection{Changes between releases}
NEMO/OPA, like all research tools, is in perpetual evolution. The present document describes 
the OPA version include in the release 3.3 of NEMO.  This release differs significantly
from version 8, documented in \citet{Madec1998}.\\

$\bullet$ The main modifications from OPA v8 and NEMO/OPA v3.2 are :\\
\\
(1) transition to full native \textsc{Fortran} 90, deep code restructuring and drastic 
reduction of CPP keys; \\
(2) introduction of partial step representation of bottom topography \citep{Barnier_al_OD06, Le_Sommer_al_OM09, Penduff_al_OS07}; \\
(3) partial reactivation of a terrain-following vertical coordinate ($s$- and hybrid $s$-$z$) 
with the addition of several options for pressure gradient computation \footnote{Partial 
support of $s$-coordinate: there is presently no support for neutral physics in $s$-
coordinate and for the new options for horizontal pressure gradient computation with 
a non-linear equation of state.}; \\ 
(4) more choices for the treatment of the free surface: full explicit, split-explicit and filtered. \\
(5) suppression of the rigid-lid option;\\
(6) non linear free surface option (associated with the rescaled height coordinate  
\textit{z*} or  \textit{s}); \\
(6) additional schemes for vector and flux forms of the momentum  advection; \\
(7) additional advection schemes for tracers; \\
(8) implementation of the AGRIF package (Adaptative Grid Refinement in \textsc{Fortran}) \citep{Debreu_al_CG2008}; \\
(9) online diagnostics : tracers trend in the mixed layer and vorticity balance; \\
(10) rewriting of the I/O management with the use of an I/O server; \\
(11) generalized ocean-ice-atmosphere-CO2 coupling interface, interfaced with OASIS 3 coupler. \\
(12) surface module (SBC) that simplify the way the ocean is forced and include two
bulk formulea (CLIO and CORE) and which includes an on-the-fly interpolation of input forcing fields\\
(13) introduction of LIM 3, the new Louvain-la-Neuve sea-ice model (C-grid rheology and
new thermodynamics including bulk ice salinity) \citep{Vancoppenolle_al_OM09a, Vancoppenolle_al_OM09b}

 \vspace{1cm}
$\bullet$ The main modifications from NEMO/OPA v3.2 and  v3.2 are :\\
\\
(1) introduction of a modified leapfrog-Asselin filter time stepping scheme \citep{Leclair_Madec_OM09}; \\
(2) additional scheme for  iso-neutral mixing \citep{Griffies_al_JPO98}, although it is still a "work in progress"; \\
(3) a rewriting of the bottom boundary scheme, following \citet{Campin_Goosse_Tel99}; \\
(4) addition of the atmospheric pressure as an external forcing on both ocean and sea-ice dynamics; \\
(5) addition of a diurnal cycle on solar radiation \citep{Bernie_al_CD07}; \\
(6) addition of an on-line observation and model comparison (thanks to NEMOVAR project); \\
(7) optional application of an assimilation increment (thanks to NEMOVAR project); \\
(8) introduction of .....    

 \vspace{1cm}
In addition, several minor modifications in the coding have been introduced with the constant 
concern of improving the model performance. 

