New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Chap_ASM.tex in branches/nemo_v3_3_beta/DOC/TexFiles/Chapters – NEMO

source: branches/nemo_v3_3_beta/DOC/TexFiles/Chapters/Chap_ASM.tex @ 2474

Last change on this file since 2474 was 2474, checked in by djlea, 13 years ago

Update to OBS and ASM documentation. Removal of cpp key options to OBS code. Also moved the diaobs call to after the timestep code in step.

File size: 5.4 KB
Line 
1% ================================================================
2% Chapter Assimilation increments (ASM)
3% ================================================================
4\chapter{Apply assimilation increments (ASM)}
5\label{ASM}
6
7Authors: D. Lea,  M. Martin, K. Mogensen, A. Weaver, ...   % do we keep
8
9\minitoc
10
11
12\newpage
13$\ $\newline    % force a new line
14
15The ASM code adds the functionality to apply increments to model variables,
16temperature, salinity, sea surface height, velocity and sea ice concentration.
17These are read into the model from a NetCDF file which may be produced by data
18assimilation.  The code can also output model background fields which are used
19as an input to data assimilation code. This is all controlled by the namelist
20\textit{nam\_asminc}.  There is a brief description of all the namelist options
21provided.  To build the ASM code \key{asminc} must be set.
22
23%===============================================================
24
25\section{Direct initialization}
26\label{ASM_DI}
27
28Direct initialization (DI) refers to the instantaneous correction
29of the model background state using the analysis increment.
30DI is used when \np{ln\_asmdin} is set to true.
31
32\section{Incremental Analysis Updates}
33\label{ASM_IAU}
34
35Rather than updating the model state directly with the analysis increment,
36it may be preferable to introduce the increment gradually into the ocean
37model in order to minimize spurious adjustment processes. This technique
38is referred to as Incremental Analysis Updates (IAU) \citep{Bloom_al_MWR96}.
39IAU is a common technique used with 3D assimilation methods such as 3D-Var or OI.
40IAU is used when \np{ln\_asmiau} is set to true.
41
42With IAU, the model state trajectory in the assimilation window
43($t_{0} \leq t_{i} \leq t_{N}$)
44is corrected by adding the analysis increments for
45for temperature, salinity, horizontal velocity and SSH
46as additional tendency terms to the prognostic equations:
47\begin{eqnarray}     \label{eq:wa_traj_iau}
48{\bf x}^{a}(t_{i}) = M(t_{i}, t_{0})[{\bf x}^{b}(t_{0})]
49\; + \; F_{i} \delta \tilde{\bf x}^{a} 
50\end{eqnarray}
51where $F_{i}$ is a weighting function defined such that $\sum_{i=1}^{N} F_{i}=1$.
52To control the adjustment time of the model to the increment,
53the increment can be applied over an arbitrary sub-window,
54$t_{m} \leq t_{i} \leq t_{n}$, of the main assimilation window,
55where $t_{0} \leq t_{m} \leq t_{i}$ and $t_{i} \leq t_{n} \leq t_{N}$,
56Typically the increments are spread evenly over the full window.
57In addition, two different weighting functions have been implemented.
58The first function employs constant weights,
59\begin{eqnarray}    \label{eq:F1_i}
60F^{(1)}_{i}
61=\left\{ \begin{array}{ll}
62   0     &    {\rm if} \; \; \; t_{i} < t_{m}                \\
63   1/M &    {\rm if} \; \; \; t_{m} < t_{i} \leq t_{n} \\
64   0     &    {\rm if} \; \; \; t_{i} > t_{n}
65  \end{array} \right.
66\end{eqnarray}
67where $M = m-n$.
68The second function employs peaked hat-like weights in order to give maximum
69weight in the centre of the sub-window, with the weighting reduced
70linearly to a small value at the window end-points.
71\begin{eqnarray}     \label{eq:F2_i}
72F^{(2)}_{i}
73=\left\{ \begin{array}{ll}
74   0                           &    {\rm if} \; \; \; t_{i}       <     t_{m}                        \\
75   \alpha \, i               &    {\rm if} \; \; \; t_{m}    \leq t_{i}    \leq   t_{M/2}   \\
76   \alpha \, (M - i +1) &    {\rm if} \; \; \; t_{M/2}  <    t_{i}    \leq   t_{n}       \\
77   0                            &   {\rm if} \; \; \; t_{i}        >    t_{n}
78  \end{array} \right.
79\end{eqnarray}
80where $\alpha^{-1} = \sum_{i=1}^{M/2} 2i$ and $M$ is assumed to be even.
81The weights described by \eqref{eq:F2_i} provide a
82smoother transition of the analysis trajectory from one assimilation cycle
83to the next than that described by \eqref{eq:F1_i}.
84
85%==========================================================================
86
87\section{Implementation details}
88\label{ASM_details}
89
90Here we show an example namelist and the header of an example assimilation
91increments file on the ORCA2 grid.
92
93%------------------------------------------namasm-----------------------------------------------------
94\namdisplay{namasm}
95%-------------------------------------------------------------------------------------------------------------
96
97The header of an assimilation increments file produced using the NetCDF tool
98\mbox{\textit{ncdump~-h}} is shown below
99
100\begin{alltt}
101\tiny
102\begin{verbatim}
103netcdf assim_background_increments {
104dimensions:
105        x = 182 ;
106        y = 149 ;
107        z = 31 ;
108        t = UNLIMITED ; // (1 currently)
109variables:
110        float nav_lon(y, x) ;
111        float nav_lat(y, x) ;
112        float nav_lev(z) ;
113        double time_counter(t) ;
114        double time ;
115        double z_inc_dateb ;
116        double z_inc_datef ;
117        double bckint(t, z, y, x) ;
118        double bckins(t, z, y, x) ;
119        double bckinu(t, z, y, x) ;
120        double bckinv(t, z, y, x) ;
121        double bckineta(t, y, x) ;
122
123// global attributes:
124                :DOMAIN_number_total = 1 ;
125                :DOMAIN_number = 0 ;
126                :DOMAIN_dimensions_ids = 1, 2 ;
127                :DOMAIN_size_global = 182, 149 ;
128                :DOMAIN_size_local = 182, 149 ;
129                :DOMAIN_position_first = 1, 1 ;
130                :DOMAIN_position_last = 182, 149 ;
131                :DOMAIN_halo_size_start = 0, 0 ;
132                :DOMAIN_halo_size_end = 0, 0 ;
133                :DOMAIN_type = "BOX" ;
134}
135\end{verbatim}
136\end{alltt}
Note: See TracBrowser for help on using the repository browser.