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

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

Application of some coding rules

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