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