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