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