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 @ 11597

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

Continuation of coding rules application
Recovery of some sections deleted by the previous commit

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