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 NEMO/trunk/doc/latex/NEMO/subfiles – NEMO

source: NEMO/trunk/doc/latex/NEMO/subfiles/chap_ASM.tex @ 11598

Last change on this file since 11598 was 11598, checked in by nicolasmartin, 5 years ago

Add template of versioning record at the beginning of chapters

File size: 8.6 KB
Line 
1\documentclass[../main/NEMO_manual]{subfiles}
2
3\begin{document}
4
5\chapter{Apply Assimilation Increments (ASM)}
6\label{chap:ASM}
7
8%    {\em 4.0} & {\em D. J. Lea} & {\em \NEMO\ 4.0 updates}  \\
9%    {\em 3.4} & {\em D. J. Lea, M. Martin, K. Mogensen, A. Weaver} & {\em Initial version}  \\
10
11\thispagestyle{plain}
12
13\chaptertoc
14
15\paragraph{Changes record} ~\\
16
17{\footnotesize
18  \begin{tabularx}{\textwidth}{l||X|X}
19    Release & Author(s) & Modifications \\
20    \hline
21    {\em   4.0} & {\em ...} & {\em ...} \\
22    {\em   3.6} & {\em ...} & {\em ...} \\
23    {\em   3.4} & {\em ...} & {\em ...} \\
24    {\em <=3.4} & {\em ...} & {\em ...}
25  \end{tabularx}
26}
27
28\clearpage
29
30The ASM code adds the functionality to apply increments to the model variables: temperature, salinity,
31sea surface height, velocity and sea ice concentration.
32These are read into the model from a NetCDF file which may be produced by separate data assimilation code.
33The code can also output model background fields which are used as an input to data assimilation code.
34This is all controlled by the namelist \nam{_asminc}{\_asminc}.
35There is a brief description of all the namelist options provided.
36To build the ASM code \key{asminc} must be set.
37
38%% =================================================================================================
39\section{Direct initialization}
40\label{sec:ASM_DI}
41
42Direct initialization (DI) refers to the instantaneous correction of the model background state using
43the analysis increment.
44DI is used when \np{ln_asmdin}{ln\_asmdin} is set to true.
45
46%% =================================================================================================
47\section{Incremental analysis updates}
48\label{sec:ASM_IAU}
49
50Rather than updating the model state directly with the analysis increment,
51it may be preferable to introduce the increment gradually into the ocean model in order to
52minimize spurious adjustment processes.
53This technique is referred to as Incremental Analysis Updates (IAU) \citep{bloom.takacs.ea_MWR96}.
54IAU is a common technique used with 3D assimilation methods such as 3D-Var or OI.
55IAU is used when \np{ln_asmiau}{ln\_asmiau} is set to true.
56
57With IAU, the model state trajectory ${\mathbf x}$ in the assimilation window ($t_{0} \leq t_{i} \leq t_{N}$)
58is corrected by adding the analysis increments for temperature, salinity, horizontal velocity and SSH as
59additional tendency terms to the prognostic equations:
60\begin{align*}
61  % \label{eq:ASM_wa_traj_iau}
62  {\mathbf x}^{a}(t_{i}) = M(t_{i}, t_{0})[{\mathbf x}^{b}(t_{0})] \; + \; F_{i} \delta \tilde{\mathbf x}^{a}
63\end{align*}
64where $F_{i}$ is a weighting function for applying the increments $\delta\tilde{\mathbf x}^{a}$ defined such that
65$\sum_{i=1}^{N} F_{i}=1$.
66${\mathbf x}^b$ denotes the model initial state and ${\mathbf x}^a$ is the model state after the increments are applied.
67To control the adjustment time of the model to the increment,
68the increment can be applied over an arbitrary sub-window, $t_{m} \leq t_{i} \leq t_{n}$,
69of the main assimilation window, where $t_{0} \leq t_{m} \leq t_{i}$ and $t_{i} \leq t_{n} \leq t_{N}$.
70Typically the increments are spread evenly over the full window.
71In addition, two different weighting functions have been implemented.
72The first function (namelist option \np{niaufn}{niaufn}=0) employs constant weights,
73\begin{align}
74  \label{eq:ASM_F1_i}
75  F^{(1)}_{i}
76  =\left\{
77  \begin{array}{ll}
78    0     &    {\mathrm if} \; \; \; t_{i} < t_{m}                \\
79    1/M &    {\mathrm if} \; \; \; t_{m} < t_{i} \leq t_{n} \\
80    0     &    {\mathrm if} \; \; \; t_{i} > t_{n}
81  \end{array}
82            \right.
83\end{align}
84where $M = m-n$.
85The second function (namelist option \np{niaufn}{niaufn}=1) employs peaked hat-like weights in order to give maximum weight in the centre of the sub-window,
86with the weighting reduced linearly to a small value at the window end-points:
87\begin{align}
88  \label{eq:ASM_F2_i}
89  F^{(2)}_{i}
90  =\left\{
91  \begin{array}{ll}
92    0                           &    {\mathrm if} \; \; \; t_{i}       <     t_{m}                        \\
93    \alpha \, i               &    {\mathrm if} \; \; \; t_{m}    \leq t_{i}    \leq   t_{M/2}   \\
94    \alpha \, (M - i +1) &    {\mathrm if} \; \; \; t_{M/2}  <    t_{i}    \leq   t_{n}       \\
95    0                            &   {\mathrm if} \; \; \; t_{i}        >    t_{n}
96  \end{array}
97                                   \right.
98\end{align}
99where $\alpha^{-1} = \sum_{i=1}^{M/2} 2i$ and $M$ is assumed to be even.
100The weights described by \autoref{eq:ASM_F2_i} provide a smoother transition of the analysis trajectory from
101one assimilation cycle to the next than that described by \autoref{eq:ASM_F1_i}.
102
103%==========================================================================
104% Divergence damping description %%%
105%% =================================================================================================
106\section{Divergence damping initialisation}
107\label{sec:ASM_div_dmp}
108
109It is quite challenging for data assimilation systems to provide non-divergent velocity increments.
110Applying divergent velocity increments will likely cause spurious vertical velocities in the model. This section describes a method to take velocity increments provided to \NEMO\ ($u^0_I$ and $v^0_I$) and adjust them by the iterative application of a divergence damping operator. The method is also described in \citet{dobricic.pinardi.ea_OS07}.
111
112In iteration step $n$ (starting at $n=1$) new estimates of velocity increments $u^{n}_I$ and $v^{n}_I$ are updated by:
113
114\begin{equation}
115  \label{eq:ASM_dmp}
116  \left\{
117    \begin{aligned}
118      u^{n}_I = u^{n-1}_I + \frac{1}{e_{1u} } \delta_{i+1/2} \left( {A_D
119          \;\chi^{n-1}_I } \right) \\ \\
120      v^{n}_I = v^{n-1}_I + \frac{1}{e_{2v} } \delta_{j+1/2} \left( {A_D
121          \;\chi^{n-1}_I } \right) \\
122    \end{aligned}
123  \right.,
124\end{equation}
125
126where the divergence is defined as
127
128\[
129  % \label{eq:ASM_div}
130  \chi^{n-1}_I = \frac{1}{e_{1t}\,e_{2t}\,e_{3t} }
131  \left( {\delta_i \left[ {e_{2u}\,e_{3u}\,u^{n-1}_I} \right]
132      +\delta_j \left[ {e_{1v}\,e_{3v}\,v^{n-1}_I} \right]} \right).
133\]
134
135By the application of \autoref{eq:ASM_dmp} the divergence is filtered in each iteration,
136and the vorticity is left unchanged.
137In the presence of coastal boundaries with zero velocity increments perpendicular to the coast
138the divergence is strongly damped.
139This type of the initialisation reduces the vertical velocity magnitude and
140alleviates the problem of the excessive unphysical vertical mixing in the first steps of the model integration
141\citep{talagrand_JAS72, dobricic.pinardi.ea_OS07}.
142Diffusion coefficients are defined as $A_D = \alpha e_{1t} e_{2t}$, where $\alpha = 0.2$.
143The divergence damping is activated by assigning to \np{nn_divdmp}{nn\_divdmp} in the \nam{_asminc}{\_asminc} namelist
144a value greater than zero.
145This specifies the number of iterations of the divergence damping. Setting a value of the order of 100 will result in a significant reduction in the vertical velocity induced by the increments.
146
147%==========================================================================
148
149%% =================================================================================================
150\section{Implementation details}
151\label{sec:ASM_details}
152
153Here we show an example \nam{_asminc}{\_asminc} namelist and the header of an example assimilation increments file on
154the ORCA2 grid.
155
156%
157\begin{listing}
158  \nlst{nam_asminc}
159  \caption{\forcode{&nam_asminc}}
160  \label{lst:nam_asminc}
161\end{listing}
162
163The header of an assimilation increments file produced using the NetCDF tool
164\mbox{\textit{ncdump~-h}} is shown below
165
166\begin{clines}
167netcdf assim_background_increments {
168dimensions:
169        x = 182 ;
170        y = 149 ;
171        z = 31 ;
172        t = UNLIMITED ; // (1 currently)
173variables:
174        float nav_lon(y, x) ;
175        float nav_lat(y, x) ;
176        float nav_lev(z) ;
177        double time_counter(t) ;
178        double time ;
179        double z_inc_dateb ;
180        double z_inc_datef ;
181        double bckint(t, z, y, x) ;
182        double bckins(t, z, y, x) ;
183        double bckinu(t, z, y, x) ;
184        double bckinv(t, z, y, x) ;
185        double bckineta(t, y, x) ;
186
187// global attributes:
188                :DOMAIN_number_total = 1 ;
189                :DOMAIN_number = 0 ;
190                :DOMAIN_dimensions_ids = 1, 2 ;
191                :DOMAIN_size_global = 182, 149 ;
192                :DOMAIN_size_local = 182, 149 ;
193                :DOMAIN_position_first = 1, 1 ;
194                :DOMAIN_position_last = 182, 149 ;
195                :DOMAIN_halo_size_start = 0, 0 ;
196                :DOMAIN_halo_size_end = 0, 0 ;
197                :DOMAIN_type = "BOX" ;
198}
199\end{clines}
200
201\onlyinsubfile{\input{../../global/epilogue}}
202
203\end{document}
Note: See TracBrowser for help on using the repository browser.