Changeset 11422 for NEMO/branches/2019/fix_vvl_ticket1791/doc/latex
- Timestamp:
- 2019-08-08T15:40:47+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/fix_vvl_ticket1791/doc
- Files:
-
- 28 deleted
- 32 edited
- 25 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/fix_vvl_ticket1791/doc
- Property svn:ignore deleted
-
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex
- Property svn:ignore
-
old new 1 *.aux 2 *.bbl 3 *.blg 4 *.dvi 5 *.fdb* 6 *.fls 7 *.idx 8 *.ilg 9 *.ind 10 *.log 11 *.maf 12 *.mtc* 13 *.out 14 *.pdf 15 *.toc 16 _minted-* 1 figures
-
- Property svn:ignore
-
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/HTML_latex2html.sh
r10146 r11422 1 1 #!/bin/bash 2 2 3 ./inc/clean.sh4 ./inc/build.sh3 #./inc/clean.sh 4 #./inc/build.sh 5 5 6 cd tex_main 7 sed -i -e 's#\\documentclass#%\\documentclass#' -e '/{document}/ s/^/%/' \ 8 ../tex_sub/*.tex 9 sed -i 's#\\subfile{#\\include{#g' \ 10 NEMO_manual.tex 11 latex2html -local_icons -no_footnode -split 4 -link 2 -mkdir -dir ../html_LaTeX2HTML \ 12 $* \ 13 NEMO_manual 14 sed -i -e 's#%\\documentclass#\\documentclass#' -e '/{document}/ s/^%//' \ 15 ../tex_sub/*.tex 16 sed -i 's#\\include{#\\subfile{#g' \ 17 NEMO_manual.tex 6 sed -i -e 's#utf8#latin1#' \ 7 -e 's#\[outputdir=../build\]{minted}#\[\]{minted}#' \ 8 -e '/graphicspath/ s#{../#{../../#g' \ 9 global/packages.tex 10 11 cd ./NEMO/main 12 sed -i -e 's#\\documentclass#%\\documentclass#' -e '/{document}/ s#^#%#' ../subfiles/*.tex 13 sed -i 's#\\subfile{#\\input{#' chapters.tex appendices.tex 14 15 #latex2html -noimages -local_icons -no_footnode -split 4 -link 2 -dir ../html_LaTeX2HTML $* NEMO_manual 16 latex2html -debug -noreuse -init_file ../../l2hconf.pm -local_icons -dir ../build/html NEMO_manual 17 18 sed -i -e 's#%\\documentclass#\\documentclass#' -e '/{document}/ s#^%##' ../subfiles/*.tex 19 sed -i 's#\\input{#\\subfile{#' chapters.tex appendices.tex 18 20 cd - 19 21 22 sed -i -e 's#latin1#utf8#' \ 23 -e 's#\[\]{minted}#\[outputdir=../build\]{minted}#' \ 24 -e '/graphicspath/ s#{../../#{../#g' \ 25 global/packages.tex 26 20 27 exit 0 -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO
- Property svn:ignore deleted
-
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/main
- Property svn:ignore
-
old new 1 *.aux2 *.bbl3 *.blg4 *.dvi5 *.fdb*6 *.fls7 *.idx8 1 *.ilg 9 2 *.ind 10 *.log11 *.maf12 *.mtc*13 *.out14 *.pdf15 *.toc16 _minted-*
-
-
Property
svn:externals
set to
^/utils/dev/bibtool.rsc bibtool.rsc
- Property svn:ignore
-
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/annex_A.tex
r10442 r11422 10 10 11 11 \minitoc 12 13 \vfill 14 \begin{figure}[b] 15 \subsubsection*{Changes record} 16 \begin{tabular}{l||l|m{0.65\linewidth}} 17 Release & Author & Modifications \\ 18 {\em 4.0} & {\em Mike Bell} & {\em review} \\ 19 {\em 3.x} & {\em Gurvan Madec} & {\em original} \\ 20 \end{tabular} 21 \end{figure} 22 12 23 13 24 \newpage … … 29 40 \begin{equation} 30 41 \label{apdx:A_s_slope} 31 \sigma_1 =\frac{1}{e_1 } \;\left. {\frac{\partial z}{\partial i}} \right|_s42 \sigma_1 =\frac{1}{e_1 } \; \left. {\frac{\partial z}{\partial i}} \right|_s 32 43 \quad \text{and} \quad 33 \sigma_2 =\frac{1}{e_2 }\;\left. {\frac{\partial z}{\partial j}} \right|_s 34 \end{equation} 35 36 The chain rule to establish the model equations in the curvilinear $s-$coordinate system is: 44 \sigma_2 =\frac{1}{e_2 } \; \left. {\frac{\partial z}{\partial j}} \right|_s . 45 \end{equation} 46 47 The model fields (e.g. pressure $p$) can be viewed as functions of $(i,j,z,t)$ (e.g. $p(i,j,z,t)$) or as 48 functions of $(i,j,s,t)$ (e.g. $p(i,j,s,t)$). The symbol $\bullet$ will be used to represent any one of 49 these fields. Any ``infinitesimal'' change in $\bullet$ can be written in two forms: 50 \begin{equation} 51 \label{apdx:A_s_infin_changes} 52 \begin{aligned} 53 & \delta \bullet = \delta i \left. \frac{ \partial \bullet }{\partial i} \right|_{j,s,t} 54 + \delta j \left. \frac{ \partial \bullet }{\partial i} \right|_{i,s,t} 55 + \delta s \left. \frac{ \partial \bullet }{\partial s} \right|_{i,j,t} 56 + \delta t \left. \frac{ \partial \bullet }{\partial t} \right|_{i,j,s} , \\ 57 & \delta \bullet = \delta i \left. \frac{ \partial \bullet }{\partial i} \right|_{j,z,t} 58 + \delta j \left. \frac{ \partial \bullet }{\partial i} \right|_{i,z,t} 59 + \delta z \left. \frac{ \partial \bullet }{\partial z} \right|_{i,j,t} 60 + \delta t \left. \frac{ \partial \bullet }{\partial t} \right|_{i,j,z} . 61 \end{aligned} 62 \end{equation} 63 Using the first form and considering a change $\delta i$ with $j, z$ and $t$ held constant, shows that 64 \begin{equation} 65 \label{apdx:A_s_chain_rule} 66 \left. {\frac{\partial \bullet }{\partial i}} \right|_{j,z,t} = 67 \left. {\frac{\partial \bullet }{\partial i}} \right|_{j,s,t} 68 + \left. {\frac{\partial s }{\partial i}} \right|_{j,z,t} \; 69 \left. {\frac{\partial \bullet }{\partial s}} \right|_{i,j,t} . 70 \end{equation} 71 The term $\left. \partial s / \partial i \right|_{j,z,t}$ can be related to the slope of constant $s$ surfaces, 72 (\autoref{apdx:A_s_slope}), by applying the second of (\autoref{apdx:A_s_infin_changes}) with $\bullet$ set to 73 $s$ and $j, t$ held constant 74 \begin{equation} 75 \label{apdx:a_delta_s} 76 \delta s|_{j,t} = 77 \delta i \left. \frac{ \partial s }{\partial i} \right|_{j,z,t} 78 + \delta z \left. \frac{ \partial s }{\partial z} \right|_{i,j,t} . 79 \end{equation} 80 Choosing to look at a direction in the $(i,z)$ plane in which $\delta s = 0$ and using 81 (\autoref{apdx:A_s_slope}) we obtain 82 \begin{equation} 83 \left. \frac{ \partial s }{\partial i} \right|_{j,z,t} = 84 - \left. \frac{ \partial z }{\partial i} \right|_{j,s,t} \; 85 \left. \frac{ \partial s }{\partial z} \right|_{i,j,t} 86 = - \frac{e_1 }{e_3 }\sigma_1 . 87 \label{apdx:a_ds_di_z} 88 \end{equation} 89 Another identity, similar in form to (\autoref{apdx:a_ds_di_z}), can be derived 90 by choosing $\bullet$ to be $s$ and using the second form of (\autoref{apdx:A_s_infin_changes}) to consider 91 changes in which $i , j$ and $s$ are constant. This shows that 92 \begin{equation} 93 \label{apdx:A_w_in_s} 94 w_s = \left. \frac{ \partial z }{\partial t} \right|_{i,j,s} = 95 - \left. \frac{ \partial z }{\partial s} \right|_{i,j,t} 96 \left. \frac{ \partial s }{\partial t} \right|_{i,j,z} 97 = - e_3 \left. \frac{ \partial s }{\partial t} \right|_{i,j,z} . 98 \end{equation} 99 100 In what follows, for brevity, indication of the constancy of the $i, j$ and $t$ indices is 101 usually omitted. Using the arguments outlined above one can show that the chain rules needed to establish 102 the model equations in the curvilinear $s-$coordinate system are: 37 103 \begin{equation} 38 104 \label{apdx:A_s_chain_rule} 39 105 \begin{aligned} 40 106 &\left. {\frac{\partial \bullet }{\partial t}} \right|_z = 41 \left. {\frac{\partial \bullet }{\partial t}} \right|_s 42 -\frac{\partial \bullet }{\partial s}\;\frac{\partial s}{\partial t}\\107 \left. {\frac{\partial \bullet }{\partial t}} \right|_s 108 + \frac{\partial \bullet }{\partial s}\; \frac{\partial s}{\partial t} , \\ 43 109 &\left. {\frac{\partial \bullet }{\partial i}} \right|_z = 44 110 \left. {\frac{\partial \bullet }{\partial i}} \right|_s 45 -\frac{\partial \bullet }{\partial s}\;\frac{\partial s}{\partial i}=46 \left. {\frac{\partial \bullet }{\partial i}} \right|_s 47 -\frac{e_1 }{e_3 }\sigma_1 \frac{\partial \bullet }{\partial s} \\111 +\frac{\partial \bullet }{\partial s}\; \frac{\partial s}{\partial i}= 112 \left. {\frac{\partial \bullet }{\partial i}} \right|_s 113 -\frac{e_1 }{e_3 }\sigma_1 \frac{\partial \bullet }{\partial s} , \\ 48 114 &\left. {\frac{\partial \bullet }{\partial j}} \right|_z = 49 \left. {\frac{\partial \bullet }{\partial j}} \right|_s 50 -\frac{\partial \bullet }{\partial s}\;\frac{\partial s}{\partial j}=51 \left. {\frac{\partial \bullet }{\partial j}} \right|_s 52 - \frac{e_2 }{e_3 }\sigma_2 \frac{\partial \bullet }{\partial s} \\53 &\;\frac{\partial \bullet }{\partial z} \;\; = \frac{1}{e_3 }\frac{\partial \bullet }{\partial s} 115 \left. {\frac{\partial \bullet }{\partial j}} \right|_s 116 + \frac{\partial \bullet }{\partial s}\;\frac{\partial s}{\partial j}= 117 \left. {\frac{\partial \bullet }{\partial j}} \right|_s 118 - \frac{e_2 }{e_3 }\sigma_2 \frac{\partial \bullet }{\partial s} , \\ 119 &\;\frac{\partial \bullet }{\partial z} \;\; = \frac{1}{e_3 }\frac{\partial \bullet }{\partial s} . 54 120 \end{aligned} 55 121 \end{equation} 56 122 57 In particular applying the time derivative chain rule to $z$ provides the expression for $w_s$,58 the vertical velocity of the $s-$surfaces referenced to a fix z-coordinate:59 \begin{equation}60 \label{apdx:A_w_in_s}61 w_s = \left. \frac{\partial z }{\partial t} \right|_s62 = \frac{\partial z}{\partial s} \; \frac{\partial s}{\partial t}63 = e_3 \, \frac{\partial s}{\partial t}64 \end{equation}65 123 66 124 % ================================================================ … … 79 137 { 80 138 \begin{array}{*{20}l} 81 \nabla \cdot {\ rm {\bf U}}139 \nabla \cdot {\mathrm {\mathbf U}} 82 140 &= \frac{1}{e_1 \,e_2 } \left[ \left. {\frac{\partial (e_2 \,u)}{\partial i}} \right|_z 83 141 +\left. {\frac{\partial(e_1 \,v)}{\partial j}} \right|_z \right] … … 115 173 $, it becomes:} 116 174 % 117 \nabla \cdot {\ rm {\bf U}}175 \nabla \cdot {\mathrm {\mathbf U}} 118 176 & = \frac{1}{e_1 \,e_2 \,e_3 } \left[ 119 177 \left. \frac{\partial (e_2 \,e_3 \,u)}{\partial i} \right|_s … … 131 189 \end{subequations} 132 190 133 Here, $w$ is the vertical velocity relative to the $z-$coordinate system. 134 Introducing the dia-surface velocity component, 135 $\omega $, defined as the volume flux across the moving $s$-surfaces per unit horizontal area: 191 Here, $w$ is the vertical velocity relative to the $z-$coordinate system. 192 Using the first form of (\autoref{apdx:A_s_infin_changes}) 193 and the definitions (\autoref{apdx:A_s_slope}) and (\autoref{apdx:A_w_in_s}) for $\sigma_1$, $\sigma_2$ and $w_s$, 194 one can show that the vertical velocity, $w_p$ of a point 195 moving with the horizontal velocity of the fluid along an $s$ surface is given by 196 \begin{equation} 197 \label{apdx:A_w_p} 198 \begin{split} 199 w_p = & \left. \frac{ \partial z }{\partial t} \right|_s 200 + \frac{u}{e_1} \left. \frac{ \partial z }{\partial i} \right|_s 201 + \frac{v}{e_2} \left. \frac{ \partial z }{\partial j} \right|_s \\ 202 = & w_s + u \sigma_1 + v \sigma_2 . 203 \end{split} 204 \end{equation} 205 The vertical velocity across this surface is denoted by 136 206 \begin{equation} 137 207 \label{apdx:A_w_s} 138 \omega = w - w_s - \sigma_1 \,u - \sigma_2 \,v \\ 139 \end{equation} 140 with $w_s$ given by \autoref{apdx:A_w_in_s}, 141 we obtain the expression for the divergence of the velocity in the curvilinear $s-$coordinate system: 142 \begin{subequations} 143 \begin{align*} 144 { 145 \begin{array}{*{20}l} 146 \nabla \cdot {\rm {\bf U}} 147 &= \frac{1}{e_1 \,e_2 \,e_3 } \left[ 208 \omega = w - w_p = w - ( w_s + \sigma_1 \,u + \sigma_2 \,v ) . 209 \end{equation} 210 Hence 211 \begin{equation} 212 \frac{1}{e_3 } \frac{\partial}{\partial s} \left[ w - u\;\sigma_1 - v\;\sigma_2 \right] = 213 \frac{1}{e_3 } \frac{\partial}{\partial s} \left[ \omega + w_s \right] = 214 \frac{1}{e_3 } \left[ \frac{\partial \omega}{\partial s} 215 + \left. \frac{ \partial }{\partial t} \right|_s \frac{\partial z}{\partial s} \right] = 216 \frac{1}{e_3 } \frac{\partial \omega}{\partial s} + \frac{1}{e_3 } \left. \frac{ \partial e_3}{\partial t} . \right|_s 217 \end{equation} 218 219 Using (\autoref{apdx:A_w_s}) in our expression for $\nabla \cdot {\mathrm {\mathbf U}}$ we obtain 220 our final expression for the divergence of the velocity in the curvilinear $s-$coordinate system: 221 \begin{equation} 222 \nabla \cdot {\mathrm {\mathbf U}} = 223 \frac{1}{e_1 \,e_2 \,e_3 } \left[ 148 224 \left. \frac{\partial (e_2 \,e_3 \,u)}{\partial i} \right|_s 149 225 +\left. \frac{\partial (e_1 \,e_3 \,v)}{\partial j} \right|_s \right] 150 226 + \frac{1}{e_3 } \frac{\partial \omega }{\partial s} 151 + \frac{1}{e_3 } \frac{\partial w_s }{\partial s} \\ \\ 152 &= \frac{1}{e_1 \,e_2 \,e_3 } \left[ 153 \left. \frac{\partial (e_2 \,e_3 \,u)}{\partial i} \right|_s 154 +\left. \frac{\partial (e_1 \,e_3 \,v)}{\partial j} \right|_s \right] 155 + \frac{1}{e_3 } \frac{\partial \omega }{\partial s} 156 + \frac{1}{e_3 } \frac{\partial}{\partial s} \left( e_3 \; \frac{\partial s}{\partial t} \right) \\ \\ 157 &= \frac{1}{e_1 \,e_2 \,e_3 } \left[ 158 \left. \frac{\partial (e_2 \,e_3 \,u)}{\partial i} \right|_s 159 +\left. \frac{\partial (e_1 \,e_3 \,v)}{\partial j} \right|_s \right] 160 + \frac{1}{e_3 } \frac{\partial \omega }{\partial s} 161 + \frac{\partial}{\partial s} \frac{\partial s}{\partial t} 162 + \frac{1}{e_3 } \frac{\partial s}{\partial t} \frac{\partial e_3}{\partial s} \\ \\ 163 &= \frac{1}{e_1 \,e_2 \,e_3 } \left[ 164 \left. \frac{\partial (e_2 \,e_3 \,u)}{\partial i} \right|_s 165 +\left. \frac{\partial (e_1 \,e_3 \,v)}{\partial j} \right|_s \right] 166 + \frac{1}{e_3 } \frac{\partial \omega }{\partial s} 167 + \frac{1}{e_3 } \frac{\partial e_3}{\partial t} 168 \end{array} 169 } 170 \end{align*} 171 \end{subequations} 227 + \frac{1}{e_3 } \left. \frac{\partial e_3}{\partial t} \right|_s . 228 \end{equation} 172 229 173 230 As a result, the continuity equation \autoref{eq:PE_continuity} in the $s-$coordinates is: … … 178 235 {\left. {\frac{\partial (e_2 \,e_3 \,u)}{\partial i}} \right|_s 179 236 + \left. {\frac{\partial (e_1 \,e_3 \,v)}{\partial j}} \right|_s } \right] 180 +\frac{1}{e_3 }\frac{\partial \omega }{\partial s} = 0 181 \end{equation} 182 A additional term has appeared that takeinto account237 +\frac{1}{e_3 }\frac{\partial \omega }{\partial s} = 0 . 238 \end{equation} 239 An additional term has appeared that takes into account 183 240 the contribution of the time variation of the vertical coordinate to the volume budget. 184 241 … … 210 267 + w \;\frac{\partial u}{\partial z} \\ \\ 211 268 &= \left. {\frac{\partial u }{\partial t}} \right|_z 212 - \left. \zeta \right|_z v 213 + \frac{1}{e_1 \,e_2 }\left[ { \left.{ \frac{\partial (e_2 \,v)}{\partial i} }\right|_z 269 - \frac{1}{e_1 \,e_2 }\left[ { \left.{ \frac{\partial (e_2 \,v)}{\partial i} }\right|_z 214 270 -\left.{ \frac{\partial (e_1 \,u)}{\partial j} }\right|_z } \right] \; v 215 271 + \frac{1}{2e_1} \left.{ \frac{\partial (u^2+v^2)}{\partial i} } \right|_z … … 230 286 } \\ \\ 231 287 &= \left. {\frac{\partial u }{\partial t}} \right|_z 232 +\left. \zeta \right|_s \;v288 - \left. \zeta \right|_s \;v 233 289 + \frac{1}{2\,e_1}\left. {\frac{\partial (u^2+v^2)}{\partial i}} \right|_s \\ 234 290 &\qquad \qquad \qquad \quad 235 291 + \frac{w}{e_3 } \;\frac{\partial u}{\partial s} 236 -\left[ {\frac{\sigma_1 }{e_3 }\frac{\partial v}{\partial s}292 + \left[ {\frac{\sigma_1 }{e_3 }\frac{\partial v}{\partial s} 237 293 - \frac{\sigma_2 }{e_3 }\frac{\partial u}{\partial s}} \right]\;v 238 294 - \frac{\sigma_1 }{2e_3 }\frac{\partial (u^2+v^2)}{\partial s} \\ \\ 239 295 &= \left. {\frac{\partial u }{\partial t}} \right|_z 240 +\left. \zeta \right|_s \;v296 - \left. \zeta \right|_s \;v 241 297 + \frac{1}{2\,e_1}\left. {\frac{\partial (u^2+v^2)}{\partial i}} \right|_s \\ 242 298 &\qquad \qquad \qquad \quad … … 245 301 - \sigma_1 u\frac{\partial u}{\partial s} - \sigma_1 v\frac{\partial v}{\partial s}} \right] \\ \\ 246 302 &= \left. {\frac{\partial u }{\partial t}} \right|_z 247 +\left. \zeta \right|_s \;v303 - \left. \zeta \right|_s \;v 248 304 + \frac{1}{2\,e_1}\left. {\frac{\partial (u^2+v^2)}{\partial i}} \right|_s 249 305 + \frac{1}{e_3} \left[ w - \sigma_2 v - \sigma_1 u \right] 250 \; \frac{\partial u}{\partial s} \\306 \; \frac{\partial u}{\partial s} . \\ 251 307 % 252 \intertext{Introducing $\omega$, the dia- a-surface velocity given by (\autoref{apdx:A_w_s}) }308 \intertext{Introducing $\omega$, the dia-s-surface velocity given by (\autoref{apdx:A_w_s}) } 253 309 % 254 310 &= \left. {\frac{\partial u }{\partial t}} \right|_z 255 +\left. \zeta \right|_s \;v311 - \left. \zeta \right|_s \;v 256 312 + \frac{1}{2\,e_1}\left. {\frac{\partial (u^2+v^2)}{\partial i}} \right|_s 257 + \frac{1}{e_3 } \left( \omega -w_s \right) \frac{\partial u}{\partial s} \\313 + \frac{1}{e_3 } \left( \omega + w_s \right) \frac{\partial u}{\partial s} \\ 258 314 \end{array} 259 315 } … … 266 322 { 267 323 \begin{array}{*{20}l} 268 w_s\;\frac{\partial u}{\partial s}269 = \frac{\partial s}{\partial t}\; \frac{\partial u }{\partial s}270 = \left. {\frac{\partial u }{\partial t}} \right|_s - \left. {\frac{\partial u }{\partial t}} \right|_z \ quad ,324 \frac{w_s}{e_3} \;\frac{\partial u}{\partial s} 325 = - \left. \frac{\partial s}{\partial t} \right|_z \; \frac{\partial u }{\partial s} 326 = \left. {\frac{\partial u }{\partial t}} \right|_s - \left. {\frac{\partial u }{\partial t}} \right|_z \ . 271 327 \end{array} 272 328 } 273 329 \] 274 leads to the $s-$coordinate formulation of the total $z-$coordinate time derivative,330 This leads to the $s-$coordinate formulation of the total $z-$coordinate time derivative, 275 331 \ie the total $s-$coordinate time derivative : 276 332 \begin{align} … … 278 334 \left. \frac{D u}{D t} \right|_s 279 335 = \left. {\frac{\partial u }{\partial t}} \right|_s 280 +\left. \zeta \right|_s \;v336 - \left. \zeta \right|_s \;v 281 337 + \frac{1}{2\,e_1}\left. {\frac{\partial (u^2+v^2)}{\partial i}} \right|_s 282 + \frac{1}{e_3 } \omega \;\frac{\partial u}{\partial s} 338 + \frac{1}{e_3 } \omega \;\frac{\partial u}{\partial s} . 283 339 \end{align} 284 340 Therefore, the vector invariant form of the total time derivative has exactly the same mathematical form in … … 306 362 + \frac{1}{e_3} \frac{\partial \omega}{\partial s} \right] \\ \\ 307 363 &&- \frac{v}{e_1 e_2 }\left( v \;\frac{\partial e_2 }{\partial i} 308 -u \;\frac{\partial e_1 }{\partial j} \right) \\364 -u \;\frac{\partial e_1 }{\partial j} \right) . \\ 309 365 \end{array} 310 366 } … … 328 384 - e_2 u \;\frac{\partial e_3 }{\partial i} 329 385 - e_1 v \;\frac{\partial e_3 }{\partial j} \right) 330 -\frac{1}{e_3} \frac{\partial \omega}{\partial s} \right] \\ \\386 + \frac{1}{e_3} \frac{\partial \omega}{\partial s} \right] \\ \\ 331 387 && - \frac{v}{e_1 e_2 }\left( v \;\frac{\partial e_2 }{\partial i} 332 388 -u \;\frac{\partial e_1 }{\partial j} \right) \\ \\ … … 337 393 && - \,u \left[ \frac{1}{e_1 e_2 e_3} \left( \frac{\partial(e_2 e_3 \, u)}{\partial i} 338 394 + \frac{\partial(e_1 e_3 \, v)}{\partial j} \right) 339 -\frac{1}{e_3} \frac{\partial \omega}{\partial s} \right]395 + \frac{1}{e_3} \frac{\partial \omega}{\partial s} \right] 340 396 - \frac{v}{e_1 e_2 }\left( v \;\frac{\partial e_2 }{\partial i} 341 -u \;\frac{\partial e_1 }{\partial j} \right) \\397 -u \;\frac{\partial e_1 }{\partial j} \right) . \\ 342 398 % 343 399 \intertext {Introducing a more compact form for the divergence of the momentum fluxes, … … 346 402 % 347 403 &= \left. {\frac{\partial u }{\partial t}} \right|_s 348 &+ \left. \nabla \cdot \left( {{\ rm {\bf U}}\,u} \right) \right|_s404 &+ \left. \nabla \cdot \left( {{\mathrm {\mathbf U}}\,u} \right) \right|_s 349 405 + \,u \frac{1}{e_3 } \frac{\partial e_3}{\partial t} 350 406 - \frac{v}{e_1 e_2 }\left( v \;\frac{\partial e_2 }{\partial i} … … 359 415 \label{apdx:A_sco_Dt_flux} 360 416 \left. \frac{D u}{D t} \right|_s = \frac{1}{e_3} \left. \frac{\partial ( e_3\,u)}{\partial t} \right|_s 361 + \left. \nabla \cdot \left( {{\ rm {\bf U}}\,u} \right) \right|_s417 + \left. \nabla \cdot \left( {{\mathrm {\mathbf U}}\,u} \right) \right|_s 362 418 - \frac{v}{e_1 e_2 }\left( v \;\frac{\partial e_2 }{\partial i} 363 -u \;\frac{\partial e_1 }{\partial j} \right) 419 -u \;\frac{\partial e_1 }{\partial j} \right). 364 420 \end{flalign} 365 421 which is the total time derivative expressed in the curvilinear $s-$coordinate system. … … 377 433 & =-\frac{1}{\rho_o e_1 }\left[ {\left. {\frac{\partial p}{\partial i}} \right|_s -\frac{e_1 }{e_3 }\sigma_1 \frac{\partial p}{\partial s}} \right] \\ 378 434 & =-\frac{1}{\rho_o \,e_1 }\left. {\frac{\partial p}{\partial i}} \right|_s +\frac{\sigma_1 }{\rho_o \,e_3 }\left( {-g\;\rho \;e_3 } \right) \\ 379 &=-\frac{1}{\rho_o \,e_1 }\left. {\frac{\partial p}{\partial i}} \right|_s -\frac{g\;\rho }{\rho_o }\sigma_1 435 &=-\frac{1}{\rho_o \,e_1 }\left. {\frac{\partial p}{\partial i}} \right|_s -\frac{g\;\rho }{\rho_o }\sigma_1 . 380 436 \end{split} 381 437 \] 382 438 Applying similar manipulation to the second component and 383 replacing $\sigma_1$ and $\sigma_2$ by their expression \autoref{apdx:A_s_slope}, it comes:439 replacing $\sigma_1$ and $\sigma_2$ by their expression \autoref{apdx:A_s_slope}, it becomes: 384 440 \begin{equation} 385 441 \label{apdx:A_grad_p_1} … … 391 447 -\frac{1}{\rho_o \, e_2 }\left. {\frac{\partial p}{\partial j}} \right|_z 392 448 &=-\frac{1}{\rho_o \,e_2 } \left( \left. {\frac{\partial p}{\partial j}} \right|_s 393 + g\;\rho \;\left. {\frac{\partial z}{\partial j}} \right|_s \right) \\449 + g\;\rho \;\left. {\frac{\partial z}{\partial j}} \right|_s \right) . \\ 394 450 \end{split} 395 451 \end{equation} … … 399 455 400 456 As in $z$-coordinate, 401 the horizontal pressure gradient can be split in two parts following \citet{ Marsaleix_al_OM08}.457 the horizontal pressure gradient can be split in two parts following \citet{marsaleix.auclair.ea_OM08}. 402 458 Let defined a density anomaly, $d$, by $d=(\rho - \rho_o)/ \rho_o$, 403 459 and a hydrostatic pressure anomaly, $p_h'$, by $p_h'= g \; \int_z^\eta d \; e_3 \; dk$. … … 405 461 \[ 406 462 \begin{split} 407 p &= g\; \int_z^\eta \rho \; e_3 \; dk = g\; \int_z^\eta \ left( \rho_o \,d + 1 \right) \; e_3 \; dk \\408 &= g \, \rho_o \; \int_z^\eta d \; e_3 \; dk + g \, \int_z^\eta e_3 \; dk463 p &= g\; \int_z^\eta \rho \; e_3 \; dk = g\; \int_z^\eta \rho_o \left( d + 1 \right) \; e_3 \; dk \\ 464 &= g \, \rho_o \; \int_z^\eta d \; e_3 \; dk + \rho_o g \, \int_z^\eta e_3 \; dk . 409 465 \end{split} 410 466 \] … … 412 468 \begin{equation} 413 469 \label{apdx:A_pressure} 414 p = \rho_o \; p_h' + g \, ( z + \eta)470 p = \rho_o \; p_h' + \rho_o \, g \, ( \eta - z ) 415 471 \end{equation} 416 472 and the hydrostatic pressure balance expressed in terms of $p_h'$ and $d$ is: 417 473 \[ 418 \frac{\partial p_h'}{\partial k} = - d \, g \, e_3 474 \frac{\partial p_h'}{\partial k} = - d \, g \, e_3 . 419 475 \] 420 476 421 477 Substituing \autoref{apdx:A_pressure} in \autoref{apdx:A_grad_p_1} and 422 using the definition of the density anomaly it comes theexpression in two parts:478 using the definition of the density anomaly it becomes an expression in two parts: 423 479 \begin{equation} 424 480 \label{apdx:A_grad_p_2} … … 426 482 -\frac{1}{\rho_o \, e_1 } \left. {\frac{\partial p}{\partial i}} \right|_z 427 483 &=-\frac{1}{e_1 } \left( \left. {\frac{\partial p_h'}{\partial i}} \right|_s 428 + g\; d \;\left. {\frac{\partial z}{\partial i}} \right|_s \right) - \frac{g}{e_1 } \frac{\partial \eta}{\partial i} \\484 + g\; d \;\left. {\frac{\partial z}{\partial i}} \right|_s \right) - \frac{g}{e_1 } \frac{\partial \eta}{\partial i} , \\ 429 485 % 430 486 -\frac{1}{\rho_o \, e_2 }\left. {\frac{\partial p}{\partial j}} \right|_z 431 487 &=-\frac{1}{e_2 } \left( \left. {\frac{\partial p_h'}{\partial j}} \right|_s 432 + g\; d \;\left. {\frac{\partial z}{\partial j}} \right|_s \right) - \frac{g}{e_2 } \frac{\partial \eta}{\partial j} \\488 + g\; d \;\left. {\frac{\partial z}{\partial j}} \right|_s \right) - \frac{g}{e_2 } \frac{\partial \eta}{\partial j} . \\ 433 489 \end{split} 434 490 \end{equation} … … 463 519 - \frac{1}{e_1 } \left( \frac{\partial p_h'}{\partial i} + g\; d \; \frac{\partial z}{\partial i} \right) 464 520 - \frac{g}{e_1 } \frac{\partial \eta}{\partial i} 465 + D_u^{\vect{U}} + F_u^{\vect{U}} 521 + D_u^{\vect{U}} + F_u^{\vect{U}} , 466 522 \end{multline} 467 523 \begin{multline} … … 473 529 - \frac{1}{e_2 } \left( \frac{\partial p_h'}{\partial j} + g\; d \; \frac{\partial z}{\partial j} \right) 474 530 - \frac{g}{e_2 } \frac{\partial \eta}{\partial j} 475 + D_v^{\vect{U}} + F_v^{\vect{U}} 531 + D_v^{\vect{U}} + F_v^{\vect{U}} . 476 532 \end{multline} 477 533 \end{subequations} … … 483 539 \label{apdx:A_PE_dyn_flux_u} 484 540 \frac{1}{e_3} \frac{\partial \left( e_3\,u \right) }{\partial t} = 485 \nabla \cdot \left( {{\rm {\bf U}}\,u} \right)541 - \nabla \cdot \left( {{\mathrm {\mathbf U}}\,u} \right) 486 542 + \left\{ {f + \frac{1}{e_1 e_2 }\left( v \;\frac{\partial e_2 }{\partial i} 487 543 -u \;\frac{\partial e_1 }{\partial j} \right)} \right\} \,v \\ 488 544 - \frac{1}{e_1 } \left( \frac{\partial p_h'}{\partial i} + g\; d \; \frac{\partial z}{\partial i} \right) 489 545 - \frac{g}{e_1 } \frac{\partial \eta}{\partial i} 490 + D_u^{\vect{U}} + F_u^{\vect{U}} 546 + D_u^{\vect{U}} + F_u^{\vect{U}} , 491 547 \end{multline} 492 548 \begin{multline} 493 549 \label{apdx:A_dyn_flux_v} 494 550 \frac{1}{e_3}\frac{\partial \left( e_3\,v \right) }{\partial t}= 495 - \nabla \cdot \left( {{\ rm {\bf U}}\,v} \right)496 +\left\{ {f + \frac{1}{e_1 e_2 }\left( v \;\frac{\partial e_2 }{\partial i}551 - \nabla \cdot \left( {{\mathrm {\mathbf U}}\,v} \right) 552 - \left\{ {f + \frac{1}{e_1 e_2 }\left( v \;\frac{\partial e_2 }{\partial i} 497 553 -u \;\frac{\partial e_1 }{\partial j} \right)} \right\} \,u \\ 498 554 - \frac{1}{e_2 } \left( \frac{\partial p_h'}{\partial j} + g\; d \; \frac{\partial z}{\partial j} \right) 499 555 - \frac{g}{e_2 } \frac{\partial \eta}{\partial j} 500 + D_v^{\vect{U}} + F_v^{\vect{U}} 556 + D_v^{\vect{U}} + F_v^{\vect{U}} . 501 557 \end{multline} 502 558 \end{subequations} … … 505 561 \begin{equation} 506 562 \label{apdx:A_dyn_zph} 507 \frac{\partial p_h'}{\partial k} = - d \, g \, e_3 563 \frac{\partial p_h'}{\partial k} = - d \, g \, e_3 . 508 564 \end{equation} 509 565 … … 531 587 \left[ \frac{\partial }{\partial i} \left( {e_2 \,e_3 \;Tu} \right) 532 588 + \frac{\partial }{\partial j} \left( {e_1 \,e_3 \;Tv} \right) \right] \\ 533 +\frac{1}{e_3} \frac{\partial }{\partial k} \left( Tw \right)589 - \frac{1}{e_3} \frac{\partial }{\partial k} \left( Tw \right) 534 590 + D^{T} +F^{T} 535 591 \end{multline} 536 592 537 The expression for the advection term is a straight consequence of ( A.4),593 The expression for the advection term is a straight consequence of (\autoref{apdx:A_sco_Continuity}), 538 594 the expression of the 3D divergence in the $s-$coordinates established above. 539 595 -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/annex_B.tex
r10442 r11422 53 53 { 54 54 \begin{array}{*{20}l} 55 D^T=& \frac{1}{e_1\,e_2\,e_3 }\;\left[ {\ \ \ \ e_2\,e_3\,A^{lT} \;\left. 56 {\frac{\partial }{\partial i}\left( {\frac{1}{e_1}\;\left. {\frac{\partial T}{\partial i}} \right|_s -\frac{\sigma_1 }{e_3 }\;\frac{\partial T}{\partial s}} \right)} \right|_s } \right. \\ 57 &\qquad \quad \ \ \ +e_1\,e_3\,A^{lT} \;\left. {\frac{\partial }{\partial j}\left( {\frac{1}{e_2 }\;\left. {\frac{\partial T}{\partial j}} \right|_s -\frac{\sigma_2 }{e_3 }\;\frac{\partial T}{\partial s}} \right)} \right|_s \\ 58 &\qquad \quad \ \ \ + e_1\,e_2\,A^{lT} \;\frac{\partial }{\partial s}\left( {-\frac{\sigma_1 }{e_1 }\;\left. {\frac{\partial T}{\partial i}} \right|_s -\frac{\sigma_2 }{e_2 }\;\left. {\frac{\partial T}{\partial j}} \right|_s } \right. 59 \left. {\left. {+\left( {\varepsilon +\sigma_1^2+\sigma_2 ^2} \right)\;\frac{1}{e_3 }\;\frac{\partial T}{\partial s}} \right)\;\;} \right] 55 D^T= \frac{1}{e_1\,e_2\,e_3 } & \left\{ \quad \quad \frac{\partial }{\partial i} \left. \left[ e_2\,e_3 \, A^{lT} 56 \left( \ \frac{1}{e_1}\; \left. \frac{\partial T}{\partial i} \right|_s 57 -\frac{\sigma_1 }{e_3 } \; \frac{\partial T}{\partial s} \right) \right] \right|_s \right. \\ 58 & \quad \ + \ \left. \frac{\partial }{\partial j} \left. \left[ e_1\,e_3 \, A^{lT} 59 \left( \ \frac{1}{e_2 }\; \left. \frac{\partial T}{\partial j} \right|_s 60 -\frac{\sigma_2 }{e_3 } \; \frac{\partial T}{\partial s} \right) \right] \right|_s \right. \\ 61 & \quad \ + \ \left. e_1\,e_2\, \frac{\partial }{\partial s} \left[ A^{lT} \; \left( 62 -\frac{\sigma_1 }{e_1 } \; \left. \frac{\partial T}{\partial i} \right|_s 63 -\frac{\sigma_2 }{e_2 } \; \left. \frac{\partial T}{\partial j} \right|_s 64 +\left( \varepsilon +\sigma_1^2+\sigma_2 ^2 \right) \; \frac{1}{e_3 } \; \frac{\partial T}{\partial s} \right) \; \right] \; \right\} . 60 65 \end{array} 61 66 } 62 67 \end{align*} 63 68 64 Equation\autoref{apdx:B2} is obtained from \autoref{apdx:B1} without any additional assumption.69 \autoref{apdx:B2} is obtained from \autoref{apdx:B1} without any additional assumption. 65 70 Indeed, for the special case $k=z$ and thus $e_3 =1$, 66 71 we introduce an arbitrary vertical coordinate $s = s (i,j,z)$ as in \autoref{apdx:A} and … … 90 95 { 91 96 \begin{array}{*{20}l} 92 \intertext{Noting that $\frac{1}{e_1} \left. \frac{\partial e_3 }{\partial i} \right|_s = \frac{\partial \sigma_1 }{\partial s}$, itbecomes:}97 \intertext{Noting that $\frac{1}{e_1} \left. \frac{\partial e_3 }{\partial i} \right|_s = \frac{\partial \sigma_1 }{\partial s}$, this becomes:} 93 98 % 94 & =\frac{1}{e_1\,e_2\,e_3 }\left[ {\left. {\;\;\;\frac{\partial }{\partial i}\left( {\frac{e_2\,e_3 }{e_1}\,A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s } \right)} \right|_s \left. -\, {e_3 \frac{\partial }{\partial i}\left( {\frac{e_2 \,\sigma_1 }{e_3 }A^{lT}\;\frac{\partial T}{\partial s}} \right)} \right|_s } \right. \\99 D^T & =\frac{1}{e_1\,e_2\,e_3 }\left[ {\left. {\;\;\;\frac{\partial }{\partial i}\left( {\frac{e_2\,e_3 }{e_1}\,A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s } \right)} \right|_s \left. -\, {e_3 \frac{\partial }{\partial i}\left( {\frac{e_2 \,\sigma_1 }{e_3 }A^{lT}\;\frac{\partial T}{\partial s}} \right)} \right|_s } \right. \\ 95 100 & \qquad \qquad \quad -e_2 A^{lT}\;\frac{\partial \sigma_1 }{\partial s}\left. {\frac{\partial T}{\partial i}} \right|_s -e_1 \,\sigma_1 \frac{\partial }{\partial s}\left( {\frac{e_2 }{e_1 }A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s } \right) \\ 96 & \qquad \qquad \quad\shoveright{ \left. { +e_1 \,\sigma_1 \frac{\partial }{\partial s}\left( {\frac{e_2 \,\sigma_1 }{e_3 }A^{lT}\;\frac{\partial T}{\partial s}} \right)+\frac{\partial }{\partial s}\left( {\frac{e_1 \,e_2 }{e_3 }A^{vT}\;\frac{\partial T}{\partial z}} \right)\;\;\;} \right] }\\101 & \qquad \qquad \quad\shoveright{ \left. { +e_1 \,\sigma_1 \frac{\partial }{\partial s}\left( {\frac{e_2 \,\sigma_1 }{e_3 }A^{lT}\;\frac{\partial T}{\partial s}} \right)+\frac{\partial }{\partial s}\left( {\frac{e_1 \,e_2 }{e_3 }A^{vT}\;\frac{\partial T}{\partial s}} \right)\;\;\;} \right] }\\ 97 102 \\ 98 103 &=\frac{1}{e_1 \,e_2 \,e_3 } \left[ {\left. {\;\;\;\frac{\partial }{\partial i} \left( {\frac{e_2 \,e_3 }{e_1 }A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s } \right)} \right|_s \left. {-\frac{\partial }{\partial i}\left( {e_2 \,\sigma_1 A^{lT}\;\frac{\partial T}{\partial s}} \right)} \right|_s } \right. \\ 99 104 & \qquad \qquad \quad \left. {+\frac{e_2 \,\sigma_1 }{e_3}A^{lT}\;\frac{\partial T}{\partial s} \;\frac{\partial e_3 }{\partial i}} \right|_s -e_2 A^{lT}\;\frac{\partial \sigma_1 }{\partial s}\left. {\frac{\partial T}{\partial i}} \right|_s \\ 100 105 & \qquad \qquad \quad-e_2 \,\sigma_1 \frac{\partial}{\partial s}\left( {A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s } \right)+\frac{\partial }{\partial s}\left( {\frac{e_1 \,e_2 \,\sigma_1 ^2}{e_3 }A^{lT}\;\frac{\partial T}{\partial s}} \right) \\ 101 & \qquad \qquad \quad\shoveright{ \left. {-\frac{\partial \left( {e_1 \,e_2 \,\sigma_1 } \right)}{\partial s} \left( {\frac{\sigma_1 }{e_3}A^{lT}\;\frac{\partial T}{\partial s}} \right) + \frac{\partial }{\partial s}\left( {\frac{e_1 \,e_2 }{e_3 }A^{vT}\;\frac{\partial T}{\partial s}} \right)\;\;\;} \right]} 106 & \qquad \qquad \quad\shoveright{ \left. {-\frac{\partial \left( {e_1 \,e_2 \,\sigma_1 } \right)}{\partial s} \left( {\frac{\sigma_1 }{e_3}A^{lT}\;\frac{\partial T}{\partial s}} \right) + \frac{\partial }{\partial s}\left( {\frac{e_1 \,e_2 }{e_3 }A^{vT}\;\frac{\partial T}{\partial s}} \right)\;\;\;} \right]} . 102 107 \end{array} 103 108 } \\ … … 105 110 \begin{array}{*{20}l} 106 111 % 107 \intertext{ using the same remark as just above, itbecomes:}112 \intertext{Using the same remark as just above, $D^T$ becomes:} 108 113 % 109 &= \frac{1}{e_1 \,e_2 \,e_3 } \left[ {\left. {\;\;\;\frac{\partial }{\partial i} \left( {\frac{e_2 \,e_3 }{e_1 }A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s -e_2 \,\sigma_1 A^{lT}\;\frac{\partial T}{\partial s}} \right)} \right|_s } \right.\;\;\; \\114 D^T &= \frac{1}{e_1 \,e_2 \,e_3 } \left[ {\left. {\;\;\;\frac{\partial }{\partial i} \left( {\frac{e_2 \,e_3 }{e_1 }A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s -e_2 \,\sigma_1 A^{lT}\;\frac{\partial T}{\partial s}} \right)} \right|_s } \right.\;\;\; \\ 110 115 & \qquad \qquad \quad+\frac{e_1 \,e_2 \,\sigma_1 }{e_3 }A^{lT}\;\frac{\partial T}{\partial s}\;\frac{\partial \sigma_1 }{\partial s} - \frac {\sigma_1 }{e_3} A^{lT} \;\frac{\partial \left( {e_1 \,e_2 \,\sigma_1 } \right)}{\partial s}\;\frac{\partial T}{\partial s} \\ 111 116 & \qquad \qquad \quad-e_2 \left( {A^{lT}\;\frac{\partial \sigma_1 }{\partial s}\left. {\frac{\partial T}{\partial i}} \right|_s +\frac{\partial }{\partial s}\left( {\sigma_1 A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s } \right)-\frac{\partial \sigma_1 }{\partial s}\;A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s } \right) \\ 112 & \qquad \qquad \quad\shoveright{\left. {+\frac{\partial }{\partial s}\left( {\frac{e_1 \,e_2 \,\sigma_1 ^2}{e_3 }A^{lT}\;\frac{\partial T}{\partial s}+\frac{e_1 \,e_2}{e_3 }A^{vT}\;\frac{\partial T}{\partial s}} \right)\;\;\;} \right] }117 & \qquad \qquad \quad\shoveright{\left. {+\frac{\partial }{\partial s}\left( {\frac{e_1 \,e_2 \,\sigma_1 ^2}{e_3 }A^{lT}\;\frac{\partial T}{\partial s}+\frac{e_1 \,e_2}{e_3 }A^{vT}\;\frac{\partial T}{\partial s}} \right)\;\;\;} \right] . } 113 118 \end{array} 114 119 } \\ … … 117 122 % 118 123 \intertext{Since the horizontal scale factors do not depend on the vertical coordinate, 119 the last term of the first line and the first term of the lastline cancel, while120 the second line reduces to a single vertical derivative, so it becomes:}124 the two terms on the second line cancel, while 125 the third line reduces to a single vertical derivative, so it becomes:} 121 126 % 122 & =\frac{1}{e_1 \,e_2 \,e_3 }\left[ {\left. {\;\;\;\frac{\partial }{\partial i}\left( {\frac{e_2 \,e_3 }{e_1 }A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s -e_2 \,\sigma_1 \,A^{lT}\;\frac{\partial T}{\partial s}} \right)} \right|_s } \right. \\127 D^T & =\frac{1}{e_1 \,e_2 \,e_3 }\left[ {\left. {\;\;\;\frac{\partial }{\partial i}\left( {\frac{e_2 \,e_3 }{e_1 }A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s -e_2 \,\sigma_1 \,A^{lT}\;\frac{\partial T}{\partial s}} \right)} \right|_s } \right. \\ 123 128 & \qquad \qquad \quad \shoveright{ \left. {+\frac{\partial }{\partial s}\left( {-e_2 \,\sigma_1 \,A^{lT}\;\left. {\frac{\partial T}{\partial i}} \right|_s +A^{lT}\frac{e_1 \,e_2 }{e_3 }\;\left( {\varepsilon +\sigma_1 ^2} \right)\frac{\partial T}{\partial s}} \right)\;\;\;} \right]} \\ 124 129 % 125 \intertext{ in other words, the horizontal/vertical Laplacian operator in the ($i$,$s$) plane takes the following form:}130 \intertext{In other words, the horizontal/vertical Laplacian operator in the ($i$,$s$) plane takes the following form:} 126 131 \end{array} 127 132 } \\ … … 162 167 the ($i$,$j$,$k$) curvilinear coordinate system in which 163 168 the equations of the ocean circulation model are formulated, 164 takes the following form \citep{ Redi_JPO82}:169 takes the following form \citep{redi_JPO82}: 165 170 166 171 \begin{equation} … … 169 174 \left[ {{ 170 175 \begin{array}{*{20}c} 171 {1+a_ 1 ^2} \hfill & {-a_1 a_2 } \hfill & {-a_1} \hfill \\172 {-a_1 a_2 } \hfill & {1+a_2 ^2} \hfill & {-a_2} \hfill \\173 {-a_1 } \hfill & {-a_2} \hfill & {\varepsilon +a_1 ^2+a_2 ^2} \hfill \\176 {1+a_2 ^2 +\varepsilon a_1 ^2} \hfill & {-a_1 a_2 (1-\varepsilon)} \hfill & {-a_1 (1-\varepsilon) } \hfill \\ 177 {-a_1 a_2 (1-\varepsilon) } \hfill & {1+a_1 ^2 +\varepsilon a_2 ^2} \hfill & {-a_2 (1-\varepsilon)} \hfill \\ 178 {-a_1 (1-\varepsilon)} \hfill & {-a_2 (1-\varepsilon)} \hfill & {\varepsilon +a_1 ^2+a_2 ^2} \hfill \\ 174 179 \end{array} 175 180 }} \right] 176 181 \end{equation} 177 where ($a_1$, $a_2$) are the isopycnal slopes in ($\textbf{i}$, $\textbf{j}$) directions, relative to geopotentials: 182 where ($a_1$, $a_2$) are $(-1) \times$ the isopycnal slopes in 183 ($\textbf{i}$, $\textbf{j}$) directions, relative to geopotentials (or 184 equivalently the slopes of the geopotential surfaces in the isopycnal 185 coordinate framework): 178 186 \[ 179 187 a_1 =\frac{e_3 }{e_1 }\left( {\frac{\partial \rho }{\partial i}} \right)\left( {\frac{\partial \rho }{\partial k}} \right)^{-1} … … 182 190 \right)\left( {\frac{\partial \rho }{\partial k}} \right)^{-1} 183 191 \] 184 185 In practice, isopycnal slopes are generally less than $10^{-2}$ in the ocean, 186 so $\textbf {A}_{\textbf I}$ can be simplified appreciably \citep{Cox1987}: 192 and, as before, $\epsilon = A^{vT} / A^{lT}$. 193 194 In practice, $\epsilon$ is small and isopycnal slopes are generally less than $10^{-2}$ in the ocean, 195 so $\textbf {A}_{\textbf I}$ can be simplified appreciably \citep{cox_OM87}. Keeping leading order terms\footnote{Apart from the (1,0) 196 and (0,1) elements which are set to zero. See \citet{griffies_bk04}, section 14.1.4.1 for a discussion of this point.}: 187 197 \begin{subequations} 188 198 \label{apdx:B4} … … 226 236 The isopycnal diffusion operator \autoref{apdx:B4}, 227 237 \autoref{apdx:B_ldfiso} conserves tracer quantity and dissipates its square. 228 The demonstration of the first property is trivial as \autoref{apdx:B4} is the divergence of fluxes. 229 Let us demonstrate the second one:238 As \autoref{apdx:B4} is the divergence of a flux, the demonstration of the first property is trivial, providing that the flux normal to the boundary is zero 239 (as it is when $A_h$ is zero at the boundary). Let us demonstrate the second one: 230 240 \[ 231 241 \iiint\limits_D T\;\nabla .\left( {\textbf{A}}_{\textbf{I}} \nabla T \right)\,dv … … 236 246 { 237 247 \begin{array}{*{20}l} 238 \nabla T\;.\left( {{\ rm {\bf A}}_{\rm {\bf I}} \nabla T}248 \nabla T\;.\left( {{\mathrm {\mathbf A}}_{\mathrm {\mathbf I}} \nabla T} 239 249 \right)&=A^{lT}\left[ {\left( {\frac{\partial T}{\partial i}} \right)^2-2a_1 240 250 \frac{\partial T}{\partial i}\frac{\partial T}{\partial k}+\left( … … 246 256 j}-a_2 \frac{\partial T}{\partial k}} \right)^2} 247 257 +\varepsilon \left(\frac{\partial T}{\partial k}\right) ^2\right] \\ 248 & \geq 0 258 & \geq 0 . 249 259 \end{array} 250 260 } … … 275 285 \end{equation} 276 286 277 where ($r_1$, $r_2$) are the isopycnal slopes in ($\textbf{i}$, $\textbf{j}$) directions, 278 relative to $s$-coordinate surfaces: 287 where ($r_1$, $r_2$) are $(-1)\times$ the isopycnal slopes in ($\textbf{i}$, $\textbf{j}$) directions, 288 relative to $s$-coordinate surfaces (or equivalently the slopes of the 289 $s$-coordinate surfaces in the isopycnal coordinate framework): 279 290 \[ 280 291 r_1 =\frac{e_3 }{e_1 }\left( {\frac{\partial \rho }{\partial i}} \right)\left( {\frac{\partial \rho }{\partial s}} \right)^{-1} … … 284 295 \] 285 296 286 To prove \autoref{apdx:B 5} by direct re-expression of \autoref{apdx:B_ldfiso} is straightforward, but laborious.297 To prove \autoref{apdx:B_ldfiso_s} by direct re-expression of \autoref{apdx:B_ldfiso} is straightforward, but laborious. 287 298 An easier way is first to note (by reversing the derivation of \autoref{sec:B_2} from \autoref{sec:B_1} ) that 288 299 the weak-slope operator may be \emph{exactly} reexpressed in non-orthogonal $i,j,\rho$-coordinates as … … 306 317 the (rotated,orthogonal) isoneutral axes to the non-orthogonal $i,j,\rho$-coordinates. 307 318 The further transformation into $i,j,s$-coordinates is exact, whatever the steepness of the $s$-surfaces, 308 in the same way as the transformation of horizontal/vertical Laplacian diffusion in $z$-coordinates ,319 in the same way as the transformation of horizontal/vertical Laplacian diffusion in $z$-coordinates in 309 320 \autoref{sec:B_1} onto $s$-coordinates is exact, however steep the $s$-surfaces. 310 321 … … 316 327 \label{sec:B_3} 317 328 318 The second order momentum diffusion operator (Laplacian) in the $z$-coordinateis found by329 The second order momentum diffusion operator (Laplacian) in $z$-coordinates is found by 319 330 applying \autoref{eq:PE_lap_vector}, the expression for the Laplacian of a vector, 320 331 to the horizontal velocity vector: … … 361 372 \end{align*} 362 373 Using \autoref{eq:PE_div}, the definition of the horizontal divergence, 363 the third compon ant of the second vector is obviously zero and thus :374 the third component of the second vector is obviously zero and thus : 364 375 \[ 365 \Delta {\textbf{U}}_h = \nabla _h \left( \chi \right) - \nabla _h \times \left( \zeta \ right) + \frac {1}{e_3 } \frac {\partial }{\partial k} \left( {\frac {1}{e_3 } \frac{\partial {\textbf{ U}}_h }{\partial k}} \right)376 \Delta {\textbf{U}}_h = \nabla _h \left( \chi \right) - \nabla _h \times \left( \zeta \textbf{k} \right) + \frac {1}{e_3 } \frac {\partial }{\partial k} \left( {\frac {1}{e_3 } \frac{\partial {\textbf{ U}}_h }{\partial k}} \right) . 366 377 \] 367 378 … … 379 390 - \nabla _h \times \left( {A^{lm}\;\zeta \;{\textbf{k}}} \right) 380 391 + \frac{1}{e_3 }\frac{\partial }{\partial k}\left( {\frac{A^{vm}\;}{e_3 } 381 \frac{\partial {\ rm {\bf U}}_h }{\partial k}} \right)\\392 \frac{\partial {\mathrm {\mathbf U}}_h }{\partial k}} \right) , \\ 382 393 \end{equation} 383 394 that is, in expanded form: … … 386 397 & = \frac{1}{e_1} \frac{\partial \left( {A^{lm}\chi } \right)}{\partial i} 387 398 -\frac{1}{e_2} \frac{\partial \left( {A^{lm}\zeta } \right)}{\partial j} 388 +\frac{1}{e_3} \frac{\partial u}{\partial k}\\399 +\frac{1}{e_3} \frac{\partial }{\partial k} \left( \frac{A^{vm}}{e_3} \frac{\partial u}{\partial k} \right) , \\ 389 400 D^{\textbf{U}}_v 390 401 & = \frac{1}{e_2 }\frac{\partial \left( {A^{lm}\chi } \right)}{\partial j} 391 402 +\frac{1}{e_1 }\frac{\partial \left( {A^{lm}\zeta } \right)}{\partial i} 392 +\frac{1}{e_3} \frac{\partial v}{\partial k}403 +\frac{1}{e_3} \frac{\partial }{\partial k} \left( \frac{A^{vm}}{e_3} \frac{\partial v}{\partial k} \right) . 393 404 \end{align*} 394 405 -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/annex_E.tex
r10442 r11422 49 49 50 50 This results in a dissipatively dominant (\ie hyper-diffusive) truncation error 51 \citep{ Shchepetkin_McWilliams_OM05}.52 The overall performance of the advection scheme is similar to that reported in \cite{ Farrow1995}.51 \citep{shchepetkin.mcwilliams_OM05}. 52 The overall performance of the advection scheme is similar to that reported in \cite{farrow.stevens_JPO95}. 53 53 It is a relatively good compromise between accuracy and smoothness. 54 54 It is not a \emph{positive} scheme meaning false extrema are permitted but … … 65 65 the second term which is the diffusive part of the scheme, is evaluated using the \textit{before} velocity 66 66 (forward in time). 67 This is discussed by \citet{ Webb_al_JAOT98} in the context of the Quick advection scheme.67 This is discussed by \citet{webb.de-cuevas.ea_JAOT98} in the context of the Quick advection scheme. 68 68 UBS and QUICK schemes only differ by one coefficient. 69 Substituting 1/6 with 1/8 in (\autoref{eq:tra_adv_ubs}) leads to the QUICK advection scheme \citep{ Webb_al_JAOT98}.69 Substituting 1/6 with 1/8 in (\autoref{eq:tra_adv_ubs}) leads to the QUICK advection scheme \citep{webb.de-cuevas.ea_JAOT98}. 70 70 This option is not available through a namelist parameter, since the 1/6 coefficient is hard coded. 71 71 Nevertheless it is quite easy to make the substitution in \mdl{traadv\_ubs} module and obtain a QUICK scheme. … … 80 80 $\tau_w^{ubs}$ will be evaluated using either \textit{(a)} a centered $2^{nd}$ order scheme, 81 81 or \textit{(b)} a TVD scheme, or \textit{(c)} an interpolation based on conservative parabolic splines following 82 \citet{ Shchepetkin_McWilliams_OM05} implementation of UBS in ROMS, or \textit{(d)} an UBS.82 \citet{shchepetkin.mcwilliams_OM05} implementation of UBS in ROMS, or \textit{(d)} an UBS. 83 83 The $3^{rd}$ case has dispersion properties similar to an eight-order accurate conventional scheme. 84 84 … … 255 255 \subsection{Griffies iso-neutral diffusion operator} 256 256 257 Let try to define a scheme that get its inspiration from the \citet{ Griffies_al_JPO98} scheme,257 Let try to define a scheme that get its inspiration from the \citet{griffies.gnanadesikan.ea_JPO98} scheme, 258 258 but is formulated within the \NEMO framework 259 259 (\ie using scale factors rather than grid-size and having a position of $T$-points that … … 272 272 Nevertheless, this technique works fine for $T$ and $S$ as they are active tracers 273 273 (\ie they enter the computation of density), but it does not work for a passive tracer. 274 \citep{ Griffies_al_JPO98} introduce a different way to discretise the off-diagonal terms that274 \citep{griffies.gnanadesikan.ea_JPO98} introduce a different way to discretise the off-diagonal terms that 275 275 nicely solve the problem. 276 276 The idea is to get rid of combinations of an averaged in one direction combined with … … 308 308 \begin{figure}[!ht] 309 309 \begin{center} 310 \includegraphics[width= 0.70\textwidth]{Fig_ISO_triad}310 \includegraphics[width=\textwidth]{Fig_ISO_triad} 311 311 \caption{ 312 312 \protect\label{fig:ISO_triad} … … 508 508 \] 509 509 510 \citep{ Griffies_JPO98} introduces another way to implement the eddy induced advection, the so-called skew form.510 \citep{griffies_JPO98} introduces another way to implement the eddy induced advection, the so-called skew form. 511 511 It is based on a transformation of the advective fluxes using the non-divergent nature of the eddy induced velocity. 512 512 For example in the (\textbf{i},\textbf{k}) plane, the tracer advective fluxes can be transformed as follows: … … 574 574 The horizontal component reduces to the one use for an horizontal laplacian operator and 575 575 the vertical one keeps the same complexity, but not more. 576 This property has been used to reduce the computational time \citep{ Griffies_JPO98},576 This property has been used to reduce the computational time \citep{griffies_JPO98}, 577 577 but it is not of practical use as usually $A \neq A_e$. 578 578 Nevertheless this property can be used to choose a discret form of \autoref{eq:eiv_skew_continuous} which -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/annex_iso.tex
r10442 r11422 4 4 \newcommand{\rML}[1][i]{\ensuremath{_{\mathrm{ML}\,#1}}} 5 5 \newcommand{\rMLt}[1][i]{\tilde{r}_{\mathrm{ML}\,#1}} 6 \newcommand{\triad}[6][]{\ensuremath{{}_{#2}^{#3}{\mathbb{#4}_{#1}}_{#5}^{\,#6}}} 6 %% Move to ../../global/new_cmds.tex to avoid error with \listoffigures 7 %\newcommand{\triad}[6][]{\ensuremath{{}_{#2}^{#3}{\mathbb{#4}_{#1}}_{#5}^{\,#6}} 7 8 \newcommand{\triadd}[5]{\ensuremath{{}_{#1}^{#2}{\mathbb{#3}}_{#4}^{\,#5}}} 8 9 \newcommand{\triadt}[5]{\ensuremath{{}_{#1}^{#2}{\tilde{\mathbb{#3}}}_{#4}^{\,#5}}} … … 52 53 the vertical skew flux is further reduced to ensure no vertical buoyancy flux, 53 54 giving an almost pure horizontal diffusive tracer flux within the mixed layer. 54 This is similar to the tapering suggested by \citet{ Gerdes1991}. See \autoref{subsec:Gerdes-taper}55 This is similar to the tapering suggested by \citet{gerdes.koberle.ea_CD91}. See \autoref{subsec:Gerdes-taper} 55 56 \item[\np{ln\_botmix\_triad}] 56 57 See \autoref{sec:iso_bdry}. … … 71 72 \label{sec:iso} 72 73 73 We have implemented into \NEMO a scheme inspired by \citet{ Griffies_al_JPO98},74 We have implemented into \NEMO a scheme inspired by \citet{griffies.gnanadesikan.ea_JPO98}, 74 75 but formulated within the \NEMO framework, using scale factors rather than grid-sizes. 75 76 … … 194 195 \subsection{Expression of the skew-flux in terms of triad slopes} 195 196 196 \citep{ Griffies_al_JPO98} introduce a different discretization of the off-diagonal terms that197 \citep{griffies.gnanadesikan.ea_JPO98} introduce a different discretization of the off-diagonal terms that 197 198 nicely solves the problem. 198 199 % Instead of multiplying the mean slope calculated at the $u$-point by … … 201 202 \begin{figure}[tb] 202 203 \begin{center} 203 \includegraphics[width= 1.05\textwidth]{Fig_GRIFF_triad_fluxes}204 \includegraphics[width=\textwidth]{Fig_GRIFF_triad_fluxes} 204 205 \caption{ 205 206 \protect\label{fig:ISO_triad} … … 265 266 \begin{figure}[tb] 266 267 \begin{center} 267 \includegraphics[width= 0.80\textwidth]{Fig_GRIFF_qcells}268 \includegraphics[width=\textwidth]{Fig_GRIFF_qcells} 268 269 \caption{ 269 270 \protect\label{fig:qcells} … … 473 474 474 475 To complete the discretization we now need only specify the triad volumes $_i^k\mathbb{V}_{i_p}^{k_p}$. 475 \citet{ Griffies_al_JPO98} identifies these $_i^k\mathbb{V}_{i_p}^{k_p}$ as the volumes of the quarter cells,476 \citet{griffies.gnanadesikan.ea_JPO98} identifies these $_i^k\mathbb{V}_{i_p}^{k_p}$ as the volumes of the quarter cells, 476 477 defined in terms of the distances between $T$, $u$,$f$ and $w$-points. 477 478 This is the natural discretization of \autoref{eq:cts-var}. … … 658 659 \begin{figure}[h] 659 660 \begin{center} 660 \includegraphics[width= 0.60\textwidth]{Fig_GRIFF_bdry_triads}661 \includegraphics[width=\textwidth]{Fig_GRIFF_bdry_triads} 661 662 \caption{ 662 663 \protect\label{fig:bdry_triads} … … 685 686 As discussed in \autoref{subsec:LDF_slp_iso}, 686 687 iso-neutral slopes relative to geopotentials must be bounded everywhere, 687 both for consistency with the small-slope approximation and for numerical stability \citep{ Cox1987, Griffies_Bk04}.688 both for consistency with the small-slope approximation and for numerical stability \citep{cox_OM87, griffies_bk04}. 688 689 The bound chosen in \NEMO is applied to each component of the slope separately and 689 690 has a value of $1/100$ in the ocean interior. … … 732 733 \[ 733 734 % \label{eq:iso_tensor_ML} 734 D^{lT}=\nabla {\ rm {\bf .}}\left( {A^{lT}\;\Re \;\nabla T} \right) \qquad735 D^{lT}=\nabla {\mathrm {\mathbf .}}\left( {A^{lT}\;\Re \;\nabla T} \right) \qquad 735 736 \mbox{with}\quad \;\;\Re =\left( {{ 736 737 \begin{array}{*{20}c} … … 829 830 (\eg the green triad $i_p=1/2,k_p=-1/2$) are tapered to the appropriate basal triad.} 830 831 % } 831 \includegraphics[width= 0.60\textwidth]{Fig_GRIFF_MLB_triads}832 \includegraphics[width=\textwidth]{Fig_GRIFF_MLB_triads} 832 833 \end{figure} 833 834 % >>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 847 848 \[ 848 849 % \label{eq:iso_tensor_ML2} 849 D^{lT}=\nabla {\ rm {\bf .}}\left( {A^{lT}\;\Re \;\nabla T} \right) \qquad850 D^{lT}=\nabla {\mathrm {\mathbf .}}\left( {A^{lT}\;\Re \;\nabla T} \right) \qquad 850 851 \mbox{with}\quad \;\;\Re =\left( {{ 851 852 \begin{array}{*{20}c} … … 859 860 \footnote{ 860 861 To ensure good behaviour where horizontal density gradients are weak, 861 we in fact follow \citet{ Gerdes1991} and862 we in fact follow \citet{gerdes.koberle.ea_CD91} and 862 863 set $\rML^*=\mathrm{sgn}(\tilde{r}_i)\min(|\rMLt^2/\tilde{r}_i|,|\tilde{r}_i|)-\sigma_i$. 863 864 } … … 865 866 This approach is similar to multiplying the iso-neutral diffusion coefficient by 866 867 $\tilde{r}_{\mathrm{max}}^{-2}\tilde{r}_i^{-2}$ for steep slopes, 867 as suggested by \citet{ Gerdes1991} (see also \citet{Griffies_Bk04}).868 as suggested by \citet{gerdes.koberle.ea_CD91} (see also \citet{griffies_bk04}). 868 869 Again it is applied separately to each triad $_i^k\mathbb{R}_{i_p}^{k_p}$ 869 870 … … 925 926 926 927 However, when \np{ln\_traldf\_triad} is set true, 927 \NEMO instead implements eddy induced advection according to the so-called skew form \citep{ Griffies_JPO98}.928 \NEMO instead implements eddy induced advection according to the so-called skew form \citep{griffies_JPO98}. 928 929 It is based on a transformation of the advective fluxes using the non-divergent nature of the eddy induced velocity. 929 930 For example in the (\textbf{i},\textbf{k}) plane, … … 1139 1140 it is equivalent to a horizontal eiv (eddy-induced velocity) that is uniform within the mixed layer 1140 1141 \autoref{eq:eiv_v}. 1141 This ensures that the eiv velocities do not restratify the mixed layer \citep{ Treguier1997,Danabasoglu_al_2008}.1142 This ensures that the eiv velocities do not restratify the mixed layer \citep{treguier.held.ea_JPO97,danabasoglu.ferrari.ea_JC08}. 1142 1143 Equivantly, in terms of the skew-flux formulation we use here, 1143 1144 the linear slope tapering within the mixed-layer gives a linearly varying vertical flux, … … 1153 1154 $uw$ (integer +1/2 $i$, integer $j$, integer +1/2 $k$) and $vw$ (integer $i$, integer +1/2 $j$, integer +1/2 $k$) 1154 1155 points (see Table \autoref{tab:cell}) respectively. 1155 We follow \citep{ Griffies_Bk04} and calculate the streamfunction at a given $uw$-point from1156 We follow \citep{griffies_bk04} and calculate the streamfunction at a given $uw$-point from 1156 1157 the surrounding four triads according to: 1157 1158 \[ -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_ASM.tex
r10442 r11422 8 8 \label{chap:ASM} 9 9 10 Authors: D. Lea, M. Martin, K. Mogensen, A. Weaver, ... % do we keep 10 \minitoc 11 11 12 \minitoc 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} 13 21 14 22 \newpage 15 23 16 24 The ASM code adds the functionality to apply increments to the model variables: temperature, salinity, 17 sea surface height, velocity and sea ice concentration. 25 sea surface height, velocity and sea ice concentration. 18 26 These are read into the model from a NetCDF file which may be produced by separate data assimilation code. 19 27 The code can also output model background fields which are used as an input to data assimilation code. … … 37 45 it may be preferable to introduce the increment gradually into the ocean model in order to 38 46 minimize spurious adjustment processes. 39 This technique is referred to as Incremental Analysis Updates (IAU) \citep{ Bloom_al_MWR96}.47 This technique is referred to as Incremental Analysis Updates (IAU) \citep{bloom.takacs.ea_MWR96}. 40 48 IAU is a common technique used with 3D assimilation methods such as 3D-Var or OI. 41 49 IAU is used when \np{ln\_asmiau} is set to true. 42 50 43 With IAU, the model state trajectory ${\ bf x}$ in the assimilation window ($t_{0} \leq t_{i} \leq t_{N}$)51 With IAU, the model state trajectory ${\mathbf x}$ in the assimilation window ($t_{0} \leq t_{i} \leq t_{N}$) 44 52 is corrected by adding the analysis increments for temperature, salinity, horizontal velocity and SSH as 45 53 additional tendency terms to the prognostic equations: 46 54 \begin{align*} 47 55 % \label{eq:wa_traj_iau} 48 {\ bf x}^{a}(t_{i}) = M(t_{i}, t_{0})[{\bf x}^{b}(t_{0})] \; + \; F_{i} \delta \tilde{\bf x}^{a}56 {\mathbf x}^{a}(t_{i}) = M(t_{i}, t_{0})[{\mathbf x}^{b}(t_{0})] \; + \; F_{i} \delta \tilde{\mathbf x}^{a} 49 57 \end{align*} 50 where $F_{i}$ is a weighting function for applying the increments $\delta\tilde{\ bf x}^{a}$ defined such that58 where $F_{i}$ is a weighting function for applying the increments $\delta\tilde{\mathbf x}^{a}$ defined such that 51 59 $\sum_{i=1}^{N} F_{i}=1$. 52 ${\ bf x}^b$ denotes the model initial state and ${\bf x}^a$ is the model state after the increments are applied.60 ${\mathbf x}^b$ denotes the model initial state and ${\mathbf x}^a$ is the model state after the increments are applied. 53 61 To control the adjustment time of the model to the increment, 54 62 the increment can be applied over an arbitrary sub-window, $t_{m} \leq t_{i} \leq t_{n}$, … … 56 64 Typically the increments are spread evenly over the full window. 57 65 In addition, two different weighting functions have been implemented. 58 The first function employs constant weights,66 The first function (namelist option \np{niaufn} = 0) employs constant weights, 59 67 \begin{align} 60 68 \label{eq:F1_i} … … 62 70 =\left\{ 63 71 \begin{array}{ll} 64 0 & {\ rm if} \; \; \; t_{i} < t_{m} \\65 1/M & {\ rm if} \; \; \; t_{m} < t_{i} \leq t_{n} \\66 0 & {\ rm if} \; \; \; t_{i} > t_{n}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} 67 75 \end{array} 68 \right. 76 \right. 69 77 \end{align} 70 78 where $M = m-n$. 71 The second function employs peaked hat-like weights in order to give maximum weight in the centre of the sub-window,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, 72 80 with the weighting reduced linearly to a small value at the window end-points: 73 81 \begin{align} … … 76 84 =\left\{ 77 85 \begin{array}{ll} 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}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} 82 90 \end{array} 83 91 \right. 84 92 \end{align} 85 where $\alpha^{-1} = \sum_{i=1}^{M/2} 2i$ and $M$ is assumed to be even. 93 where $\alpha^{-1} = \sum_{i=1}^{M/2} 2i$ and $M$ is assumed to be even. 86 94 The weights described by \autoref{eq:F2_i} provide a smoother transition of the analysis trajectory from 87 95 one assimilation cycle to the next than that described by \autoref{eq:F1_i}. … … 92 100 \label{sec:ASM_div_dmp} 93 101 94 The velocity increments may be initialized by the iterative application of a divergence damping operator. 95 In iteration step $n$ new estimates of velocity increments $u^{n}_I$ and $v^{n}_I$ are updated by: 102 It is quite challenging for data assimilation systems to provide non-divergent velocity increments. 103 Applying 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}. 104 105 In iteration step $n$ (starting at $n=1$) new estimates of velocity increments $u^{n}_I$ and $v^{n}_I$ are updated by: 106 96 107 \begin{equation} 97 108 \label{eq:asm_dmp} … … 105 116 \right., 106 117 \end{equation} 107 where 118 119 where the divergence is defined as 120 108 121 \[ 109 122 % \label{eq:asm_div} … … 112 125 +\delta_j \left[ {e_{1v}\,e_{3v}\,v^{n-1}_I} \right]} \right). 113 126 \] 114 By the application of \autoref{eq:asm_dmp} and \autoref{eq:asm_dmp} the divergence is filtered in each iteration, 127 128 By the application of \autoref{eq:asm_dmp} the divergence is filtered in each iteration, 115 129 and the vorticity is left unchanged. 116 130 In the presence of coastal boundaries with zero velocity increments perpendicular to the coast … … 118 132 This type of the initialisation reduces the vertical velocity magnitude and 119 133 alleviates the problem of the excessive unphysical vertical mixing in the first steps of the model integration 120 \citep{ Talagrand_JAS72, Dobricic_al_OS07}.134 \citep{talagrand_JAS72, dobricic.pinardi.ea_OS07}. 121 135 Diffusion coefficients are defined as $A_D = \alpha e_{1t} e_{2t}$, where $\alpha = 0.2$. 122 136 The divergence damping is activated by assigning to \np{nn\_divdmp} in the \textit{nam\_asminc} namelist 123 137 a value greater than zero. 124 By choosing this value to be of the order of 100 the increments in 125 the vertical velocity will be significantly reduced. 138 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. 126 139 127 140 … … 131 144 \label{sec:ASM_details} 132 145 133 Here we show an example \ngn{nam asm} namelist and the header of an example assimilation increments file on146 Here we show an example \ngn{nam\_asminc} namelist and the header of an example assimilation increments file on 134 147 the ORCA2 grid. 135 148 136 %------------------------------------------nam asm-----------------------------------------------------149 %------------------------------------------nam_asminc----------------------------------------------------- 137 150 % 138 151 \nlst{nam_asminc} -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_CONFIG.tex
r10442 r11422 18 18 \label{sec:CFG_intro} 19 19 20 The purpose of this part of the manual is to introduce the \NEMO reference configurations.20 The purpose of this part of the manual is to introduce the NEMO reference configurations. 21 21 These configurations are offered as means to explore various numerical and physical options, 22 22 thus allowing the user to verify that the code is performing in a manner consistent with that we are running. … … 24 24 The reference configurations also provide a sense for some of the options available in the code, 25 25 though by no means are all options exercised in the reference configurations. 26 Configuration is defined manually through the \textit{namcfg} namelist variables. 26 27 27 28 %------------------------------------------namcfg---------------------------------------------------- … … 33 34 % 1D model configuration 34 35 % ================================================================ 35 \section{C1D: 1D Water column model (\protect\key{c1d}) } 36 \section[C1D: 1D Water column model (\texttt{\textbf{key\_c1d}})] 37 {C1D: 1D Water column model (\protect\key{c1d})} 36 38 \label{sec:CFG_c1d} 37 39 38 BE careful: to be re-written according to suppression of jpizoom and jpjzoom !!!! 39 40 The 1D model option simulates a stand alone water column within the 3D \NEMO system. 40 The 1D model option simulates a stand alone water column within the 3D NEMO system. 41 41 It can be applied to the ocean alone or to the ocean-ice system and can include passive tracers or a biogeochemical model. 42 42 It is set up by defining the position of the 1D water column in the grid 43 (see \textit{ CONFIG/SHARED/namelist\_ref}).43 (see \textit{cfgs/SHARED/namelist\_ref}). 44 44 The 1D model is a very useful tool 45 45 \textit{(a)} to learn about the physics and numerical treatment of vertical mixing processes; … … 50 50 \textit{(d)} to produce extra diagnostics, without the large memory requirement of the full 3D model. 51 51 52 The methodology is based on the use of the zoom functionality over the smallest possible domain: 53 a 3x3 domain centered on the grid point of interest, with some extra routines. 54 There is no need to define a new mesh, bathymetry, initial state or forcing, 55 since the 1D model will use those of the configuration it is a zoom of. 56 The chosen grid point is set in \textit{\ngn{namcfg}} namelist by 57 setting the \np{jpizoom} and \np{jpjzoom} parameters to the indices of the location of the chosen grid point. 52 The methodology is based on the configuration of the smallest possible domain: 53 a 3x3 domain with 75 vertical levels. 58 54 59 55 The 1D model has some specifies. First, all the horizontal derivatives are assumed to be zero, 60 56 and second, the two components of the velocity are moved on a $T$-point. 61 Therefore, defining \key{c1d} changes five mainthings in the code behaviour:57 Therefore, defining \key{c1d} changes some things in the code behaviour: 62 58 \begin{description} 63 59 \item[(1)] 64 the lateral boundary condition routine (\rou{lbc\_lnk}) set the value of the central column of65 the 3x3 domain is imposed over the whole domain;66 \item[(3)]67 a call to \rou{lbc\_lnk} is systematically done when reading input data (\ie in \mdl{iom});68 \item[(3)]69 60 a simplified \rou{stp} routine is used (\rou{stp\_c1d}, see \mdl{step\_c1d} module) in which 70 61 both lateral tendancy terms and lateral physics are not called; 71 \item[( 4)]62 \item[(2)] 72 63 the vertical velocity is zero 73 64 (so far, no attempt at introducing a Ekman pumping velocity has been made); 74 \item[( 5)]65 \item[(3)] 75 66 a simplified treatment of the Coriolis term is performed as $U$- and $V$-points are the same 76 67 (see \mdl{dyncor\_c1d}). 77 68 \end{description} 78 All the relevant \textit{\_c1d} modules can be found in the NEMOGCM/NEMO/OPA\_SRC/C1D directory of79 the \NEMO distribution.69 All the relevant \textit{\_c1d} modules can be found in the src/OCE/C1D directory of 70 the NEMO distribution. 80 71 81 72 % to be added: a test case on the yearlong Ocean Weather Station (OWS) Papa dataset of Martin (1985) … … 88 79 89 80 The ORCA family is a series of global ocean configurations that are run together with 90 the LIM sea-ice model (ORCA-LIM) and possibly with PISCES biogeochemical model (ORCA-LIM-PISCES), 91 using various resolutions. 92 An appropriate namelist is available in \path{CONFIG/ORCA2_LIM3_PISCES/EXP00/namelist_cfg} for ORCA2. 81 the SI3 model (ORCA-ICE) and possibly with PISCES biogeochemical model (ORCA-ICE-PISCES). 82 An appropriate namelist is available in \path{cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg} for ORCA2. 93 83 The domain of ORCA2 configuration is defined in \ifile{ORCA\_R2\_zps\_domcfg} file, 94 this file is available in tar file in the wiki of NEMO: \\ 95 https://forge.ipsl.jussieu.fr/nemo/wiki/Users/ReferenceConfigurations/ORCA2\_LIM3\_PISCES \\ 84 this file is available in tar file on the NEMO community zenodo platform: \\ 85 https://doi.org/10.5281/zenodo.2640723 86 96 87 In this namelist\_cfg the name of domain input file is set in \ngn{namcfg} block of namelist. 97 88 … … 99 90 \begin{figure}[!t] 100 91 \begin{center} 101 \includegraphics[width= 0.98\textwidth]{Fig_ORCA_NH_mesh}92 \includegraphics[width=\textwidth]{Fig_ORCA_NH_mesh} 102 93 \caption{ 103 94 \protect\label{fig:MISC_ORCA_msh} … … 106 97 The two "north pole" are the foci of a series of embedded ellipses (blue curves) which 107 98 are determined analytically and form the i-lines of the ORCA mesh (pseudo latitudes). 108 Then, following \citet{ Madec_Imbard_CD96}, the normal to the series of ellipses (red curves) is computed which99 Then, following \citet{madec.imbard_CD96}, the normal to the series of ellipses (red curves) is computed which 109 100 provides the j-lines of the mesh (pseudo longitudes). 110 101 } … … 119 110 \label{subsec:CFG_orca_grid} 120 111 121 The ORCA grid is a tripolar is based on the semi-analytical method of \citet{Madec_Imbard_CD96}.112 The ORCA grid is a tripolar grid based on the semi-analytical method of \citet{madec.imbard_CD96}. 122 113 It allows to construct a global orthogonal curvilinear ocean mesh which has no singularity point inside 123 114 the computational domain since two north mesh poles are introduced and placed on lands. … … 131 122 \begin{figure}[!tbp] 132 123 \begin{center} 133 \includegraphics[width= 1.0\textwidth]{Fig_ORCA_NH_msh05_e1_e2}134 \includegraphics[width= 0.80\textwidth]{Fig_ORCA_aniso}124 \includegraphics[width=\textwidth]{Fig_ORCA_NH_msh05_e1_e2} 125 \includegraphics[width=\textwidth]{Fig_ORCA_aniso} 135 126 \caption { 136 127 \protect\label{fig:MISC_ORCA_e1e2} … … 158 149 159 150 % ------------------------------------------------------------------------------------------------------------- 160 % ORCA- LIM(-PISCES) configurations151 % ORCA-ICE(-PISCES) configurations 161 152 % ------------------------------------------------------------------------------------------------------------- 162 153 \subsection{ORCA pre-defined resolution} … … 199 190 The ORCA\_R2 configuration has the following specificity: starting from a 2\deg~ORCA mesh, 200 191 local mesh refinements were applied to the Mediterranean, Red, Black and Caspian Seas, 201 so that the resolution is 1\deg \time 1\degthere.192 so that the resolution is 1\deg~ there. 202 193 A local transformation were also applied with in the Tropics in order to refine the meridional resolution up to 203 0.5\deg at the Equator.194 0.5\deg~ at the Equator. 204 195 205 196 The ORCA\_R1 configuration has only a local tropical transformation to refine the meridional resolution up to … … 211 202 For ORCA\_R1 and R025, setting the configuration key to 75 allows to use 75 vertical levels, otherwise 46 are used. 212 203 In the other ORCA configurations, 31 levels are used 213 (see \autoref{tab:orca_zgr} %\sfcomment{HERE I need to put new table for ORCA2 values} and \autoref{fig:zgr}).214 215 Only the ORCA\_R2 is provided with all its input files in the \NEMO distribution.216 It is very similar to that used as part of the climate model developed at IPSL for the 4th IPCC assessment of217 climate change (Marti et al., 2009).218 It is also the basis for the \NEMO contribution to the Coordinate Ocean-ice Reference Experiments (COREs)219 documented in \citet{Griffies_al_OM09}.204 (see \autoref{tab:orca_zgr}). %\sfcomment{HERE I need to put new table for ORCA2 values} and \autoref{fig:zgr}). 205 206 Only the ORCA\_R2 is provided with all its input files in the NEMO distribution. 207 %It is very similar to that used as part of the climate model developed at IPSL for the 4th IPCC assessment of 208 %climate change (Marti et al., 2009). 209 %It is also the basis for the \NEMO contribution to the Coordinate Ocean-ice Reference Experiments (COREs) 210 %documented in \citet{griffies.biastoch.ea_OM09}. 220 211 221 212 This version of ORCA\_R2 has 31 levels in the vertical, with the highest resolution (10m) in the upper 150m 222 213 (see \autoref{tab:orca_zgr} and \autoref{fig:zgr}). 223 214 The bottom topography and the coastlines are derived from the global atlas of Smith and Sandwell (1997). 224 The default forcing uses the boundary forcing from \citet{ Large_Yeager_Rep04} (see \autoref{subsec:SBC_blk_core}),215 The default forcing uses the boundary forcing from \citet{large.yeager_rpt04} (see \autoref{subsec:SBC_blk_core}), 225 216 which was developed for the purpose of running global coupled ocean-ice simulations without 226 217 an interactive atmosphere. 227 This \citet{ Large_Yeager_Rep04} dataset is available through218 This \citet{large.yeager_rpt04} dataset is available through 228 219 the \href{http://nomads.gfdl.noaa.gov/nomads/forms/mom4/CORE.html}{GFDL web site}. 229 The "normal year" of \citet{ Large_Yeager_Rep04} has been chosen of the \NEMO distribution since release v3.3.230 231 ORCA\_R2 pre-defined configuration can also be run with an AGRIF zoom over the Agulhas current area232 (\key{agrif} defined) and, by setting the appropriate variables, see \path{CONFIG/SHARED/namelist_ref}. 220 The "normal year" of \citet{large.yeager_rpt04} has been chosen of the NEMO distribution since release v3.3. 221 222 ORCA\_R2 pre-defined configuration can also be run with multiply online nested zooms (\ie with AGRIF, \key{agrif} defined). This is available as the AGRIF\_DEMO configuration that can be found in the \path{cfgs/AGRIF_DEMO/} directory. 223 233 224 A regional Arctic or peri-Antarctic configuration is extracted from an ORCA\_R2 or R05 configurations using 234 225 sponge layers at open boundaries. … … 237 228 % GYRE family: double gyre basin 238 229 % ------------------------------------------------------------------------------------------------------------- 239 \section{GYRE family: double gyre basin 230 \section{GYRE family: double gyre basin} 240 231 \label{sec:CFG_gyre} 241 232 242 The GYRE configuration \citep{ Levy_al_OM10} has been built to233 The GYRE configuration \citep{levy.klein.ea_OM10} has been built to 243 234 simulate the seasonal cycle of a double-gyre box model. 244 It consists in an idealized domain similar to that used in the studies of \citet{ Drijfhout_JPO94} and245 \citet{ Hazeleger_Drijfhout_JPO98, Hazeleger_Drijfhout_JPO99, Hazeleger_Drijfhout_JGR00, Hazeleger_Drijfhout_JPO00},235 It consists in an idealized domain similar to that used in the studies of \citet{drijfhout_JPO94} and 236 \citet{hazeleger.drijfhout_JPO98, hazeleger.drijfhout_JPO99, hazeleger.drijfhout_JGR00, hazeleger.drijfhout_JPO00}, 246 237 over which an analytical seasonal forcing is applied. 247 238 This allows to investigate the spontaneous generation of a large number of interacting, transient mesoscale eddies 248 239 and their contribution to the large scale circulation. 249 240 241 The GYRE configuration run together with the PISCES biogeochemical model (GYRE-PISCES). 250 242 The domain geometry is a closed rectangular basin on the $\beta$-plane centred at $\sim$ 30\deg{N} and 251 243 rotated by 45\deg, 3180~km long, 2120~km wide and 4~km deep (\autoref{fig:MISC_strait_hand}). … … 253 245 The configuration is meant to represent an idealized North Atlantic or North Pacific basin. 254 246 The circulation is forced by analytical profiles of wind and buoyancy fluxes. 255 The applied forcings vary seasonally in a sinusoidal manner between winter and summer extrema \citep{ Levy_al_OM10}.247 The applied forcings vary seasonally in a sinusoidal manner between winter and summer extrema \citep{levy.klein.ea_OM10}. 256 248 The wind stress is zonal and its curl changes sign at 22\deg{N} and 36\deg{N}. 257 249 It forces a subpolar gyre in the north, a subtropical gyre in the wider part of the domain and … … 266 258 The GYRE configuration is set like an analytical configuration. 267 259 Through \np{ln\_read\_cfg}\forcode{ = .false.} in \textit{namcfg} namelist defined in 268 the reference configuration \path{ CONFIG/GYRE/EXP00/namelist_cfg}260 the reference configuration \path{cfgs/GYRE_PISCES/EXPREF/namelist_cfg} 269 261 analytical definition of grid in GYRE is done in usrdef\_hrg, usrdef\_zgr routines. 270 262 Its horizontal resolution (and thus the size of the domain) is determined by 271 263 setting \np{nn\_GYRE} in \ngn{namusr\_def}: \\ 264 272 265 \np{jpiglo} $= 30 \times$ \np{nn\_GYRE} + 2 \\ 266 273 267 \np{jpjglo} $= 20 \times$ \np{nn\_GYRE} + 2 \\ 268 274 269 Obviously, the namelist parameters have to be adjusted to the chosen resolution, 275 see the Configurations pages on the NEMO web site ( Using NEMO\/Configurations).270 see the Configurations pages on the NEMO web site (NEMO Configurations). 276 271 In the vertical, GYRE uses the default 30 ocean levels (\jp{jpk}\forcode{ = 31}) (\autoref{fig:zgr}). 277 272 … … 281 276 even though the physical integrity of the solution can be compromised. 282 277 Benchmark is activate via \np{ln\_bench}\forcode{ = .true.} in \ngn{namusr\_def} in 283 namelist \path{ CONFIG/GYRE/EXP00/namelist_cfg}.278 namelist \path{cfgs/GYRE_PISCES/EXPREF/namelist_cfg}. 284 279 285 280 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 286 281 \begin{figure}[!t] 287 282 \begin{center} 288 \includegraphics[width= 1.0\textwidth]{Fig_GYRE}283 \includegraphics[width=\textwidth]{Fig_GYRE} 289 284 \caption{ 290 285 \protect\label{fig:GYRE} 291 286 Snapshot of relative vorticity at the surface of the model domain in GYRE R9, R27 and R54. 292 From \citet{ Levy_al_OM10}.287 From \citet{levy.klein.ea_OM10}. 293 288 } 294 289 \end{center} … … 304 299 The AMM, Atlantic Margins Model, is a regional model covering the Northwest European Shelf domain on 305 300 a regular lat-lon grid at approximately 12km horizontal resolution. 306 The appropriate \textit{\&namcfg} namelist is available in \textit{ CONFIG/AMM12/EXP00/namelist\_cfg}.301 The appropriate \textit{\&namcfg} namelist is available in \textit{cfgs/AMM12/EXPREF/namelist\_cfg}. 307 302 It is used to build the correct dimensions of the AMM domain. 308 303 309 304 This configuration tests several features of NEMO functionality specific to the shelf seas. 310 In particular, the AMM uses $S$-coordinates in the vertical rather than $z$-coordinates and 311 is forced with tidal lateral boundary conditions using a flather boundary condition from the BDY module. 312 The AMM configuration uses the GLS (\key{zdfgls}) turbulence scheme, 313 the VVL non-linear free surface(\key{vvl}) and time-splitting (\key{dynspg\_ts}). 305 In particular, the AMM uses $s$-coordinates in the vertical rather than $z$-coordinates and 306 is forced with tidal lateral boundary conditions using a Flather boundary condition from the BDY module. 307 Also specific to the AMM configuration is the use of the GLS turbulence scheme (\np{ln\_zdfgls} \forcode{= .true.}). 314 308 315 309 In addition to the tidal boundary condition the model may also take open boundary conditions from -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_DIA.tex
r10509 r11422 10 10 \minitoc 11 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 Mirek Andrejczuk, Massimiliano Drudi} & {\em } \\ 18 {\em } & {\em Dorotea Iovino, Nicolas Martin} & {\em } \\ 19 {\em 3.6} & {\em Gurvan Madec, Sebastien Masson } & {\em } \\ 20 {\em 3.4} & {\em Gurvan Madec, Rachid Benshila, Andrew Coward } & {\em } \\ 21 {\em } & {\em Christian Ethe, Sebastien Masson } & {\em } \\ 22 \end{tabular} 23 \end{figure} 24 12 25 \newpage 13 26 … … 15 28 % Old Model Output 16 29 % ================================================================ 17 \section{ Old model output (default)}30 \section{Model output} 18 31 \label{sec:DIA_io_old} 19 32 … … 25 38 the same run performed in one step. 26 39 It should be noted that this requires that the restart file contains two consecutive time steps for 27 all the prognostic variables, and that it is saved in the same binary format as the one used by the computer that 28 is to read it (in particular, 32 bits binary IEEE format must not be used for this file). 40 all the prognostic variables. 29 41 30 42 The output listing and file(s) are predefined but should be checked and eventually adapted to the user's needs. … … 38 50 the writing work is distributed over the processors in massively parallel computing. 39 51 A complete description of the use of this I/O server is presented in the next section. 40 41 By default, \key{iomput} is not defined,42 NEMO produces NetCDF with the old IOIPSL library which has been kept for compatibility and its easy installation.43 However, the IOIPSL library is quite inefficient on parallel machines and, since version 3.2,44 many diagnostic options have been added presuming the use of \key{iomput}.45 The usefulness of the default IOIPSL-based option is expected to reduce with each new release.46 If \key{iomput} is not defined, output files and content are defined in the \mdl{diawri} module and47 contain mean (or instantaneous if \key{diainstant} is defined) values over a regular period of48 nn\_write time-steps (namelist parameter).49 52 50 53 %\gmcomment{ % start of gmcomment … … 91 94 in a very easy way. 92 95 All details of iomput functionalities are listed in the following subsections. 93 Examples of the XML files that control the outputs can be found in: \path{NEMOGCM/CONFIG/ORCA2_LIM/EXP00/iodef.xml}, 94 \path{NEMOGCM/CONFIG/SHARED/field_def.xml} and \path{NEMOGCM/CONFIG/SHARED/domain_def.xml}. \\ 96 Examples of the XML files that control the outputs can be found in: 97 \path{cfgs/ORCA2_ICE_PISCES/EXPREF/iodef.xml}, 98 \path{cfgs/SHARED/field_def_nemo-oce.xml}, 99 \path{cfgs/SHARED/field_def_nemo-pisces.xml}, 100 \path{cfgs/SHARED/field_def_nemo-ice.xml} and \path{cfgs/SHARED/domain_def_nemo.xml}. \\ 95 101 96 102 The second functionality targets output performance when running in parallel (\key{mpp\_mpi}). … … 101 107 102 108 In version 3.6, the iom\_put interface depends on 103 an external code called \href{https://forge.ipsl.jussieu.fr/ioserver/browser/XIOS/branchs/xios- 1.0}{XIOS-1.0}109 an external code called \href{https://forge.ipsl.jussieu.fr/ioserver/browser/XIOS/branchs/xios-2.5}{XIOS-2.5} 104 110 (use of revision 618 or higher is required). 105 111 This new IO server can take advantage of the parallel I/O functionality of NetCDF4 to … … 168 174 \xmlline|<variable id="using_server" type="bool"></variable>| 169 175 170 The {\tt using\_server} setting determines whether or not the server will be used in \textit{attached mode}171 (as a library) [{\tt > false <}] or in \textit{detached mode}172 (as an external executable on N additional, dedicated cpus) [{\tt > true <}].176 The {\ttfamily using\_server} setting determines whether or not the server will be used in \textit{attached mode} 177 (as a library) [{\ttfamily> false <}] or in \textit{detached mode} 178 (as an external executable on N additional, dedicated cpus) [{\ttfamily > true <}]. 173 179 The \textit{attached mode} is simpler to use but much less efficient for massively parallel applications. 174 180 The type of each file can be either ''multiple\_file'' or ''one\_file''. … … 207 213 \subsubsection{Control of XIOS: the context in iodef.xml} 208 214 209 As well as the {\tt using\_server} flag, other controls on the use of XIOS are set in the XIOS context in iodef.xml.215 As well as the {\ttfamily using\_server} flag, other controls on the use of XIOS are set in the XIOS context in iodef.xml. 210 216 See the XML basics section below for more details on XML syntax and rules. 211 217 … … 257 263 See the installation guide on the \href{http://forge.ipsl.jussieu.fr/ioserver/wiki}{XIOS} wiki for help and guidance. 258 264 NEMO will need to link to the compiled XIOS library. 259 The \href{https://forge.ipsl.jussieu.fr/nemo/ wiki/Users/ModelInterfacing/InputsOutputs#Inputs-OutputsusingXIOS}260 { XIOS with NEMO} guide provides an example illustration of how this can be achieved.265 The \href{https://forge.ipsl.jussieu.fr/nemo/chrome/site/doc/NEMO/guide/html/install.html#extract-and-install-xios} 266 {Extract and install XIOS} guide provides an example illustration of how this can be achieved. 261 267 262 268 \subsubsection{Add your own outputs} … … 269 275 \begin{enumerate} 270 276 \item[1.] 271 in NEMO code, add a \forcode{CALL iom \_put( 'identifier', array )} where you want to output a 2D or 3D array.277 in NEMO code, add a \forcode{CALL iom_put( 'identifier', array )} where you want to output a 2D or 3D array. 272 278 \item[2.] 273 279 If necessary, add \forcode{USE iom ! I/O manager library} to the list of used modules in … … 442 448 \xmlline|<context src="./nemo_def.xml" />| 443 449 444 \noindent In NEMO, by default, the field and domain definition is done in 2 separate files: 445 \path{NEMOGCM/CONFIG/SHARED/field_def.xml} and \path{NEMOGCM/CONFIG/SHARED/domain_def.xml} that 450 \noindent In NEMO, by default, the field definition is done in 3 separate files ( 451 \path{cfgs/SHARED/field_def_nemo-oce.xml}, 452 \path{cfgs/SHARED/field_def_nemo-pisces.xml} and 453 \path{cfgs/SHARED/field_def_nemo-ice.xml} ) and the domain definition is done in another file ( \path{cfgs/SHARED/domain_def_nemo.xml} ) 454 that 446 455 are included in the main iodef.xml file through the following commands: 447 456 \begin{xmllines} 448 <field_definition src="./field_def.xml" /> 449 <domain_definition src="./domain_def.xml" /> 457 <context id="nemo" src="./context_nemo.xml"/> 450 458 \end{xmllines} 451 459 … … 508 516 509 517 Secondly, the group can be used to replace a list of elements. 510 Several examples of groups of fields are proposed at the end of the file \path{CONFIG/SHARED/field_def.xml}. 518 Several examples of groups of fields are proposed at the end of the XML field files ( 519 \path{cfgs/SHARED/field_def_nemo-oce.xml}, 520 \path{cfgs/SHARED/field_def_nemo-pisces.xml} and 521 \path{cfgs/SHARED/field_def_nemo-ice.xml} ) . 511 522 For example, a short list of the usual variables related to the U grid: 512 523 … … 514 525 <field_group id="groupU" > 515 526 <field field_ref="uoce" /> 516 <field field_ref="s uoce" />527 <field field_ref="ssu" /> 517 528 <field field_ref="utau" /> 518 529 </field_group> … … 538 549 the tag family domain. 539 550 It must therefore be done in the domain part of the XML file. 540 For example, in \path{ CONFIG/SHARED/domain_def.xml}, we provide the following example of a definition of551 For example, in \path{cfgs/SHARED/domain_def.xml}, we provide the following example of a definition of 541 552 a 5 by 5 box with the bottom left corner at point (10,10). 542 553 543 554 \begin{xmllines} 544 <domain _group id="grid_T">545 < domain id="myzoom" zoom_ibegin="10" zoom_jbegin="10" zoom_ni="5" zoom_nj="5" />555 <domain id="myzoomT" domain_ref="grid_T"> 556 <zoom_domain ibegin="10" jbegin="10" ni="5" nj="5" /> 546 557 \end{xmllines} 547 558 … … 551 562 \begin{xmllines} 552 563 <file id="myfile_vzoom" output_freq="1d" > 553 <field field_ref="toce" domain_ref="myzoom "/>564 <field field_ref="toce" domain_ref="myzoomT"/> 554 565 </file> 555 566 \end{xmllines} … … 576 587 \subsubsection{Define vertical zooms} 577 588 578 Vertical zooms are defined through the attributs zoom\_begin and zoom\_ endof the tag family axis.589 Vertical zooms are defined through the attributs zoom\_begin and zoom\_n of the tag family axis. 579 590 It must therefore be done in the axis part of the XML file. 580 For example, in \path{NEMOGCM/CONFIG/ORCA2_LIM/iodef_demo.xml}, we provide the following example: 581 582 \begin{xmllines} 583 <axis_group id="deptht" long_name="Vertical T levels" unit="m" positive="down" > 584 <axis id="deptht" /> 585 <axis id="deptht_myzoom" zoom_begin="1" zoom_end="10" /> 591 For example, in \path{cfgs/ORCA2_ICE_PISCES/EXPREF/iodef_demo.xml}, we provide the following example: 592 593 \begin{xmllines} 594 <axis_definition> 595 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 596 <axis id="deptht_zoom" azix_ref="deptht" > 597 <zoom_axis zoom_begin="1" zoom_n="10" /> 598 </axis> 586 599 \end{xmllines} 587 600 … … 765 778 \end{xmllines} 766 779 767 Note that, then the code is crashing, writting real4 variables forces a numerical conve ction from780 Note that, then the code is crashing, writting real4 variables forces a numerical conversion from 768 781 real8 to real4 which will create an internal error in NetCDF and will avoid the creation of the output files. 769 782 Forcing double precision outputs with prec="8" (for example in the field\_definition) will avoid this problem. … … 938 951 \hline 939 952 \end{tabularx} 940 \caption{Field tags ("\tt {field\_*}")}953 \caption{Field tags ("\ttfamily{field\_*}")} 941 954 \end{table} 942 955 … … 974 987 \hline 975 988 \end{tabularx} 976 \caption{File tags ("\tt {file\_*}")}989 \caption{File tags ("\ttfamily{file\_*}")} 977 990 \end{table} 978 991 … … 1007 1020 \hline 1008 1021 \end{tabularx} 1009 \caption{Axis tags ("\tt {axis\_*}")}1022 \caption{Axis tags ("\ttfamily{axis\_*}")} 1010 1023 \end{table} 1011 1024 … … 1040 1053 \hline 1041 1054 \end{tabularx} 1042 \caption{Domain tags ("\tt {domain\_*)}"}1055 \caption{Domain tags ("\ttfamily{domain\_*)}"} 1043 1056 \end{table} 1044 1057 … … 1073 1086 \hline 1074 1087 \end{tabularx} 1075 \caption{Grid tags ("\tt {grid\_*}")}1088 \caption{Grid tags ("\ttfamily{grid\_*}")} 1076 1089 \end{table} 1077 1090 … … 1114 1127 \hline 1115 1128 \end{tabularx} 1116 \caption{Reference attributes ("\tt {*\_ref}")}1129 \caption{Reference attributes ("\ttfamily{*\_ref}")} 1117 1130 \end{table} 1118 1131 … … 1150 1163 \hline 1151 1164 \end{tabularx} 1152 \caption{Domain attributes ("\tt {zoom\_*}")}1165 \caption{Domain attributes ("\ttfamily{zoom\_*}")} 1153 1166 \end{table} 1154 1167 … … 1318 1331 \subsection{CF metadata standard compliance} 1319 1332 1320 Output from the XIOS -1.0IO server is compliant with1333 Output from the XIOS IO server is compliant with 1321 1334 \href{http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html}{version 1.5} of 1322 1335 the CF metadata standard. … … 1332 1345 % NetCDF4 support 1333 1346 % ================================================================ 1334 \section{NetCDF4 support (\protect\key{netcdf4})} 1347 \section[NetCDF4 support (\texttt{\textbf{key\_netcdf4}})] 1348 {NetCDF4 support (\protect\key{netcdf4})} 1335 1349 \label{sec:DIA_nc4} 1336 1350 … … 1340 1354 Chunking and compression can lead to significant reductions in file sizes for a small runtime overhead. 1341 1355 For a fuller discussion on chunking and other performance issues the reader is referred to 1342 the NetCDF4 documentation found \href{http ://www.unidata.ucar.edu/software/netcdf/docs/netcdf.html#Chunking}{here}.1356 the NetCDF4 documentation found \href{https://www.unidata.ucar.edu/software/netcdf/docs/netcdf_perf_chunking.html}{here}. 1343 1357 1344 1358 The new features are only available when the code has been linked with a NetCDF4 library … … 1389 1403 \end{forlines} 1390 1404 1391 \noindent for a standard ORCA2\_LIM configuration gives chunksizes of {\small\tt 46x38x1} respectively in1392 the mono-processor case (\ie global domain of {\small\tt 182x149x31}).1405 \noindent for a standard ORCA2\_LIM configuration gives chunksizes of {\small\ttfamily 46x38x1} respectively in 1406 the mono-processor case (\ie global domain of {\small\ttfamily 182x149x31}). 1393 1407 An illustration of the potential space savings that NetCDF4 chunking and compression provides is given in 1394 1408 table \autoref{tab:NC4} which compares the results of two short runs of the ORCA2\_LIM reference configuration with … … 1450 1464 % Tracer/Dynamics Trends 1451 1465 % ------------------------------------------------------------------------------------------------------------- 1452 \section{Tracer/Dynamics trends (\protect\ngn{namtrd})} 1466 \section[Tracer/Dynamics trends (\texttt{namtrd})] 1467 {Tracer/Dynamics trends (\protect\ngn{namtrd})} 1453 1468 \label{sec:DIA_trd} 1454 1469 … … 1462 1477 (\ie at the end of each $dyn\cdots.F90$ and/or $tra\cdots.F90$ routines). 1463 1478 This capability is controlled by options offered in \ngn{namtrd} namelist. 1464 Note that the output are done with xIOS, and therefore the \key{IOM} is required.1479 Note that the output are done with XIOS, and therefore the \key{iomput} is required. 1465 1480 1466 1481 What is done depends on the \ngn{namtrd} logical set to \forcode{.true.}: … … 1488 1503 1489 1504 Note that the mixed layer tendency diagnostic can also be used on biogeochemical models via 1490 the \key{trdtrc} and \key{trdm ld\_trc} CPP keys.1505 the \key{trdtrc} and \key{trdmxl\_trc} CPP keys. 1491 1506 1492 1507 \textbf{Note that} in the current version (v3.6), many changes has been introduced but not fully tested. 1493 1508 In particular, options associated with \np{ln\_dyn\_mxl}, \np{ln\_vor\_trd}, and \np{ln\_tra\_mxl} are not working, 1494 and none of the options have been tested with variable volume (\ie \ key{vvl} defined).1509 and none of the options have been tested with variable volume (\ie \np{ln\_linssh}\forcode{ = .true.}). 1495 1510 1496 1511 % ------------------------------------------------------------------------------------------------------------- 1497 1512 % On-line Floats trajectories 1498 1513 % ------------------------------------------------------------------------------------------------------------- 1499 \section{FLO: On-Line Floats trajectories (\protect\key{floats})} 1514 \section[FLO: On-Line Floats trajectories (\texttt{\textbf{key\_floats}})] 1515 {FLO: On-Line Floats trajectories (\protect\key{floats})} 1500 1516 \label{sec:FLO} 1501 1517 %--------------------------------------------namflo------------------------------------------------------- … … 1506 1522 The on-line computation of floats advected either by the three dimensional velocity field or constraint to 1507 1523 remain at a given depth ($w = 0$ in the computation) have been introduced in the system during the CLIPPER project. 1508 Options are defined by \ngn{namflo} namelis variables.1509 The algorithm used is based either on the work of \cite{ Blanke_Raynaud_JPO97} (default option),1524 Options are defined by \ngn{namflo} namelist variables. 1525 The algorithm used is based either on the work of \cite{blanke.raynaud_JPO97} (default option), 1510 1526 or on a $4^th$ Runge-Hutta algorithm (\np{ln\_flork4}\forcode{ = .true.}). 1511 Note that the \cite{ Blanke_Raynaud_JPO97} algorithm have the advantage of providing trajectories which1527 Note that the \cite{blanke.raynaud_JPO97} algorithm have the advantage of providing trajectories which 1512 1528 are consistent with the numeric of the code, so that the trajectories never intercept the bathymetry. 1513 1529 … … 1519 1535 In case of Ariane convention, input filename is \np{init\_float\_ariane}. 1520 1536 Its format is: \\ 1521 {\scriptsize \texttt{I J K nisobfl itrash itrash}}1537 {\scriptsize \texttt{I J K nisobfl itrash}} 1522 1538 1523 1539 \noindent with: … … 1577 1593 In that case, output filename is trajec\_float. 1578 1594 1579 Another possiblity of writing format is Netcdf (\np{ln\_flo\_ascii}\forcode{ = .false.}). 1580 There are 2 possibilities: 1581 1582 - if (\key{iomput}) is used, outputs are selected in iodef.xml. 1595 Another possiblity of writing format is Netcdf (\np{ln\_flo\_ascii}\forcode{ = .false.}) with 1596 \key{iomput} and outputs selected in iodef.xml. 1583 1597 Here it is an example of specification to put in files description section: 1584 1598 … … 1597 1611 \end{xmllines} 1598 1612 1599 - if (\key{iomput}) is not used, a file called \ifile{trajec\_float} will be created by IOIPSL library.1600 1601 See also \href{http://stockage.univ-brest.fr/~grima/Ariane/}{here} the web site describing the off-line use of1602 this marvellous diagnostic tool.1603 1613 1604 1614 % ------------------------------------------------------------------------------------------------------------- 1605 1615 % Harmonic analysis of tidal constituents 1606 1616 % ------------------------------------------------------------------------------------------------------------- 1607 \section{Harmonic analysis of tidal constituents (\protect\key{diaharm}) } 1617 \section[Harmonic analysis of tidal constituents (\texttt{\textbf{key\_diaharm}})] 1618 {Harmonic analysis of tidal constituents (\protect\key{diaharm})} 1608 1619 \label{sec:DIA_diag_harm} 1609 1620 1610 %------------------------------------------nam dia_harm----------------------------------------------------1621 %------------------------------------------nam_diaharm---------------------------------------------------- 1611 1622 % 1612 1623 \nlst{nam_diaharm} … … 1616 1627 This on-line Harmonic analysis is actived with \key{diaharm}. 1617 1628 1618 Some parameters are available in namelist \ngn{nam dia\_harm}:1629 Some parameters are available in namelist \ngn{nam\_diaharm}: 1619 1630 1620 1631 - \np{nit000\_han} is the first time step used for harmonic analysis … … 1652 1663 % Sections transports 1653 1664 % ------------------------------------------------------------------------------------------------------------- 1654 \section{Transports across sections (\protect\key{diadct}) } 1665 \section[Transports across sections (\texttt{\textbf{key\_diadct}})] 1666 {Transports across sections (\protect\key{diadct})} 1655 1667 \label{sec:DIA_diag_dct} 1656 1668 … … 1664 1676 1665 1677 Each section is defined by the coordinates of its 2 extremities. 1666 The pathways between them are contructed using tools which can be found in \texttt{ NEMOGCM/TOOLS/SECTIONS\_DIADCT}1667 and are written in a binary file \texttt{section\_ijglobal.diadct \_ORCA2\_LIM} which is later read in by1678 The pathways between them are contructed using tools which can be found in \texttt{tools/SECTIONS\_DIADCT} 1679 and are written in a binary file \texttt{section\_ijglobal.diadct} which is later read in by 1668 1680 NEMO to compute on-line transports. 1669 1681 … … 1684 1696 \subsubsection{Creating a binary file containing the pathway of each section} 1685 1697 1686 In \texttt{ NEMOGCM/TOOLS/SECTIONS\_DIADCT/run},1698 In \texttt{tools/SECTIONS\_DIADCT/run}, 1687 1699 the file \textit{ {list\_sections.ascii\_global}} contains a list of all the sections that are to be computed 1688 1700 (this list of sections is based on MERSEA project metrics). … … 1733 1745 1734 1746 The script \texttt{job.ksh} computes the pathway for each section and creates a binary file 1735 \texttt{section\_ijglobal.diadct \_ORCA2\_LIM} which is read by NEMO. \\1747 \texttt{section\_ijglobal.diadct} which is read by NEMO. \\ 1736 1748 1737 1749 It is possible to use this tools for new configuations: \texttt{job.ksh} has to be updated with … … 1809 1821 The steric effect is therefore not explicitely represented. 1810 1822 This approximation does not represent a serious error with respect to the flow field calculated by the model 1811 \citep{ Greatbatch_JGR94}, but extra attention is required when investigating sea level,1823 \citep{greatbatch_JGR94}, but extra attention is required when investigating sea level, 1812 1824 as steric changes are an important contribution to local changes in sea level on seasonal and climatic time scales. 1813 1825 This is especially true for investigation into sea level rise due to global warming. 1814 1826 1815 1827 Fortunately, the steric contribution to the sea level consists of a spatially uniform component that 1816 can be diagnosed by considering the mass budget of the world ocean \citep{ Greatbatch_JGR94}.1828 can be diagnosed by considering the mass budget of the world ocean \citep{greatbatch_JGR94}. 1817 1829 In order to better understand how global mean sea level evolves and thus how the steric sea level can be diagnosed, 1818 1830 we compare, in the following, the non-Boussinesq and Boussinesq cases. … … 1888 1900 the ocean surface, not by changes in mean mass of the ocean: the steric effect is missing in a Boussinesq fluid. 1889 1901 1890 Nevertheless, following \citep{ Greatbatch_JGR94}, the steric effect on the volume can be diagnosed by1902 Nevertheless, following \citep{greatbatch_JGR94}, the steric effect on the volume can be diagnosed by 1891 1903 considering the mass budget of the ocean. 1892 1904 The apparent changes in $\mathcal{M}$, mass of the ocean, which are not induced by surface mass flux 1893 1905 must be compensated by a spatially uniform change in the mean sea level due to expansion/contraction of the ocean 1894 \citep{ Greatbatch_JGR94}.1906 \citep{greatbatch_JGR94}. 1895 1907 In others words, the Boussinesq mass, $\mathcal{M}_o$, can be related to $\mathcal{M}$, 1896 1908 the total mass of the ocean seen by the Boussinesq model, via the steric contribution to the sea level, … … 1924 1936 This value is a sensible choice for the reference density used in a Boussinesq ocean climate model since, 1925 1937 with the exception of only a small percentage of the ocean, density in the World Ocean varies by no more than 1926 2$\%$ from this value (\cite{ Gill1982}, page 47).1938 2$\%$ from this value (\cite{gill_bk82}, page 47). 1927 1939 1928 1940 Second, we have assumed here that the total ocean surface, $\mathcal{A}$, … … 1931 1943 1932 1944 Third, the discretisation of \autoref{eq:steric_Bq} depends on the type of free surface which is considered. 1933 In the non linear free surface case, \ie \ key{vvl} defined, it is given by1945 In the non linear free surface case, \ie \np{ln\_linssh}\forcode{ = .true.}, it is given by 1934 1946 1935 1947 \[ … … 1954 1966 so that there are no associated ocean currents. 1955 1967 Hence, the dynamically relevant sea level is the effective sea level, 1956 \ie the sea level as if sea ice (and snow) were converted to liquid seawater \citep{ Campin_al_OM08}.1968 \ie the sea level as if sea ice (and snow) were converted to liquid seawater \citep{campin.marshall.ea_OM08}. 1957 1969 However, in the current version of \NEMO the sea-ice is levitating above the ocean without mass exchanges between 1958 1970 ice and ocean. … … 1970 1982 where $S_o$ and $p_o$ are the initial salinity and pressure, respectively. 1971 1983 1972 Both steric and thermosteric sea level are computed in \mdl{diaar5} which needs the \key{diaar5} defined to 1973 be called. 1984 Both steric and thermosteric sea level are computed in \mdl{diaar5}. 1974 1985 1975 1986 % ------------------------------------------------------------------------------------------------------------- 1976 1987 % Other Diagnostics 1977 1988 % ------------------------------------------------------------------------------------------------------------- 1978 \section{Other diagnostics (\protect\key{diahth}, \protect\key{diaar5})} 1989 \section[Other diagnostics] 1990 {Other diagnostics} 1979 1991 \label{sec:DIA_diag_others} 1980 1992 … … 1982 1994 The available ready-to-add diagnostics modules can be found in directory DIA. 1983 1995 1984 \subsection{Depth of various quantities (\protect\mdl{diahth})} 1996 \subsection[Depth of various quantities (\textit{diahth.F90})] 1997 {Depth of various quantities (\protect\mdl{diahth})} 1985 1998 1986 1999 Among the available diagnostics the following ones are obtained when defining the \key{diahth} CPP key: 1987 2000 1988 - the mixed layer depth (based on a density criterion \citep{de _Boyer_Montegut_al_JGR04}) (\mdl{diahth})2001 - the mixed layer depth (based on a density criterion \citep{de-boyer-montegut.madec.ea_JGR04}) (\mdl{diahth}) 1989 2002 1990 2003 - the turbocline depth (based on a turbulent mixing coefficient criterion) (\mdl{diahth}) … … 1994 2007 - the depth of the thermocline (maximum of the vertical temperature gradient) (\mdl{diahth}) 1995 2008 1996 % -----------------------------------------------------------1997 % Poleward heat and salt transports1998 % -----------------------------------------------------------1999 2000 \subsection{Poleward heat and salt transports (\protect\mdl{diaptr})}2001 2002 %------------------------------------------namptr-----------------------------------------2003 2004 \nlst{namptr}2005 %-----------------------------------------------------------------------------------------2006 2007 The poleward heat and salt transports, their advective and diffusive component,2008 and the meriodional stream function can be computed on-line in \mdl{diaptr} \np{ln\_diaptr} to true2009 (see the \textit{\ngn{namptr} } namelist below).2010 When \np{ln\_subbas}\forcode{ = .true.}, transports and stream function are computed for the Atlantic, Indian,2011 Pacific and Indo-Pacific Oceans (defined north of 30\deg{S}) as well as for the World Ocean.2012 The sub-basin decomposition requires an input file (\ifile{subbasins}) which contains three 2D mask arrays,2013 the Indo-Pacific mask been deduced from the sum of the Indian and Pacific mask (\autoref{fig:mask_subasins}).2014 2009 2015 2010 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2016 2011 \begin{figure}[!t] 2017 2012 \begin{center} 2018 \includegraphics[width= 1.0\textwidth]{Fig_mask_subasins}2013 \includegraphics[width=\textwidth]{Fig_mask_subasins} 2019 2014 \caption{ 2020 2015 \protect\label{fig:mask_subasins} … … 2032 2027 % CMIP specific diagnostics 2033 2028 % ----------------------------------------------------------- 2034 \subsection{CMIP specific diagnostics (\protect\mdl{diaar5})} 2035 2036 A series of diagnostics has been added in the \mdl{diaar5}. 2037 They corresponds to outputs that are required for AR5 simulations (CMIP5) 2029 \subsection[CMIP specific diagnostics (\textit{diaar5.F90}, \textit{diaptr.F90})] 2030 {CMIP specific diagnostics (\protect\mdl{diaar5})} 2031 2032 A series of diagnostics has been added in the \mdl{diaar5} and \mdl{diaptr}. 2033 In \mdl{diaar5} they correspond to outputs that are required for AR5 simulations (CMIP5) 2038 2034 (see also \autoref{sec:DIA_steric} for one of them). 2039 Activating those outputs requires to define the \key{diaar5} CPP key. 2035 The module \mdl{diaar5} is active when one of the following outputs is required : global total volume (voltot), global mean ssh (sshtot), global total mass (masstot), global mean temperature (temptot), global mean ssh steric (sshsteric), global mean ssh thermosteric (sshthster), global mean salinity (saltot), sea water pressure at sea floor (botpres), dynamic sea surface height (sshdyn). 2036 2037 In \mdl{diaptr} when \np{ln\_diaptr}\forcode{ = .true.} 2038 (see the \textit{\ngn{namptr} } namelist below) can be computed on-line the poleward heat and salt transports, their advective and diffusive component, and the meriodional stream function . 2039 When \np{ln\_subbas}\forcode{ = .true.}, transports and stream function are computed for the Atlantic, Indian, 2040 Pacific and Indo-Pacific Oceans (defined north of 30\deg{S}) as well as for the World Ocean. 2041 The sub-basin decomposition requires an input file (\ifile{subbasins}) which contains three 2D mask arrays, 2042 the Indo-Pacific mask been deduced from the sum of the Indian and Pacific mask (\autoref{fig:mask_subasins}). 2043 2044 %------------------------------------------namptr----------------------------------------- 2045 2046 \nlst{namptr} 2047 %----------------------------------------------------------------------------------------- 2040 2048 2041 2049 % ----------------------------------------------------------- -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_DIU.tex
r10442 r11422 33 33 (\ie from the temperature of the top few model levels) or from some other source. 34 34 It must be noted that both the cool skin and warm layer models produce estimates of the change in temperature 35 ($\Delta T_{\ rm{cs}}$ and $\Delta T_{\rm{wl}}$) and35 ($\Delta T_{\mathrm{cs}}$ and $\Delta T_{\mathrm{wl}}$) and 36 36 both must be added to a foundation SST to obtain the true skin temperature. 37 37 … … 60 60 %=============================================================== 61 61 62 The warm layer is calculated using the model of \citet{ Takaya_al_JGR10} (TAKAYA10 model hereafter).62 The warm layer is calculated using the model of \citet{takaya.bidlot.ea_JGR10} (TAKAYA10 model hereafter). 63 63 This is a simple flux based model that is defined by the equations 64 64 \begin{align} 65 \frac{\partial{\Delta T_{\ rm{wl}}}}{\partial{t}}&=&\frac{Q(\nu+1)}{D_T\rho_w c_p65 \frac{\partial{\Delta T_{\mathrm{wl}}}}{\partial{t}}&=&\frac{Q(\nu+1)}{D_T\rho_w c_p 66 66 \nu}-\frac{(\nu+1)ku^*_{w}f(L_a)\Delta T}{D_T\Phi\!\left(\frac{D_T}{L}\right)} \mbox{,} 67 67 \label{eq:ecmwf1} \\ 68 68 L&=&\frac{\rho_w c_p u^{*^3}_{w}}{\kappa g \alpha_w Q }\mbox{,}\label{eq:ecmwf2} 69 69 \end{align} 70 where $\Delta T_{\ rm{wl}}$ is the temperature difference between the top of the warm layer and the depth $D_T=3$\,m at which there is assumed to be no diurnal signal.70 where $\Delta T_{\mathrm{wl}}$ is the temperature difference between the top of the warm layer and the depth $D_T=3$\,m at which there is assumed to be no diurnal signal. 71 71 In equation (\autoref{eq:ecmwf1}) $\alpha_w=2\times10^{-4}$ is the thermal expansion coefficient of water, 72 72 $\kappa=0.4$ is von K\'{a}rm\'{a}n's constant, $c_p$ is the heat capacity at constant pressure of sea water, 73 73 $\rho_w$ is the water density, and $L$ is the Monin-Obukhov length. 74 74 The tunable variable $\nu$ is a shape parameter that defines the expected subskin temperature profile via 75 $T(z) = T(0) - \left( \frac{z}{D_T} \right)^\nu \Delta T_{\ rm{wl}}$,75 $T(z) = T(0) - \left( \frac{z}{D_T} \right)^\nu \Delta T_{\mathrm{wl}}$, 76 76 where $T$ is the absolute temperature and $z\le D_T$ is the depth below the top of the warm layer. 77 77 The influence of wind on TAKAYA10 comes through the magnitude of the friction velocity of the water $u^*_{w}$, … … 82 82 the diurnal layer, \ie 83 83 \[ 84 Q = Q_{\ rm{sol}} + Q_{\rm{lw}} + Q_{\rm{h}}\mbox{,}84 Q = Q_{\mathrm{sol}} + Q_{\mathrm{lw}} + Q_{\mathrm{h}}\mbox{,} 85 85 % \label{eq:e_flux_eqn} 86 86 \] 87 where $Q_{\ rm{h}}$ is the sensible and latent heat flux, $Q_{\rm{lw}}$ is the long wave flux,88 and $Q_{\ rm{sol}}$ is the solar flux absorbed within the diurnal warm layer.89 For $Q_{\ rm{sol}}$ the 9 term representation of \citet{Gentemann_al_JGR09} is used.87 where $Q_{\mathrm{h}}$ is the sensible and latent heat flux, $Q_{\mathrm{lw}}$ is the long wave flux, 88 and $Q_{\mathrm{sol}}$ is the solar flux absorbed within the diurnal warm layer. 89 For $Q_{\mathrm{sol}}$ the 9 term representation of \citet{gentemann.minnett.ea_JGR09} is used. 90 90 In equation \autoref{eq:ecmwf1} the function $f(L_a)=\max(1,L_a^{\frac{2}{3}})$, 91 91 where $L_a=0.3$\footnote{ … … 118 118 %=============================================================== 119 119 120 The cool skin is modelled using the framework of \citet{ Saunders_JAS82} who used a formulation of the near surface temperature difference based upon the heat flux and the friction velocity $u^*_{w}$.121 As the cool skin is so thin (~1\,mm) we ignore the solar flux component to the heat flux and the Saunders equation for the cool skin temperature difference $\Delta T_{\ rm{cs}}$ becomes120 The cool skin is modelled using the framework of \citet{saunders_JAS67} who used a formulation of the near surface temperature difference based upon the heat flux and the friction velocity $u^*_{w}$. 121 As the cool skin is so thin (~1\,mm) we ignore the solar flux component to the heat flux and the Saunders equation for the cool skin temperature difference $\Delta T_{\mathrm{cs}}$ becomes 122 122 \[ 123 123 % \label{eq:sunders_eqn} 124 \Delta T_{\ rm{cs}}=\frac{Q_{\rm{ns}}\delta}{k_t} \mbox{,}124 \Delta T_{\mathrm{cs}}=\frac{Q_{\mathrm{ns}}\delta}{k_t} \mbox{,} 125 125 \] 126 where $Q_{\ rm{ns}}$ is the, usually negative, non-solar heat flux into the ocean and126 where $Q_{\mathrm{ns}}$ is the, usually negative, non-solar heat flux into the ocean and 127 127 $k_t$ is the thermal conductivity of sea water. 128 128 $\delta$ is the thickness of the skin layer and is given by … … 132 132 \end{equation} 133 133 where $\mu$ is the kinematic viscosity of sea water and $\lambda$ is a constant of proportionality which 134 \citet{ Saunders_JAS82} suggested varied between 5 and 10.134 \citet{saunders_JAS67} suggested varied between 5 and 10. 135 135 136 The value of $\lambda$ used in equation (\autoref{eq:sunders_thick_eqn}) is that of \citet{ Artale_al_JGR02},137 which is shown in \citet{ Tu_Tsuang_GRL05} to outperform a number of other parametrisations at136 The value of $\lambda$ used in equation (\autoref{eq:sunders_thick_eqn}) is that of \citet{artale.iudicone.ea_JGR02}, 137 which is shown in \citet{tu.tsuang_GRL05} to outperform a number of other parametrisations at 138 138 both low and high wind speeds. 139 139 Specifically, -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_DOM.tex
r10502 r11422 18 18 % - domclo: closed sea and lakes.... management of closea sea area : specific to global configuration, both forced and coupled 19 19 20 \vfill 21 \begin{figure}[b] 22 \subsubsection*{Changes record} 23 \begin{tabular}{m{0.08\linewidth}||m{0.32\linewidth}|m{0.6\linewidth}} 24 Release & Author(s) & Modifications \\ 25 \hline 26 {\em 4.0} & {\em Simon M{\"u}ller \& Andrew Coward} & {\em Compatibility changes for v4.0. Major simplication has moved many of the options to external domain configuration tools. For now this information has been retained in \autoref{apdx:DOMAINcfg} } \\ 27 {\em 3.x} & {\em Sebastien Masson, Gurvan Madec \& Rashid Benshila } & {\em } \\ 28 \end{tabular} 29 \end{figure} 30 20 31 \newpage 21 32 22 33 Having defined the continuous equations in \autoref{chap:PE} and chosen a time discretization \autoref{chap:STP}, 23 we need to choose a discretization on a grid, and numerical algorithms.34 we need to choose a grid for spatial discretization and related numerical algorithms. 24 35 In the present chapter, we provide a general description of the staggered grid used in \NEMO, 25 and other information relevant to the main directory routines as well as the DOM (DOMain) directory.36 and other relevant information about the DOM (DOMain) source-code modules . 26 37 27 38 % ================================================================ … … 40 51 \begin{figure}[!tb] 41 52 \begin{center} 42 \includegraphics[ ]{Fig_cell}53 \includegraphics[width=\textwidth]{Fig_cell} 43 54 \caption{ 44 55 \protect\label{fig:cell} … … 55 66 The numerical techniques used to solve the Primitive Equations in this model are based on the traditional, 56 67 centred second-order finite difference approximation. 57 Special attention has been given to the homogeneity of the solution in the three spa cedirections.68 Special attention has been given to the homogeneity of the solution in the three spatial directions. 58 69 The arrangement of variables is the same in all directions. 59 70 It consists of cells centred on scalar points ($t$, $S$, $p$, $\rho$) with vector points $(u, v, w)$ defined in 60 71 the centre of each face of the cells (\autoref{fig:cell}). 61 72 This is the generalisation to three dimensions of the well-known ``C'' grid in Arakawa's classification 62 \citep{ Mesinger_Arakawa_Bk76}.73 \citep{mesinger.arakawa_bk76}. 63 74 The relative and planetary vorticity, $\zeta$ and $f$, are defined in the centre of each vertical edge and 64 75 the barotropic stream function $\psi$ is defined at horizontal points overlying the $\zeta$ and $f$-points. … … 71 82 Each scale factor is defined as the local analytical value provided by \autoref{eq:scale_factors}. 72 83 As a result, the mesh on which partial derivatives $\pd[]{\lambda}$, $\pd[]{\varphi}$ and 73 $\pd[]{z}$ are evaluated i na uniform mesh with a grid size of unity.84 $\pd[]{z}$ are evaluated is a uniform mesh with a grid size of unity. 74 85 Discrete partial derivatives are formulated by the traditional, centred second order finite difference approximation 75 86 while the scale factors are chosen equal to their local analytical value. … … 79 90 the continuous properties (see \autoref{apdx:C}). 80 91 A similar, related remark can be made about the domain size: 81 when needed, an area, volume, or the total ocean depth must be evaluated as the sum of the relevant scale factors92 when needed, an area, volume, or the total ocean depth must be evaluated as the product or sum of the relevant scale factors 82 93 (see \autoref{eq:DOM_bar} in the next section). 83 94 … … 87 98 \begin{tabular}{|p{46pt}|p{56pt}|p{56pt}|p{56pt}|} 88 99 \hline 89 T& $i $ & $j $ & $k $ \\100 t & $i $ & $j $ & $k $ \\ 90 101 \hline 91 102 u & $i + 1/2$ & $j $ & $k $ \\ … … 107 118 \protect\label{tab:cell} 108 119 Location of grid-points as a function of integer or integer and a half value of the column, line or level. 109 This indexing is only used for the writing of the semi -discrete equation .110 In the code, the indexing uses integer values only and has a reverse direction in the vertical120 This indexing is only used for the writing of the semi -discrete equations. 121 In the code, the indexing uses integer values only and is positive downwards in the vertical with $k=1$ at the surface. 111 122 (see \autoref{subsec:DOM_Num_Index}) 112 123 } 113 124 \end{center} 114 125 \end{table} 126 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 127 128 Note that the definition of the scale factors 129 (\ie as the analytical first derivative of the transformation that 130 results in $(\lambda,\varphi,z)$ as a function of $(i,j,k)$) 131 is specific to the \NEMO model \citep{marti.madec.ea_JGR92}. 132 As an example, a scale factor in the $i$ direction is defined locally at a $t$-point, 133 whereas many other models on a C grid choose to define such a scale factor as 134 the distance between the $u$-points on each side of the $t$-point. 135 Relying on an analytical transformation has two advantages: 136 firstly, there is no ambiguity in the scale factors appearing in the discrete equations, 137 since they are first introduced in the continuous equations; 138 secondly, analytical transformations encourage good practice by the definition of smoothly varying grids 139 (rather than allowing the user to set arbitrary jumps in thickness between adjacent layers) \citep{treguier.dukowicz.ea_JGR96}. 140 An example of the effect of such a choice is shown in \autoref{fig:zgr_e3}. 141 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 142 \begin{figure}[!t] 143 \begin{center} 144 \includegraphics[width=\textwidth]{Fig_zgr_e3} 145 \caption{ 146 \protect\label{fig:zgr_e3} 147 Comparison of (a) traditional definitions of grid-point position and grid-size in the vertical, 148 and (b) analytically derived grid-point position and scale factors. 149 For both grids here, the same $w$-point depth has been chosen but 150 in (a) the $t$-points are set half way between $w$-points while 151 in (b) they are defined from an analytical function: 152 $z(k) = 5 \, (k - 1/2)^3 - 45 \, (k - 1/2)^2 + 140 \, (k - 1/2) - 150$. 153 Note the resulting difference between the value of the grid-size $\Delta_k$ and 154 those of the scale factor $e_k$. 155 } 156 \end{center} 157 \end{figure} 115 158 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 116 159 … … 132 175 Following \autoref{eq:PE_grad} and \autoref{eq:PE_lap}, the gradient of a variable $q$ defined at 133 176 a $t$-point has its three components defined at $u$-, $v$- and $w$-points while 134 its Laplacian is defined at $t$-point.177 its Laplacian is defined at the $t$-point. 135 178 These operators have the following discrete forms in the curvilinear $s$-coordinates system: 136 179 \[ … … 171 214 \end{equation} 172 215 173 The vertical average over the whole water column denoted by an overbar becomes for a quantity $q$ which174 is a masked field (i.e. equal to zero inside solid area):216 The vertical average over the whole water column is denoted by an overbar and is for 217 a masked field $q$ (\ie a quantity that is equal to zero inside solid areas): 175 218 \begin{equation} 176 219 \label{eq:DOM_bar} … … 178 221 \end{equation} 179 222 where $H_q$ is the ocean depth, which is the masked sum of the vertical scale factors at $q$ points, 180 $k^b$ and $k^o$ are the bottom and surface $k$-indices, and the symbol $ k^o$ refers to a summation over223 $k^b$ and $k^o$ are the bottom and surface $k$-indices, and the symbol $\sum \limits_k$ refers to a summation over 181 224 all grid points of the same type in the direction indicated by the subscript (here $k$). 182 225 … … 193 236 vector points $(u,v,w)$. 194 237 195 Let $a$ and $b$ be two fields defined on the mesh, with value zero inside continental area.196 Using integration by parts it can be shown that the differencing operators ($\delta_i$, $\delta_j$ and $\delta_k$)238 Let $a$ and $b$ be two fields defined on the mesh, with a value of zero inside continental areas. 239 It can be shown that the differencing operators ($\delta_i$, $\delta_j$ and $\delta_k$) 197 240 are skew-symmetric linear operators, and further that the averaging operators $\overline{\cdots}^{\, i}$, 198 241 $\overline{\cdots}^{\, j}$ and $\overline{\cdots}^{\, k}$) are symmetric linear operators, \ie … … 218 261 \begin{figure}[!tb] 219 262 \begin{center} 220 \includegraphics[ ]{Fig_index_hor}263 \includegraphics[width=\textwidth]{Fig_index_hor} 221 264 \caption{ 222 265 \protect\label{fig:index_hor} … … 228 271 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 229 272 230 The array representation used in the \fortran code requires an integer indexing while231 the analytical definition of the mesh (see \autoref{subsec:DOM_cell}) is associated with the use of232 integer values for $t$-points and both integer and integer and a half values for all the other points.233 Therefore a specific integer indexing must bedefined for points other than $t$-points273 The array representation used in the \fortran code requires an integer indexing. 274 However, the analytical definition of the mesh (see \autoref{subsec:DOM_cell}) is associated with the use of 275 integer values for $t$-points only while all the other points involve integer and a half values. 276 Therefore, a specific integer indexing has been defined for points other than $t$-points 234 277 (\ie velocity and vorticity grid-points). 235 Furthermore, the direction of the vertical indexing has been changed so that the surface level isat $k = 1$.278 Furthermore, the direction of the vertical indexing has been reversed and the surface level set at $k = 1$. 236 279 237 280 % ----------------------------------- … … 253 296 \label{subsec:DOM_Num_Index_vertical} 254 297 255 In the vertical, the chosen indexing requires special attention since the $k$-axis is re-orientated downwardin256 the \fortran code compared to the indexingused in the semi -discrete equations and298 In the vertical, the chosen indexing requires special attention since the direction of the $k$-axis in 299 the \fortran code is the reverse of that used in the semi -discrete equations and 257 300 given in \autoref{subsec:DOM_cell}. 258 The sea surface corresponds to the $w$-level $k = 1$ which is the same index as$t$-level just below301 The sea surface corresponds to the $w$-level $k = 1$, which is the same index as the $t$-level just below 259 302 (\autoref{fig:index_vert}). 260 The last $w$-level ($k = jpk$) either corresponds to the ocean floor or is inside the bathymetry while 261 the last $t$-level is always inside the bathymetry (\autoref{fig:index_vert}). 262 Note that for an increasing $k$ index, a $w$-point and the $t$-point just below have the same $k$ index, 263 in opposition to what is done in the horizontal plane where 264 it is the $t$-point and the nearest velocity points in the direction of the horizontal axis that 265 have the same $i$ or $j$ index 303 The last $w$-level ($k = jpk$) either corresponds to or is below the ocean floor while 304 the last $t$-level is always outside the ocean domain (\autoref{fig:index_vert}). 305 Note that a $w$-point and the directly underlaying $t$-point have a common $k$ index (\ie $t$-points and their 306 nearest $w$-point neighbour in negative index direction), in contrast to the indexing on the horizontal plane where 307 the $t$-point has the same index as the nearest velocity points in the positive direction of the respective horizontal axis index 266 308 (compare the dashed area in \autoref{fig:index_hor} and \autoref{fig:index_vert}). 267 309 Since the scale factors are chosen to be strictly positive, 268 a \textit{minus sign} appears in the \fortran code \textit{beforeall the vertical derivatives} of269 the discrete equations given in this documentation.310 a \textit{minus sign} is included in the \fortran implementations of \textit{all the vertical derivatives} of 311 the discrete equations given in this manual in order to accommodate the opposing vertical index directions in implementation and documentation. 270 312 271 313 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 272 314 \begin{figure}[!pt] 273 315 \begin{center} 274 \includegraphics[ ]{Fig_index_vert}316 \includegraphics[width=\textwidth]{Fig_index_vert} 275 317 \caption{ 276 318 \protect\label{fig:index_vert} 277 319 Vertical integer indexing used in the \fortran code. 278 Note that the $k$-axis is orient ated downward.279 The dashed area indicates the cell in which variables contained in arrays have the same$k$-index.320 Note that the $k$-axis is oriented downward. 321 The dashed area indicates the cell in which variables contained in arrays have a common $k$-index. 280 322 } 281 323 \end{center} … … 283 325 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 284 326 327 % ------------------------------------------------------------------------------------------------------------- 328 % Domain configuration 329 % ------------------------------------------------------------------------------------------------------------- 330 \section{Spatial domain configuration} 331 \label{subsec:DOM_config} 332 333 \nlst{namcfg} 334 335 Two typical methods are available to specify the spatial domain 336 configuration; they can be selected using parameter \np{ln\_read\_cfg} 337 parameter in namelist \ngn{namcfg}. 338 339 If \np{ln\_read\_cfg} is set to \forcode{.true.}, the domain-specific parameters 340 and fields are read from a netCDF input file, whose name (without its .nc 341 suffix) can be specified as the value of the \np{cn\_domcfg} parameter in 342 namelist \ngn{namcfg}. 343 344 If \np{ln\_read\_cfg} is set to \forcode{.false.}, the domain-specific 345 parameters and fields can be provided (\eg analytically computed) by subroutines 346 \mdl{usrdef\_hgr} and \mdl{usrdef\_zgr}. These subroutines can be supplied in 347 the \path{MY_SRC} directory of the configuration, and default versions that 348 configure the spatial domain for the GYRE reference configuration are present in 349 the \path{src/OCE/USR} directory. 350 351 In version 4.0 there are no longer any options for reading complex bathmetries and 352 performing a vertical discretization at run-time. Whilst it is occasionally convenient 353 to have a common bathymetry file and, for example, to run similar models with and 354 without partial bottom boxes and/or sigma-coordinates, supporting such choices leads to 355 overly complex code. Worse still is the difficulty of ensuring the model configurations 356 intended to be identical are indeed so when the model domain itself can be altered by runtime 357 selections. The code previously used to perform vertical discretization has be incorporated 358 into an external tool (\path{tools/DOMAINcfg}) which is briefly described in \autoref{apdx:DOMAINcfg}. 359 360 The next subsections summarise the parameter and fields related to the 361 configuration of the whole model domain. These represent the minimum information 362 that must be provided either via the \np{cn\_domcfg} file or set by code 363 inserted into user-supplied versions of the \mdl{usrdef\_*} subroutines. The 364 requirements are presented in three sections: the domain size 365 (\autoref{subsec:DOM_size}), the horizontal mesh 366 (\autoref{subsec:DOM_hgr}), and the vertical grid 367 (\autoref{subsec:DOM_zgr}). 368 285 369 % ----------------------------------- 286 370 % Domain Size 287 371 % ----------------------------------- 288 \subs ubsection{Domain size}372 \subsection{Domain size} 289 373 \label{subsec:DOM_size} 290 374 291 The total size of the computational domain is set by the parameters \np{jpiglo}, 292 \np{jpjglo} and \np{jpkglo} in the $i$, $j$ and $k$ directions respectively. 293 Parameters $jpi$ and $jpj$ refer to the size of each processor subdomain when 294 the code is run in parallel using domain decomposition (\key{mpp\_mpi} defined, 295 see \autoref{sec:LBC_mpp}). 296 297 % ================================================================ 298 % Domain: List of fields needed 299 % ================================================================ 300 \section{Needed fields} 301 \label{sec:DOM_fields} 302 The ocean mesh (\ie the position of all the scalar and vector points) is defined by the transformation that 303 gives $(\lambda,\varphi,z)$ as a function of $(i,j,k)$. 304 The grid-points are located at integer or integer and a half values of as indicated in \autoref{tab:cell}. 305 The associated scale factors are defined using the analytical first derivative of the transformation 306 \autoref{eq:scale_factors}. 307 Necessary fields for configuration definition are: 308 309 \begin{itemize} 310 \item 311 Geographic position: 312 longitude with \texttt{glamt}, \texttt{glamu}, \texttt{glamv}, \texttt{glamf} and 313 latitude with \texttt{gphit}, \texttt{gphiu}, \texttt{gphiv}, \texttt{gphif} 314 (all respectively at T, U, V and F point) 315 \item 316 Coriolis parameter (if domain not on the sphere): \texttt{ff\_f} and \texttt{ff\_t} 317 (at T and F point) 318 \item 319 Scale factors: 320 \texttt{e1t}, \texttt{e1u}, \texttt{e1v} and \texttt{e1f} (on i direction), 321 \texttt{e2t}, \texttt{e2u}, \texttt{e2v} and \texttt{e2f} (on j direction) and 322 \texttt{ie1e2u\_v}, \texttt{e1e2u}, \texttt{e1e2v}. \\ 323 \texttt{e1e2u}, \texttt{e1e2v} are u and v surfaces (if gridsize reduction in some straits), 324 \texttt{ie1e2u\_v} is to flag set u and v surfaces are neither read nor computed. 325 \end{itemize} 326 327 These fields can be read in an domain input file which name is setted in \np{cn\_domcfg} parameter specified in 328 \ngn{namcfg}. 329 330 \nlst{namcfg} 331 332 Or they can be defined in an analytical way in \path{MY_SRC} directory of the configuration. 333 For Reference Configurations of NEMO input domain files are supplied by NEMO System Team. 334 For analytical definition of input fields two routines are supplied: \mdl{usrdef\_hgr} and \mdl{usrdef\_zgr}. 335 They are an example of GYRE configuration parameters, and they are available in \path{src/OCE/USR} directory, 336 they provide the horizontal and vertical mesh. 337 % ------------------------------------------------------------------------------------------------------------- 338 % Needed fields 339 % ------------------------------------------------------------------------------------------------------------- 340 %\subsection{List of needed fields to build DOMAIN} 341 %\label{subsec:DOM_fields_list} 342 375 The total size of the computational domain is set by the parameters 376 \np{jpiglo}, \np{jpjglo} and \np{jpkglo} for the $i$, $j$ and $k$ 377 directions, respectively. Note, that the variables \forcode{jpi} and \forcode{jpj} 378 refer to the size of each processor subdomain when the code is run in 379 parallel using domain decomposition (\key{mpp\_mpi} defined, see 380 \autoref{sec:LBC_mpp}). 381 382 The name of the configuration is set through parameter \np{cn\_cfg}, 383 and the nominal resolution through parameter \np{nn\_cfg} (unless in 384 the input file both of variables \forcode{ORCA} and \forcode{ORCA_index} 385 are present, in which case \np{cn\_cfg} and \np{nn\_cfg} are set from these 386 values accordingly). 387 388 The global lateral boundary condition type is selected from 8 options 389 using parameter \np{jperio}. See \autoref{sec:LBC_jperio} for 390 details on the available options and the corresponding values for 391 \np{jperio}. 343 392 344 393 % ================================================================ 345 394 % Domain: Horizontal Grid (mesh) 346 395 % ================================================================ 347 \section{Horizontal grid mesh (\protect\mdl{domhgr})} 348 \label{sec:DOM_hgr} 349 350 % ------------------------------------------------------------------------------------------------------------- 351 % Coordinates and scale factors 352 % ------------------------------------------------------------------------------------------------------------- 353 \subsection{Coordinates and scale factors} 354 \label{subsec:DOM_hgr_coord_e} 355 356 The ocean mesh (\ie the position of all the scalar and vector points) is defined by 357 the transformation that gives $(\lambda,\varphi,z)$ as a function of $(i,j,k)$. 358 The grid-points are located at integer or integer and a half values of as indicated in \autoref{tab:cell}. 359 The associated scale factors are defined using the analytical first derivative of the transformation 360 \autoref{eq:scale_factors}. 361 These definitions are done in two modules, \mdl{domhgr} and \mdl{domzgr}, 362 which provide the horizontal and vertical meshes, respectively. 363 This section deals with the horizontal mesh parameters. 364 365 In a horizontal plane, the location of all the model grid points is defined from 366 the analytical expressions of the longitude $\lambda$ and latitude $\varphi$ as a function of $(i,j)$. 367 The horizontal scale factors are calculated using \autoref{eq:scale_factors}. 368 For example, when the longitude and latitude are function of a single value 369 ($i$ and $j$, respectively) (geographical configuration of the mesh), 370 the horizontal mesh definition reduces to define the wanted $\lambda(i)$, $\varphi(j)$, 371 and their derivatives $\lambda'(i) \ \varphi'(j)$ in the \mdl{domhgr} module. 372 The model computes the grid-point positions and scale factors in the horizontal plane as follows: 373 \begin{align*} 374 \lambda_t &\equiv \text{glamt} = \lambda (i ) 375 &\varphi_t &\equiv \text{gphit} = \varphi (j ) \\ 376 \lambda_u &\equiv \text{glamu} = \lambda (i + 1/2) 377 &\varphi_u &\equiv \text{gphiu} = \varphi (j ) \\ 378 \lambda_v &\equiv \text{glamv} = \lambda (i ) 379 &\varphi_v &\equiv \text{gphiv} = \varphi (j + 1/2) \\ 380 \lambda_f &\equiv \text{glamf} = \lambda (i + 1/2) 381 &\varphi_f &\equiv \text{gphif} = \varphi (j + 1/2) \\ 382 e_{1t} &\equiv \text{e1t} = r_a |\lambda'(i ) \; \cos\varphi(j ) | 383 &e_{2t} &\equiv \text{e2t} = r_a |\varphi'(j ) | \\ 384 e_{1u} &\equiv \text{e1t} = r_a |\lambda'(i + 1/2) \; \cos\varphi(j ) | 385 &e_{2u} &\equiv \text{e2t} = r_a |\varphi'(j ) | \\ 386 e_{1v} &\equiv \text{e1t} = r_a |\lambda'(i ) \; \cos\varphi(j + 1/2) | 387 &e_{2v} &\equiv \text{e2t} = r_a |\varphi'(j + 1/2) | \\ 388 e_{1f} &\equiv \text{e1t} = r_a |\lambda'(i + 1/2) \; \cos\varphi(j + 1/2) | 389 &e_{2f} &\equiv \text{e2t} = r_a |\varphi'(j + 1/2) | 390 \end{align*} 391 where the last letter of each computational name indicates the grid point considered and 392 $r_a$ is the earth radius (defined in \mdl{phycst} along with all universal constants). 393 Note that the horizontal position of and scale factors at $w$-points are exactly equal to those of $t$-points, 394 thus no specific arrays are defined at $w$-points. 395 396 Note that the definition of the scale factors 397 (\ie as the analytical first derivative of the transformation that 398 gives $(\lambda,\varphi,z)$ as a function of $(i,j,k)$) 399 is specific to the \NEMO model \citep{Marti_al_JGR92}. 400 As an example, $e_{1t}$ is defined locally at a $t$-point, 401 whereas many other models on a C grid choose to define such a scale factor as 402 the distance between the $U$-points on each side of the $t$-point. 403 Relying on an analytical transformation has two advantages: 404 firstly, there is no ambiguity in the scale factors appearing in the discrete equations, 405 since they are first introduced in the continuous equations; 406 secondly, analytical transformations encourage good practice by the definition of smoothly varying grids 407 (rather than allowing the user to set arbitrary jumps in thickness between adjacent layers) \citep{Treguier1996}. 408 An example of the effect of such a choice is shown in \autoref{fig:zgr_e3}. 409 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 410 \begin{figure}[!t] 411 \begin{center} 412 \includegraphics[]{Fig_zgr_e3} 413 \caption{ 414 \protect\label{fig:zgr_e3} 415 Comparison of (a) traditional definitions of grid-point position and grid-size in the vertical, 416 and (b) analytically derived grid-point position and scale factors. 417 For both grids here, the same $w$-point depth has been chosen but 418 in (a) the $t$-points are set half way between $w$-points while 419 in (b) they are defined from an analytical function: 420 $z(k) = 5 \, (k - 1/2)^3 - 45 \, (k - 1/2)^2 + 140 \, (k - 1/2) - 150$. 421 Note the resulting difference between the value of the grid-size $\Delta_k$ and 422 those of the scale factor $e_k$. 423 } 424 \end{center} 425 \end{figure} 426 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 427 428 % ------------------------------------------------------------------------------------------------------------- 429 % Choice of horizontal grid 430 % ------------------------------------------------------------------------------------------------------------- 431 \subsection{Choice of horizontal grid} 432 \label{subsec:DOM_hgr_msh_choice} 433 434 % ------------------------------------------------------------------------------------------------------------- 435 % Grid files 436 % ------------------------------------------------------------------------------------------------------------- 437 \subsection{Output grid files} 438 \label{subsec:DOM_hgr_files} 439 440 All the arrays relating to a particular ocean model configuration (grid-point position, scale factors, masks) 441 can be saved in files if \np{nn\_msh} $\not = 0$ (namelist variable in \ngn{namdom}). 442 This can be particularly useful for plots and off-line diagnostics. 443 In some cases, the user may choose to make a local modification of a scale factor in the code. 444 This is the case in global configurations when restricting the width of a specific strait 445 (usually a one-grid-point strait that happens to be too wide due to insufficient model resolution). 446 An example is Gibraltar Strait in the ORCA2 configuration. 447 When such modifications are done, 448 the output grid written when \np{nn\_msh} $\not = 0$ is no more equal to the input grid. 396 \subsection{Horizontal grid mesh (\protect\mdl{domhgr})} 397 \label{subsec:DOM_hgr} 398 399 % ================================================================ 400 % Domain: List of hgr-related fields needed 401 % ================================================================ 402 \subsubsection{Required fields} 403 \label{sec:DOM_hgr_fields} 404 The explicit specification of a range of mesh-related fields are required for the definition of a configuration. These include: 405 406 \begin{Verbatim}[fontsize=\tiny] 407 int jpiglo, jpjglo, jpkglo /* global domain sizes */ 408 int jperio /* lateral global domain b.c. */ 409 double glamt, glamu, glamv, glamf /* geographic longitude (t,u,v and f points respectively) */ 410 double gphit, gphiu, gphiv, gphif /* geographic latitude */ 411 double e1t, e1u, e1v, e1f /* horizontal scale factors */ 412 double e2t, e2u, e2v, e2f /* horizontal scale factors */ 413 \end{Verbatim} 414 415 The values of the geographic longitude and latitude arrays at indices $i,j$ correspond to the analytical expressions of the longitude $\lambda$ and latitude $\varphi$ as a function of $(i,j)$, evaluated at the values as specified in Table \autoref{tab:cell} for the respective grid-point position. The calculation of the values of the horizontal scale factor arrays in general additionally involves partial derivatives of $\lambda$ and $\varphi$ with respect to $i$ and $j$, evaluated for the same arguments as $\lambda$ and $\varphi$. 416 417 \subsubsection{Optional fields} 418 \begin{Verbatim}[fontsize=\tiny] 419 /* Optional: */ 420 int ORCA, ORCA_index /* configuration name, configuration resolution */ 421 double e1e2u, e1e2v /* U and V surfaces (if grid size reduction in some straits) */ 422 double ff_f, ff_t /* Coriolis parameter (if not on the sphere) */ 423 \end{Verbatim} 424 425 NEMO can support the local reduction of key strait widths by altering individual values of 426 e2u or e1v at the appropriate locations. This is particularly useful for locations such as 427 Gibraltar or Indonesian Throughflow pinch-points (see \autoref{sec:MISC_strait} for 428 illustrated examples). The key is to reduce the faces of $T$-cell (\ie change the value of 429 the horizontal scale factors at $u$- or $v$-point) but not the volume of the cells. Doing 430 otherwise can lead to numerical instability issues. In normal operation the surface areas 431 are computed from $\texttt{e1u} * \texttt{e2u}$ and $\texttt{e1v} * \texttt{e2v}$ but in 432 cases where a gridsize reduction is required, the unaltered surface areas at $u$ and $v$ 433 grid points (\texttt{e1e2u} and \texttt{e1e2v}, respectively) must be read or pre-computed 434 in \mdl{usrdef\_hgr}. If these arrays are present in the \np{cn\_domcfg} file they are 435 read and the internal computation is suppressed. Versions of \mdl{usrdef\_hgr} which set 436 their own values of \texttt{e1e2u} and \texttt{e1e2v} should set the surface-area 437 computation flag: \texttt{ie1e2u\_v} to a non-zero value to suppress their re-computation. 438 439 \smallskip 440 Similar logic applies to the other optional fields: \texttt{ff\_f} and \texttt{ff\_t} 441 which can be used to provide the Coriolis parameter at F- and T-points respectively if the 442 mesh is not on a sphere. If present these fields will be read and used and the normal 443 calculation ($2*\Omega*\sin(\varphi)$) suppressed. Versions of \mdl{usrdef\_hgr} which set 444 their own values of \texttt{ff\_f} and \texttt{ff\_t} should set the Coriolis computation 445 flag: \texttt{iff} to a non-zero value to suppress their re-computation. 446 447 Note that longitudes, latitudes, and scale factors at $w$ points are exactly 448 equal to those of $t$ points, thus no specific arrays are defined at $w$ points. 449 449 450 450 451 % ================================================================ 451 452 % Domain: Vertical Grid (domzgr) 452 453 % ================================================================ 453 \section{Vertical grid (\protect\mdl{domzgr})} 454 \label{sec:DOM_zgr} 455 %-----------------------------------------nam_zgr & namdom------------------------------------------- 456 % 457 %\nlst{namzgr} 458 459 \nlst{namdom} 454 \subsection[Vertical grid (\textit{domzgr.F90})] 455 {Vertical grid (\protect\mdl{domzgr})} 456 \label{subsec:DOM_zgr} 457 %-----------------------------------------namdom------------------------------------------- 458 \nlst{namdom} 460 459 %------------------------------------------------------------------------------------------------------------- 461 460 462 Variables are defined through the \ngn{namzgr} and \ngn{namdom} namelists.463 461 In the vertical, the model mesh is determined by four things: 464 (1) the bathymetry given in meters; 465 (2) the number of levels of the model (\jp{jpk}); 466 (3) the analytical transformation $z(i,j,k)$ and the vertical scale factors (derivatives of the transformation); and 467 (4) the masking system, \ie the number of wet model levels at each 468 $(i,j)$ column of points. 462 \begin{enumerate} 463 \item the bathymetry given in meters; 464 \item the number of levels of the model (\jp{jpk}); 465 \item the analytical transformation $z(i,j,k)$ and the vertical scale factors (derivatives of the transformation); and 466 \item the masking system, \ie the number of wet model levels at each 467 $(i,j)$ location of the horizontal grid. 468 \end{enumerate} 469 469 470 470 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 471 471 \begin{figure}[!tb] 472 472 \begin{center} 473 \includegraphics[ ]{Fig_z_zps_s_sps}473 \includegraphics[width=\textwidth]{Fig_z_zps_s_sps} 474 474 \caption{ 475 475 \protect\label{fig:z_zps_s_sps} … … 480 480 (d) hybrid $s-z$ coordinate, 481 481 (e) hybrid $s-z$ coordinate with partial step, and 482 (f) same as (e) but in the non-linear free surface (\protect\np{ln\_linssh} ~\forcode{= .false.}).482 (f) same as (e) but in the non-linear free surface (\protect\np{ln\_linssh}\forcode{ = .false.}). 483 483 Note that the non-linear free surface can be used with any of the 5 coordinates (a) to (e). 484 484 } … … 487 487 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 488 488 489 The choice of a vertical coordinate, even if it is made through \ngn{namzgr} namelist parameters, 490 must be done once of all at the beginning of an experiment. 491 It is not intended as an option which can be enabled or disabled in the middle of an experiment. 492 Three main choices are offered (\autoref{fig:z_zps_s_sps}): 493 $z$-coordinate with full step bathymetry (\np{ln\_zco}~\forcode{= .true.}), 494 $z$-coordinate with partial step bathymetry (\np{ln\_zps}~\forcode{= .true.}), 495 or generalized, $s$-coordinate (\np{ln\_sco}~\forcode{= .true.}). 496 Hybridation of the three main coordinates are available: 497 $s-z$ or $s-zps$ coordinate (\autoref{fig:z_zps_s_sps} and \autoref{fig:z_zps_s_sps}). 498 By default a non-linear free surface is used: the coordinate follow the time-variation of the free surface so that 499 the transformation is time dependent: $z(i,j,k,t)$ (\autoref{fig:z_zps_s_sps}). 500 When a linear free surface is assumed (\np{ln\_linssh}~\forcode{= .true.}), 501 the vertical coordinate are fixed in time, but the seawater can move up and down across the $z_0$ surface 502 (in other words, the top of the ocean in not a rigid-lid). 503 The last choice in terms of vertical coordinate concerns the presence (or not) in 504 the model domain of ocean cavities beneath ice shelves. 505 Setting \np{ln\_isfcav} to true allows to manage ocean cavities, otherwise they are filled in. 506 This option is currently only available in $z$- or $zps$-coordinate, 507 and partial step are also applied at the ocean/ice shelf interface. 508 509 Contrary to the horizontal grid, the vertical grid is computed in the code and no provision is made for 510 reading it from a file. 511 The only input file is the bathymetry (in meters) (\ifile{bathy\_meter}) 512 \footnote{ 513 N.B. in full step $z$-coordinate, a \ifile{bathy\_level} file can replace the \ifile{bathy\_meter} file, 514 so that the computation of the number of wet ocean point in each water column is by-passed}. 515 If \np{ln\_isfcav}~\forcode{= .true.}, an extra file input file (\ifile{isf\_draft\_meter}) describing 516 the ice shelf draft (in meters) is needed. 517 518 After reading the bathymetry, the algorithm for vertical grid definition differs between the different options: 519 \begin{description} 520 \item[\textit{zco}] 521 set a reference coordinate transformation $z_0(k)$, and set $z(i,j,k,t) = z_0(k)$. 522 \item[\textit{zps}] 523 set a reference coordinate transformation $z_0(k)$, and calculate the thickness of the deepest level at 524 each $(i,j)$ point using the bathymetry, to obtain the final three-dimensional depth and scale factor arrays. 525 \item[\textit{sco}] 526 smooth the bathymetry to fulfill the hydrostatic consistency criteria and 527 set the three-dimensional transformation. 528 \item[\textit{s-z} and \textit{s-zps}] 529 smooth the bathymetry to fulfill the hydrostatic consistency criteria and 530 set the three-dimensional transformation $z(i,j,k)$, 531 and possibly introduce masking of extra land points to better fit the original bathymetry file. 532 \end{description} 533 %%% 534 \gmcomment{ add the description of the smoothing: envelop topography...} 535 %%% 536 537 Unless a linear free surface is used (\np{ln\_linssh}~\forcode{= .false.}), 538 the arrays describing the grid point depths and vertical scale factors are three set of 539 three dimensional arrays $(i,j,k)$ defined at \textit{before}, \textit{now} and \textit{after} time step. 540 The time at which they are defined is indicated by a suffix: $\_b$, $\_n$, or $\_a$, respectively. 541 They are updated at each model time step using a fixed reference coordinate system which 542 computer names have a $\_0$ suffix. 543 When the linear free surface option is used (\np{ln\_linssh}~\forcode{= .true.}), \textit{before}, 544 \textit{now} and \textit{after} arrays are simply set one for all to their reference counterpart. 545 546 % ------------------------------------------------------------------------------------------------------------- 547 % Meter Bathymetry 548 % ------------------------------------------------------------------------------------------------------------- 549 \subsection{Meter bathymetry} 550 \label{subsec:DOM_bathy} 551 552 Three options are possible for defining the bathymetry, according to the namelist variable \np{nn\_bathy} 553 (found in \ngn{namdom} namelist): 554 \begin{description} 555 \item[\np{nn\_bathy}~\forcode{= 0}]: 556 a flat-bottom domain is defined. 557 The total depth $z_w (jpk)$ is given by the coordinate transformation. 558 The domain can either be a closed basin or a periodic channel depending on the parameter \np{jperio}. 559 \item[\np{nn\_bathy}~\forcode{= -1}]: 560 a domain with a bump of topography one third of the domain width at the central latitude. 561 This is meant for the "EEL-R5" configuration, a periodic or open boundary channel with a seamount. 562 \item[\np{nn\_bathy}~\forcode{= 1}]: 563 read a bathymetry and ice shelf draft (if needed). 564 The \ifile{bathy\_meter} file (Netcdf format) provides the ocean depth (positive, in meters) at 565 each grid point of the model grid. 566 The bathymetry is usually built by interpolating a standard bathymetry product (\eg ETOPO2) onto 567 the horizontal ocean mesh. 568 Defining the bathymetry also defines the coastline: where the bathymetry is zero, 569 no model levels are defined (all levels are masked). 570 571 The \ifile{isfdraft\_meter} file (Netcdf format) provides the ice shelf draft (positive, in meters) at 572 each grid point of the model grid. 573 This file is only needed if \np{ln\_isfcav}~\forcode{= .true.}. 574 Defining the ice shelf draft will also define the ice shelf edge and the grounding line position. 575 \end{description} 576 577 When a global ocean is coupled to an atmospheric model it is better to represent all large water bodies 578 (\eg great lakes, Caspian sea...) even if the model resolution does not allow their communication with 579 the rest of the ocean. 580 This is unnecessary when the ocean is forced by fixed atmospheric conditions, 581 so these seas can be removed from the ocean domain. 582 The user has the option to set the bathymetry in closed seas to zero (see \autoref{sec:MISC_closea}), 583 but the code has to be adapted to the user's configuration. 584 585 % ------------------------------------------------------------------------------------------------------------- 586 % z-coordinate and reference coordinate transformation 587 % ------------------------------------------------------------------------------------------------------------- 588 \subsection[$Z$-coordinate (\protect\np{ln\_zco}~\forcode{= .true.}) and ref. coordinate] 589 {$Z$-coordinate (\protect\np{ln\_zco}~\forcode{= .true.}) and reference coordinate} 590 \label{subsec:DOM_zco} 591 592 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 593 \begin{figure}[!tb] 594 \begin{center} 595 \includegraphics[]{Fig_zgr} 596 \caption{ 597 \protect\label{fig:zgr} 598 Default vertical mesh for ORCA2: 30 ocean levels (L30). 599 Vertical level functions for (a) T-point depth and (b) the associated scale factor as computed from 600 \autoref{eq:DOM_zgr_ana_1} using \autoref{eq:DOM_zgr_coef} in $z$-coordinate. 601 } 602 \end{center} 603 \end{figure} 604 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 605 606 The reference coordinate transformation $z_0(k)$ defines the arrays $gdept_0$ and $gdepw_0$ for $t$- and $w$-points, 607 respectively. 608 As indicated on \autoref{fig:index_vert} \jp{jpk} is the number of $w$-levels. 609 $gdepw_0(1)$ is the ocean surface. 610 There are at most \jp{jpk}-1 $t$-points inside the ocean, 611 the additional $t$-point at $jk = jpk$ is below the sea floor and is not used. 612 The vertical location of $w$- and $t$-levels is defined from the analytic expression of the depth $z_0(k)$ whose 613 analytical derivative with respect to $k$ provides the vertical scale factors. 614 The user must provide the analytical expression of both $z_0$ and its first derivative with respect to $k$. 615 This is done in routine \mdl{domzgr} through statement functions, 616 using parameters provided in the \ngn{namcfg} namelist. 617 618 It is possible to define a simple regular vertical grid by giving zero stretching (\np{ppacr}~\forcode{= 0}). 619 In that case, the parameters \jp{jpk} (number of $w$-levels) and 620 \np{pphmax} (total ocean depth in meters) fully define the grid. 621 622 For climate-related studies it is often desirable to concentrate the vertical resolution near the ocean surface. 623 The following function is proposed as a standard for a $z$-coordinate (with either full or partial steps): 624 \begin{gather} 625 \label{eq:DOM_zgr_ana_1} 626 z_0 (k) = h_{sur} - h_0 \; k - \; h_1 \; \log \big[ \cosh ((k - h_{th}) / h_{cr}) \big] \\ 627 e_3^0(k) = \lt| - h_0 - h_1 \; \tanh \big[ (k - h_{th}) / h_{cr} \big] \rt| 628 \end{gather} 629 where $k = 1$ to \jp{jpk} for $w$-levels and $k = 1$ to $k = 1$ for $T-$levels. 630 Such an expression allows us to define a nearly uniform vertical location of levels at the ocean top and bottom with 631 a smooth hyperbolic tangent transition in between (\autoref{fig:zgr}). 632 633 If the ice shelf cavities are opened (\np{ln\_isfcav}~\forcode{= .true.}), the definition of $z_0$ is the same. 634 However, definition of $e_3^0$ at $t$- and $w$-points is respectively changed to: 635 \begin{equation} 636 \label{eq:DOM_zgr_ana_2} 637 \begin{split} 638 e_3^T(k) &= z_W (k + 1) - z_W (k ) \\ 639 e_3^W(k) &= z_T (k ) - z_T (k - 1) 640 \end{split} 641 \end{equation} 642 This formulation decrease the self-generated circulation into the ice shelf cavity 643 (which can, in extreme case, leads to blow up).\\ 644 645 The most used vertical grid for ORCA2 has $10~m$ ($500~m$) resolution in the surface (bottom) layers and 646 a depth which varies from 0 at the sea surface to a minimum of $-5000~m$. 647 This leads to the following conditions: 648 \begin{equation} 649 \label{eq:DOM_zgr_coef} 650 \begin{array}{ll} 651 e_3 (1 + 1/2) = 10. & z(1 ) = 0. \\ 652 e_3 (jpk - 1/2) = 500. & z(jpk) = -5000. 653 \end{array} 654 \end{equation} 655 656 With the choice of the stretching $h_{cr} = 3$ and the number of levels \jp{jpk}~$= 31$, 657 the four coefficients $h_{sur}$, $h_0$, $h_1$, and $h_{th}$ in 658 \autoref{eq:DOM_zgr_ana_2} have been determined such that 659 \autoref{eq:DOM_zgr_coef} is satisfied, through an optimisation procedure using a bisection method. 660 For the first standard ORCA2 vertical grid this led to the following values: 661 $h_{sur} = 4762.96$, $h_0 = 255.58, h_1 = 245.5813$, and $h_{th} = 21.43336$. 662 The resulting depths and scale factors as a function of the model levels are shown in 663 \autoref{fig:zgr} and given in \autoref{tab:orca_zgr}. 664 Those values correspond to the parameters \np{ppsur}, \np{ppa0}, \np{ppa1}, \np{ppkth} in \ngn{namcfg} namelist. 665 666 Rather than entering parameters $h_{sur}$, $h_0$, and $h_1$ directly, it is possible to recalculate them. 667 In that case the user sets \np{ppsur}~$=$~\np{ppa0}~$=$~\np{ppa1}~$= 999999$., 668 in \ngn{namcfg} namelist, and specifies instead the four following parameters: 489 The choice of a vertical coordinate is made when setting up the configuration; 490 it is not intended to be an option which can be changed in the middle of an 491 experiment. The one exception to this statement being the choice of linear or 492 non-linear free surface. In v4.0 the linear free surface option is implemented 493 as a special case of the non-linear free surface. This is computationally 494 wasteful since it uses the structures for time-varying 3D metrics for fields 495 that (in the linear free surface case) are fixed. However, the linear 496 free-surface is rarely used and implementing it this way means a single configuration 497 file can support both options. 498 499 By default a non-linear free surface is used (\np{ln\_linssh} set to \forcode{ = 500 .false.} in \ngn{namdom}): the coordinate follow the time-variation of the free 501 surface so that the transformation is time dependent: $z(i,j,k,t)$ 502 (\eg \autoref{fig:z_zps_s_sps}f). When a linear free surface is assumed 503 (\np{ln\_linssh} set to \forcode{ = .true.} in \ngn{namdom}), the vertical 504 coordinates are fixed in time, but the seawater can move up and down across the 505 $z_0$ surface (in other words, the top of the ocean in not a rigid lid). 506 507 Note that settings: \np{ln\_zco}, \np{ln\_zps}, \np{ln\_sco} and \np{ln\_isfcav} mentioned 508 in the following sections appear to be namelist options but they are no longer truly 509 namelist options for NEMO. Their value is written to and read from the domain configuration file 510 and they should be treated as fixed parameters for a particular configuration. They are 511 namelist options for the \forcode{DOMAINcfg} tool that can be used to build the 512 configuration file and serve both to provide a record of the choices made whilst building the 513 configuration and to trigger appropriate code blocks within NEMO. 514 These values should not be altered in the \np{cn\_domcfg} file. 515 516 \medskip 517 The decision on these choices must be made when the \np{cn\_domcfg} file is constructed. 518 Three main choices are offered (\autoref{fig:z_zps_s_sps}a-c): 519 669 520 \begin{itemize} 670 \item 671 \np{ppacr}~$= h_{cr}$: stretching factor (nondimensional). 672 The larger \np{ppacr}, the smaller the stretching. 673 Values from $3$ to $10$ are usual. 674 \item 675 \np{ppkth}~$= h_{th}$: is approximately the model level at which maximum stretching occurs 676 (nondimensional, usually of order 1/2 or 2/3 of \jp{jpk}) 677 \item 678 \np{ppdzmin}: minimum thickness for the top layer (in meters). 679 \item 680 \np{pphmax}: total depth of the ocean (meters). 521 \item $z$-coordinate with full step bathymetry (\np{ln\_zco}\forcode{ = .true.}), 522 \item $z$-coordinate with partial step ($zps$) bathymetry (\np{ln\_zps}\forcode{ = .true.}), 523 \item Generalized, $s$-coordinate (\np{ln\_sco}\forcode{ = .true.}). 681 524 \end{itemize} 682 As an example, for the $45$ layers used in the DRAKKAR configuration those parameters are: 683 \jp{jpk}~$= 46$, \np{ppacr}~$= 9$, \np{ppkth}~$= 23.563$, \np{ppdzmin}~$= 6~m$, \np{pphmax}~$= 5750~m$. 684 685 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 686 \begin{table} 687 \begin{center} 688 \begin{tabular}{c||r|r|r|r} 689 \hline 690 \textbf{LEVEL} & \textbf{gdept\_1d} & \textbf{gdepw\_1d} & \textbf{e3t\_1d } & \textbf{e3w\_1d} \\ 691 \hline 692 1 & \textbf{ 5.00} & 0.00 & \textbf{ 10.00} & 10.00 \\ 693 \hline 694 2 & \textbf{ 15.00} & 10.00 & \textbf{ 10.00} & 10.00 \\ 695 \hline 696 3 & \textbf{ 25.00} & 20.00 & \textbf{ 10.00} & 10.00 \\ 697 \hline 698 4 & \textbf{ 35.01} & 30.00 & \textbf{ 10.01} & 10.00 \\ 699 \hline 700 5 & \textbf{ 45.01} & 40.01 & \textbf{ 10.01} & 10.01 \\ 701 \hline 702 6 & \textbf{ 55.03} & 50.02 & \textbf{ 10.02} & 10.02 \\ 703 \hline 704 7 & \textbf{ 65.06} & 60.04 & \textbf{ 10.04} & 10.03 \\ 705 \hline 706 8 & \textbf{ 75.13} & 70.09 & \textbf{ 10.09} & 10.06 \\ 707 \hline 708 9 & \textbf{ 85.25} & 80.18 & \textbf{ 10.17} & 10.12 \\ 709 \hline 710 10 & \textbf{ 95.49} & 90.35 & \textbf{ 10.33} & 10.24 \\ 711 \hline 712 11 & \textbf{ 105.97} & 100.69 & \textbf{ 10.65} & 10.47 \\ 713 \hline 714 12 & \textbf{ 116.90} & 111.36 & \textbf{ 11.27} & 10.91 \\ 715 \hline 716 13 & \textbf{ 128.70} & 122.65 & \textbf{ 12.47} & 11.77 \\ 717 \hline 718 14 & \textbf{ 142.20} & 135.16 & \textbf{ 14.78} & 13.43 \\ 719 \hline 720 15 & \textbf{ 158.96} & 150.03 & \textbf{ 19.23} & 16.65 \\ 721 \hline 722 16 & \textbf{ 181.96} & 169.42 & \textbf{ 27.66} & 22.78 \\ 723 \hline 724 17 & \textbf{ 216.65} & 197.37 & \textbf{ 43.26} & 34.30 \\ 725 \hline 726 18 & \textbf{ 272.48} & 241.13 & \textbf{ 70.88} & 55.21 \\ 727 \hline 728 19 & \textbf{ 364.30} & 312.74 & \textbf{ 116.11} & 90.99 \\ 729 \hline 730 20 & \textbf{ 511.53} & 429.72 & \textbf{ 181.55} & 146.43 \\ 731 \hline 732 21 & \textbf{ 732.20} & 611.89 & \textbf{ 261.03} & 220.35 \\ 733 \hline 734 22 & \textbf{ 1033.22} & 872.87 & \textbf{ 339.39} & 301.42 \\ 735 \hline 736 23 & \textbf{ 1405.70} & 1211.59 & \textbf{ 402.26} & 373.31 \\ 737 \hline 738 24 & \textbf{ 1830.89} & 1612.98 & \textbf{ 444.87} & 426.00 \\ 739 \hline 740 25 & \textbf{ 2289.77} & 2057.13 & \textbf{ 470.55} & 459.47 \\ 741 \hline 742 26 & \textbf{ 2768.24} & 2527.22 & \textbf{ 484.95} & 478.83 \\ 743 \hline 744 27 & \textbf{ 3257.48} & 3011.90 & \textbf{ 492.70} & 489.44 \\ 745 \hline 746 28 & \textbf{ 3752.44} & 3504.46 & \textbf{ 496.78} & 495.07 \\ 747 \hline 748 29 & \textbf{ 4250.40} & 4001.16 & \textbf{ 498.90} & 498.02 \\ 749 \hline 750 30 & \textbf{ 4749.91} & 4500.02 & \textbf{ 500.00} & 499.54 \\ 751 \hline 752 31 & \textbf{ 5250.23} & 5000.00 & \textbf{ 500.56} & 500.33 \\ 753 \hline 754 \end{tabular} 755 \end{center} 756 \caption{ 757 \protect\label{tab:orca_zgr} 758 Default vertical mesh in $z$-coordinate for 30 layers ORCA2 configuration as computed from 759 \autoref{eq:DOM_zgr_ana_2} using the coefficients given in \autoref{eq:DOM_zgr_coef} 760 } 761 \end{table} 762 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 763 764 % ------------------------------------------------------------------------------------------------------------- 765 % z-coordinate with partial step 766 % ------------------------------------------------------------------------------------------------------------- 767 \subsection{$Z$-coordinate with partial step (\protect\np{ln\_zps}~\forcode{= .true.})} 768 \label{subsec:DOM_zps} 769 %--------------------------------------------namdom------------------------------------------------------- 770 771 \nlst{namdom} 772 %-------------------------------------------------------------------------------------------------------------- 773 774 In $z$-coordinate partial step, 775 the depths of the model levels are defined by the reference analytical function $z_0(k)$ as described in 776 the previous section, \textit{except} in the bottom layer. 777 The thickness of the bottom layer is allowed to vary as a function of geographical location $(\lambda,\varphi)$ to 778 allow a better representation of the bathymetry, especially in the case of small slopes 779 (where the bathymetry varies by less than one level thickness from one grid point to the next). 780 The reference layer thicknesses $e_{3t}^0$ have been defined in the absence of bathymetry. 781 With partial steps, layers from 1 to \jp{jpk}-2 can have a thickness smaller than $e_{3t}(jk)$. 782 The model deepest layer (\jp{jpk}-1) is allowed to have either a smaller or larger thickness than $e_{3t}(jpk)$: 783 the maximum thickness allowed is $2*e_{3t}(jpk - 1)$. 784 This has to be kept in mind when specifying values in \ngn{namdom} namelist, 785 as the maximum depth \np{pphmax} in partial steps: 786 for example, with \np{pphmax}~$= 5750~m$ for the DRAKKAR 45 layer grid, 787 the maximum ocean depth allowed is actually $6000~m$ (the default thickness $e_{3t}(jpk - 1)$ being $250~m$). 788 Two variables in the namdom namelist are used to define the partial step vertical grid. 789 The mimimum water thickness (in meters) allowed for a cell partially filled with bathymetry at level jk is 790 the minimum of \np{rn\_e3zps\_min} (thickness in meters, usually $20~m$) or $e_{3t}(jk)*$\np{rn\_e3zps\_rat} 791 (a fraction, usually 10\%, of the default thickness $e_{3t}(jk)$). 792 793 \gmcomment{ \colorbox{yellow}{Add a figure here of pstep especially at last ocean level } } 794 795 % ------------------------------------------------------------------------------------------------------------- 796 % s-coordinate 797 % ------------------------------------------------------------------------------------------------------------- 798 \subsection{$S$-coordinate (\protect\np{ln\_sco}~\forcode{= .true.})} 799 \label{subsec:DOM_sco} 800 %------------------------------------------nam_zgr_sco--------------------------------------------------- 801 % 802 %\nlst{namzgr_sco} 803 %-------------------------------------------------------------------------------------------------------------- 804 Options are defined in \ngn{namzgr\_sco}. 805 In $s$-coordinate (\np{ln\_sco}~\forcode{= .true.}), the depth and thickness of the model levels are defined from 806 the product of a depth field and either a stretching function or its derivative, respectively: 807 808 \begin{align*} 809 % \label{eq:DOM_sco_ana} 810 z(k) &= h(i,j) \; z_0 (k) \\ 811 e_3(k) &= h(i,j) \; z_0'(k) 812 \end{align*} 813 814 where $h$ is the depth of the last $w$-level ($z_0(k)$) defined at the $t$-point location in the horizontal and 815 $z_0(k)$ is a function which varies from $0$ at the sea surface to $1$ at the ocean bottom. 816 The depth field $h$ is not necessary the ocean depth, 817 since a mixed step-like and bottom-following representation of the topography can be used 818 (\autoref{fig:z_zps_s_sps}) or an envelop bathymetry can be defined (\autoref{fig:z_zps_s_sps}). 819 The namelist parameter \np{rn\_rmax} determines the slope at which 820 the terrain-following coordinate intersects the sea bed and becomes a pseudo z-coordinate. 821 The coordinate can also be hybridised by specifying \np{rn\_sbot\_min} and \np{rn\_sbot\_max} as 822 the minimum and maximum depths at which the terrain-following vertical coordinate is calculated. 823 824 Options for stretching the coordinate are provided as examples, 825 but care must be taken to ensure that the vertical stretch used is appropriate for the application. 826 827 The original default NEMO s-coordinate stretching is available if neither of the other options are specified as true 828 (\np{ln\_s\_SH94}~\forcode{= .false.} and \np{ln\_s\_SF12}~\forcode{= .false.}). 829 This uses a depth independent $\tanh$ function for the stretching \citep{Madec_al_JPO96}: 830 831 \[ 832 z = s_{min} + C (s) (H - s_{min}) 833 % \label{eq:SH94_1} 834 \] 835 836 where $s_{min}$ is the depth at which the $s$-coordinate stretching starts and 837 allows a $z$-coordinate to placed on top of the stretched coordinate, 838 and $z$ is the depth (negative down from the asea surface). 839 \begin{gather*} 840 s = - \frac{k}{n - 1} \quad \text{and} \quad 0 \leq k \leq n - 1 841 % \label{eq:DOM_s} 842 \\ 843 % \label{eq:DOM_sco_function} 844 C(s) = \frac{[\tanh(\theta \, (s + b)) - \tanh(\theta \, b)]}{2 \; \sinh(\theta)} 845 \end{gather*} 846 847 A stretching function, 848 modified from the commonly used \citet{Song_Haidvogel_JCP94} stretching (\np{ln\_s\_SH94}~\forcode{= .true.}), 849 is also available and is more commonly used for shelf seas modelling: 850 851 \[ 852 C(s) = (1 - b) \frac{\sinh(\theta s)}{\sinh(\theta)} 853 + b \frac{\tanh \lt[ \theta \lt(s + \frac{1}{2} \rt) \rt] - \tanh \lt( \frac{\theta}{2} \rt)} 854 { 2 \tanh \lt( \frac{\theta}{2} \rt)} 855 % \label{eq:SH94_2} 856 \] 857 858 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 859 \begin{figure}[!ht] 860 \begin{center} 861 \includegraphics[]{Fig_sco_function} 862 \caption{ 863 \protect\label{fig:sco_function} 864 Examples of the stretching function applied to a seamount; 865 from left to right: surface, surface and bottom, and bottom intensified resolutions 866 } 867 \end{center} 868 \end{figure} 869 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 870 871 where $H_c$ is the critical depth (\np{rn\_hc}) at which the coordinate transitions from pure $\sigma$ to 872 the stretched coordinate, and $\theta$ (\np{rn\_theta}) and $b$ (\np{rn\_bb}) are the surface and 873 bottom control parameters such that $0 \leqslant \theta \leqslant 20$, and $0 \leqslant b \leqslant 1$. 874 $b$ has been designed to allow surface and/or bottom increase of the vertical resolution 875 (\autoref{fig:sco_function}). 876 877 Another example has been provided at version 3.5 (\np{ln\_s\_SF12}) that allows a fixed surface resolution in 878 an analytical terrain-following stretching \citet{Siddorn_Furner_OM12}. 879 In this case the a stretching function $\gamma$ is defined such that: 880 881 \begin{equation} 882 z = - \gamma h \quad \text{with} \quad 0 \leq \gamma \leq 1 883 % \label{eq:z} 884 \end{equation} 885 886 The function is defined with respect to $\sigma$, the unstretched terrain-following coordinate: 887 888 \begin{gather*} 889 % \label{eq:DOM_gamma_deriv} 890 \gamma = A \lt( \sigma - \frac{1}{2} (\sigma^2 + f (\sigma)) \rt) 891 + B \lt( \sigma^3 - f (\sigma) \rt) + f (\sigma) \\ 892 \intertext{Where:} 893 % \label{eq:DOM_gamma} 894 f(\sigma) = (\alpha + 2) \sigma^{\alpha + 1} - (\alpha + 1) \sigma^{\alpha + 2} 895 \quad \text{and} \quad \sigma = \frac{k}{n - 1} 896 \end{gather*} 897 898 This gives an analytical stretching of $\sigma$ that is solvable in $A$ and $B$ as a function of 899 the user prescribed stretching parameter $\alpha$ (\np{rn\_alpha}) that stretches towards 900 the surface ($\alpha > 1.0$) or the bottom ($\alpha < 1.0$) and 901 user prescribed surface (\np{rn\_zs}) and bottom depths. 902 The bottom cell depth in this example is given as a function of water depth: 903 904 \[ 905 % \label{eq:DOM_zb} 906 Z_b = h a + b 907 \] 908 909 where the namelist parameters \np{rn\_zb\_a} and \np{rn\_zb\_b} are $a$ and $b$ respectively. 910 911 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 912 \begin{figure}[!ht] 913 \includegraphics[]{Fig_DOM_compare_coordinates_surface} 914 \caption{ 915 A comparison of the \citet{Song_Haidvogel_JCP94} $S$-coordinate (solid lines), 916 a 50 level $Z$-coordinate (contoured surfaces) and 917 the \citet{Siddorn_Furner_OM12} $S$-coordinate (dashed lines) in the surface $100~m$ for 918 a idealised bathymetry that goes from $50~m$ to $5500~m$ depth. 919 For clarity every third coordinate surface is shown. 920 } 921 \label{fig:fig_compare_coordinates_surface} 922 \end{figure} 923 % >>>>>>>>>>>>>>>>>>>>>>>>>>>> 924 925 This gives a smooth analytical stretching in computational space that is constrained to 926 given specified surface and bottom grid cell thicknesses in real space. 927 This is not to be confused with the hybrid schemes that 928 superimpose geopotential coordinates on terrain following coordinates thus 929 creating a non-analytical vertical coordinate that 930 therefore may suffer from large gradients in the vertical resolutions. 931 This stretching is less straightforward to implement than the \citet{Song_Haidvogel_JCP94} stretching, 932 but has the advantage of resolving diurnal processes in deep water and has generally flatter slopes. 933 934 As with the \citet{Song_Haidvogel_JCP94} stretching the stretch is only applied at depths greater than 935 the critical depth $h_c$. 936 In this example two options are available in depths shallower than $h_c$, 937 with pure sigma being applied if the \np{ln\_sigcrit} is true and pure z-coordinates if it is false 938 (the z-coordinate being equal to the depths of the stretched coordinate at $h_c$). 939 940 Minimising the horizontal slope of the vertical coordinate is important in terrain-following systems as 941 large slopes lead to hydrostatic consistency. 942 A hydrostatic consistency parameter diagnostic following \citet{Haney1991} has been implemented, 943 and is output as part of the model mesh file at the start of the run. 944 945 % ------------------------------------------------------------------------------------------------------------- 946 % z*- or s*-coordinate 947 % ------------------------------------------------------------------------------------------------------------- 948 \subsection{\zstar- or \sstar-coordinate (\protect\np{ln\_linssh}~\forcode{= .false.})} 949 \label{subsec:DOM_zgr_star} 950 951 This option is described in the Report by Levier \textit{et al.} (2007), available on the \NEMO web site. 952 953 %gm% key advantage: minimise the diffusion/dispertion associated with advection in response to high frequency surface disturbances 525 526 Additionally, hybrid combinations of the three main coordinates are available: 527 $s-z$ or $s-zps$ coordinate (\autoref{fig:z_zps_s_sps}d and \autoref{fig:z_zps_s_sps}e). 528 529 A further choice related to vertical coordinate concerns the presence (or not) of ocean 530 cavities beneath ice shelves within the model domain. A setting of \np{ln\_isfcav} as 531 \forcode{.true.} indicates that the domain contains ocean cavities, otherwise the top, 532 wet layer of the ocean will always be at the ocean surface. This option is currently only 533 available for $z$- or $zps$-coordinates. In the latter case, partial steps are also applied 534 at the ocean/ice shelf interface. 535 536 Within the model, the arrays describing the grid point depths and vertical scale factors 537 are three set of three dimensional arrays $(i,j,k)$ defined at \textit{before}, 538 \textit{now} and \textit{after} time step. The time at which they are defined is 539 indicated by a suffix: $\_b$, $\_n$, or $\_a$, respectively. They are updated at each 540 model time step. The initial fixed reference coordinate system is held in variable names 541 with a $\_0$ suffix. When the linear free surface option is used 542 (\np{ln\_linssh}\forcode{ = .true.}), \textit{before}, \textit{now} and \textit{after} 543 arrays are initially set to their reference counterpart and remain fixed. 544 545 \subsubsection{Required fields} 546 \label{sec:DOM_zgr_fields} 547 The explicit specification of a range of fields related to the vertical grid are required for the definition of a configuration. These include: 548 549 \begin{Verbatim}[fontsize=\tiny] 550 int ln_zco, ln_zps, ln_sco /* flags for z-coord, z-coord with partial steps and s-coord */ 551 int ln_isfcav /* flag for ice shelf cavities */ 552 double e3t_1d, e3w_1d /* reference vertical scale factors at T and W points */ 553 double e3t_0, e3u_0, e3v_0, e3f_0, e3w_0 /* vertical scale factors 3D coordinate at T,U,V,F and W points */ 554 double e3uw_0, e3vw_0 /* vertical scale factors 3D coordinate at UW and VW points */ 555 int bottom_level, top_level /* last wet T-points, 1st wet T-points (for ice shelf cavities) */ 556 /* For reference: */ 557 float bathy_metry /* bathymetry used in setting top and bottom levels */ 558 \end{Verbatim} 559 560 This set of vertical metrics is sufficient to describe the initial depth and thickness of 561 every gridcell in the model regardless of the choice of vertical coordinate. With constant 562 z-levels, e3 metrics will be uniform across each horizontal level. In the partial step 563 case each e3 at the \np{bottom\_level} (and, possibly, \np{top\_level} if ice cavities are 564 present) may vary from its horizontal neighbours. And, in s-coordinates, variations can 565 occur throughout the water column. With the non-linear free-surface, all the coordinates 566 behave more like the s-coordinate in that variations occurr throughout the water column 567 with displacements related to the sea surface height. These variations are typically much 568 smaller than those arising from bottom fitted coordinates. The values for vertical metrics 569 supplied in the domain configuration file can be considered as those arising from a flat 570 sea surface with zero elevation. 571 572 The \np{bottom\_level} and \np{top\_level} 2D arrays define the \np{bottom\_level} and top 573 wet levels in each grid column. Without ice cavities, \np{top\_level} is essentially a land 574 mask (0 on land; 1 everywhere else). With ice cavities, \np{top\_level} determines the 575 first wet point below the overlying ice shelf. 576 577 954 578 955 579 % ------------------------------------------------------------------------------------------------------------- 956 580 % level bathymetry and mask 957 581 % ------------------------------------------------------------------------------------------------------------- 958 \subs ection{Level bathymetry and mask}582 \subsubsection{Level bathymetry and mask} 959 583 \label{subsec:DOM_msk} 960 584 961 Whatever the vertical coordinate used, the model offers the possibility of representing the bottom topography with 962 steps that follow the face of the model cells (step like topography) \citep{Madec_al_JPO96}. 963 The distribution of the steps in the horizontal is defined in a 2D integer array, mbathy, which 964 gives the number of ocean levels (\ie those that are not masked) at each $t$-point. 965 mbathy is computed from the meter bathymetry using the definiton of gdept as the number of $t$-points which 966 gdept $\leq$ bathy. 967 968 Modifications of the model bathymetry are performed in the \textit{bat\_ctl} routine (see \mdl{domzgr} module) after 969 mbathy is computed. 970 Isolated grid points that do not communicate with another ocean point at the same level are eliminated. 971 972 As for the representation of bathymetry, a 2D integer array, misfdep, is created. 973 misfdep defines the level of the first wet $t$-point. 974 All the cells between $k = 1$ and $misfdep(i,j) - 1$ are masked. 975 By default, $misfdep(:,:) = 1$ and no cells are masked. 976 977 In case of ice shelf cavities, modifications of the model bathymetry and ice shelf draft into 978 the cavities are performed in the \textit{zgr\_isf} routine. 979 The compatibility between ice shelf draft and bathymetry is checked. 980 All the locations where the isf cavity is thinnest than \np{rn\_isfhmin} meters are grounded (\ie masked). 981 If only one cell on the water column is opened at $t$-, $u$- or $v$-points, 982 the bathymetry or the ice shelf draft is dug to fit this constrain. 983 If the incompatibility is too strong (need to dig more than 1 cell), the cell is masked. 984 985 From the \textit{mbathy} and \textit{misfdep} array, the mask fields are defined as follows: 585 586 From \np{top\_level} and \np{bottom\_level} fields, the mask fields are defined as follows: 986 587 \begin{alignat*}{2} 987 588 tmask(i,j,k) &= & & 988 589 \begin{cases} 989 0 &\text{if $ k < misfdep(i,j)$} \\990 1 &\text{if $ misfdep(i,j) \leq k \leq mbathy(i,j)$} \\991 0 &\text{if $ k > mbathy(i,j)$}590 0 &\text{if $ k < top\_level(i,j)$} \\ 591 1 &\text{if $bottom\_level(i,j) \leq k \leq top\_level(i,j)$} \\ 592 0 &\text{if $ k > bottom\_level(i,j)$} 992 593 \end{cases} 993 594 \\ … … 1005 606 exactly in the same way as for the bottom boundary. 1006 607 1007 The specification of closed lateral boundaries requires that at least 1008 the first and last rows and columns of the \textit{mbathy} array are set to zero. 1009 In the particular case of an east-west cyclical boundary condition, \textit{mbathy} has its last column equal to 1010 the second one and its first column equal to the last but one (and so too the mask arrays) 1011 (see \autoref{fig:LBC_jperio}). 608 %% The specification of closed lateral boundaries requires that at least 609 %% the first and last rows and columns of the \textit{mbathy} array are set to zero. 610 %% In the particular case of an east-west cyclical boundary condition, \textit{mbathy} has its last column equal to 611 %% the second one and its first column equal to the last but one (and so too the mask arrays) 612 %% (see \autoref{fig:LBC_jperio}). 613 614 615 %------------------------------------------------------------------------------------------------- 616 % Closed seas 617 %------------------------------------------------------------------------------------------------- 618 \subsection{Closed seas} \label{subsec:DOM_closea} 619 620 When a global ocean is coupled to an atmospheric model it is better to represent all large 621 water bodies (\eg great lakes, Caspian sea...) even if the model resolution does not allow 622 their communication with the rest of the ocean. This is unnecessary when the ocean is 623 forced by fixed atmospheric conditions, so these seas can be removed from the ocean 624 domain. The user has the option to set the bathymetry in closed seas to zero (see 625 \autoref{sec:MISC_closea}) and to optionally decide on the fate of any freshwater 626 imbalance over the area. The options are explained in \autoref{sec:MISC_closea} but it 627 should be noted here that a successful use of these options requires appropriate mask 628 fields to be present in the domain configuration file. Among the possibilities are: 629 630 \begin{Verbatim}[fontsize=\tiny] 631 int closea_mask /* non-zero values in closed sea areas for optional masking */ 632 int closea_mask_rnf /* non-zero values in closed sea areas with runoff locations (precip only) */ 633 int closea_mask_emp /* non-zero values in closed sea areas with runoff locations (total emp) */ 634 \end{Verbatim} 635 636 % ------------------------------------------------------------------------------------------------------------- 637 % Grid files 638 % ------------------------------------------------------------------------------------------------------------- 639 \subsection{Output grid files} 640 \label{subsec:DOM_meshmask} 641 642 \nlst{namcfg} 643 644 Most of the arrays relating to a particular ocean model configuration dicussed in this 645 chapter (grid-point position, scale factors) can be saved in a file if namelist parameter 646 \np{ln\_write\_cfg} (namelist \ngn{namcfg}) is set to \forcode{.true.}; the output 647 filename is set thorugh parameter \np{cn\_domcfg\_out}. This is only really useful 648 if the fields are computed in subroutines \mdl{usrdef\_hgr} or \mdl{usrdef\_zgr} and 649 checking or confirmation is required. 650 651 \nlst{namdom} 652 653 Alternatively, all the arrays relating to a particular ocean model configuration 654 (grid-point position, scale factors, depths and masks) can be saved in a file called 655 \texttt{mesh\_mask} if namelist parameter \np{ln\_meshmask} (namelist \ngn{namdom}) is set 656 to \forcode{.true.}. This file contains additional fields that can be useful for 657 post-processing applications 1012 658 1013 659 % ================================================================ 1014 660 % Domain: Initial State (dtatsd & istate) 1015 661 % ================================================================ 1016 \section{Initial state (\protect\mdl{istate} and \protect\mdl{dtatsd})} 662 \section[Initial state (\textit{istate.F90} and \textit{dtatsd.F90})] 663 {Initial state (\protect\mdl{istate} and \protect\mdl{dtatsd})} 1017 664 \label{sec:DTA_tsd} 1018 665 %-----------------------------------------namtsd------------------------------------------- 1019 1020 666 \nlst{namtsd} 1021 667 %------------------------------------------------------------------------------------------ 1022 668 1023 Options are defined in \ngn{namtsd}. 1024 By default, the ocean start from rest (the velocity field is set to zero) and the initialization of temperature and 1025 salinity fields is controlled through the \np{ln\_tsd\_ini} namelist parameter. 669 Basic initial state options are defined in \ngn{namtsd}. By default, the ocean starts 670 from rest (the velocity field is set to zero) and the initialization of temperature and 671 salinity fields is controlled through the \np{ln\_tsd\_init} namelist parameter. 672 1026 673 \begin{description} 1027 \item[\np{ln\_tsd\_init} ~\forcode{= .true.}]1028 use a T and S input files that can be given on the model grid itself or on their native input data grid.1029 In the latter case,1030 the data will be interpolated on-the-fly both in the horizontal and the vertical to the model grid1031 (see \autoref{subsec:SBC_iof}).1032 The information relative to the input files are given in the \np{sn\_tem} and \np{sn\_sal} structures.1033 The computation is done in the \mdl{dtatsd} module. 1034 \item[\np{ln\_tsd\_init}~\forcode{= .false.}] 1035 use constant salinity value of $35.5~psu$ and an analytical profile of temperature1036 (typical of the tropical ocean), see \rou{istate\_t\_s} subroutine called from \mdl{istate} module.674 \item[\np{ln\_tsd\_init}\forcode{= .true.}] 675 Use T and S input files that can be given on the model grid itself or on their native 676 input data grids. In the latter case, the data will be interpolated on-the-fly both in 677 the horizontal and the vertical to the model grid (see \autoref{subsec:SBC_iof}). The 678 information relating to the input files are specified in the \np{sn\_tem} and 679 \np{sn\_sal} structures. The computation is done in the \mdl{dtatsd} module. 680 \item[\np{ln\_tsd\_init}\forcode{= .false.}] 681 Initial values for T and S are set via a user supplied \rou{usr\_def\_istate} routine 682 contained in \mdl{userdef\_istate}. The default version sets horizontally uniform T and 683 profiles as used in the GYRE configuration (see \autoref{sec:CFG_gyre}). 1037 684 \end{description} 1038 685 -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_DYN.tex
r10499 r11422 65 65 % Horizontal divergence and relative vorticity 66 66 %-------------------------------------------------------------------------------------------------------------- 67 \subsection{Horizontal divergence and relative vorticity (\protect\mdl{divcur})} 67 \subsection[Horizontal divergence and relative vorticity (\textit{divcur.F90})] 68 {Horizontal divergence and relative vorticity (\protect\mdl{divcur})} 68 69 \label{subsec:DYN_divcur} 69 70 … … 101 102 % Sea Surface Height evolution 102 103 %-------------------------------------------------------------------------------------------------------------- 103 \subsection{Horizontal divergence and relative vorticity (\protect\mdl{sshwzv})} 104 \subsection[Horizontal divergence and relative vorticity (\textit{sshwzv.F90})] 105 {Horizontal divergence and relative vorticity (\protect\mdl{sshwzv})} 104 106 \label{subsec:DYN_sshwzv} 105 107 … … 127 129 Replacing $T$ by the number $1$ in the tracer equation and summing over the water column must lead to 128 130 the sea surface height equation otherwise tracer content will not be conserved 129 \citep{ Griffies_al_MWR01, Leclair_Madec_OM09}.131 \citep{griffies.pacanowski.ea_MWR01, leclair.madec_OM09}. 130 132 131 133 The vertical velocity is computed by an upward integration of the horizontal divergence starting at the bottom, … … 181 183 % Vorticity term 182 184 % ------------------------------------------------------------------------------------------------------------- 183 \subsection{Vorticity term (\protect\mdl{dynvor})} 185 \subsection[Vorticity term (\textit{dynvor.F90})] 186 {Vorticity term (\protect\mdl{dynvor})} 184 187 \label{subsec:DYN_vor} 185 188 %------------------------------------------nam_dynvor---------------------------------------------------- … … 203 206 % enstrophy conserving scheme 204 207 %------------------------------------------------------------- 205 \subsubsection{Enstrophy conserving scheme (\protect\np{ln\_dynvor\_ens}\forcode{ = .true.})} 208 \subsubsection[Enstrophy conserving scheme (\forcode{ln_dynvor_ens = .true.})] 209 {Enstrophy conserving scheme (\protect\np{ln\_dynvor\_ens}\forcode{ = .true.})} 206 210 \label{subsec:DYN_vor_ens} 207 211 … … 226 230 % energy conserving scheme 227 231 %------------------------------------------------------------- 228 \subsubsection{Energy conserving scheme (\protect\np{ln\_dynvor\_ene}\forcode{ = .true.})} 232 \subsubsection[Energy conserving scheme (\forcode{ln_dynvor_ene = .true.})] 233 {Energy conserving scheme (\protect\np{ln\_dynvor\_ene}\forcode{ = .true.})} 229 234 \label{subsec:DYN_vor_ene} 230 235 … … 246 251 % mix energy/enstrophy conserving scheme 247 252 %------------------------------------------------------------- 248 \subsubsection{Mixed energy/enstrophy conserving scheme (\protect\np{ln\_dynvor\_mix}\forcode{ = .true.}) } 253 \subsubsection[Mixed energy/enstrophy conserving scheme (\forcode{ln_dynvor_mix = .true.})] 254 {Mixed energy/enstrophy conserving scheme (\protect\np{ln\_dynvor\_mix}\forcode{ = .true.})} 249 255 \label{subsec:DYN_vor_mix} 250 256 … … 271 277 % energy and enstrophy conserving scheme 272 278 %------------------------------------------------------------- 273 \subsubsection{Energy and enstrophy conserving scheme (\protect\np{ln\_dynvor\_een}\forcode{ = .true.}) } 279 \subsubsection[Energy and enstrophy conserving scheme (\forcode{ln_dynvor_een = .true.})] 280 {Energy and enstrophy conserving scheme (\protect\np{ln\_dynvor\_een}\forcode{ = .true.})} 274 281 \label{subsec:DYN_vor_een} 275 282 … … 287 294 Nevertheless, this technique strongly distort the phase and group velocity of Rossby waves....} 288 295 289 A very nice solution to the problem of double averaging was proposed by \citet{ Arakawa_Hsu_MWR90}.296 A very nice solution to the problem of double averaging was proposed by \citet{arakawa.hsu_MWR90}. 290 297 The idea is to get rid of the double averaging by considering triad combinations of vorticity. 291 298 It is noteworthy that this solution is conceptually quite similar to the one proposed by 292 \citep{ Griffies_al_JPO98} for the discretization of the iso-neutral diffusion operator (see \autoref{apdx:C}).293 294 The \citet{ Arakawa_Hsu_MWR90} vorticity advection scheme for a single layer is modified295 for spherical coordinates as described by \citet{ Arakawa_Lamb_MWR81} to obtain the EEN scheme.299 \citep{griffies.gnanadesikan.ea_JPO98} for the discretization of the iso-neutral diffusion operator (see \autoref{apdx:C}). 300 301 The \citet{arakawa.hsu_MWR90} vorticity advection scheme for a single layer is modified 302 for spherical coordinates as described by \citet{arakawa.lamb_MWR81} to obtain the EEN scheme. 296 303 First consider the discrete expression of the potential vorticity, $q$, defined at an $f$-point: 297 304 \[ … … 309 316 \begin{figure}[!ht] 310 317 \begin{center} 311 \includegraphics[width= 0.70\textwidth]{Fig_DYN_een_triad}318 \includegraphics[width=\textwidth]{Fig_DYN_een_triad} 312 319 \caption{ 313 320 \protect\label{fig:DYN_een_triad} … … 327 334 (with a systematic reduction of $e_{3f}$ when a model level intercept the bathymetry) 328 335 that tends to reinforce the topostrophy of the flow 329 (\ie the tendency of the flow to follow the isobaths) \citep{ Penduff_al_OS07}.336 (\ie the tendency of the flow to follow the isobaths) \citep{penduff.le-sommer.ea_OS07}. 330 337 331 338 Next, the vorticity triads, $ {^i_j}\mathbb{Q}^{i_p}_{j_p}$ can be defined at a $T$-point as … … 356 363 (\ie $\chi$=$0$) (see \autoref{subsec:C_vorEEN}). 357 364 Applied to a realistic ocean configuration, it has been shown that it leads to a significant reduction of 358 the noise in the vertical velocity field \citep{ Le_Sommer_al_OM09}.365 the noise in the vertical velocity field \citep{le-sommer.penduff.ea_OM09}. 359 366 Furthermore, used in combination with a partial steps representation of bottom topography, 360 367 it improves the interaction between current and topography, 361 leading to a larger topostrophy of the flow \citep{ Barnier_al_OD06, Penduff_al_OS07}.368 leading to a larger topostrophy of the flow \citep{barnier.madec.ea_OD06, penduff.le-sommer.ea_OS07}. 362 369 363 370 %-------------------------------------------------------------------------------------------------------------- 364 371 % Kinetic Energy Gradient term 365 372 %-------------------------------------------------------------------------------------------------------------- 366 \subsection{Kinetic energy gradient term (\protect\mdl{dynkeg})} 373 \subsection[Kinetic energy gradient term (\textit{dynkeg.F90})] 374 {Kinetic energy gradient term (\protect\mdl{dynkeg})} 367 375 \label{subsec:DYN_keg} 368 376 … … 384 392 % Vertical advection term 385 393 %-------------------------------------------------------------------------------------------------------------- 386 \subsection{Vertical advection term (\protect\mdl{dynzad}) } 394 \subsection[Vertical advection term (\textit{dynzad.F90})] 395 {Vertical advection term (\protect\mdl{dynzad})} 387 396 \label{subsec:DYN_zad} 388 397 … … 403 412 When \np{ln\_dynzad\_zts}\forcode{ = .true.}, 404 413 a split-explicit time stepping with 5 sub-timesteps is used on the vertical advection term. 405 This option can be useful when the value of the timestep is limited by vertical advection \citep{ Lemarie_OM2015}.414 This option can be useful when the value of the timestep is limited by vertical advection \citep{lemarie.debreu.ea_OM15}. 406 415 Note that in this case, 407 416 a similar split-explicit time stepping should be used on vertical advection of tracer to ensure a better stability, … … 430 439 % Coriolis plus curvature metric terms 431 440 %-------------------------------------------------------------------------------------------------------------- 432 \subsection{Coriolis plus curvature metric terms (\protect\mdl{dynvor}) } 441 \subsection[Coriolis plus curvature metric terms (\textit{dynvor.F90})] 442 {Coriolis plus curvature metric terms (\protect\mdl{dynvor})} 433 443 \label{subsec:DYN_cor_flux} 434 444 … … 451 461 % Flux form Advection term 452 462 %-------------------------------------------------------------------------------------------------------------- 453 \subsection{Flux form advection term (\protect\mdl{dynadv}) } 463 \subsection[Flux form advection term (\textit{dynadv.F90})] 464 {Flux form advection term (\protect\mdl{dynadv})} 454 465 \label{subsec:DYN_adv_flux} 455 466 … … 475 486 a $2^{nd}$ order centered finite difference scheme, CEN2, 476 487 or a $3^{rd}$ order upstream biased scheme, UBS. 477 The latter is described in \citet{ Shchepetkin_McWilliams_OM05}.488 The latter is described in \citet{shchepetkin.mcwilliams_OM05}. 478 489 The schemes are selected using the namelist logicals \np{ln\_dynadv\_cen2} and \np{ln\_dynadv\_ubs}. 479 490 In flux form, the schemes differ by the choice of a space and time interpolation to define the value of … … 484 495 % 2nd order centred scheme 485 496 %------------------------------------------------------------- 486 \subsubsection{CEN2: $2^{nd}$ order centred scheme (\protect\np{ln\_dynadv\_cen2}\forcode{ = .true.})} 497 \subsubsection[CEN2: $2^{nd}$ order centred scheme (\forcode{ln_dynadv_cen2 = .true.})] 498 {CEN2: $2^{nd}$ order centred scheme (\protect\np{ln\_dynadv\_cen2}\forcode{ = .true.})} 487 499 \label{subsec:DYN_adv_cen2} 488 500 … … 507 519 % UBS scheme 508 520 %------------------------------------------------------------- 509 \subsubsection{UBS: Upstream Biased Scheme (\protect\np{ln\_dynadv\_ubs}\forcode{ = .true.})} 521 \subsubsection[UBS: Upstream Biased Scheme (\forcode{ln_dynadv_ubs = .true.})] 522 {UBS: Upstream Biased Scheme (\protect\np{ln\_dynadv\_ubs}\forcode{ = .true.})} 510 523 \label{subsec:DYN_adv_ubs} 511 524 … … 523 536 where $u"_{i+1/2} =\delta_{i+1/2} \left[ {\delta_i \left[ u \right]} \right]$. 524 537 This results in a dissipatively dominant (\ie hyper-diffusive) truncation error 525 \citep{ Shchepetkin_McWilliams_OM05}.526 The overall performance of the advection scheme is similar to that reported in \citet{ Farrow1995}.538 \citep{shchepetkin.mcwilliams_OM05}. 539 The overall performance of the advection scheme is similar to that reported in \citet{farrow.stevens_JPO95}. 527 540 It is a relatively good compromise between accuracy and smoothness. 528 541 It is not a \emph{positive} scheme, meaning that false extrema are permitted. … … 542 555 while the second term, which is the diffusion part of the scheme, 543 556 is evaluated using the \textit{before} velocity (forward in time). 544 This is discussed by \citet{ Webb_al_JAOT98} in the context of the Quick advection scheme.557 This is discussed by \citet{webb.de-cuevas.ea_JAOT98} in the context of the Quick advection scheme. 545 558 546 559 Note that the UBS and QUICK (Quadratic Upstream Interpolation for Convective Kinematics) schemes only differ by 547 560 one coefficient. 548 Replacing $1/6$ by $1/8$ in (\autoref{eq:dynadv_ubs}) leads to the QUICK advection scheme \citep{ Webb_al_JAOT98}.561 Replacing $1/6$ by $1/8$ in (\autoref{eq:dynadv_ubs}) leads to the QUICK advection scheme \citep{webb.de-cuevas.ea_JAOT98}. 549 562 This option is not available through a namelist parameter, since the $1/6$ coefficient is hard coded. 550 563 Nevertheless it is quite easy to make the substitution in the \mdl{dynadv\_ubs} module and obtain a QUICK scheme. … … 560 573 % Hydrostatic pressure gradient term 561 574 % ================================================================ 562 \section{Hydrostatic pressure gradient (\protect\mdl{dynhpg})} 575 \section[Hydrostatic pressure gradient (\textit{dynhpg.F90})] 576 {Hydrostatic pressure gradient (\protect\mdl{dynhpg})} 563 577 \label{sec:DYN_hpg} 564 578 %------------------------------------------nam_dynhpg--------------------------------------------------- … … 582 596 % z-coordinate with full step 583 597 %-------------------------------------------------------------------------------------------------------------- 584 \subsection{Full step $Z$-coordinate (\protect\np{ln\_dynhpg\_zco}\forcode{ = .true.})} 598 \subsection[Full step $Z$-coordinate (\forcode{ln_dynhpg_zco = .true.})] 599 {Full step $Z$-coordinate (\protect\np{ln\_dynhpg\_zco}\forcode{ = .true.})} 585 600 \label{subsec:DYN_hpg_zco} 586 601 … … 627 642 % z-coordinate with partial step 628 643 %-------------------------------------------------------------------------------------------------------------- 629 \subsection{Partial step $Z$-coordinate (\protect\np{ln\_dynhpg\_zps}\forcode{ = .true.})} 644 \subsection[Partial step $Z$-coordinate (\forcode{ln_dynhpg_zps = .true.})] 645 {Partial step $Z$-coordinate (\protect\np{ln\_dynhpg\_zps}\forcode{ = .true.})} 630 646 \label{subsec:DYN_hpg_zps} 631 647 … … 652 668 653 669 Pressure gradient formulations in an $s$-coordinate have been the subject of a vast number of papers 654 (\eg, \citet{ Song1998, Shchepetkin_McWilliams_OM05}).670 (\eg, \citet{song_MWR98, shchepetkin.mcwilliams_OM05}). 655 671 A number of different pressure gradient options are coded but the ROMS-like, 656 672 density Jacobian with cubic polynomial method is currently disabled whilst known bugs are under investigation. 657 673 658 $\bullet$ Traditional coding (see for example \citet{ Madec_al_JPO96}: (\np{ln\_dynhpg\_sco}\forcode{ = .true.})674 $\bullet$ Traditional coding (see for example \citet{madec.delecluse.ea_JPO96}: (\np{ln\_dynhpg\_sco}\forcode{ = .true.}) 659 675 \begin{equation} 660 676 \label{eq:dynhpg_sco} … … 679 695 $\bullet$ Pressure Jacobian scheme (prj) (a research paper in preparation) (\np{ln\_dynhpg\_prj}\forcode{ = .true.}) 680 696 681 $\bullet$ Density Jacobian with cubic polynomial scheme (DJC) \citep{ Shchepetkin_McWilliams_OM05}697 $\bullet$ Density Jacobian with cubic polynomial scheme (DJC) \citep{shchepetkin.mcwilliams_OM05} 682 698 (\np{ln\_dynhpg\_djc}\forcode{ = .true.}) (currently disabled; under development) 683 699 684 700 Note that expression \autoref{eq:dynhpg_sco} is commonly used when the variable volume formulation is activated 685 701 (\key{vvl}) because in that case, even with a flat bottom, 686 the coordinate surfaces are not horizontal but follow the free surface \citep{ Levier2007}.702 the coordinate surfaces are not horizontal but follow the free surface \citep{levier.treguier.ea_rpt07}. 687 703 The pressure jacobian scheme (\np{ln\_dynhpg\_prj}\forcode{ = .true.}) is available as 688 704 an improved option to \np{ln\_dynhpg\_sco}\forcode{ = .true.} when \key{vvl} is active. … … 704 720 corresponds to the water replaced by the ice shelf. 705 721 This top pressure is constant over time. 706 A detailed description of this method is described in \citet{ Losch2008}.\\722 A detailed description of this method is described in \citet{losch_JGR08}.\\ 707 723 708 724 The pressure gradient due to ocean load is computed using the expression \autoref{eq:dynhpg_sco} described in … … 712 728 % Time-scheme 713 729 %-------------------------------------------------------------------------------------------------------------- 714 \subsection{Time-scheme (\protect\np{ln\_dynhpg\_imp}\forcode{ = .true./.false.})} 730 \subsection[Time-scheme (\forcode{ln_dynhpg_imp = .{true,false}.})] 731 {Time-scheme (\protect\np{ln\_dynhpg\_imp}\forcode{ = .\{true,false\}}.)} 715 732 \label{subsec:DYN_hpg_imp} 716 733 … … 722 739 the physical phenomenon that controls the time-step is internal gravity waves (IGWs). 723 740 A semi-implicit scheme for doubling the stability limit associated with IGWs can be used 724 \citep{ Brown_Campana_MWR78, Maltrud1998}.741 \citep{brown.campana_MWR78, maltrud.smith.ea_JGR98}. 725 742 It involves the evaluation of the hydrostatic pressure gradient as 726 743 an average over the three time levels $t-\rdt$, $t$, and $t+\rdt$ … … 773 790 % Surface Pressure Gradient 774 791 % ================================================================ 775 \section{Surface pressure gradient (\protect\mdl{dynspg})} 792 \section[Surface pressure gradient (\textit{dynspg.F90})] 793 {Surface pressure gradient (\protect\mdl{dynspg})} 776 794 \label{sec:DYN_spg} 777 795 %-----------------------------------------nam_dynspg---------------------------------------------------- … … 790 808 which imposes a very small time step when an explicit time stepping is used. 791 809 Two methods are proposed to allow a longer time step for the three-dimensional equations: 792 the filtered free surface, which is a modification of the continuous equations (see \autoref{eq:PE_flt }),810 the filtered free surface, which is a modification of the continuous equations (see \autoref{eq:PE_flt?}), 793 811 and the split-explicit free surface described below. 794 812 The extra term introduced in the filtered method is calculated implicitly, … … 811 829 % Explicit free surface formulation 812 830 %-------------------------------------------------------------------------------------------------------------- 813 \subsection{Explicit free surface (\protect\key{dynspg\_exp})} 831 \subsection[Explicit free surface (\texttt{\textbf{key\_dynspg\_exp}})] 832 {Explicit free surface (\protect\key{dynspg\_exp})} 814 833 \label{subsec:DYN_spg_exp} 815 834 … … 837 856 % Split-explict free surface formulation 838 857 %-------------------------------------------------------------------------------------------------------------- 839 \subsection{Split-explicit free surface (\protect\key{dynspg\_ts})} 858 \subsection[Split-explicit free surface (\texttt{\textbf{key\_dynspg\_ts}})] 859 {Split-explicit free surface (\protect\key{dynspg\_ts})} 840 860 \label{subsec:DYN_spg_ts} 841 861 %------------------------------------------namsplit----------------------------------------------------------- … … 845 865 846 866 The split-explicit free surface formulation used in \NEMO (\key{dynspg\_ts} defined), 847 also called the time-splitting formulation, follows the one proposed by \citet{ Shchepetkin_McWilliams_OM05}.867 also called the time-splitting formulation, follows the one proposed by \citet{shchepetkin.mcwilliams_OM05}. 848 868 The general idea is to solve the free surface equation and the associated barotropic velocity equations with 849 869 a smaller time step than $\rdt$, the time step used for the three dimensional prognostic variables … … 862 882 \begin{equation} 863 883 \label{eq:BT_dyn} 864 \frac{\partial {\ rm \overline{{\bf U}}_h} }{\partial t}=865 -f\;{\ rm {\bf k}}\times {\rm \overline{{\bf U}}_h}866 -g\nabla _h \eta -\frac{c_b^{\textbf U}}{H+\eta} \ rm {\overline{{\bf U}}_h} + \rm {\overline{\bf G}}884 \frac{\partial {\mathrm \overline{{\mathbf U}}_h} }{\partial t}= 885 -f\;{\mathrm {\mathbf k}}\times {\mathrm \overline{{\mathbf U}}_h} 886 -g\nabla _h \eta -\frac{c_b^{\textbf U}}{H+\eta} \mathrm {\overline{{\mathbf U}}_h} + \mathrm {\overline{\mathbf G}} 867 887 \end{equation} 868 888 \[ 869 889 % \label{eq:BT_ssh} 870 \frac{\partial \eta }{\partial t}=-\nabla \cdot \left[ {\left( {H+\eta } \right) \; {\ rm{\bf \overline{U}}}_h \,} \right]+P-E890 \frac{\partial \eta }{\partial t}=-\nabla \cdot \left[ {\left( {H+\eta } \right) \; {\mathrm{\mathbf \overline{U}}}_h \,} \right]+P-E 871 891 \] 872 892 % \end{subequations} 873 where $\ rm {\overline{\bf G}}$ is a forcing term held constant, containing coupling term between modes,893 where $\mathrm {\overline{\mathbf G}}$ is a forcing term held constant, containing coupling term between modes, 874 894 surface atmospheric forcing as well as slowly varying barotropic terms not explicitly computed to gain efficiency. 875 895 The third term on the right hand side of \autoref{eq:BT_dyn} represents the bottom stress 876 896 (see section \autoref{sec:ZDF_bfr}), explicitly accounted for at each barotropic iteration. 877 897 Temporal discretization of the system above follows a three-time step Generalized Forward Backward algorithm 878 detailed in \citet{ Shchepetkin_McWilliams_OM05}.898 detailed in \citet{shchepetkin.mcwilliams_OM05}. 879 899 AB3-AM4 coefficients used in \NEMO follow the second-order accurate, 880 "multi-purpose" stability compromise as defined in \citet{ Shchepetkin_McWilliams_Bk08}900 "multi-purpose" stability compromise as defined in \citet{shchepetkin.mcwilliams_ibk09} 881 901 (see their figure 12, lower left). 882 902 … … 884 904 \begin{figure}[!t] 885 905 \begin{center} 886 \includegraphics[width= 0.7\textwidth]{Fig_DYN_dynspg_ts}906 \includegraphics[width=\textwidth]{Fig_DYN_dynspg_ts} 887 907 \caption{ 888 908 \protect\label{fig:DYN_dynspg_ts} … … 936 956 and time splitting not compatible. 937 957 Advective barotropic velocities are obtained by using a secondary set of filtering weights, 938 uniquely defined from the filter coefficients used for the time averaging (\citet{ Shchepetkin_McWilliams_OM05}).958 uniquely defined from the filter coefficients used for the time averaging (\citet{shchepetkin.mcwilliams_OM05}). 939 959 Consistency between the time averaged continuity equation and the time stepping of tracers is here the key to 940 960 obtain exact conservation. … … 953 973 external gravity waves in idealized or weakly non-linear cases. 954 974 Although the damping is lower than for the filtered free surface, 955 it is still significant as shown by \citet{ Levier2007} in the case of an analytical barotropic Kelvin wave.975 it is still significant as shown by \citet{levier.treguier.ea_rpt07} in the case of an analytical barotropic Kelvin wave. 956 976 957 977 %>>>>>=============== … … 1051 1071 the leap-frog splitting mode in equation \autoref{eq:DYN_spg_ts_ssh}. 1052 1072 We have tried various forms of such filtering, 1053 with the following method discussed in \cite{ Griffies_al_MWR01} chosen due to1073 with the following method discussed in \cite{griffies.pacanowski.ea_MWR01} chosen due to 1054 1074 its stability and reasonably good maintenance of tracer conservation properties (see ??). 1055 1075 … … 1081 1101 % Filtered free surface formulation 1082 1102 %-------------------------------------------------------------------------------------------------------------- 1083 \subsection{Filtered free surface (\protect\key{dynspg\_flt})} 1103 \subsection[Filtered free surface (\texttt{\textbf{key\_dynspg\_flt}})] 1104 {Filtered free surface (\protect\key{dynspg\_flt})} 1084 1105 \label{subsec:DYN_spg_fltp} 1085 1106 1086 The filtered formulation follows the \citet{ Roullet_Madec_JGR00} implementation.1107 The filtered formulation follows the \citet{roullet.madec_JGR00} implementation. 1087 1108 The extra term introduced in the equations (see \autoref{subsec:PE_free_surface}) is solved implicitly. 1088 1109 The elliptic solvers available in the code are documented in \autoref{chap:MISC}. … … 1092 1113 \[ 1093 1114 % \label{eq:spg_flt} 1094 \frac{\partial {\ rm {\bf U}}_h }{\partial t}= {\rm {\bf M}}1115 \frac{\partial {\mathrm {\mathbf U}}_h }{\partial t}= {\mathrm {\mathbf M}} 1095 1116 - g \nabla \left( \tilde{\rho} \ \eta \right) 1096 1117 - g \ T_c \nabla \left( \widetilde{\rho} \ \partial_t \eta \right) … … 1098 1119 where $T_c$, is a parameter with dimensions of time which characterizes the force, 1099 1120 $\widetilde{\rho} = \rho / \rho_o$ is the dimensionless density, 1100 and $\ rm {\bf M}$ represents the collected contributions of the Coriolis, hydrostatic pressure gradient,1121 and $\mathrm {\mathbf M}$ represents the collected contributions of the Coriolis, hydrostatic pressure gradient, 1101 1122 non-linear and viscous terms in \autoref{eq:PE_dyn}. 1102 1123 } %end gmcomment … … 1109 1130 % Lateral diffusion term 1110 1131 % ================================================================ 1111 \section{Lateral diffusion term and operators (\protect\mdl{dynldf})} 1132 \section[Lateral diffusion term and operators (\textit{dynldf.F90})] 1133 {Lateral diffusion term and operators (\protect\mdl{dynldf})} 1112 1134 \label{sec:DYN_ldf} 1113 1135 %------------------------------------------nam_dynldf---------------------------------------------------- … … 1143 1165 1144 1166 % ================================================================ 1145 \subsection[Iso-level laplacian (\ protect\np{ln\_dynldf\_lap}\forcode{= .true.})]1146 1167 \subsection[Iso-level laplacian (\forcode{ln_dynldf_lap = .true.})] 1168 {Iso-level laplacian operator (\protect\np{ln\_dynldf\_lap}\forcode{ = .true.})} 1147 1169 \label{subsec:DYN_ldf_lap} 1148 1170 … … 1152 1174 \left\{ 1153 1175 \begin{aligned} 1154 D_u^{l{\ rm {\bf U}}} =\frac{1}{e_{1u} }\delta_{i+1/2} \left[ {A_T^{lm}1176 D_u^{l{\mathrm {\mathbf U}}} =\frac{1}{e_{1u} }\delta_{i+1/2} \left[ {A_T^{lm} 1155 1177 \;\chi } \right]-\frac{1}{e_{2u} {\kern 1pt}e_{3u} }\delta_j \left[ 1156 1178 {A_f^{lm} \;e_{3f} \zeta } \right] \\ \\ 1157 D_v^{l{\ rm {\bf U}}} =\frac{1}{e_{2v} }\delta_{j+1/2} \left[ {A_T^{lm}1179 D_v^{l{\mathrm {\mathbf U}}} =\frac{1}{e_{2v} }\delta_{j+1/2} \left[ {A_T^{lm} 1158 1180 \;\chi } \right]+\frac{1}{e_{1v} {\kern 1pt}e_{3v} }\delta_i \left[ 1159 1181 {A_f^{lm} \;e_{3f} \zeta } \right] … … 1169 1191 % Rotated laplacian operator 1170 1192 %-------------------------------------------------------------------------------------------------------------- 1171 \subsection[Rotated laplacian (\ protect\np{ln\_dynldf\_iso}\forcode{= .true.})]1172 1193 \subsection[Rotated laplacian (\forcode{ln_dynldf_iso = .true.})] 1194 {Rotated laplacian operator (\protect\np{ln\_dynldf\_iso}\forcode{ = .true.})} 1173 1195 \label{subsec:DYN_ldf_iso} 1174 1196 … … 1228 1250 % Iso-level bilaplacian operator 1229 1251 %-------------------------------------------------------------------------------------------------------------- 1230 \subsection[Iso-level bilaplacian (\ protect\np{ln\_dynldf\_bilap}\forcode{= .true.})]1231 1252 \subsection[Iso-level bilaplacian (\forcode{ln_dynldf_bilap = .true.})] 1253 {Iso-level bilaplacian operator (\protect\np{ln\_dynldf\_bilap}\forcode{ = .true.})} 1232 1254 \label{subsec:DYN_ldf_bilap} 1233 1255 … … 1243 1265 % Vertical diffusion term 1244 1266 % ================================================================ 1245 \section{Vertical diffusion term (\protect\mdl{dynzdf})} 1267 \section[Vertical diffusion term (\textit{dynzdf.F90})] 1268 {Vertical diffusion term (\protect\mdl{dynzdf})} 1246 1269 \label{sec:DYN_zdf} 1247 1270 %----------------------------------------------namzdf------------------------------------------------------ … … 1326 1349 There are two main options for wetting and drying code (wd): 1327 1350 (a) an iterative limiter (il) and (b) a directional limiter (dl). 1328 The directional limiter is based on the scheme developed by \cite{ WarnerEtal13} for RO1351 The directional limiter is based on the scheme developed by \cite{warner.defne.ea_CG13} for RO 1329 1352 MS 1330 which was in turn based on ideas developed for POM by \cite{ Oey06}. The iterative1353 which was in turn based on ideas developed for POM by \cite{oey_OM06}. The iterative 1331 1354 limiter is a new scheme. The iterative limiter is activated by setting $\mathrm{ln\_wd\_il} = \mathrm{.true.}$ 1332 1355 and $\mathrm{ln\_wd\_dl} = \mathrm{.false.}$. The directional limiter is activated … … 1372 1395 % Iterative limiters 1373 1396 %----------------------------------------------------------------------------------------- 1374 \subsection [Directional limiter (\textit{wet\_dry})]1375 1397 \subsection[Directional limiter (\textit{wet\_dry.F90})] 1398 {Directional limiter (\mdl{wet\_dry})} 1376 1399 \label{subsec:DYN_wd_directional_limiter} 1377 1400 The principal idea of the directional limiter is that … … 1400 1423 1401 1424 1402 \cite{ WarnerEtal13} state that in their scheme the velocity masks at the cell faces for the baroclinic1425 \cite{warner.defne.ea_CG13} state that in their scheme the velocity masks at the cell faces for the baroclinic 1403 1426 timesteps are set to 0 or 1 depending on whether the average of the masks over the barotropic sub-steps is respectively less than 1404 1427 or greater than 0.5. That scheme does not conserve tracers in integrations started from constant tracer … … 1412 1435 %----------------------------------------------------------------------------------------- 1413 1436 1414 \subsection [Iterative limiter (\textit{wet\_dry})]1415 1437 \subsection[Iterative limiter (\textit{wet\_dry.F90})] 1438 {Iterative limiter (\mdl{wet\_dry})} 1416 1439 \label{subsec:DYN_wd_iterative_limiter} 1417 1440 1418 \subsubsection [Iterative flux limiter (\textit{wet\_dry})]1419 1441 \subsubsection[Iterative flux limiter (\textit{wet\_dry.F90})] 1442 {Iterative flux limiter (\mdl{wet\_dry})} 1420 1443 \label{subsubsec:DYN_wd_il_spg_limiter} 1421 1444 … … 1494 1517 \end{equation} 1495 1518 1496 Note a small tolerance ($\mathrm{rn\_wdmin2}$) has been introduced here {\it [Q: Why is1519 Note a small tolerance ($\mathrm{rn\_wdmin2}$) has been introduced here {\itshape [Q: Why is 1497 1520 this necessary/desirable?]}. Substituting from (\ref{dyn_wd_continuity_coef}) gives an 1498 1521 expression for the coefficient needed to multiply the outward flux at this cell in order … … 1522 1545 % Surface pressure gradients 1523 1546 %---------------------------------------------------------------------------------------- 1524 \subsubsection [Modification of surface pressure gradients (\textit{dynhpg})]1525 1547 \subsubsection[Modification of surface pressure gradients (\textit{dynhpg.F90})] 1548 {Modification of surface pressure gradients (\mdl{dynhpg})} 1526 1549 \label{subsubsec:DYN_wd_il_spg} 1527 1550 … … 1541 1564 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1542 1565 \begin{figure}[!ht] \begin{center} 1543 \includegraphics[width= 0.8\textwidth]{Fig_WAD_dynhpg}1566 \includegraphics[width=\textwidth]{Fig_WAD_dynhpg} 1544 1567 \caption{ \label{Fig_WAD_dynhpg} 1545 1568 Illustrations of the three possible combinations of the logical variables controlling the … … 1588 1611 conditions. 1589 1612 1590 \subsubsection [Additional considerations (\textit{usrdef\_zgr})]1591 1613 \subsubsection[Additional considerations (\textit{usrdef\_zgr.F90})] 1614 {Additional considerations (\mdl{usrdef\_zgr})} 1592 1615 \label{subsubsec:WAD_additional} 1593 1616 … … 1603 1626 % The WAD test cases 1604 1627 %---------------------------------------------------------------------------------------- 1605 \subsection [The WAD test cases (\textit{usrdef\_zgr})]1606 1628 \subsection[The WAD test cases (\textit{usrdef\_zgr.F90})] 1629 {The WAD test cases (\mdl{usrdef\_zgr})} 1607 1630 \label{WAD_test_cases} 1608 1631 … … 1614 1637 % Time evolution term 1615 1638 % ================================================================ 1616 \section{Time evolution term (\protect\mdl{dynnxt})} 1639 \section[Time evolution term (\textit{dynnxt.F90})] 1640 {Time evolution term (\protect\mdl{dynnxt})} 1617 1641 \label{sec:DYN_nxt} 1618 1642 -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_LBC.tex
r10614 r11422 17 17 % Boundary Condition at the Coast 18 18 % ================================================================ 19 \section{Boundary condition at the coast (\protect\np{rn\_shlat})} 19 \section[Boundary condition at the coast (\texttt{rn\_shlat})] 20 {Boundary condition at the coast (\protect\np{rn\_shlat})} 20 21 \label{sec:LBC_coast} 21 22 %--------------------------------------------nam_lbc------------------------------------------------------- … … 56 57 \begin{figure}[!t] 57 58 \begin{center} 58 \includegraphics[width= 0.90\textwidth]{Fig_LBC_uv}59 \includegraphics[width=\textwidth]{Fig_LBC_uv} 59 60 \caption{ 60 61 \protect\label{fig:LBC_uv} … … 85 86 \begin{figure}[!p] 86 87 \begin{center} 87 \includegraphics[width= 0.90\textwidth]{Fig_LBC_shlat}88 \includegraphics[width=\textwidth]{Fig_LBC_shlat} 88 89 \caption{ 89 90 \protect\label{fig:LBC_shlat} … … 147 148 % Boundary Condition around the Model Domain 148 149 % ================================================================ 149 \section{Model domain boundary condition (\protect\np{jperio})} 150 \section[Model domain boundary condition (\texttt{jperio})] 151 {Model domain boundary condition (\protect\np{jperio})} 150 152 \label{sec:LBC_jperio} 151 153 … … 158 160 % Closed, cyclic (\np{jperio}\forcode{ = 0..2}) 159 161 % ------------------------------------------------------------------------------------------------------------- 160 \subsection{Closed, cyclic (\protect\np{jperio}\forcode{= [0127]})} 162 \subsection[Closed, cyclic (\forcode{jperio = [0127]})] 163 {Closed, cyclic (\protect\np{jperio}\forcode{ = [0127]})} 161 164 \label{subsec:LBC_jperio012} 162 165 … … 194 197 \begin{figure}[!t] 195 198 \begin{center} 196 \includegraphics[width= 1.0\textwidth]{Fig_LBC_jperio}199 \includegraphics[width=\textwidth]{Fig_LBC_jperio} 197 200 \caption{ 198 201 \protect\label{fig:LBC_jperio} … … 206 209 % North fold (\textit{jperio = 3 }to $6)$ 207 210 % ------------------------------------------------------------------------------------------------------------- 208 \subsection{North-fold (\protect\np{jperio}\forcode{ = 3..6})} 211 \subsection[North-fold (\forcode{jperio = [3-6]})] 212 {North-fold (\protect\np{jperio}\forcode{ = [3-6]})} 209 213 \label{subsec:LBC_north_fold} 210 214 … … 218 222 \begin{figure}[!t] 219 223 \begin{center} 220 \includegraphics[width= 0.90\textwidth]{Fig_North_Fold_T}224 \includegraphics[width=\textwidth]{Fig_North_Fold_T} 221 225 \caption{ 222 226 \protect\label{fig:North_Fold_T} … … 232 236 % Exchange with neighbouring processors 233 237 % ==================================================================== 234 \section{Exchange with neighbouring processors (\protect\mdl{lbclnk}, \protect\mdl{lib\_mpp})} 238 \section[Exchange with neighbouring processors (\textit{lbclnk.F90}, \textit{lib\_mpp.F90})] 239 {Exchange with neighbouring processors (\protect\mdl{lbclnk}, \protect\mdl{lib\_mpp})} 235 240 \label{sec:LBC_mpp} 236 241 … … 280 285 \begin{figure}[!t] 281 286 \begin{center} 282 \includegraphics[width= 0.90\textwidth]{Fig_mpp}287 \includegraphics[width=\textwidth]{Fig_mpp} 283 288 \caption{ 284 289 \protect\label{fig:mpp} … … 360 365 \begin{figure}[!ht] 361 366 \begin{center} 362 \includegraphics[width= 0.90\textwidth]{Fig_mppini2}367 \includegraphics[width=\textwidth]{Fig_mppini2} 363 368 \caption { 364 369 \protect\label{fig:mppini2} … … 395 400 396 401 The BDY module was modelled on the OBC module (see NEMO 3.4) and shares many features and 397 a similar coding structure \citep{ Chanut2005}.402 a similar coding structure \citep{chanut_rpt05}. 398 403 The specification of the location of the open boundary is completely flexible and 399 404 allows for example the open boundary to follow an isobath or other irregular contour. … … 475 480 \label{subsec:BDY_FRS_scheme} 476 481 477 The Flow Relaxation Scheme (FRS) \citep{ Davies_QJRMS76,Engerdahl_Tel95},482 The Flow Relaxation Scheme (FRS) \citep{davies_QJRMS76,engedahl_T95}, 478 483 applies a simple relaxation of the model fields to externally-specified values over 479 484 a zone next to the edge of the model domain. … … 514 519 \label{subsec:BDY_flather_scheme} 515 520 516 The \citet{ Flather_JPO94} scheme is a radiation condition on the normal,521 The \citet{flather_JPO94} scheme is a radiation condition on the normal, 517 522 depth-mean transport across the open boundary. 518 523 It takes the form … … 535 540 \label{subsec:BDY_orlanski_scheme} 536 541 537 The Orlanski scheme is based on the algorithm described by \citep{ Marchesiello2001}, hereafter MMS.542 The Orlanski scheme is based on the algorithm described by \citep{marchesiello.mcwilliams.ea_OM01}, hereafter MMS. 538 543 539 544 The adaptive Orlanski condition solves a wave plus relaxation equation at the boundary: … … 636 641 \begin{figure}[!t] 637 642 \begin{center} 638 \includegraphics[width= 1.0\textwidth]{Fig_LBC_bdy_geom}643 \includegraphics[width=\textwidth]{Fig_LBC_bdy_geom} 639 644 \caption { 640 645 \protect\label{fig:LBC_bdy_geom} … … 670 675 These restrictions mean that data files used with versions of the 671 676 model prior to Version 3.4 may not work with Version 3.4 onwards. 672 A \fortran utility {\it bdy\_reorder} exists in the TOOLS directory which677 A \fortran utility {\itshape bdy\_reorder} exists in the TOOLS directory which 673 678 will re-order the data in old BDY data files. 674 679 … … 676 681 \begin{figure}[!t] 677 682 \begin{center} 678 \includegraphics[width= 1.0\textwidth]{Fig_LBC_nc_header}683 \includegraphics[width=\textwidth]{Fig_LBC_nc_header} 679 684 \caption { 680 685 \protect\label{fig:LBC_nc_header} -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_LDF.tex
r10442 r11422 23 23 These three aspects of the lateral diffusion are set through namelist parameters 24 24 (see the \ngn{nam\_traldf} and \ngn{nam\_dynldf} below). 25 Note that this chapter describes the standard implementation of iso-neutral tracer mixing ,26 and Griffies's implementation, which is used if \np{traldf\_grif}\forcode{ = .true.},27 is described in Appdx\autoref{apdx:triad}28 29 %-----------------------------------nam _traldf - nam_dynldf--------------------------------------------25 Note that this chapter describes the standard implementation of iso-neutral tracer mixing. 26 Griffies's implementation, which is used if \np{ln\_traldf\_triad}\forcode{ = .true.}, 27 is described in \autoref{apdx:triad} 28 29 %-----------------------------------namtra_ldf - namdyn_ldf-------------------------------------------- 30 30 31 31 \nlst{namtra_ldf} … … 34 34 %-------------------------------------------------------------------------------------------------------------- 35 35 36 % ================================================================ 37 % Lateral Mixing Operator 38 % ================================================================ 39 \section[Lateral mixing operators] 40 {Lateral mixing operators} 41 \label{sec:LDF_op} 42 We remind here the different lateral mixing operators that can be used. Further details can be found in \autoref{subsec:TRA_ldf_op} and \autoref{sec:DYN_ldf}. 43 44 \subsection[No lateral mixing (\forcode{ln_traldf_OFF}, \forcode{ln_dynldf_OFF})] 45 {No lateral mixing (\protect\np{ln\_traldf\_OFF}, \protect\np{ln\_dynldf\_OFF})} 46 47 It is possible to run without explicit lateral diffusion on tracers (\protect\np{ln\_traldf\_OFF}\forcode{ = .true.}) and/or 48 momentum (\protect\np{ln\_dynldf\_OFF}\forcode{ = .true.}). The latter option is even recommended if using the 49 UBS advection scheme on momentum (\np{ln\_dynadv\_ubs}\forcode{ = .true.}, 50 see \autoref{subsec:DYN_adv_ubs}) and can be useful for testing purposes. 51 52 \subsection[Laplacian mixing (\forcode{ln_traldf_lap}, \forcode{ln_dynldf_lap})] 53 {Laplacian mixing (\protect\np{ln\_traldf\_lap}, \protect\np{ln\_dynldf\_lap})} 54 Setting \protect\np{ln\_traldf\_lap}\forcode{ = .true.} and/or \protect\np{ln\_dynldf\_lap}\forcode{ = .true.} enables 55 a second order diffusion on tracers and momentum respectively. Note that in \NEMO 4, one can not combine 56 Laplacian and Bilaplacian operators for the same variable. 57 58 \subsection[Bilaplacian mixing (\forcode{ln_traldf_blp}, \forcode{ln_dynldf_blp})] 59 {Bilaplacian mixing (\protect\np{ln\_traldf\_blp}, \protect\np{ln\_dynldf\_blp})} 60 Setting \protect\np{ln\_traldf\_blp}\forcode{ = .true.} and/or \protect\np{ln\_dynldf\_blp}\forcode{ = .true.} enables 61 a fourth order diffusion on tracers and momentum respectively. It is implemented by calling the above Laplacian operator twice. 62 We stress again that from \NEMO 4, the simultaneous use Laplacian and Bilaplacian operators is not allowed. 36 63 37 64 % ================================================================ 38 65 % Direction of lateral Mixing 39 66 % ================================================================ 40 \section{Direction of lateral mixing (\protect\mdl{ldfslp})} 67 \section[Direction of lateral mixing (\textit{ldfslp.F90})] 68 {Direction of lateral mixing (\protect\mdl{ldfslp})} 41 69 \label{sec:LDF_slp} 42 70 … … 44 72 \gmcomment{ 45 73 we should emphasize here that the implementation is a rather old one. 46 Better work can be achieved by using \citet{ Griffies_al_JPO98, Griffies_Bk04} iso-neutral scheme.74 Better work can be achieved by using \citet{griffies.gnanadesikan.ea_JPO98, griffies_bk04} iso-neutral scheme. 47 75 } 48 76 … … 87 115 %gm% caution I'm not sure the simplification was a good idea! 88 116 89 These slopes are computed once in \rou{ldf slp\_init} when \np{ln\_sco}\forcode{ = .true.}rue,117 These slopes are computed once in \rou{ldf\_slp\_init} when \np{ln\_sco}\forcode{ = .true.}, 90 118 and either \np{ln\_traldf\_hor}\forcode{ = .true.} or \np{ln\_dynldf\_hor}\forcode{ = .true.}. 91 119 … … 119 147 %In practice, \autoref{eq:ldfslp_iso} is of little help in evaluating the neutral surface slopes. Indeed, for an unsimplified equation of state, the density has a strong dependancy on pressure (here approximated as the depth), therefore applying \autoref{eq:ldfslp_iso} using the $in situ$ density, $\rho$, computed at T-points leads to a flattening of slopes as the depth increases. This is due to the strong increase of the $in situ$ density with depth. 120 148 121 %By definition, neutral surfaces are tangent to the local $in situ$ density \citep{ McDougall1987}, therefore in \autoref{eq:ldfslp_iso}, all the derivatives have to be evaluated at the same local pressure (which in decibars is approximated by the depth in meters).149 %By definition, neutral surfaces are tangent to the local $in situ$ density \citep{mcdougall_JPO87}, therefore in \autoref{eq:ldfslp_iso}, all the derivatives have to be evaluated at the same local pressure (which in decibars is approximated by the depth in meters). 122 150 123 151 %In the $z$-coordinate, the derivative of the \autoref{eq:ldfslp_iso} numerator is evaluated at the same depth \nocite{as what?} ($T$-level, which is the same as the $u$- and $v$-levels), so the $in situ$ density can be used for its evaluation. … … 135 163 thus the $in situ$ density can be used. 136 164 This is not the case for the vertical derivatives: $\delta_{k+1/2}[\rho]$ is replaced by $-\rho N^2/g$, 137 where $N^2$ is the local Brunt-Vais\"{a}l\"{a} frequency evaluated following \citet{ McDougall1987}165 where $N^2$ is the local Brunt-Vais\"{a}l\"{a} frequency evaluated following \citet{mcdougall_JPO87} 138 166 (see \autoref{subsec:TRA_bn2}). 139 167 … … 144 172 \item[$s$- or hybrid $s$-$z$- coordinate: ] 145 173 in the current release of \NEMO, iso-neutral mixing is only employed for $s$-coordinates if 146 the Griffies scheme is used (\np{ traldf\_grif}\forcode{ = .true.};147 see Appdx\autoref{apdx:triad}).174 the Griffies scheme is used (\np{ln\_traldf\_triad}\forcode{ = .true.}; 175 see \autoref{apdx:triad}). 148 176 In other words, iso-neutral mixing will only be accurately represented with a linear equation of state 149 (\np{ nn\_eos}\forcode{ = 1..2}).177 (\np{ln\_seos}\forcode{ = .true.}). 150 178 In the case of a "true" equation of state, the evaluation of $i$ and $j$ derivatives in \autoref{eq:ldfslp_iso} 151 179 will include a pressure dependent part, leading to the wrong evaluation of the neutral slopes. … … 154 182 Note: The solution for $s$-coordinate passes trough the use of different (and better) expression for 155 183 the constraint on iso-neutral fluxes. 156 Following \citet{ Griffies_Bk04}, instead of specifying directly that there is a zero neutral diffusive flux of184 Following \citet{griffies_bk04}, instead of specifying directly that there is a zero neutral diffusive flux of 157 185 locally referenced potential density, we stay in the $T$-$S$ plane and consider the balance between 158 186 the neutral direction diffusive fluxes of potential temperature and salinity: … … 197 225 198 226 This implementation is a rather old one. 199 It is similar to the one proposed by Cox [1987], except for the background horizontal diffusion.200 Indeed, the Coximplementation of isopycnal diffusion in GFDL-type models requires227 It is similar to the one proposed by \citet{cox_OM87}, except for the background horizontal diffusion. 228 Indeed, the \citet{cox_OM87} implementation of isopycnal diffusion in GFDL-type models requires 201 229 a minimum background horizontal diffusion for numerical stability reasons. 202 230 To overcome this problem, several techniques have been proposed in which the numerical schemes of 203 the ocean model are modified \citep{ Weaver_Eby_JPO97, Griffies_al_JPO98}.204 Griffies's scheme is now available in \NEMO if \np{ traldf\_grif\_iso} is set true; see Appdx\autoref{apdx:triad}.205 Here, another strategy is presented \citep{ Lazar_PhD97}:231 the ocean model are modified \citep{weaver.eby_JPO97, griffies.gnanadesikan.ea_JPO98}. 232 Griffies's scheme is now available in \NEMO if \np{ln\_traldf\_triad}=\forcode{= .true.}; see \autoref{apdx:triad}. 233 Here, another strategy is presented \citep{lazar_phd97}: 206 234 a local filtering of the iso-neutral slopes (made on 9 grid-points) prevents the development of 207 235 grid point noise generated by the iso-neutral diffusion operator (\autoref{fig:LDF_ZDF1}). … … 212 240 213 241 Nevertheless, this iso-neutral operator does not ensure that variance cannot increase, 214 contrary to the \citet{ Griffies_al_JPO98} operator which has that property.242 contrary to the \citet{griffies.gnanadesikan.ea_JPO98} operator which has that property. 215 243 216 244 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 217 245 \begin{figure}[!ht] 218 246 \begin{center} 219 \includegraphics[width= 0.70\textwidth]{Fig_LDF_ZDF1}247 \includegraphics[width=\textwidth]{Fig_LDF_ZDF1} 220 248 \caption { 221 249 \protect\label{fig:LDF_ZDF1} … … 235 263 236 264 237 % In addition and also for numerical stability reasons \citep{ Cox1987, Griffies_Bk04},265 % In addition and also for numerical stability reasons \citep{cox_OM87, griffies_bk04}, 238 266 % the slopes are bounded by $1/100$ everywhere. This limit is decreasing linearly 239 267 % to zero fom $70$ meters depth and the surface (the fact that the eddies "feel" the 240 268 % surface motivates this flattening of isopycnals near the surface). 241 269 242 For numerical stability reasons \citep{ Cox1987, Griffies_Bk04}, the slopes must also be bounded by243 $1/100$everywhere.270 For numerical stability reasons \citep{cox_OM87, griffies_bk04}, the slopes must also be bounded by 271 the namelist scalar \np{rn\_slpmax} (usually $1/100$) everywhere. 244 272 This constraint is applied in a piecewise linear fashion, increasing from zero at the surface to 245 273 $1/100$ at $70$ metres and thereafter decreasing to zero at the bottom of the ocean 246 274 (the fact that the eddies "feel" the surface motivates this flattening of isopycnals near the surface). 275 \colorbox{yellow}{The way slopes are tapered has be checked. Not sure that this is still what is actually done.} 247 276 248 277 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 249 278 \begin{figure}[!ht] 250 279 \begin{center} 251 \includegraphics[width= 0.70\textwidth]{Fig_eiv_slp}280 \includegraphics[width=\textwidth]{Fig_eiv_slp} 252 281 \caption{ 253 282 \protect\label{fig:eiv_slp} … … 297 326 (see \autoref{sec:LBC_coast}). 298 327 299 300 % ================================================================301 % Lateral Mixing Operator302 % ================================================================303 \section{Lateral mixing operators (\protect\mdl{traldf}, \protect\mdl{traldf}) }304 \label{sec:LDF_op}305 306 307 328 308 329 % ================================================================ 309 330 % Lateral Mixing Coefficients 310 331 % ================================================================ 311 \section{Lateral mixing coefficient (\protect\mdl{ldftra}, \protect\mdl{ldfdyn}) } 332 \section[Lateral mixing coefficient (\forcode{nn_aht_ijk_t}, \forcode{nn_ahm_ijk_t})] 333 {Lateral mixing coefficient (\protect\np{nn\_aht\_ijk\_t}, \protect\np{nn\_ahm\_ijk\_t})} 312 334 \label{sec:LDF_coef} 313 335 314 Introducing a space variation in the lateral eddy mixing coefficients changes the model core memory requirement, 315 adding up to four extra three-dimensional arrays for the geopotential or isopycnal second order operator applied to 316 momentum. 317 Six CPP keys control the space variation of eddy coefficients: three for momentum and three for tracer. 318 The three choices allow: 319 a space variation in the three space directions (\key{traldf\_c3d}, \key{dynldf\_c3d}), 320 in the horizontal plane (\key{traldf\_c2d}, \key{dynldf\_c2d}), 321 or in the vertical only (\key{traldf\_c1d}, \key{dynldf\_c1d}). 322 The default option is a constant value over the whole ocean on both momentum and tracers. 323 324 The number of additional arrays that have to be defined and the gridpoint position at which 325 they are defined depend on both the space variation chosen and the type of operator used. 326 The resulting eddy viscosity and diffusivity coefficients can be a function of more than one variable. 327 Changes in the computer code when switching from one option to another have been minimized by 328 introducing the eddy coefficients as statement functions 329 (include file \textit{ldftra\_substitute.h90} and \textit{ldfdyn\_substitute.h90}). 330 The functions are replaced by their actual meaning during the preprocessing step (CPP). 331 The specification of the space variation of the coefficient is made in \mdl{ldftra} and \mdl{ldfdyn}, 332 or more precisely in include files \textit{traldf\_cNd.h90} and \textit{dynldf\_cNd.h90}, with N=1, 2 or 3. 333 The user can modify these include files as he/she wishes. 334 The way the mixing coefficient are set in the reference version can be briefly described as follows: 335 336 \subsubsection{Constant mixing coefficients (default option)} 337 When none of the \key{dynldf\_...} and \key{traldf\_...} keys are defined, 338 a constant value is used over the whole ocean for momentum and tracers, 339 which is specified through the \np{rn\_ahm0} and \np{rn\_aht0} namelist parameters. 340 341 \subsubsection{Vertically varying mixing coefficients (\protect\key{traldf\_c1d} and \key{dynldf\_c1d})} 342 The 1D option is only available when using the $z$-coordinate with full step. 343 Indeed in all the other types of vertical coordinate, 344 the depth is a 3D function of (\textbf{i},\textbf{j},\textbf{k}) and therefore, 345 introducing depth-dependent mixing coefficients will require 3D arrays. 346 In the 1D option, a hyperbolic variation of the lateral mixing coefficient is introduced in which 347 the surface value is \np{rn\_aht0} (\np{rn\_ahm0}), the bottom value is 1/4 of the surface value, 348 and the transition takes place around z=300~m with a width of 300~m 349 (\ie both the depth and the width of the inflection point are set to 300~m). 350 This profile is hard coded in file \textit{traldf\_c1d.h90}, but can be easily modified by users. 351 352 \subsubsection{Horizontally varying mixing coefficients (\protect\key{traldf\_c2d} and \protect\key{dynldf\_c2d})} 353 By default the horizontal variation of the eddy coefficient depends on the local mesh size and 336 The specification of the space variation of the coefficient is made in modules \mdl{ldftra} and \mdl{ldfdyn}. 337 The way the mixing coefficients are set in the reference version can be described as follows: 338 339 \subsection[Mixing coefficients read from file (\forcode{nn_aht_ijk_t = -20, -30}, \forcode{nn_ahm_ijk_t = -20,-30})] 340 { Mixing coefficients read from file (\protect\np{nn\_aht\_ijk\_t}\forcode{ = -20, -30}, \protect\np{nn\_ahm\_ijk\_t}\forcode{ = -20, -30})} 341 342 Mixing coefficients can be read from file if a particular geographical variation is needed. For example, in the ORCA2 global ocean model, 343 the laplacian viscosity operator uses $A^l$~= 4.10$^4$ m$^2$/s poleward of 20$^{\circ}$ north and south and 344 decreases linearly to $A^l$~= 2.10$^3$ m$^2$/s at the equator \citep{madec.delecluse.ea_JPO96, delecluse.madec_icol99}. 345 Similar modified horizontal variations can be found with the Antarctic or Arctic sub-domain options of ORCA2 and ORCA05. 346 The provided fields can either be 2d (\np{nn\_aht\_ijk\_t}\forcode{ = -20}, \np{nn\_ahm\_ijk\_t}\forcode{ = -20}) or 3d (\np{nn\_aht\_ijk\_t}\forcode{ = -30}, \np{nn\_ahm\_ijk\_t}\forcode{ = -30}). They must be given at U, V points for tracers and T, F points for momentum (see \autoref{tab:LDF_files}). 347 348 %-------------------------------------------------TABLE--------------------------------------------------- 349 \begin{table}[htb] 350 \begin{center} 351 \begin{tabular}{|l|l|l|l|} 352 \hline 353 Namelist parameter & Input filename & dimensions & variable names \\ \hline 354 \np{nn\_ahm\_ijk\_t}\forcode{ = -20} & \forcode{eddy_viscosity_2D.nc } & $(i,j)$ & \forcode{ahmt_2d, ahmf_2d} \\ \hline 355 \np{nn\_aht\_ijk\_t}\forcode{ = -20} & \forcode{eddy_diffusivity_2D.nc } & $(i,j)$ & \forcode{ahtu_2d, ahtv_2d} \\ \hline 356 \np{nn\_ahm\_ijk\_t}\forcode{ = -30} & \forcode{eddy_viscosity_3D.nc } & $(i,j,k)$ & \forcode{ahmt_3d, ahmf_3d} \\ \hline 357 \np{nn\_aht\_ijk\_t}\forcode{ = -30} & \forcode{eddy_diffusivity_3D.nc } & $(i,j,k)$ & \forcode{ahtu_3d, ahtv_3d} \\ \hline 358 \end{tabular} 359 \caption{ 360 \protect\label{tab:LDF_files} 361 Description of expected input files if mixing coefficients are read from NetCDF files. 362 } 363 \end{center} 364 \end{table} 365 %-------------------------------------------------------------------------------------------------------------- 366 367 \subsection[Constant mixing coefficients (\forcode{nn_aht_ijk_t = 0}, \forcode{nn_ahm_ijk_t = 0})] 368 { Constant mixing coefficients (\protect\np{nn\_aht\_ijk\_t}\forcode{ = 0}, \protect\np{nn\_ahm\_ijk\_t}\forcode{ = 0})} 369 370 If constant, mixing coefficients are set thanks to a velocity and a length scales ($U_{scl}$, $L_{scl}$) such that: 371 372 \begin{equation} 373 \label{eq:constantah} 374 A_o^l = \left\{ 375 \begin{aligned} 376 & \frac{1}{2} U_{scl} L_{scl} & \text{for laplacian operator } \\ 377 & \frac{1}{12} U_{scl} L_{scl}^3 & \text{for bilaplacian operator } 378 \end{aligned} 379 \right. 380 \end{equation} 381 382 $U_{scl}$ and $L_{scl}$ are given by the namelist parameters \np{rn\_Ud}, \np{rn\_Uv}, \np{rn\_Ld} and \np{rn\_Lv}. 383 384 \subsection[Vertically varying mixing coefficients (\forcode{nn_aht_ijk_t = 10}, \forcode{nn_ahm_ijk_t = 10})] 385 {Vertically varying mixing coefficients (\protect\np{nn\_aht\_ijk\_t}\forcode{ = 10}, \protect\np{nn\_ahm\_ijk\_t}\forcode{ = 10})} 386 387 In the vertically varying case, a hyperbolic variation of the lateral mixing coefficient is introduced in which 388 the surface value is given by \autoref{eq:constantah}, the bottom value is 1/4 of the surface value, 389 and the transition takes place around z=500~m with a width of 200~m. 390 This profile is hard coded in module \mdl{ldfc1d\_c2d}, but can be easily modified by users. 391 392 \subsection[Mesh size dependent mixing coefficients (\forcode{nn_aht_ijk_t = 20}, \forcode{nn_ahm_ijk_t = 20})] 393 {Mesh size dependent mixing coefficients (\protect\np{nn\_aht\_ijk\_t}\forcode{ = 20}, \protect\np{nn\_ahm\_ijk\_t}\forcode{ = 20})} 394 395 In that case, the horizontal variation of the eddy coefficient depends on the local mesh size and 354 396 the type of operator used: 355 397 \begin{equation} … … 357 399 A_l = \left\{ 358 400 \begin{aligned} 359 & \frac{ \max(e_1,e_2)}{e_{max}} A_o^l& \text{for laplacian operator } \\360 & \frac{ \max(e_1,e_2)^{3}}{e_{max}^{3}} A_o^l& \text{for bilaplacian operator }401 & \frac{1}{2} U_{scl} \max(e_1,e_2) & \text{for laplacian operator } \\ 402 & \frac{1}{12} U_{scl} \max(e_1,e_2)^{3} & \text{for bilaplacian operator } 361 403 \end{aligned} 362 404 \right. 363 405 \end{equation} 364 where $e_{max}$ is the maximum of $e_1$ and $e_2$ taken over the whole masked ocean domain, 365 and $A_o^l$ is the \np{rn\_ahm0} (momentum) or \np{rn\_aht0} (tracer) namelist parameter. 406 where $U_{scl}$ is a user defined velocity scale (\np{rn\_Ud}, \np{rn\_Uv}). 366 407 This variation is intended to reflect the lesser need for subgrid scale eddy mixing where 367 408 the grid size is smaller in the domain. 368 It was introduced in the context of the DYNAMO modelling project \citep{ Willebrand_al_PO01}.369 Note that such a grid scale dependance of mixing coefficients significantly increase the range of stability of370 model configurations presenting large changes in grid pacing such as global ocean models.409 It was introduced in the context of the DYNAMO modelling project \citep{willebrand.barnier.ea_PO01}. 410 Note that such a grid scale dependance of mixing coefficients significantly increases the range of stability of 411 model configurations presenting large changes in grid spacing such as global ocean models. 371 412 Indeed, in such a case, a constant mixing coefficient can lead to a blow up of the model due to 372 413 large coefficient compare to the smallest grid size (see \autoref{sec:STP_forward_imp}), 373 414 especially when using a bilaplacian operator. 374 415 375 Other formulations can be introduced by the user for a given configuration. 376 For example, in the ORCA2 global ocean model (see Configurations), 377 the laplacian viscosity operator uses \np{rn\_ahm0}~= 4.10$^4$ m$^2$/s poleward of 20$^{\circ}$ north and south and 378 decreases linearly to \np{rn\_aht0}~= 2.10$^3$ m$^2$/s at the equator \citep{Madec_al_JPO96, Delecluse_Madec_Bk00}. 379 This modification can be found in routine \rou{ldf\_dyn\_c2d\_orca} defined in \mdl{ldfdyn\_c2d}. 380 Similar modified horizontal variations can be found with the Antarctic or Arctic sub-domain options of 381 ORCA2 and ORCA05 (see \&namcfg namelist). 382 383 \subsubsection{Space varying mixing coefficients (\protect\key{traldf\_c3d} and \key{dynldf\_c3d})} 384 385 The 3D space variation of the mixing coefficient is simply the combination of the 1D and 2D cases, 416 \colorbox{yellow}{CASE \np{nn\_aht\_ijk\_t} = 21 to be added} 417 418 \subsection[Mesh size and depth dependent mixing coefficients (\forcode{nn_aht_ijk_t = 30}, \forcode{nn_ahm_ijk_t = 30})] 419 {Mesh size and depth dependent mixing coefficients (\protect\np{nn\_aht\_ijk\_t}\forcode{ = 30}, \protect\np{nn\_ahm\_ijk\_t}\forcode{ = 30})} 420 421 The 3D space variation of the mixing coefficient is simply the combination of the 1D and 2D cases above, 386 422 \ie a hyperbolic tangent variation with depth associated with a grid size dependence of 387 423 the magnitude of the coefficient. 388 424 389 \subsubsection{Space and time varying mixing coefficients} 390 391 There is no default specification of space and time varying mixing coefficient. 392 The only case available is specific to the ORCA2 and ORCA05 global ocean configurations. 393 It provides only a tracer mixing coefficient for eddy induced velocity (ORCA2) or both iso-neutral and 394 eddy induced velocity (ORCA05) that depends on the local growth rate of baroclinic instability. 395 This specification is actually used when an ORCA key and both \key{traldf\_eiv} and \key{traldf\_c2d} are defined. 425 \subsection[Velocity dependent mixing coefficients (\forcode{nn_aht_ijk_t = 31}, \forcode{nn_ahm_ijk_t = 31})] 426 {Flow dependent mixing coefficients (\protect\np{nn\_aht\_ijk\_t}\forcode{ = 31}, \protect\np{nn\_ahm\_ijk\_t}\forcode{ = 31})} 427 In that case, the eddy coefficient is proportional to the local velocity magnitude so that the Reynolds number $Re = \lvert U \rvert e / A_l$ is constant (and here hardcoded to $12$): 428 \colorbox{yellow}{JC comment: The Reynolds is effectively set to 12 in the code for both operators but shouldn't it be 2 for Laplacian ?} 429 430 \begin{equation} 431 \label{eq:flowah} 432 A_l = \left\{ 433 \begin{aligned} 434 & \frac{1}{12} \lvert U \rvert e & \text{for laplacian operator } \\ 435 & \frac{1}{12} \lvert U \rvert e^3 & \text{for bilaplacian operator } 436 \end{aligned} 437 \right. 438 \end{equation} 439 440 \subsection[Deformation rate dependent viscosities (\forcode{nn_ahm_ijk_t = 32})] 441 {Deformation rate dependent viscosities (\protect\np{nn\_ahm\_ijk\_t}\forcode{ = 32})} 442 443 This option refers to the \citep{smagorinsky_MW63} scheme which is here implemented for momentum only. Smagorinsky chose as a 444 characteristic time scale $T_{smag}$ the deformation rate and for the lengthscale $L_{smag}$ the maximum wavenumber possible on the horizontal grid, e.g.: 445 446 \begin{equation} 447 \label{eq:smag1} 448 \begin{split} 449 T_{smag}^{-1} & = \sqrt{\left( \partial_x u - \partial_y v\right)^2 + \left( \partial_y u + \partial_x v\right)^2 } \\ 450 L_{smag} & = \frac{1}{\pi}\frac{e_1 e_2}{e_1 + e_2} 451 \end{split} 452 \end{equation} 453 454 Introducing a user defined constant $C$ (given in the namelist as \np{rn\_csmc}), one can deduce the mixing coefficients as follows: 455 456 \begin{equation} 457 \label{eq:smag2} 458 A_{smag} = \left\{ 459 \begin{aligned} 460 & C^2 T_{smag}^{-1} L_{smag}^2 & \text{for laplacian operator } \\ 461 & \frac{C^2}{8} T_{smag}^{-1} L_{smag}^4 & \text{for bilaplacian operator } 462 \end{aligned} 463 \right. 464 \end{equation} 465 466 For stability reasons, upper and lower limits are applied on the resulting coefficient (see \autoref{sec:STP_forward_imp}) so that: 467 \begin{equation} 468 \label{eq:smag3} 469 \begin{aligned} 470 & C_{min} \frac{1}{2} \lvert U \rvert e < A_{smag} < C_{max} \frac{e^2}{ 8\rdt} & \text{for laplacian operator } \\ 471 & C_{min} \frac{1}{12} \lvert U \rvert e^3 < A_{smag} < C_{max} \frac{e^4}{64 \rdt} & \text{for bilaplacian operator } 472 \end{aligned} 473 \end{equation} 474 475 where $C_{min}$ and $C_{max}$ are adimensional namelist parameters given by \np{rn\_minfac} and \np{rn\_maxfac} respectively. 476 477 \subsection{About space and time varying mixing coefficients} 396 478 397 479 The following points are relevant when the eddy coefficient varies spatially: … … 406 488 (\autoref{sec:dynldf_properties}). 407 489 408 (3) for isopycnal diffusion on momentum or tracers, an additional purely horizontal background diffusion with409 uniform coefficient can be added by setting a non zero value of \np{rn\_ahmb0} or \np{rn\_ahtb0},410 a background horizontal eddy viscosity or diffusivity coefficient411 (namelist parameters whose default values are $0$).412 However, the technique used to compute the isopycnal slopes is intended to get rid of such a background diffusion,413 since it introduces spurious diapycnal diffusion (see \autoref{sec:LDF_slp}).414 415 (4) when an eddy induced advection term is used (\key{traldf\_eiv}),416 $A^{eiv}$, the eddy induced coefficient has to be defined.417 Its space variations are controlled by the same CPP variable as for the eddy diffusivity coefficient418 (\ie \key{traldf\_cNd}).419 420 (5) the eddy coefficient associated with a biharmonic operator must be set to a \emph{negative} value.421 422 (6) it is possible to use both the laplacian and biharmonic operators concurrently.423 424 (7) it is possible to run without explicit lateral diffusion on momentum425 (\np{ln\_dynldf\_lap}\forcode{ = .?.}\np{ln\_dynldf\_bilap}\forcode{ = .false.}).426 This is recommended when using the UBS advection scheme on momentum (\np{ln\_dynadv\_ubs}\forcode{ = .true.},427 see \autoref{subsec:DYN_adv_ubs}) and can be useful for testing purposes.428 429 490 % ================================================================ 430 491 % Eddy Induced Mixing 431 492 % ================================================================ 432 \section{Eddy induced velocity (\protect\mdl{traadv\_eiv}, \protect\mdl{ldfeiv})} 493 \section[Eddy induced velocity (\forcode{ln_ldfeiv = .true.})] 494 {Eddy induced velocity (\protect\np{ln\_ldfeiv}\forcode{ = .true.})} 495 433 496 \label{sec:LDF_eiv} 497 498 %--------------------------------------------namtra_eiv--------------------------------------------------- 499 500 \nlst{namtra_eiv} 501 502 %-------------------------------------------------------------------------------------------------------------- 503 434 504 435 505 %%gm from Triad appendix : to be incorporated.... … … 453 523 } 454 524 455 When Gent and McWilliams [1990] diffusion is used (\key{traldf\_eiv} defined),525 When \citet{gent.mcwilliams_JPO90} diffusion is used (\np{ln\_ldfeiv}\forcode{ = .true.}), 456 526 an eddy induced tracer advection term is added, 457 527 the formulation of which depends on the slopes of iso-neutral surfaces. … … 459 529 \ie \autoref{eq:ldfslp_geo} is used in $z$-coordinates, 460 530 and the sum \autoref{eq:ldfslp_geo} + \autoref{eq:ldfslp_iso} in $s$-coordinates. 461 The eddy induced velocity is given by: 531 532 If isopycnal mixing is used in the standard way, \ie \np{ln\_traldf\_triad}\forcode{ = .false.}, the eddy induced velocity is given by: 462 533 \begin{equation} 463 534 \label{eq:ldfeiv} … … 468 539 \end{split} 469 540 \end{equation} 470 where $A^{eiv}$ is the eddy induced velocity coefficient whose value is set through \np{rn\_aeiv}, 471 a \textit{nam\_traldf} namelist parameter. 472 The three components of the eddy induced velocity are computed and 473 add to the eulerian velocity in \mdl{traadv\_eiv}. 541 where $A^{eiv}$ is the eddy induced velocity coefficient whose value is set through \np{nn\_aei\_ijk\_t} \ngn{namtra\_eiv} namelist parameter. 542 The three components of the eddy induced velocity are computed in \rou{ldf\_eiv\_trp} and 543 added to the eulerian velocity in \rou{tra\_adv} where tracer advection is performed. 474 544 This has been preferred to a separate computation of the advective trends associated with the eiv velocity, 475 545 since it allows us to take advantage of all the advection schemes offered for the tracers 476 546 (see \autoref{sec:TRA_adv}) and not just the $2^{nd}$ order advection scheme as in 477 previous releases of OPA \citep{ Madec1998}.547 previous releases of OPA \citep{madec.delecluse.ea_NPM98}. 478 548 This is particularly useful for passive tracers where \emph{positivity} of the advection scheme is of 479 549 paramount importance. … … 481 551 At the surface, lateral and bottom boundaries, the eddy induced velocity, 482 552 and thus the advective eddy fluxes of heat and salt, are set to zero. 553 The value of the eddy induced mixing coefficient and its space variation is controlled in a similar way as for lateral mixing coefficient described in the preceding subsection (\np{nn\_aei\_ijk\_t}, \np{rn\_Ue}, \np{rn\_Le} namelist parameters). 554 \colorbox{yellow}{CASE \np{nn\_aei\_ijk\_t} = 21 to be added} 555 556 In case of setting \np{ln\_traldf\_triad}\forcode{ = .true.}, a skew form of the eddy induced advective fluxes is used, which is described in \autoref{apdx:triad}. 557 558 % ================================================================ 559 % Mixed layer eddies 560 % ================================================================ 561 \section[Mixed layer eddies (\forcode{ln_mle = .true.})] 562 {Mixed layer eddies (\protect\np{ln\_mle}\forcode{ = .true.})} 563 564 \label{sec:LDF_mle} 565 566 %--------------------------------------------namtra_eiv--------------------------------------------------- 567 568 \nlst{namtra_mle} 569 570 %-------------------------------------------------------------------------------------------------------------- 571 572 If \np{ln\_mle}\forcode{ = .true.} in \ngn{namtra\_mle} namelist, a parameterization of the mixing due to unresolved mixed layer instabilities is activated (\citet{foxkemper.ferrari_JPO08}). Additional transport is computed in \rou{ldf\_mle\_trp} and added to the eulerian transport in \rou{tra\_adv} as done for eddy induced advection. 573 574 \colorbox{yellow}{TBC} 483 575 484 576 \biblio -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_OBS.tex
r10442 r11422 8 8 \label{chap:OBS} 9 9 10 Authors: D. Lea, M. Martin, K. Mogensen, A. Vidard, A. Weaver, A. Ryan, ... % do we keep that ?11 12 10 \minitoc 13 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.6} & {\em M. Martin, A. Ryan} & {\em Add averaging operator, standalone obs oper} \\ 19 {\em 3.4} & {\em D. J. Lea, M. Martin, ...} & {\em Initial version} \\ 20 {\em --\texttt{"}--} & {\em ... K. Mogensen, A. Vidard, A. Weaver} & {\em ---\texttt{"}---} \\ 21 \end{tabular} 22 \end{figure} 23 14 24 \newpage 15 25 16 The observation and model comparison code (OBS)reads in observation files17 (profile temperature and salinity, sea surface temperature, sea level anomaly, sea ice concentration, and velocity) and calculates an interpolated model equivalent value at the observation location and nearest model time step.26 The observation and model comparison code, the observation operator (OBS), reads in observation files 27 (profile temperature and salinity, sea surface temperature, sea level anomaly, sea ice concentration, and velocity) and calculates an interpolated model equivalent value at the observation location and nearest model time step. 18 28 The resulting data are saved in a ``feedback'' file (or files). 19 29 The code was originally developed for use with the NEMOVAR data assimilation code, 20 30 but can be used for validation or verification of the model or with any other data assimilation system. 21 31 22 The OBS code is called from \mdl{nemogcm} for model initialisation and to calculate the model equivalent values for observations on the 0th time step.23 The code is then called again after each time step from \mdl{step}.24 The code is only activated if the namelist logical \np{ln\_diaobs} is set to true.32 The OBS code is called from \mdl{nemogcm} for model initialisation and to calculate the model equivalent values for observations on the 0th time step. 33 The code is then called again after each time step from \mdl{step}. 34 The code is only activated if the \ngn{namobs} namelist logical \np{ln\_diaobs} is set to true. 25 35 26 36 For all data types a 2D horizontal interpolator or averager is needed to … … 28 38 For {\em in situ} profiles, a 1D vertical interpolator is needed in addition to 29 39 provide model fields at the observation depths. 30 This now works in a generalised vertical coordinate system. 40 This now works in a generalised vertical coordinate system. 31 41 32 42 Some profile observation types (\eg tropical moored buoys) are made available as daily averaged quantities. … … 36 46 the observation operator code can calculate equivalent night-time average model SST fields by 37 47 setting the namelist value \np{ln\_sstnight} to true. 38 Otherwise the model value from the nearest timestep to the observation time is used.39 40 The code is controlled by the namelist \ textit{namobs}.48 Otherwise (by default) the model value from the nearest time step to the observation time is used. 49 50 The code is controlled by the namelist \ngn{namobs}. 41 51 See the following sections for more details on setting up the namelist. 42 52 43 \autoref{sec:OBS_example} introduces a test example of the observation operator codeincluding53 In \autoref{sec:OBS_example} a test example of the observation operator code is introduced, including 44 54 where to obtain data and how to setup the namelist. 45 \autoref{sec:OBS_details} introduces some more technical details of the different observation types used and 46 also show sa more complete namelist.47 \autoref{sec:OBS_theory} introduces some of the theoretical aspects of the observation operatorincluding55 In \autoref{sec:OBS_details} some more technical details of the different observation types used are introduced, and we 56 also show a more complete namelist. 57 In \autoref{sec:OBS_theory} some of the theoretical aspects of the observation operator are described including 48 58 interpolation methods and running on multiple processors. 49 \autoref{sec:OBS_ooo} describes the offline observation operator code.50 \autoref{sec:OBS_obsutils} introduces some utilities to help workingwith the files produced by the OBS code.59 In \autoref{sec:OBS_sao} the standalone observation operator code is described. 60 In \autoref{sec:OBS_obsutils} we describe some utilities to help work with the files produced by the OBS code. 51 61 52 62 % ================================================================ … … 56 66 \label{sec:OBS_example} 57 67 58 This section describes an example of running the observation operator codeusing59 profile data which can be freely downloaded.60 It shows how to adapt an existing run and build of NEMO to run the observation operator.68 In this section an example of running the observation operator code is described using 69 profile observation data which can be freely downloaded. 70 It shows how to adapt an existing run and build of \NEMO to run the observation operator. Note also the observation operator and the assimilation increments code are run in the \np{ORCA2\_ICE\_OBS} SETTE test. 61 71 62 72 \begin{enumerate} … … 65 75 \item Download some EN4 data from \href{http://www.metoffice.gov.uk/hadobs}{www.metoffice.gov.uk/hadobs}. 66 76 Choose observations which are valid for the period of your test run because 67 the observation operator compares the model and observations for a matching date and time. 68 69 \item Compile the OBSTOOLS code using:77 the observation operator compares the model and observations for a matching date and time. 78 79 \item Compile the OBSTOOLS code in the \np{tools} directory using: 70 80 \begin{cmds} 71 ./maketools -n OBSTOOLS -m [ARCH] .81 ./maketools -n OBSTOOLS -m [ARCH] 72 82 \end{cmds} 73 83 74 \item Convert the EN4 data into feedback format: 84 replacing \np{[ARCH]} with the build architecture file for your machine. Note the tools are checked out from a separate repository under \np{utils/tools}. 85 86 \item Convert the EN4 data into feedback format: 75 87 \begin{cmds} 76 88 enact2fb.exe profiles_01.nc EN.4.1.1.f.profiles.g10.YYYYMM.nc 77 89 \end{cmds} 78 90 79 \item Include the following in the NEMO namelist to run the observation operator on this data:91 \item Include the following in the \NEMO namelist to run the observation operator on this data: 80 92 \end{enumerate} 81 93 … … 87 99 This can be expensive, particularly for large numbers of observations, 88 100 setting \np{ln\_grid\_search\_lookup} allows the use of a lookup table which 89 is saved into an ``xypos``file (or files).101 is saved into an \np{cn\_gridsearch} file (or files). 90 102 This will need to be generated the first time if it does not exist in the run directory. 91 103 However, once produced it will significantly speed up future grid searches. 92 104 Setting \np{ln\_grid\_global} means that the code distributes the observations evenly between processors. 93 105 Alternatively each processor will work with observations located within the model subdomain 94 (see section~\autoref{subsec:OBS_parallel}).106 (see \autoref{subsec:OBS_parallel}). 95 107 96 108 A number of utilities are now provided to plot the feedback files, convert and recombine the files. 97 These are explained in more detail in section~\autoref{sec:OBS_obsutils}.98 Utilit es to convert other input data formats into the feedback format are also described in99 section~\autoref{sec:OBS_obsutils}.109 These are explained in more detail in \autoref{sec:OBS_obsutils}. 110 Utilities to convert other input data formats into the feedback format are also described in 111 \autoref{sec:OBS_obsutils}. 100 112 101 113 \section{Technical details (feedback type observation file headers)} … … 110 122 %------------------------------------------------------------------------------------------------------------- 111 123 112 The observation operator code uses the "feedback"observation file format for all data types.124 The observation operator code uses the feedback observation file format for all data types. 113 125 All the observation files must be in NetCDF format. 114 126 Some example headers (produced using \mbox{\textit{ncdump~-h}}) for profile data, sea level anomaly and 115 127 sea surface temperature are in the following subsections. 116 128 117 \subsection{Profile feedback }129 \subsection{Profile feedback file} 118 130 119 131 \begin{clines} … … 271 283 \end{clines} 272 284 273 \subsection{Sea level anomaly feedback }285 \subsection{Sea level anomaly feedback file} 274 286 275 287 \begin{clines} … … 395 407 \end{clines} 396 408 397 T he mean dynamic topography (MDT) must be provided in a separate file defined on409 To use Sea Level Anomaly (SLA) data the mean dynamic topography (MDT) must be provided in a separate file defined on 398 410 the model grid called \ifile{slaReferenceLevel}. 399 411 The MDT is required in order to produce the model equivalent sea level anomaly from the model sea surface height. … … 417 429 \end{clines} 418 430 419 \subsection{Sea surface temperature feedback }431 \subsection{Sea surface temperature feedback file} 420 432 421 433 \begin{clines} … … 546 558 In those cases the model counterpart should be calculated by averaging the model grid points over 547 559 the same size as the footprint. 548 NEMO therefore has the capability to specify either an interpolation or an averaging549 (for surface observation types only). 560 \NEMO therefore has the capability to specify either an interpolation or an averaging 561 (for surface observation types only). 550 562 551 563 The main namelist option associated with the interpolation/averaging is \np{nn\_2dint}. … … 559 571 \item \np{nn\_2dint}\forcode{ = 4}: Polynomial interpolation 560 572 \item \np{nn\_2dint}\forcode{ = 5}: Radial footprint averaging with diameter specified in the namelist as 561 \np{rn\_ ???\_avglamscl} in degrees or metres (set using \np{ln\_???\_fp\_indegs})573 \np{rn\_[var]\_avglamscl} in degrees or metres (set using \np{ln\_[var]\_fp\_indegs}) 562 574 \item \np{nn\_2dint}\forcode{ = 6}: Rectangular footprint averaging with E/W and N/S size specified in 563 the namelist as \np{rn\_ ???\_avglamscl} and \np{rn\_???\_avgphiscl} in degrees or metres564 (set using \np{ln\_ ???\_fp\_indegs})575 the namelist as \np{rn\_[var]\_avglamscl} and \np{rn\_[var]\_avgphiscl} in degrees or metres 576 (set using \np{ln\_[var]\_fp\_indegs}) 565 577 \end{itemize} 566 The ??? in the last two options indicate these options should be specified for each observation typefor578 Replace \np{[var]} in the last two options with the observation type (sla, sst, sss or sic) for 567 579 which the averaging is to be performed (see namelist example above). 568 580 The \np{nn\_2dint} default option can be overridden for surface observation types using 569 namelist values \np{nn\_2dint\_ ???} where ??? is one of sla,sst,sss,sic.581 namelist values \np{nn\_2dint\_[var]} where \np{[var]} is the observation type. 570 582 571 583 Below is some more detail on the various options for interpolation and averaging available in NEMO. … … 573 585 \subsubsection{Horizontal interpolation} 574 586 575 Consider an observation point ${\rm P}$ with with longitude and latitude $({\lambda_{}}_{\rm P}, \phi_{\rm P})$ and 576 the four nearest neighbouring model grid points ${\rm A}$, ${\rm B}$, ${\rm C}$ and ${\rm D}$ with 577 longitude and latitude ($\lambda_{\rm A}$, $\phi_{\rm A}$),($\lambda_{\rm B}$, $\phi_{\rm B}$) etc. 578 All horizontal interpolation methods implemented in NEMO estimate the value of a model variable $x$ at point $P$ as 579 a weighted linear combination of the values of the model variables at the grid points ${\rm A}$, ${\rm B}$ etc.: 587 Consider an observation point ${\mathrm P}$ with longitude and latitude (${\lambda_{}}_{\mathrm P}$, $\phi_{\mathrm P}$) and 588 the four nearest neighbouring model grid points ${\mathrm A}$, ${\mathrm B}$, ${\mathrm C}$ and ${\mathrm D}$ with 589 longitude and latitude ($\lambda_{\mathrm A}$, $\phi_{\mathrm A}$),($\lambda_{\mathrm B}$, $\phi_{\mathrm B}$) etc. 590 All horizontal interpolation methods implemented in \NEMO estimate the value of a model variable $x$ at point $P$ as 591 a weighted linear combination of the values of the model variables at the grid points ${\mathrm A}$, ${\mathrm B}$ etc.: 592 580 593 \begin{align*} 581 {x_{}}_{\ rm P} & \hspace{-2mm} = \hspace{-2mm} &582 \frac{1}{w} \left( {w_{}}_{\rm A} {x_{}}_{\rm A} +583 {w_{}}_{\rm B} {x_{}}_{\rm B} +584 {w_{}}_{\rm C} {x_{}}_{\rm C} +585 {w_{}}_{\rm D} {x_{}}_{\rm D} \right)594 {x_{}}_{\mathrm P} = 595 \frac{1}{w} \left( {w_{}}_{\mathrm A} {x_{}}_{\mathrm A} + 596 {w_{}}_{\mathrm B} {x_{}}_{\mathrm B} + 597 {w_{}}_{\mathrm C} {x_{}}_{\mathrm C} + 598 {w_{}}_{\mathrm D} {x_{}}_{\mathrm D} \right) 586 599 \end{align*} 587 where ${w_{}}_{\rm A}$, ${w_{}}_{\rm B}$ etc. are the respective weights for the model field at 588 points ${\rm A}$, ${\rm B}$ etc., and $w = {w_{}}_{\rm A} + {w_{}}_{\rm B} + {w_{}}_{\rm C} + {w_{}}_{\rm D}$. 600 601 where ${w_{}}_{\mathrm A}$, ${w_{}}_{\mathrm B}$ etc. are the respective weights for the model field at 602 points ${\mathrm A}$, ${\mathrm B}$ etc., and $w = {w_{}}_{\mathrm A} + {w_{}}_{\mathrm B} + {w_{}}_{\mathrm C} + {w_{}}_{\mathrm D}$. 589 603 590 604 Four different possibilities are available for computing the weights. … … 592 606 \begin{enumerate} 593 607 594 \item[1.] {\bf Great-Circle distance-weighted interpolation.}608 \item[1.] {\bfseries Great-Circle distance-weighted interpolation.} 595 609 The weights are computed as a function of the great-circle distance $s(P, \cdot)$ between $P$ and 596 610 the model grid points $A$, $B$ etc. 597 For example, the weight given to the field ${x_{}}_{\rm A}$ is specified as the product of the distances 598 from ${\rm P}$ to the other points: 599 \begin{align*} 600 {w_{}}_{\rm A} = s({\rm P}, {\rm B}) \, s({\rm P}, {\rm C}) \, s({\rm P}, {\rm D}) 601 \end{align*} 602 where 603 \begin{align*} 604 s\left ({\rm P}, {\rm M} \right ) 605 & \hspace{-2mm} = \hspace{-2mm} & 606 \cos^{-1} \! \left\{ 607 \sin {\phi_{}}_{\rm P} \sin {\phi_{}}_{\rm M} 608 + \cos {\phi_{}}_{\rm P} \cos {\phi_{}}_{\rm M} 609 \cos ({\lambda_{}}_{\rm M} - {\lambda_{}}_{\rm P}) 611 For example, the weight given to the field ${x_{}}_{\mathrm A}$ is specified as the product of the distances 612 from ${\mathrm P}$ to the other points: 613 614 \begin{alignat*}{2} 615 {w_{}}_{\mathrm A} = s({\mathrm P}, {\mathrm B}) \, s({\mathrm P}, {\mathrm C}) \, s({\mathrm P}, {\mathrm D}) 616 \end{alignat*} 617 618 where 619 620 \begin{alignat*}{2} 621 s\left({\mathrm P}, {\mathrm M} \right) & = & \hspace{0.25em} \cos^{-1} \! \left\{ 622 \sin {\phi_{}}_{\mathrm P} \sin {\phi_{}}_{\mathrm M} 623 + \cos {\phi_{}}_{\mathrm P} \cos {\phi_{}}_{\mathrm M} 624 \cos ({\lambda_{}}_{\mathrm M} - {\lambda_{}}_{\mathrm P}) 610 625 \right\} 611 \end{align*} 626 \end{alignat*} 627 612 628 and $M$ corresponds to $B$, $C$ or $D$. 613 629 A more stable form of the great-circle distance formula for small distances ($x$ near 1) 614 involves the arcsine function (\eg see p.~101 of \citet{Daley_Barker_Bk01}: 615 \begin{align*} 616 s\left( {\rm P}, {\rm M} \right) & \hspace{-2mm} = \hspace{-2mm} & \sin^{-1} \! \left\{ \sqrt{ 1 - x^2 } \right\} 617 \end{align*} 630 involves the arcsine function (\eg see p.~101 of \citet{daley.barker_bk01}: 631 632 \begin{alignat*}{2} 633 s\left( {\mathrm P}, {\mathrm M} \right) = \sin^{-1} \! \left\{ \sqrt{ 1 - x^2 } \right\} 634 \end{alignat*} 635 618 636 where 619 \begin{align*} 620 x & \hspace{-2mm} = \hspace{-2mm} & 621 {a_{}}_{\rm M} {a_{}}_{\rm P} + {b_{}}_{\rm M} {b_{}}_{\rm P} + {c_{}}_{\rm M} {c_{}}_{\rm P} 622 \end{align*} 623 and 624 \begin{align*} 625 {a_{}}_{\rm M} & \hspace{-2mm} = \hspace{-2mm} & \sin {\phi_{}}_{\rm M}, \\ 626 {a_{}}_{\rm P} & \hspace{-2mm} = \hspace{-2mm} & \sin {\phi_{}}_{\rm P}, \\ 627 {b_{}}_{\rm M} & \hspace{-2mm} = \hspace{-2mm} & \cos {\phi_{}}_{\rm M} \cos {\phi_{}}_{\rm M}, \\ 628 {b_{}}_{\rm P} & \hspace{-2mm} = \hspace{-2mm} & \cos {\phi_{}}_{\rm P} \cos {\phi_{}}_{\rm P}, \\ 629 {c_{}}_{\rm M} & \hspace{-2mm} = \hspace{-2mm} & \cos {\phi_{}}_{\rm M} \sin {\phi_{}}_{\rm M}, \\ 630 {c_{}}_{\rm P} & \hspace{-2mm} = \hspace{-2mm} & \cos {\phi_{}}_{\rm P} \sin {\phi_{}}_{\rm P}. 631 \end{align*} 632 633 \item[2.] {\bf Great-Circle distance-weighted interpolation with small angle approximation.} 637 638 \begin{alignat*}{2} 639 x = {a_{}}_{\mathrm M} {a_{}}_{\mathrm P} + {b_{}}_{\mathrm M} {b_{}}_{\mathrm P} + {c_{}}_{\mathrm M} {c_{}}_{\mathrm P} 640 \end{alignat*} 641 642 and 643 644 \begin{alignat*}{3} 645 & {a_{}}_{\mathrm M} & = && \quad \sin {\phi_{}}_{\mathrm M}, \\ 646 & {a_{}}_{\mathrm P} & = && \quad \sin {\phi_{}}_{\mathrm P}, \\ 647 & {b_{}}_{\mathrm M} & = && \quad \cos {\phi_{}}_{\mathrm M} \cos {\phi_{}}_{\mathrm M}, \\ 648 & {b_{}}_{\mathrm P} & = && \quad \cos {\phi_{}}_{\mathrm P} \cos {\phi_{}}_{\mathrm P}, \\ 649 & {c_{}}_{\mathrm M} & = && \quad \cos {\phi_{}}_{\mathrm M} \sin {\phi_{}}_{\mathrm M}, \\ 650 & {c_{}}_{\mathrm P} & = && \quad \cos {\phi_{}}_{\mathrm P} \sin {\phi_{}}_{\mathrm P}. 651 \end{alignat*} 652 653 \item[2.] {\bfseries Great-Circle distance-weighted interpolation with small angle approximation.} 634 654 Similar to the previous interpolation but with the distance $s$ computed as 635 \begin{align*} 636 s\left( {\rm P}, {\rm M} \right) 637 & \hspace{-2mm} = \hspace{-2mm} & 638 \sqrt{ \left( {\phi_{}}_{\rm M} - {\phi_{}}_{\rm P} \right)^{2} 639 + \left( {\lambda_{}}_{\rm M} - {\lambda_{}}_{\rm P} \right)^{2} 640 \cos^{2} {\phi_{}}_{\rm M} } 641 \end{align*} 655 \begin{alignat*}{2} 656 s\left( {\mathrm P}, {\mathrm M} \right) 657 & = & \sqrt{ \left( {\phi_{}}_{\mathrm M} - {\phi_{}}_{\mathrm P} \right)^{2} 658 + \left( {\lambda_{}}_{\mathrm M} - {\lambda_{}}_{\mathrm P} \right)^{2} 659 \cos^{2} {\phi_{}}_{\mathrm M} } 660 \end{alignat*} 642 661 where $M$ corresponds to $A$, $B$, $C$ or $D$. 643 662 644 \item[3.] {\bf Bilinear interpolation for a regular spaced grid.}663 \item[3.] {\bfseries Bilinear interpolation for a regular spaced grid.} 645 664 The interpolation is split into two 1D interpolations in the longitude and latitude directions, respectively. 646 665 647 \item[4.] {\bf Bilinear remapping interpolation for a general grid.}666 \item[4.] {\bfseries Bilinear remapping interpolation for a general grid.} 648 667 An iterative scheme that involves first mapping a quadrilateral cell into 649 668 a cell with coordinates (0,0), (1,0), (0,1) and (1,1). 650 This method is based on the SCRIP interpolation package \citep{Jones_1998}.651 669 This method is based on the \href{https://github.com/SCRIP-Project/SCRIP}{SCRIP interpolation package}. 670 652 671 \end{enumerate} 653 672 … … 658 677 \item The standard grid-searching code is used to find the nearest model grid point to the observation location 659 678 (see next subsection). 660 \item The maximum number of grid points is calculated in the local grid domain for which 661 the averaging is likely need to cover. 662 \item The lats/longs of the grid points surrounding the nearest model grid box are extracted using 663 existing mpi routines. 679 \item The maximum number of grid points required for that observation in each local grid domain is calculated. Some of these points may later turn out to have zero weight depending on the shape of the footprint. 680 \item The longitudes and latitudes of the grid points surrounding the nearest model grid box are extracted using 681 existing MPI routines. 664 682 \item The weights for each grid point associated with each observation are calculated, 665 683 either for radial or rectangular footprints. … … 673 691 674 692 Examples of the weights calculated for an observation with rectangular and radial footprints are shown in 675 Figs.~\autoref{fig:obsavgrec} and~\autoref{fig:obsavgrad}.693 \autoref{fig:obsavgrec} and~\autoref{fig:obsavgrad}. 676 694 677 695 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 678 696 \begin{figure} 679 697 \begin{center} 680 \includegraphics[width= 0.90\textwidth]{Fig_OBS_avg_rec}698 \includegraphics[width=\textwidth]{Fig_OBS_avg_rec} 681 699 \caption{ 682 700 \protect\label{fig:obsavgrec} … … 691 709 \begin{figure} 692 710 \begin{center} 693 \includegraphics[width= 0.90\textwidth]{Fig_OBS_avg_rad}711 \includegraphics[width=\textwidth]{Fig_OBS_avg_rad} 694 712 \caption{ 695 713 \protect\label{fig:obsavgrad} 696 714 Weights associated with each model grid box (blue lines and numbers) 697 715 for an observation at -170.5\deg{E}, 56.0\deg{N} with a radial footprint with diameter 1\deg. 698 } 716 } 699 717 \end{center} 700 718 \end{figure} … … 704 722 \subsection{Grid search} 705 723 706 For many grids used by the NEMO model, such as the ORCA family, the horizontal grid coordinates $i$ and $j$ are not simple functions of latitude and longitude.724 For many grids used by the \NEMO model, such as the ORCA family, the horizontal grid coordinates $i$ and $j$ are not simple functions of latitude and longitude. 707 725 Therefore, it is not always straightforward to determine the grid points surrounding any given observational position. 708 Before the interpolation can be performed, a search algorithm is then required to determine the corner points of 726 Before the interpolation can be performed, a search algorithm is then required to determine the corner points of 709 727 the quadrilateral cell in which the observation is located. 710 This is the most difficult and time consuming part of the 2D interpolation procedure. 728 This is the most difficult and time consuming part of the 2D interpolation procedure. 711 729 A robust test for determining if an observation falls within a given quadrilateral cell is as follows. 712 Let ${\ rm P}({\lambda_{}}_{\rm P} ,{\phi_{}}_{\rm P} )$ denote the observation point,713 and let ${\ rm A}({\lambda_{}}_{\rm A} ,{\phi_{}}_{\rm A} )$, ${\rm B}({\lambda_{}}_{\rm B} ,{\phi_{}}_{\rm B} )$,714 ${\ rm C}({\lambda_{}}_{\rm C} ,{\phi_{}}_{\rm C} )$ and ${\rm D}({\lambda_{}}_{\rm D} ,{\phi_{}}_{\rm D} )$715 denote the bottom left, bottom right, top left and top right corner points of the cell, respectively. 716 To determine if P is inside the cell, we verify that the cross-products 730 Let ${\mathrm P}({\lambda_{}}_{\mathrm P} ,{\phi_{}}_{\mathrm P} )$ denote the observation point, 731 and let ${\mathrm A}({\lambda_{}}_{\mathrm A} ,{\phi_{}}_{\mathrm A} )$, ${\mathrm B}({\lambda_{}}_{\mathrm B} ,{\phi_{}}_{\mathrm B} )$, 732 ${\mathrm C}({\lambda_{}}_{\mathrm C} ,{\phi_{}}_{\mathrm C} )$ and ${\mathrm D}({\lambda_{}}_{\mathrm D} ,{\phi_{}}_{\mathrm D} )$ 733 denote the bottom left, bottom right, top left and top right corner points of the cell, respectively. 734 To determine if P is inside the cell, we verify that the cross-products 717 735 \begin{align*} 718 736 \begin{array}{lllll} 719 {{\ bf r}_{}}_{\rm PA} \times {{\bf r}_{}}_{\rm PC}720 & = & [({\lambda_{}}_{\ rm A}\; -\; {\lambda_{}}_{\rm P} )721 ({\phi_{}}_{\ rm C} \; -\; {\phi_{}}_{\rm P} )722 - ({\lambda_{}}_{\ rm C}\; -\; {\lambda_{}}_{\rm P} )723 ({\phi_{}}_{\ rm A} \; -\; {\phi_{}}_{\rm P} )] \; \widehat{\bf k} \\724 {{\ bf r}_{}}_{\rm PB} \times {{\bf r}_{}}_{\rm PA}725 & = & [({\lambda_{}}_{\ rm B}\; -\; {\lambda_{}}_{\rm P} )726 ({\phi_{}}_{\ rm A} \; -\; {\phi_{}}_{\rm P} )727 - ({\lambda_{}}_{\ rm A}\; -\; {\lambda_{}}_{\rm P} )728 ({\phi_{}}_{\ rm B} \; -\; {\phi_{}}_{\rm P} )] \; \widehat{\bf k} \\729 {{\ bf r}_{}}_{\rm PC} \times {{\bf r}_{}}_{\rm PD}730 & = & [({\lambda_{}}_{\ rm C}\; -\; {\lambda_{}}_{\rm P} )731 ({\phi_{}}_{\ rm D} \; -\; {\phi_{}}_{\rm P} )732 - ({\lambda_{}}_{\ rm D}\; -\; {\lambda_{}}_{\rm P} )733 ({\phi_{}}_{\ rm C} \; -\; {\phi_{}}_{\rm P} )] \; \widehat{\bf k} \\734 {{\ bf r}_{}}_{\rm PD} \times {{\bf r}_{}}_{\rm PB}735 & = & [({\lambda_{}}_{\ rm D}\; -\; {\lambda_{}}_{\rm P} )736 ({\phi_{}}_{\ rm B} \; -\; {\phi_{}}_{\rm P} )737 - ({\lambda_{}}_{\ rm B}\; -\; {\lambda_{}}_{\rm P} )738 ({\phi_{}}_{\ rm D} \; - \; {\phi_{}}_{\rm P} )] \; \widehat{\bf k} \\737 {{\mathbf r}_{}}_{\mathrm PA} \times {{\mathbf r}_{}}_{\mathrm PC} 738 & = & [({\lambda_{}}_{\mathrm A}\; -\; {\lambda_{}}_{\mathrm P} ) 739 ({\phi_{}}_{\mathrm C} \; -\; {\phi_{}}_{\mathrm P} ) 740 - ({\lambda_{}}_{\mathrm C}\; -\; {\lambda_{}}_{\mathrm P} ) 741 ({\phi_{}}_{\mathrm A} \; -\; {\phi_{}}_{\mathrm P} )] \; \widehat{\mathbf k} \\ 742 {{\mathbf r}_{}}_{\mathrm PB} \times {{\mathbf r}_{}}_{\mathrm PA} 743 & = & [({\lambda_{}}_{\mathrm B}\; -\; {\lambda_{}}_{\mathrm P} ) 744 ({\phi_{}}_{\mathrm A} \; -\; {\phi_{}}_{\mathrm P} ) 745 - ({\lambda_{}}_{\mathrm A}\; -\; {\lambda_{}}_{\mathrm P} ) 746 ({\phi_{}}_{\mathrm B} \; -\; {\phi_{}}_{\mathrm P} )] \; \widehat{\mathbf k} \\ 747 {{\mathbf r}_{}}_{\mathrm PC} \times {{\mathbf r}_{}}_{\mathrm PD} 748 & = & [({\lambda_{}}_{\mathrm C}\; -\; {\lambda_{}}_{\mathrm P} ) 749 ({\phi_{}}_{\mathrm D} \; -\; {\phi_{}}_{\mathrm P} ) 750 - ({\lambda_{}}_{\mathrm D}\; -\; {\lambda_{}}_{\mathrm P} ) 751 ({\phi_{}}_{\mathrm C} \; -\; {\phi_{}}_{\mathrm P} )] \; \widehat{\mathbf k} \\ 752 {{\mathbf r}_{}}_{\mathrm PD} \times {{\mathbf r}_{}}_{\mathrm PB} 753 & = & [({\lambda_{}}_{\mathrm D}\; -\; {\lambda_{}}_{\mathrm P} ) 754 ({\phi_{}}_{\mathrm B} \; -\; {\phi_{}}_{\mathrm P} ) 755 - ({\lambda_{}}_{\mathrm B}\; -\; {\lambda_{}}_{\mathrm P} ) 756 ({\phi_{}}_{\mathrm D} \; - \; {\phi_{}}_{\mathrm P} )] \; \widehat{\mathbf k} \\ 739 757 \end{array} 740 758 % \label{eq:cross} 741 759 \end{align*} 742 point in the opposite direction to the unit normal $\widehat{\ bf k}$743 (\ie that the coefficients of $\widehat{\ bf k}$ are negative),744 where ${{\ bf r}_{}}_{\rm PA}$, ${{\bf r}_{}}_{\rm PB}$, etc. correspond to760 point in the opposite direction to the unit normal $\widehat{\mathbf k}$ 761 (\ie that the coefficients of $\widehat{\mathbf k}$ are negative), 762 where ${{\mathbf r}_{}}_{\mathrm PA}$, ${{\mathbf r}_{}}_{\mathrm PB}$, etc. correspond to 745 763 the vectors between points P and A, P and B, etc.. 746 The method used is similar to the method used in the SCRIP interpolation package \citep{Jones_1998}.764 The method used is similar to the method used in the \href{https://github.com/SCRIP-Project/SCRIP}{SCRIP interpolation package}. 747 765 748 766 In order to speed up the grid search, there is the possibility to construct a lookup table for a user specified resolution. … … 750 768 be searched for on a regular grid. 751 769 For each observation position, the closest point on the regular grid of this position is computed and 752 the $i$ and $j$ ranges of this point searched to determine the precise four points surrounding the observation. 770 the $i$ and $j$ ranges of this point searched to determine the precise four points surrounding the observation. 753 771 754 772 \subsection{Parallel aspects of horizontal interpolation} … … 757 775 For horizontal interpolation, there is the basic problem that 758 776 the observations are unevenly distributed on the globe. 759 In numerical models, it is common to divide the model grid into subgrids (or domains) where777 In \NEMO the model grid is divided into subgrids (or domains) where 760 778 each subgrid is executed on a single processing element with explicit message passing for 761 779 exchange of information along the domain boundaries when running on a massively parallel processor (MPP) system. 762 This approach is used by \NEMO. 763 764 For observations there is no natural distribution since the observations are not equally distributed on the globe. 780 781 For observations there is no natural distribution since the observations are not equally distributed on the globe. 765 782 Two options have been made available: 766 783 1) geographical distribution; … … 772 789 \begin{figure} 773 790 \begin{center} 774 \includegraphics[width= 10cm,height=12cm,angle=-90.]{Fig_ASM_obsdist_local}791 \includegraphics[width=\textwidth]{Fig_ASM_obsdist_local} 775 792 \caption{ 776 793 \protect\label{fig:obslocal} … … 784 801 the domain of the grid-point parallelization. 785 802 \autoref{fig:obslocal} shows an example of the distribution of the {\em in situ} data on processors with 786 a different colour for each observation on a given processor for a 4 $\times$ 2 decomposition with ORCA2. 803 a different colour for each observation on a given processor for a 4 $\times$ 2 decomposition with ORCA2. 787 804 The grid-point domain decomposition is clearly visible on the plot. 788 805 789 806 The advantage of this approach is that all information needed for horizontal interpolation is available without 790 807 any MPP communication. 791 Of course, this is under the assumption that we areonly using a $2 \times 2$ grid-point stencil for808 This is under the assumption that we are dealing with point observations and only using a $2 \times 2$ grid-point stencil for 792 809 the interpolation (\eg bilinear interpolation). 793 810 For higher order interpolation schemes this is no longer valid. … … 801 818 \begin{figure} 802 819 \begin{center} 803 \includegraphics[width= 10cm,height=12cm,angle=-90.]{Fig_ASM_obsdist_global}820 \includegraphics[width=\textwidth]{Fig_ASM_obsdist_global} 804 821 \caption{ 805 822 \protect\label{fig:obsglobal} … … 827 844 At the bottom boundary, this is done using the land-ocean mask. 828 845 846 For profile observation types we do both vertical and horizontal interpolation. \NEMO has a generalised vertical coordinate system this means the vertical level depths can vary with location. Therefore, it is necessary first to perform vertical interpolation of the model value to the observation depths for each of the four surrounding grid points. After this the model values, at these points, at the observation depth, are horizontally interpolated to the observation location. 847 829 848 \newpage 830 849 831 850 % ================================================================ 832 % Offline observation operator documentation851 % Standalone observation operator documentation 833 852 % ================================================================ 834 853 835 854 %\usepackage{framed} 836 855 837 \section{ Offline observation operator}838 \label{sec:OBS_ ooo}856 \section{Standalone observation operator} 857 \label{sec:OBS_sao} 839 858 840 859 \subsection{Concept} 841 860 842 The obs oper maps model variables to observation space. 843 It is possible to apply this mapping without running the model. 844 The software which performs this functionality is known as the \textbf{offline obs oper}. 845 The obs oper is divided into three stages. 846 An initialisation phase, an interpolation phase and an output phase. 847 The implementation of which is outlined in the previous sections. 848 During the interpolation phase the offline obs oper populates the model arrays by 849 reading saved model fields from disk. 850 851 There are two ways of exploiting this offline capacity. 861 The observation operator maps model variables to observation space. This is normally done while the model is running, i.e. online, it is possible to apply this mapping offline without running the model with the \textbf{standalone observation operator} (SAO). The process is divided into an initialisation phase, an interpolation phase and an output phase. 862 During the interpolation phase the SAO populates the model arrays by 863 reading saved model fields from disk. The interpolation and the output phases use the same OBS code described in the preceding sections. 864 865 There are two ways of exploiting the standalone capacity. 852 866 The first is to mimic the behaviour of the online system by supplying model fields at 853 867 regular intervals between the start and the end of the run. 854 868 This approach results in a single model counterpart per observation. 855 This kind of usage produces feedback files the same file format as the online obs oper.856 The second is to take advantage of the offline setting in which857 multiple model counterparts can be calculated perobservation.869 This kind of usage produces feedback files the same file format as the online observation operator. 870 The second is to take advantage of the ability to run offline by calculating 871 multiple model counterparts for each observation. 858 872 In this case it is possible to consider all forecasts verifying at the same time. 859 By forecast, I mean any method which produces an estimate of physical reality which is not an observed value. 860 In the case of class 4 files this means forecasts, analyses, persisted analyses and 861 climatological values verifying at the same time. 862 Although the class 4 file format doesn't account for multiple ensemble members or 863 multiple experiments per observation, it is possible to include these components in the same or multiple files. 873 By forecast, we mean any method which produces an estimate of physical reality which is not an observed value. 864 874 865 875 %-------------------------------------------------------------------------------------------------------- 866 % offline_oper.exe876 % sao.exe 867 877 %-------------------------------------------------------------------------------------------------------- 868 878 869 \subsection{Using the offline observation operator}879 \subsection{Using the standalone observation operator} 870 880 871 881 \subsubsection{Building} 872 882 873 In addition to \emph{OPA\_SRC} the offline obs oper requires the inclusion of the \emph{OOO\_SRC} directory.874 \emph{ OOO\_SRC} contains a replacement \mdl{nemo} and \mdl{nemogcm} which883 In addition to \emph{OPA\_SRC} the SAO requires the inclusion of the \emph{SAO\_SRC} directory. 884 \emph{SAO\_SRC} contains a replacement \mdl{nemo} and \mdl{nemogcm} which 875 885 overwrites the resultant \textbf{nemo.exe}. 876 This is the approach taken by \emph{SAS\_SRC} and\emph{OFF\_SRC}.886 Note this a similar approach to that taken by the standalone surface scheme \emph{SAS\_SRC} and the offline TOP model \emph{OFF\_SRC}. 877 887 878 888 %-------------------------------------------------------------------------------------------------------- 879 % Running 889 % Running 880 890 %-------------------------------------------------------------------------------------------------------- 881 891 \subsubsection{Running} 882 892 883 The simplest way to use the executable is to edit and append the \textbf{ooo.nml} namelist to 884 a full NEMO namelist and then to run the executable as if it were nemo.exe. 885 886 \subsubsection{Quick script} 887 888 A useful Python utility to control the namelist options can be found in \textbf{OBSTOOLS/OOO}. 889 The functions which locate model fields and observation files can be manually specified. 890 The package can be installed by appropriate use of the included setup.py script. 891 892 Documentation can be auto-generated by Sphinx by running \emph{make html} in the \textbf{doc} directory. 893 The simplest way to use the executable is to edit and append the \textbf{sao.nml} namelist to 894 a full \NEMO namelist and then to run the executable as if it were nemo.exe. 893 895 894 896 %-------------------------------------------------------------------------------------------------------- 895 897 % Configuration section 896 898 %-------------------------------------------------------------------------------------------------------- 897 \subsection{Configuring the offline observation operator} 898 The observation files and settings understood by \textbf{namobs} have been outlined in the online obs oper section. 899 In addition there are two further namelists wich control the operation of the offline obs oper. 900 \textbf{namooo} which controls the input model fields and \textbf{namcl4} which 901 controls the production of class 4 files. 899 \subsection{Configuring the standalone observation operator} 900 The observation files and settings understood by \ngn{namobs} have been outlined in the online observation operator section. 901 In addition is a further namelist \ngn{namsao} which used to set the input model fields for the SAO 902 902 903 903 \subsubsection{Single field} 904 904 905 In offline mode model arrays are populated at appropriate time steps via input files.906 At present, \textbf{tsn} and \textbf{sshn} are populated by the default read routines. 905 In the SAO the model arrays are populated at appropriate time steps via input files. 906 At present, \textbf{tsn} and \textbf{sshn} are populated by the default read routines. 907 907 These routines will be expanded upon in future versions to allow the specification of any model variable. 908 908 As such, input files must be global versions of the model domain with 909 909 \textbf{votemper}, \textbf{vosaline} and optionally \textbf{sshn} present. 910 910 911 For each field read there must be an entry in the \ textbf{namooo} namelist specifying911 For each field read there must be an entry in the \ngn{namsao} namelist specifying 912 912 the name of the file to read and the index along the \emph{time\_counter}. 913 913 For example, to read the second time counter from a single file the namelist would be. … … 915 915 \begin{forlines} 916 916 !---------------------------------------------------------------------- 917 ! nam ooo Offline obs_oper namelist917 ! namsao Standalone obs_oper namelist 918 918 !---------------------------------------------------------------------- 919 ! ooo_files specifies the files containing the model counterpart920 ! nn_ ooo_idx specifies the time_counter index within the model file921 &nam ooo922 ooo_files = "foo.nc"923 nn_ ooo_idx = 2919 ! sao_files specifies the files containing the model counterpart 920 ! nn_sao_idx specifies the time_counter index within the model file 921 &namsao 922 sao_files = "foo.nc" 923 nn_sao_idx = 2 924 924 / 925 925 \end{forlines} … … 927 927 \subsubsection{Multiple fields per run} 928 928 929 Model field iteration is controlled via \textbf{nn\_ ooo\_freq} which929 Model field iteration is controlled via \textbf{nn\_sao\_freq} which 930 930 specifies the number of model steps at which the next field gets read. 931 931 For example, if 12 hourly fields are to be interpolated in a setup where 288 steps equals 24 hours. … … 933 933 \begin{forlines} 934 934 !---------------------------------------------------------------------- 935 ! nam ooo Offline obs_oper namelist935 ! namsao Standalone obs_oper namelist 936 936 !---------------------------------------------------------------------- 937 ! ooo_files specifies the files containing the model counterpart938 ! nn_ ooo_idx specifies the time_counter index within the model file939 ! nn_ ooo_freq specifies number of time steps between read operations940 &nam ooo941 ooo_files = "foo.nc" "foo.nc"942 nn_ ooo_idx = 1 2943 nn_ ooo_freq = 144937 ! sao_files specifies the files containing the model counterpart 938 ! nn_sao_idx specifies the time_counter index within the model file 939 ! nn_sao_freq specifies number of time steps between read operations 940 &namsao 941 sao_files = "foo.nc" "foo.nc" 942 nn_sao_idx = 1 2 943 nn_sao_freq = 144 944 944 / 945 945 \end{forlines} … … 952 952 %\end{framed} 953 953 954 It is easy to see how a collection of fields taken frona number of files at different indices can be combined at954 A collection of fields taken from a number of files at different indices can be combined at 955 955 a particular frequency in time to generate a pseudo model evolution. 956 As long as all that is needed is a single model counterpart at a regular interval then 957 namooo is all that needs to be edited. 958 However, a far more interesting approach can be taken in which multiple forecasts, analyses, persisted analyses and 959 climatologies are considered against the same set of observations. 960 For this a slightly more complicated approach is needed. 961 It is referred to as \emph{Class 4} since it is the fourth metric defined by the GODAE intercomparison project. 962 963 %-------------------------------------------------------------------------------------------------------- 964 % Class 4 file section 965 %-------------------------------------------------------------------------------------------------------- 966 \subsubsection{Multiple model counterparts per observation a.k.a Class 4} 967 968 A generalisation of feedback files to allow multiple model components per observation. 969 For a single observation, as well as previous forecasts verifying at the same time 970 there are also analyses, persisted analyses and climatologies. 971 972 973 The above namelist performs two basic functions. 974 It organises the fields given in \textbf{namooo} into groups so that observations can be matched up multiple times. 975 It also controls the metadata and the output variable of the class 4 file when a write routine is called. 976 977 %\begin{framed} 978 \textbf{Note: ln\_cl4} must be set to \forcode{.true.} in \textbf{namobs} to use class 4 outputs. 979 %\end{framed} 980 981 \subsubsection{Class 4 naming convention} 982 983 The standard class 4 file naming convention is as follows. 984 985 \noindent 986 \linebreak 987 \textbf{\$\{prefix\}\_\$\{yyyymmdd\}\_\$\{sys\}\_\$\{cfg\}\_\$\{vn\}\_\$\{kind\}\_\$\{nproc\}}.nc 988 989 \noindent 990 \linebreak 991 Much of the namelist is devoted to specifying this convention. 992 The following namelist settings control the elements of the output file names. 993 Each should be specified as a single string of character data. 994 995 \begin{description} 996 \item[cl4\_prefix] 997 Prefix for class 4 files \eg class4 998 \item[cl4\_date] 999 YYYYMMDD validity date 1000 \item[cl4\_sys] 1001 The name of the class 4 model system \eg FOAM 1002 \item[cl4\_cfg] 1003 The name of the class 4 model configuration \eg orca025 1004 \item[cl4\_vn] 1005 The name of the class 4 model version \eg 12.0 1006 \end{description} 1007 1008 \noindent 1009 The kind is specified by the observation type internally to the obs oper. 1010 The processor number is specified internally in NEMO. 1011 1012 \subsubsection{Class 4 file global attributes} 1013 1014 Global attributes necessary to fulfill the class 4 file definition. 1015 These are also useful pieces of information when collaborating with external partners. 1016 1017 \begin{description} 1018 \item[cl4\_contact] 1019 Contact email for class 4 files. 1020 \item[cl4\_inst] 1021 The name of the producers institution. 1022 \item[cl4\_cfg] 1023 The name of the class 4 model configuration \eg orca025 1024 \item[cl4\_vn] 1025 The name of the class 4 model version \eg 12.0 1026 \end{description} 1027 1028 \noindent 1029 The obs\_type, creation date and validity time are specified internally to the obs oper. 1030 1031 \subsubsection{Class 4 model counterpart configuration} 1032 1033 As seen previously it is possible to perform a single sweep of the obs oper and 1034 specify a collection of model fields equally spaced along that sweep. 1035 In the class 4 case the single sweep is replaced with multiple sweeps and 1036 a certain ammount of book keeping is needed to ensure each model counterpart makes its way to 1037 the correct piece of memory in the output files. 1038 1039 \noindent 1040 \linebreak 1041 In terms of book keeping, the offline obs oper needs to know how many full sweeps need to be performed. 1042 This is specified via the \textbf{cl4\_match\_len} variable and 1043 is the total number of model counterparts per observation. 1044 For example, a 3 forecasts plus 3 persistence fields plus an analysis field would be 7 counterparts per observation. 1045 1046 \begin{forlines} 1047 cl4_match_len = 7 1048 \end{forlines} 1049 1050 Then to correctly allocate a class 4 file the forecast axis must be defined. 1051 This is controlled via \textbf{cl4\_fcst\_len}, which in out above example would be 3. 1052 1053 \begin{forlines} 1054 cl4_fcst_len = 3 1055 \end{forlines} 1056 1057 Then for each model field it is necessary to designate what class 4 variable and index along 1058 the forecast dimension the model counterpart should be stored in the output file. 1059 As well as a value for that lead time in hours, this will be useful when interpreting the data afterwards. 1060 1061 \begin{forlines} 1062 cl4_vars = "forecast" "forecast" "forecast" "persistence" "persistence" 1063 "persistence" "best_estimate" 1064 cl4_fcst_idx = 1 2 3 1 2 3 1 1065 cl4_leadtime = 12 36 60 1066 \end{forlines} 1067 1068 In terms of files and indices of fields inside each file the class 4 approach makes use of 1069 the \textbf{namooo} namelist. 1070 If our fields are in separate files with a single field per file our example inputs will be specified. 1071 1072 \begin{forlines} 1073 ooo_files = "F.1.nc" "F.2.nc" "F.3.nc" "P.1.nc" "P.2.nc" "P.3.nc" "A.1.nc" 1074 nn_ooo_idx = 1 1 1 1 1 1 1 1075 \end{forlines} 1076 1077 When we combine all of the naming conventions, global attributes and i/o instructions the class 4 namelist becomes. 1078 1079 \begin{forlines} 1080 !---------------------------------------------------------------------- 1081 ! namooo Offline obs_oper namelist 1082 !---------------------------------------------------------------------- 1083 ! ooo_files specifies the files containing the model counterpart 1084 ! nn_ooo_idx specifies the time_counter index within the model file 1085 ! nn_ooo_freq specifies number of time steps between read operations 1086 &namooo 1087 ooo_files = "F.1.nc" "F.2.nc" "F.3.nc" "P.1.nc" "P.2.nc" "P.3.nc" "A.1.nc" 1088 nn_ooo_idx = 1 1 1 1 1 1 1 1089 / 1090 !---------------------------------------------------------------------- 1091 ! namcl4 Offline obs_oper class 4 namelist 1092 !---------------------------------------------------------------------- 1093 ! 1094 ! Naming convention 1095 ! ----------------- 1096 ! cl4_prefix specifies the output file prefix 1097 ! cl4_date specifies the output file validity date 1098 ! cl4_sys specifies the model counterpart system 1099 ! cl4_cfg specifies the model counterpart configuration 1100 ! cl4_vn specifies the model counterpart version 1101 ! cl4_inst specifies the model counterpart institute 1102 ! cl4_contact specifies the file producers contact details 1103 ! 1104 ! I/O specification 1105 ! ----------------- 1106 ! cl4_vars specifies the names of the output file netcdf variable 1107 ! cl4_fcst_idx specifies output file forecast index 1108 ! cl4_fcst_len specifies forecast axis length 1109 ! cl4_match_len specifies number of unique matches per observation 1110 ! cl4_leadtime specifies the forecast axis lead time 1111 ! 1112 &namcl4 1113 cl4_match_len = 7 1114 cl4_fcst_len = 3 1115 cl4_fcst_idx = 1 2 3 1 2 3 1 1116 cl4_vars = "forecast" "forecast" "forecast" "persistence" "persistence" 1117 "persistence" "best_estimate" 1118 cl4_leadtime = 12 36 60 1119 cl4_prefix = "class4" 1120 cl4_date = "20130101" 1121 cl4_vn = "12.0" 1122 cl4_sys = "FOAM" 1123 cl4_cfg = "AMM7" 1124 cl4_contact = "example@example.com" 1125 cl4_inst = "UK Met Office" 1126 / 1127 \end{forlines} 1128 1129 \subsubsection{Climatology interpolation} 1130 1131 The climatological counterpart is generated at the start of the run by 1132 restarting the model from climatology through appropriate use of \textbf{namtsd}. 1133 To override the offline observation operator read routine and to take advantage of the restart settings, 1134 specify the first entry in \textbf{cl4\_vars} as "climatology". 1135 This will then pipe the restart from climatology into the output class 4 file. 1136 As in every other class 4 matchup the input file, input index and output index must be specified. 1137 These can be replaced with dummy data since they are not used but 1138 they must be present to cycle through the matchups correctly. 1139 1140 \subsection{Advanced usage} 1141 1142 In certain cases it may be desirable to include both multiple model fields per observation window with 1143 multiple match ups per observation. 1144 This can be achieved by specifying \textbf{nn\_ooo\_freq} as well as the class 4 settings. 1145 Care must be taken in generating the ooo\_files list such that the files are arranged into 1146 consecutive blocks of single match ups. 1147 For example, 2 forecast fields of 12 hourly data would result in 4 separate read operations but 1148 only 2 write operations, 1 per forecast. 1149 1150 \begin{forlines} 1151 ooo_files = "F1.nc" "F1.nc" "F2.nc" "F2.nc" 1152 ... 1153 cl4_fcst_idx = 1 2 1154 \end{forlines} 1155 1156 The above notation reveals the internal split between match up iterators and file iterators. 1157 This technique has not been used before so experimentation is needed before results can be trusted. 956 If all that is needed is a single model counterpart at a regular interval then 957 the standard SAO is all that is required. 958 However, just to note, it is possible to extend this approach by comparing multiple forecasts, analyses, persisted analyses and 959 climatologies with the same set of observations. 960 This approach is referred to as \emph{Class 4} since it is the fourth metric defined by the GODAE intercomparison project. This requires multiple runs of the SAO and running an additional utility (not currently in the \NEMO repository) to combine the feedback files into one class 4 file. 1158 961 1159 962 \newpage … … 1162 965 \label{sec:OBS_obsutils} 1163 966 1164 Some tools for viewing and processing of observation and feedback files are provided in1165 the NEMO repository for convenience.1166 These include OBSTOOLS which are a collection of \fortran programs which are helpful to deal with feedback files.967 For convenience some tools for viewing and processing of observation and feedback files are provided in 968 the \NEMO repository. 969 These tools include OBSTOOLS which are a collection of \fortran programs which are helpful to deal with feedback files. 1167 970 They do such tasks as observation file conversion, printing of file contents, 1168 971 some basic statistical analysis of feedback files. 1169 The other tool is an IDL program called dataplot which uses a graphical interface to972 The other main tool is an IDL program called dataplot which uses a graphical interface to 1170 973 visualise observations and feedback files. 1171 974 OBSTOOLS and dataplot are described in more detail below. … … 1173 976 \subsection{Obstools} 1174 977 1175 A series of \fortran utilities is provided with NEMO called OBSTOOLS. 1176 This are helpful in handling observation files and the feedback file output from the NEMO observation operator. 1177 The utilities are as follows 1178 1179 \subsubsection{c4comb} 1180 1181 The program c4comb combines multiple class 4 files produced by individual processors in 1182 an MPI run of NEMO offline obs\_oper into a single class 4 file. 1183 The program is called in the following way: 1184 1185 1186 \footnotesize 1187 \begin{cmds} 1188 c4comb.exe outputfile inputfile1 inputfile2 ... 1189 \end{cmds} 978 A series of \fortran utilities is provided with \NEMO called OBSTOOLS. 979 This are helpful in handling observation files and the feedback file output from the observation operator. A brief description of some of the utilities follows 1190 980 1191 981 \subsubsection{corio2fb} 1192 982 1193 983 The program corio2fb converts profile observation files from the Coriolis format to the standard feedback format. 1194 The program is called in the following way: 1195 1196 \footnotesize 984 It is called in the following way: 985 1197 986 \begin{cmds} 1198 987 corio2fb.exe outputfile inputfile1 inputfile2 ... … … 1202 991 1203 992 The program enact2fb converts profile observation files from the ENACT format to the standard feedback format. 1204 The program is called in the following way: 1205 1206 \footnotesize 993 It is called in the following way: 994 1207 995 \begin{cmds} 1208 996 enact2fb.exe outputfile inputfile1 inputfile2 ... … … 1212 1000 1213 1001 The program fbcomb combines multiple feedback files produced by individual processors in 1214 an MPI run of NEMO into a single feedback file. 1215 The program is called in the following way: 1216 1217 \footnotesize 1002 an MPI run of \NEMO into a single feedback file. 1003 It is called in the following way: 1004 1218 1005 \begin{cmds} 1219 1006 fbcomb.exe outputfile inputfile1 inputfile2 ... … … 1223 1010 1224 1011 The program fbmatchup will match observations from two feedback files. 1225 The program is called in the following way: 1226 1227 \footnotesize 1012 It is called in the following way: 1013 1228 1014 \begin{cmds} 1229 1015 fbmatchup.exe outputfile inputfile1 varname1 inputfile2 varname2 ... … … 1234 1020 The program fbprint will print the contents of a feedback file or files to standard output. 1235 1021 Selected information can be output using optional arguments. 1236 The program is called in the following way: 1237 1238 \footnotesize 1022 It is called in the following way: 1023 1239 1024 \begin{cmds} 1240 1025 fbprint.exe [options] inputfile … … 1246 1031 -B Select observations based on QC flags 1247 1032 -u unsorted 1248 -s ID select station ID 1033 -s ID select station ID 1249 1034 -t TYPE select observation type 1250 -v NUM1-NUM2 select variable range to print by number 1035 -v NUM1-NUM2 select variable range to print by number 1251 1036 (default all) 1252 -a NUM1-NUM2 select additional variable range to print by number 1037 -a NUM1-NUM2 select additional variable range to print by number 1253 1038 (default all) 1254 -e NUM1-NUM2 select extra variable range to print by number 1039 -e NUM1-NUM2 select extra variable range to print by number 1255 1040 (default all) 1256 1041 -d output date range … … 1262 1047 1263 1048 The program fbsel will select or subsample observations. 1264 The program is called in the following way: 1265 1266 \footnotesize 1049 It is called in the following way: 1050 1267 1051 \begin{cmds} 1268 1052 fbsel.exe <input filename> <output filename> … … 1272 1056 1273 1057 The program fbstat will output summary statistics in different global areas into a number of files. 1274 The program is called in the following way: 1275 1276 \footnotesize 1058 It is called in the following way: 1059 1277 1060 \begin{cmds} 1278 1061 fbstat.exe [-nmlev] <filenames> … … 1283 1066 The program fbthin will thin the data to 1 degree resolution. 1284 1067 The code could easily be modified to thin to a different resolution. 1285 The program is called in the following way: 1286 1287 \footnotesize 1068 It is called in the following way: 1069 1288 1070 \begin{cmds} 1289 1071 fbthin.exe inputfile outputfile … … 1293 1075 1294 1076 The program sla2fb will convert an AVISO SLA format file to feedback format. 1295 The program is called in the following way: 1296 1297 \footnotesize 1077 It is called in the following way: 1078 1298 1079 \begin{cmds} 1299 1080 sla2fb.exe [-s type] outputfile inputfile1 inputfile2 ... … … 1306 1087 1307 1088 The program vel2fb will convert TAO/PIRATA/RAMA currents files to feedback format. 1308 The program is called in the following way: 1309 1310 \footnotesize 1089 It is called in the following way: 1090 1311 1091 \begin{cmds} 1312 1092 vel2fb.exe outputfile inputfile1 inputfile2 ... … … 1320 1100 1321 1101 An IDL program called dataplot is included which uses a graphical interface to 1322 visualise observations and feedback files. 1102 visualise observations and feedback files. Note a similar package has recently developed in python (also called dataplot) which does some of the same things that the IDL dataplot does. Please contact the authors of the this chapter if you are interested in this. 1103 1323 1104 It is possible to zoom in, plot individual profiles and calculate some basic statistics. 1324 1105 To plot some data run IDL and then: 1325 \footnotesize 1106 1326 1107 \begin{minted}{idl} 1327 1108 IDL> dataplot, "filename" … … 1331 1112 for example multiple feedback files from different processors or from different days, 1332 1113 the easiest method is to use the spawn command to generate a list of files which can then be passed to dataplot. 1333 \footnotesize 1114 1334 1115 \begin{minted}{idl} 1335 1116 IDL> spawn, 'ls profb*.nc', files … … 1350 1131 The plotting colour range can be changed by clicking on the colour bar. 1351 1132 The title of the plot gives some basic information about the date range and depth range shown, 1352 the extreme values, and the mean and rmsvalues.1133 the extreme values, and the mean and RMS values. 1353 1134 It is possible to zoom in using a drag-box. 1354 1135 You may also zoom in or out using the mouse wheel. … … 1362 1143 observation minus background value. 1363 1144 The next group of radio buttons selects the map projection. 1364 This can either be regular l atitude longitude grid, or north or south polar stereographic.1145 This can either be regular longitude latitude grid, or north or south polar stereographic. 1365 1146 The next group of radio buttons will plot bad observations, switch to salinity and 1366 1147 plot density for profile observations. … … 1370 1151 \begin{figure} 1371 1152 \begin{center} 1372 % \includegraphics[width= 10cm,height=12cm,angle=-90.]{Fig_OBS_dataplot_main}1373 \includegraphics[width= 9cm,angle=-90.]{Fig_OBS_dataplot_main}1153 % \includegraphics[width=\textwidth]{Fig_OBS_dataplot_main} 1154 \includegraphics[width=\textwidth]{Fig_OBS_dataplot_main} 1374 1155 \caption{ 1375 1156 \protect\label{fig:obsdataplotmain} … … 1386 1167 \begin{figure} 1387 1168 \begin{center} 1388 % \includegraphics[width= 10cm,height=12cm,angle=-90.]{Fig_OBS_dataplot_prof}1389 \includegraphics[width= 7cm,angle=-90.]{Fig_OBS_dataplot_prof}1169 % \includegraphics[width=\textwidth]{Fig_OBS_dataplot_prof} 1170 \includegraphics[width=\textwidth]{Fig_OBS_dataplot_prof} 1390 1171 \caption{ 1391 1172 \protect\label{fig:obsdataplotprofile} -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_SBC.tex
r10614 r11422 2 2 3 3 \begin{document} 4 % ================================================================ 5 % Chapter —— Surface Boundary Condition (SBC, ISF, ICB) 6 % ================================================================ 7 \chapter{Surface Boundary Condition (SBC, ISF, ICB) } 4 5 % ================================================================ 6 % Chapter —— Surface Boundary Condition (SBC, SAS, ISF, ICB) 7 % ================================================================ 8 \chapter{Surface Boundary Condition (SBC, SAS, ISF, ICB)} 8 9 \label{chap:SBC} 9 10 \minitoc … … 16 17 %-------------------------------------------------------------------------------------------------------------- 17 18 18 The ocean needs six fields as surface boundary condition: 19 The ocean needs seven fields as surface boundary condition: 20 19 21 \begin{itemize} 20 22 \item … … 26 28 \item 27 29 the surface salt flux associated with freezing/melting of seawater $\left( {\textit{sfx}} \right)$ 30 \item 31 the atmospheric pressure at the ocean surface $\left( p_a \right)$ 28 32 \end{itemize} 29 plus an optional field: 33 34 Four different ways are available to provide the seven fields to the ocean. They are controlled by 35 namelist \ngn{namsbc} variables: 36 30 37 \begin{itemize} 31 \item the atmospheric pressure at the ocean surface $\left( p_a \right)$ 38 \item 39 a bulk formulation (\np{ln\_blk}\forcode{ = .true.} with four possible bulk algorithms), 40 \item 41 a flux formulation (\np{ln\_flx}\forcode{ = .true.}), 42 \item 43 a coupled or mixed forced/coupled formulation (exchanges with a atmospheric model via the OASIS coupler), 44 (\np{ln\_cpl} or \np{ln\_mixcpl}\forcode{ = .true.}), 45 \item 46 a user defined formulation (\np{ln\_usr}\forcode{ = .true.}). 32 47 \end{itemize} 33 48 34 Four different ways to provide the first six fields to the ocean are available which are controlled by35 namelist \ngn{namsbc} variables:36 an analytical formulation (\np{ln\_ana}\forcode{ = .true.}),37 a flux formulation (\np{ln\_flx}\forcode{ = .true.}),38 a bulk formulae formulation (CORE (\np{ln\_blk\_core}\forcode{ = .true.}),39 CLIO (\np{ln\_blk\_clio}\forcode{ = .true.}) bulk formulae) and40 a coupled or mixed forced/coupled formulation (exchanges with a atmospheric model via the OASIS coupler)41 (\np{ln\_cpl} or \np{ln\_mixcpl}\forcode{ = .true.}).42 When used (\ie \np{ln\_apr\_dyn}\forcode{ = .true.}),43 the atmospheric pressure forces both ocean and ice dynamics.44 49 45 50 The frequency at which the forcing fields have to be updated is given by the \np{nn\_fsbc} namelist parameter. 46 When the fields are supplied from data files (flux and bulk formulations), 47 the input fields need not be supplied on the model grid. 48 Instead a file of coordinates and weights can be supplied which maps the data from the supplied grid to 51 52 When the fields are supplied from data files (bulk, flux and mixed formulations), 53 the input fields do not need to be supplied on the model grid. 54 Instead, a file of coordinates and weights can be supplied to map the data from the input fields grid to 49 55 the model points (so called "Interpolation on the Fly", see \autoref{subsec:SBC_iof}). 50 If the Interpolation on the Fly option is used, input data belonging to land points (in the native grid),51 can be masked to avoid spurious results in proximity of the coastsas56 If the "Interpolation on the Fly" option is used, input data belonging to land points (in the native grid) 57 should be masked or filled to avoid spurious results in proximity of the coasts, as 52 58 large sea-land gradients characterize most of the atmospheric variables. 53 59 54 60 In addition, the resulting fields can be further modified using several namelist options. 55 These options control 61 These options control: 62 56 63 \begin{itemize} 57 64 \item 58 65 the rotation of vector components supplied relative to an east-north coordinate system onto 59 the local grid directions in the model; 60 \item 61 the addition of a surface restoring term to observed SST and/or SSS (\np{ln\_ssr}\forcode{ = .true.}); 62 \item 63 the modification of fluxes below ice-covered areas (using observed ice-cover or a sea-ice model) 64 (\np{nn\_ice}\forcode{ = 0..3}); 65 \item 66 the addition of river runoffs as surface freshwater fluxes or lateral inflow (\np{ln\_rnf}\forcode{ = .true.}); 67 \item 68 the addition of isf melting as lateral inflow (parameterisation) or 69 as fluxes applied at the land-ice ocean interface (\np{ln\_isf}) ; 66 the local grid directions in the model, 67 \item 68 the use of a land/sea mask for input fields (\np{nn\_lsm}\forcode{ = .true.}), 69 \item 70 the addition of a surface restoring term to observed SST and/or SSS (\np{ln\_ssr}\forcode{ = .true.}), 71 \item 72 the modification of fluxes below ice-covered areas (using climatological ice-cover or a sea-ice model) 73 (\np{nn\_ice}\forcode{ = 0..3}), 74 \item 75 the addition of river runoffs as surface freshwater fluxes or lateral inflow (\np{ln\_rnf}\forcode{ = .true.}), 76 \item 77 the addition of ice-shelf melting as lateral inflow (parameterisation) or 78 as fluxes applied at the land-ice ocean interface (\np{ln\_isf}\forcode{ = .true.}), 70 79 \item 71 80 the addition of a freshwater flux adjustment in order to avoid a mean sea-level drift 72 (\np{nn\_fwb}\forcode{ = 0..2}); 73 \item 74 the transformation of the solar radiation (if provided as daily mean) into a diurnal cycle 75 (\np{ln\_dm2dc}\forcode{ = .true.}); 76 \item 77 a neutral drag coefficient can be read from an external wave model (\np{ln\_cdgw}\forcode{ = .true.}); 78 \item 79 the Stokes drift rom an external wave model can be accounted (\np{ln\_sdw}\forcode{ = .true.}); 80 \item 81 the Stokes-Coriolis term can be included (\np{ln\_stcor}\forcode{ = .true.}); 82 \item 83 the surface stress felt by the ocean can be modified by surface waves (\np{ln\_tauwoc}\forcode{ = .true.}). 81 (\np{nn\_fwb}\forcode{ = 0..2}), 82 \item 83 the transformation of the solar radiation (if provided as daily mean) into an analytical diurnal cycle 84 (\np{ln\_dm2dc}\forcode{ = .true.}), 85 \item 86 the activation of wave effects from an external wave model (\np{ln\_wave}\forcode{ = .true.}), 87 \item 88 a neutral drag coefficient is read from an external wave model (\np{ln\_cdgw}\forcode{ = .true.}), 89 \item 90 the Stokes drift from an external wave model is accounted for (\np{ln\_sdw}\forcode{ = .true.}), 91 \item 92 the choice of the Stokes drift profile parameterization (\np{nn\_sdrift}\forcode{ = 0..2}), 93 \item 94 the surface stress given to the ocean is modified by surface waves (\np{ln\_tauwoc}\forcode{ = .true.}), 95 \item 96 the surface stress given to the ocean is read from an external wave model (\np{ln\_tauw}\forcode{ = .true.}), 97 \item 98 the Stokes-Coriolis term is included (\np{ln\_stcor}\forcode{ = .true.}), 99 \item 100 the light penetration in the ocean (\np{ln\_traqsr}\forcode{ = .true.} with namelist \ngn{namtra\_qsr}), 101 \item 102 the atmospheric surface pressure gradient effect on ocean and ice dynamics (\np{ln\_apr\_dyn}\forcode{ = .true.} with namelist \ngn{namsbc\_apr}), 103 \item 104 the effect of sea-ice pressure on the ocean (\np{ln\_ice\_embd}\forcode{ = .true.}). 84 105 \end{itemize} 85 106 86 In this chapter, we first discuss where the surface boundary condition appearsin the model equations.87 Then we present the five ways of providing the surface boundary condition,107 In this chapter, we first discuss where the surface boundary conditions appear in the model equations. 108 Then we present the three ways of providing the surface boundary conditions, 88 109 followed by the description of the atmospheric pressure and the river runoff. 89 Next the scheme for interpolation on the fly is described.110 Next, the scheme for interpolation on the fly is described. 90 111 Finally, the different options that further modify the fluxes applied to the ocean are discussed. 91 112 One of these is modification by icebergs (see \autoref{sec:ICB_icebergs}), … … 95 116 96 117 118 97 119 % ================================================================ 98 120 % Surface boundary condition for the ocean 99 121 % ================================================================ 100 122 \section{Surface boundary condition for the ocean} 101 \label{sec:SBC_ general}123 \label{sec:SBC_ocean} 102 124 103 125 The surface ocean stress is the stress exerted by the wind and the sea-ice on the ocean. … … 111 133 The former is the non penetrative part of the heat flux 112 134 (\ie the sum of sensible, latent and long wave heat fluxes plus 113 the heat content of the mass exchange with the atmosphereand sea-ice).135 the heat content of the mass exchange between the ocean and sea-ice). 114 136 It is applied in \mdl{trasbc} module as a surface boundary condition trend of 115 137 the first level temperature time evolution equation 116 (see \autoref{eq:tra_sbc} and \autoref{eq:tra_sbc_lin} in \autoref{subsec:TRA_sbc}). 138 (see \autoref{eq:tra_sbc} and \autoref{eq:tra_sbc_lin} in \autoref{subsec:TRA_sbc}). 117 139 The latter is the penetrative part of the heat flux. 118 It is applied as a 3D trend sof the temperature equation (\mdl{traqsr} module) when140 It is applied as a 3D trend of the temperature equation (\mdl{traqsr} module) when 119 141 \np{ln\_traqsr}\forcode{ = .true.}. 120 142 The way the light penetrates inside the water column is generally a sum of decreasing exponentials … … 124 146 It represents the mass flux exchanged with the atmosphere (evaporation minus precipitation) and 125 147 possibly with the sea-ice and ice shelves (freezing minus melting of ice). 126 It affects boththe ocean in two different ways:127 $(i)$ it changes the volume of the ocean and therefore appears in the sea surface height equation as148 It affects the ocean in two different ways: 149 $(i)$ it changes the volume of the ocean, and therefore appears in the sea surface height equation as %GS: autoref ssh equation to be added 128 150 a volume flux, and 129 151 $(ii)$ it changes the surface temperature and salinity through the heat and salt contents of 130 the mass exchanged with the atmosphere, the sea-ice and the ice shelves.152 the mass exchanged with atmosphere, sea-ice and ice shelves. 131 153 132 154 … … 157 179 the surface currents, temperature and salinity. 158 180 These variables are averaged over \np{nn\_fsbc} time-step (\autoref{tab:ssm}), and 159 it is these averaged fields which are used to computes the surface fluxes at a frequency of \np{nn\_fsbc} time-step.181 these averaged fields are used to compute the surface fluxes at the frequency of \np{nn\_fsbc} time-steps. 160 182 161 183 … … 165 187 \begin{tabular}{|l|l|l|l|} 166 188 \hline 167 Variable description & Model variable & Units & point \\\hline168 i-component of the surface current & ssu\_m & $m.s^{-1}$ & U \\\hline169 j-component of the surface current & ssv\_m & $m.s^{-1}$ & V\\ \hline170 Sea surface temperature & sst\_m & \r{}$K$ & T \\\hline171 Sea surface salinty & sss\_m & $psu$ & T\\ \hline189 Variable description & Model variable & Units & point \\\hline 190 i-component of the surface current & ssu\_m & $m.s^{-1}$ & U \\\hline 191 j-component of the surface current & ssv\_m & $m.s^{-1}$ & V \\ \hline 192 Sea surface temperature & sst\_m & \r{}$K$ & T \\\hline 193 Sea surface salinty & sss\_m & $psu$ & T \\ \hline 172 194 \end{tabular} 173 195 \caption{ 174 196 \protect\label{tab:ssm} 175 197 Ocean variables provided by the ocean to the surface module (SBC). 176 The variable are averaged over nn{\_}fsbc timestep,198 The variable are averaged over \np{nn\_fsbc} time-step, 177 199 \ie the frequency of computation of surface fluxes. 178 200 } … … 184 206 185 207 208 186 209 % ================================================================ 187 210 % Input Data … … 191 214 192 215 A generic interface has been introduced to manage the way input data 193 (2D or 3D fields, like surface forcing or ocean T and S) are specif yin \NEMO.194 This task is a rchieved by \mdl{fldread}.195 The module was designwith four main objectives in mind:216 (2D or 3D fields, like surface forcing or ocean T and S) are specified in \NEMO. 217 This task is achieved by \mdl{fldread}. 218 The module is designed with four main objectives in mind: 196 219 \begin{enumerate} 197 220 \item 198 optionally provide a time interpolation of the input data atmodel time-step, whatever their input frequency is,221 optionally provide a time interpolation of the input data every specified model time-step, whatever their input frequency is, 199 222 and according to the different calendars available in the model. 200 223 \item … … 204 227 \item 205 228 provide a simple user interface and a rather simple developer interface by 206 limiting the number of prerequisite information .207 \end{enumerate} 208 209 As a result s the user haveonly to fill in for each variable a structure in the namelist file to229 limiting the number of prerequisite informations. 230 \end{enumerate} 231 232 As a result, the user has only to fill in for each variable a structure in the namelist file to 210 233 define the input data file and variable names, the frequency of the data (in hours or months), 211 234 whether its is climatological data or not, the period covered by the input file (one year, month, week or day), 212 and three additional parameters for on-the-fly interpolation.235 and three additional parameters for the on-the-fly interpolation. 213 236 When adding a new input variable, the developer has to add the associated structure in the namelist, 214 237 read this information by mirroring the namelist read in \rou{sbc\_blk\_init} for example, … … 220 243 221 244 Note that when an input data is archived on a disc which is accessible directly from the workspace where 222 the code is executed, then the use can set the \np{cn\_dir} to the pathway leading to the data. 223 By default, the data are assumed to have been copied so that cn\_dir='./'. 245 the code is executed, then the user can set the \np{cn\_dir} to the pathway leading to the data. 246 By default, the data are assumed to be in the same directory as the executable, so that cn\_dir='./'. 247 224 248 225 249 % ------------------------------------------------------------------------------------------------------------- 226 250 % Input Data specification (\mdl{fldread}) 227 251 % ------------------------------------------------------------------------------------------------------------- 228 \subsection{Input data specification (\protect\mdl{fldread})} 252 \subsection[Input data specification (\textit{fldread.F90})] 253 {Input data specification (\protect\mdl{fldread})} 229 254 \label{subsec:SBC_fldread} 230 255 … … 237 262 \begin{description} 238 263 \item[File name]: 239 the stem name of the NetCDF file to be open .264 the stem name of the NetCDF file to be opened. 240 265 This stem will be completed automatically by the model, with the addition of a '.nc' at its end and 241 266 by date information and possibly a prefix (when using AGRIF). … … 248 273 \begin{tabular}{|l|c|c|c|} 249 274 \hline 250 & daily or weekLLL & monthly & yearly\\ \hline251 \np{clim}\forcode{ = .false.} & fn\_yYYYYmMMdDD.nc & fn\_yYYYYmMM.nc &fn\_yYYYY.nc \\ \hline252 \np{clim}\forcode{ = .true.} & not possible & fn\_m??.nc & fn\\ \hline275 & daily or weekLL & monthly & yearly \\ \hline 276 \np{clim}\forcode{ = .false.} & fn\_yYYYYmMMdDD.nc & fn\_yYYYYmMM.nc & fn\_yYYYY.nc \\ \hline 277 \np{clim}\forcode{ = .true.} & not possible & fn\_m??.nc & fn \\ \hline 253 278 \end{tabular} 254 279 \end{center} 255 280 \caption{ 256 281 \protect\label{tab:fldread} 257 naming nomenclature for climatological or interannual input file , as a function of the Open/close frequency.282 naming nomenclature for climatological or interannual input file(s), as a function of the open/close frequency. 258 283 The stem name is assumed to be 'fn'. 259 284 For weekly files, the 'LLL' corresponds to the first three letters of the first day of the week … … 262 287 Note that (1) in mpp, if the file is split over each subdomain, the suffix '.nc' is replaced by '\_PPPP.nc', 263 288 where 'PPPP' is the process number coded with 4 digits; 264 (2) when using AGRIF, the prefix '\_N' is added to files, where 'N' 289 (2) when using AGRIF, the prefix '\_N' is added to files, where 'N' is the child grid number. 265 290 } 266 291 \end{table} … … 272 297 Its unit is in hours if it is positive (for example 24 for daily forcing) or in months if negative 273 298 (for example -1 for monthly forcing or -12 for annual forcing). 274 Note that this frequency must reallybe an integer and not a real.275 On some computers, set ing it to '24.' can be interpreted as 240!299 Note that this frequency must REALLY be an integer and not a real. 300 On some computers, setting it to '24.' can be interpreted as 240! 276 301 277 302 \item[Variable name]: … … 284 309 00h00'00'' to 23h59'59". 285 310 If set to 'true', the forcing will have a broken line shape. 286 Records are assumed to be dated the middle of the forcing period.311 Records are assumed to be dated at the middle of the forcing period. 287 312 For example, when using a daily forcing with time interpolation, 288 313 linear interpolation will be performed between mid-day of two consecutive days. … … 291 316 a logical to specify if a input file contains climatological forcing which can be cycle in time, 292 317 or an interannual forcing which will requires additional files if 293 the period covered by the simulation exceed the one of the file.294 See the above thefile naming strategy which impacts the expected name of the file to be opened.318 the period covered by the simulation exceeds the one of the file. 319 See the above file naming strategy which impacts the expected name of the file to be opened. 295 320 296 321 \item[Open/close frequency]: … … 301 326 Files are assumed to contain data from the beginning of the open/close period. 302 327 For example, the first record of a yearly file containing daily data is Jan 1st even if 303 the experiment is not starting at the beginning of the year. 328 the experiment is not starting at the beginning of the year. 304 329 305 330 \item[Others]: … … 313 338 The only tricky point is therefore to specify the date at which we need to do the interpolation and 314 339 the date of the records read in the input files. 315 Following \citet{ Leclair_Madec_OM09}, the date of a time step is set at the middle of the time step.316 For example, for an experiment starting at 0h00'00" with a one 340 Following \citet{leclair.madec_OM09}, the date of a time step is set at the middle of the time step. 341 For example, for an experiment starting at 0h00'00" with a one-hour time-step, 317 342 a time interpolation will be performed at the following time: 0h30'00", 1h30'00", 2h30'00", etc. 318 343 However, for forcing data related to the surface module, 319 344 values are not needed at every time-step but at every \np{nn\_fsbc} time-step. 320 345 For example with \np{nn\_fsbc}\forcode{ = 3}, the surface module will be called at time-steps 1, 4, 7, etc. 321 The date used for the time interpolation is thus redefined to be atthe middle of \np{nn\_fsbc} time-step period.346 The date used for the time interpolation is thus redefined to the middle of \np{nn\_fsbc} time-step period. 322 347 In the previous example, this leads to: 1h30'00", 4h30'00", 7h30'00", etc. \\ 323 348 (2) For code readablility and maintenance issues, we don't take into account the NetCDF input file calendar. … … 325 350 user in the record frequency, the open/close frequency and the type of temporal interpolation. 326 351 For example, the first record of a yearly file containing daily data that will be interpolated in time is assumed to 327 bestart Jan 1st at 12h00'00" and end Dec 31st at 12h00'00". \\352 start Jan 1st at 12h00'00" and end Dec 31st at 12h00'00". \\ 328 353 (3) If a time interpolation is requested, the code will pick up the needed data in the previous (next) file when 329 354 interpolating data with the first (last) record of the open/close period. … … 333 358 If the forcing is climatological, Dec and Jan will be keep-up from the same year. 334 359 However, if the forcing is not climatological, at the end of 335 the open/close period the code will automatically close the current file and open the next one.360 the open/close period, the code will automatically close the current file and open the next one. 336 361 Note that, if the experiment is starting (ending) at the beginning (end) of 337 an open/close period we do accept that the previous (next) file is not existing.362 an open/close period, we do accept that the previous (next) file is not existing. 338 363 In this case, the time interpolation will be performed between two identical values. 339 364 For example, when starting an experiment on Jan 1st of year Y with yearly files and daily data to be interpolated, … … 353 378 Interpolation on the Fly allows the user to supply input files required for the surface forcing on 354 379 grids other than the model grid. 355 To do this he or she must supply, in addition to the source data file, a file of weights to be used to380 To do this, he or she must supply, in addition to the source data file(s), a file of weights to be used to 356 381 interpolate from the data grid to the model grid. 357 382 The original development of this code used the SCRIP package 358 383 (freely available \href{http://climate.lanl.gov/Software/SCRIP}{here} under a copyright agreement). 359 In principle, any package can be used to generate the weights, but the variables in384 In principle, any package such as CDO can be used to generate the weights, but the variables in 360 385 the input weights file must have the same names and meanings as assumed by the model. 361 Two methods are currently available: bilinear and bicubic interpolation .386 Two methods are currently available: bilinear and bicubic interpolations. 362 387 Prior to the interpolation, providing a land/sea mask file, the user can decide to remove land points from 363 388 the input file and substitute the corresponding values with the average of the 8 neighbouring points in … … 365 390 Only "sea points" are considered for the averaging. 366 391 The land/sea mask file must be provided in the structure associated with the input variable. 367 The netcdf land/sea mask variable name must be 'LSM' it must have the same horizontal and vertical dimensions of 368 the associated variable and should be equal to 1 over land and 0 elsewhere. 369 The procedure can be recursively applied setting nn\_lsm > 1 in namsbc namelist. 370 Note that nn\_lsm=0 forces the code to not apply the procedure even if a file for land/sea mask is supplied. 371 392 The netcdf land/sea mask variable name must be 'LSM' and must have the same horizontal and vertical dimensions as 393 the associated variables and should be equal to 1 over land and 0 elsewhere. 394 The procedure can be recursively applied by setting nn\_lsm > 1 in namsbc namelist. 395 Note that nn\_lsm=0 forces the code to not apply the procedure, even if a land/sea mask file is supplied. 396 397 398 % ------------------------------------------------------------------------------------------------------------- 399 % Bilinear interpolation 400 % ------------------------------------------------------------------------------------------------------------- 372 401 \subsubsection{Bilinear interpolation} 373 402 \label{subsec:SBC_iof_bilinear} … … 375 404 The input weights file in this case has two sets of variables: 376 405 src01, src02, src03, src04 and wgt01, wgt02, wgt03, wgt04. 377 The "src" variables correspond to the point in the input grid to which the weight "wgt" is to beapplied.406 The "src" variables correspond to the point in the input grid to which the weight "wgt" is applied. 378 407 Each src value is an integer corresponding to the index of a point in the input grid when 379 408 written as a one dimensional array. … … 391 420 and wgt(1) corresponds to variable "wgt01" for example. 392 421 422 423 % ------------------------------------------------------------------------------------------------------------- 424 % Bicubic interpolation 425 % ------------------------------------------------------------------------------------------------------------- 393 426 \subsubsection{Bicubic interpolation} 394 427 \label{subsec:SBC_iof_bicubic} 395 428 396 Again there are two sets of variables: "src" and "wgt".397 But in this case there are 16 of each.429 Again, there are two sets of variables: "src" and "wgt". 430 But in this case, there are 16 of each. 398 431 The symbolic algorithm used to calculate values on the model grid is now: 399 432 … … 401 434 \begin{split} 402 435 f_{m}(i,j) = f_{m}(i,j) +& \sum_{k=1}^{4} {wgt(k)f(idx(src(k)))} 403 + \sum_{k=5}^{8} {wgt(k)\left.\frac{\partial f}{\partial i}\right| _{idx(src(k))} } \\404 +& \sum_{k=9 }^{12} {wgt(k)\left.\frac{\partial f}{\partial j}\right| _{idx(src(k))} }405 + 436 + \sum_{k=5 }^{8 } {wgt(k)\left.\frac{\partial f}{\partial i}\right| _{idx(src(k))} } \\ 437 +& \sum_{k=9 }^{12} {wgt(k)\left.\frac{\partial f}{\partial j}\right| _{idx(src(k))} } 438 + \sum_{k=13}^{16} {wgt(k)\left.\frac{\partial ^2 f}{\partial i \partial j}\right| _{idx(src(k))} } 406 439 \end{split} 407 440 \] 408 441 The gradients here are taken with respect to the horizontal indices and not distances since 409 the spatial dependency has been absorbed into the weights. 410 442 the spatial dependency has been included into the weights. 443 444 445 % ------------------------------------------------------------------------------------------------------------- 446 % Implementation 447 % ------------------------------------------------------------------------------------------------------------- 411 448 \subsubsection{Implementation} 412 449 \label{subsec:SBC_iof_imp} … … 420 457 inspecting a global attribute stored in the weights input file. 421 458 This attribute must be called "ew\_wrap" and be of integer type. 422 If it is negative, the input non-model grid is assumed not to becyclic.459 If it is negative, the input non-model grid is assumed to be not cyclic. 423 460 If zero or greater, then the value represents the number of columns that overlap. 424 461 $E.g.$ if the input grid has columns at longitudes 0, 1, 2, .... , 359, then ew\_wrap should be set to 0; 425 462 if longitudes are 0.5, 2.5, .... , 358.5, 360.5, 362.5, ew\_wrap should be 2. 426 463 If the model does not find attribute ew\_wrap, then a value of -999 is assumed. 427 In this case the \rou{fld\_read} routine defaults ew\_wrap to value 0 and464 In this case, the \rou{fld\_read} routine defaults ew\_wrap to value 0 and 428 465 therefore the grid is assumed to be cyclic with no overlapping columns. 429 (In fact this only matters when bicubic interpolation is required.)466 (In fact, this only matters when bicubic interpolation is required.) 430 467 Note that no testing is done to check the validity in the model, 431 468 since there is no way of knowing the name used for the longitude variable, … … 444 481 or is a copy of one from the first few columns on the opposite side of the grid (cyclical case). 445 482 483 484 % ------------------------------------------------------------------------------------------------------------- 485 % Limitations 486 % ------------------------------------------------------------------------------------------------------------- 446 487 \subsubsection{Limitations} 447 488 \label{subsec:SBC_iof_lim} … … 449 490 \begin{enumerate} 450 491 \item 451 The case where input data grids are not logically rectangular has not been tested.492 The case where input data grids are not logically rectangular (irregular grid case) has not been tested. 452 493 \item 453 494 This code is not guaranteed to produce positive definite answers from positive definite inputs when … … 470 511 (see the directory NEMOGCM/TOOLS/WEIGHTS). 471 512 513 472 514 % ------------------------------------------------------------------------------------------------------------- 473 515 % Standalone Surface Boundary Condition Scheme 474 516 % ------------------------------------------------------------------------------------------------------------- 475 \subsection{Standalone surface boundary condition scheme }476 \label{subsec:SAS _iof}477 478 %---------------------------------------namsbc_ ana--------------------------------------------------517 \subsection{Standalone surface boundary condition scheme (SAS)} 518 \label{subsec:SAS} 519 520 %---------------------------------------namsbc_sas-------------------------------------------------- 479 521 480 522 \nlst{namsbc_sas} 481 523 %-------------------------------------------------------------------------------------------------------------- 482 524 483 In some circumstances it may be useful to avoid calculating the 3D temperature,525 In some circumstances, it may be useful to avoid calculating the 3D temperature, 484 526 salinity and velocity fields and simply read them in from a previous run or receive them from OASIS. 485 527 For example: … … 496 538 Spinup of the iceberg floats 497 539 \item 498 Ocean/sea-ice simulation with both m ediarunning in parallel (\np{ln\_mixcpl}\forcode{ = .true.})540 Ocean/sea-ice simulation with both models running in parallel (\np{ln\_mixcpl}\forcode{ = .true.}) 499 541 \end{itemize} 500 542 501 The Stand Alone Surface scheme provides this utility.543 The Standalone Surface scheme provides this capacity. 502 544 Its options are defined through the \ngn{namsbc\_sas} namelist variables. 503 545 A new copy of the model has to be compiled with a configuration based on ORCA2\_SAS\_LIM. 504 However no namelist parameters need be changed from the settings of the previous run (except perhaps nn{\_}date0).546 However, no namelist parameters need be changed from the settings of the previous run (except perhaps nn{\_}date0). 505 547 In this configuration, a few routines in the standard model are overriden by new versions. 506 548 Routines replaced are: … … 524 566 so calls to restart functions have been removed. 525 567 This also means that the calendar cannot be controlled by time in a restart file, 526 so the user must make surethat nn{\_}date0 in the model namelist is correct for his or her purposes.568 so the user must check that nn{\_}date0 in the model namelist is correct for his or her purposes. 527 569 \item 528 570 \mdl{stpctl}: … … 543 585 velocity arrays at the surface. 544 586 These filenames are supplied in namelist namsbc{\_}sas. 545 Unfortunately because of limitations with the \mdl{iom} module,587 Unfortunately, because of limitations with the \mdl{iom} module, 546 588 the full 3D fields from the mean files have to be read in and interpolated in time, 547 589 before using just the top level. … … 550 592 551 593 552 % Missing the description of the 2 following variables: 553 % ln_3d_uve = .true. ! specify whether we are supplying a 3D u,v and e3 field 554 % ln_read_frq = .false. ! specify whether we must read frq or not 555 556 557 558 % ================================================================ 559 % Analytical formulation (sbcana module) 560 % ================================================================ 561 \section{Analytical formulation (\protect\mdl{sbcana})} 562 \label{sec:SBC_ana} 563 564 %---------------------------------------namsbc_ana-------------------------------------------------- 565 % 566 %\nlst{namsbc_ana} 567 %-------------------------------------------------------------------------------------------------------------- 568 569 The analytical formulation of the surface boundary condition is the default scheme. 570 In this case, all the six fluxes needed by the ocean are assumed to be uniform in space. 571 They take constant values given in the namelist \ngn{namsbc{\_}ana} by 572 the variables \np{rn\_utau0}, \np{rn\_vtau0}, \np{rn\_qns0}, \np{rn\_qsr0}, and \np{rn\_emp0} 573 ($\textit{emp}=\textit{emp}_S$). 574 The runoff is set to zero. 575 In addition, the wind is allowed to reach its nominal value within a given number of time steps (\np{nn\_tau000}). 576 577 If a user wants to apply a different analytical forcing, 578 the \mdl{sbcana} module can be modified to use another scheme. 579 As an example, the \mdl{sbc\_ana\_gyre} routine provides the analytical forcing for the GYRE configuration 580 (see GYRE configuration manual, in preparation). 594 The user can also choose in the \ngn{namsbc\_sas} namelist to read the mean (nn\_fsbc time-step) fraction of solar net radiation absorbed in the 1st T level using 595 (\np{ln\_flx}\forcode{ = .true.}) and to provide 3D oceanic velocities instead of 2D ones (\np{ln\_flx}\forcode{ = .true.}). In that last case, only the 1st level will be read in. 596 581 597 582 598 … … 584 600 % Flux formulation 585 601 % ================================================================ 586 \section{Flux formulation (\protect\mdl{sbcflx})} 602 \section[Flux formulation (\textit{sbcflx.F90})] 603 {Flux formulation (\protect\mdl{sbcflx})} 587 604 \label{sec:SBC_flx} 588 605 %------------------------------------------namsbc_flx---------------------------------------------------- … … 602 619 603 620 621 604 622 % ================================================================ 605 623 % Bulk formulation 606 624 % ================================================================ 607 \section[Bulk formulation {(\textit{sbcblk\{\_core,\_clio\}.F90})}]608 {Bulk formulation {(\protect\mdl{sbcblk\_core}, \protect\mdl{sbcblk\_clio})}}625 \section[Bulk formulation (\textit{sbcblk.F90})] 626 {Bulk formulation (\protect\mdl{sbcblk})} 609 627 \label{sec:SBC_blk} 610 611 In the bulk formulation, the surface boundary condition fields are computed using bulk formulae and atmospheric fields and ocean (and ice) variables. 628 %---------------------------------------namsbc_blk-------------------------------------------------- 629 630 \nlst{namsbc_blk} 631 %-------------------------------------------------------------------------------------------------------------- 632 633 In the bulk formulation, the surface boundary condition fields are computed with bulk formulae using atmospheric fields 634 and ocean (and sea-ice) variables averaged over \np{nn\_fsbc} time-step. 612 635 613 636 The atmospheric fields used depend on the bulk formulae used. 614 Two bulk formulations are available: 615 the CORE and the CLIO bulk formulea. 637 In forced mode, when a sea-ice model is used, a specific bulk formulation is used. 638 Therefore, different bulk formulae are used for the turbulent fluxes computation 639 over the ocean and over sea-ice surface. 640 For the ocean, four bulk formulations are available thanks to the \href{https://brodeau.github.io/aerobulk/}{Aerobulk} package (\citet{brodeau.barnier.ea_JPO16}): 641 the NCAR (formerly named CORE), COARE 3.0, COARE 3.5 and ECMWF bulk formulae. 616 642 The choice is made by setting to true one of the following namelist variable: 617 \np{ln\_core} or \np{ln\_clio}. 618 619 Note: 620 in forced mode, when a sea-ice model is used, a bulk formulation (CLIO or CORE) have to be used. 621 Therefore the two bulk (CLIO and CORE) formulea include the computation of the fluxes over 622 both an ocean and an ice surface. 623 624 % ------------------------------------------------------------------------------------------------------------- 625 % CORE Bulk formulea 626 % ------------------------------------------------------------------------------------------------------------- 627 \subsection{CORE formulea (\protect\mdl{sbcblk\_core}, \protect\np{ln\_core}\forcode{ = .true.})} 628 \label{subsec:SBC_blk_core} 629 %------------------------------------------namsbc_core---------------------------------------------------- 630 % 631 %\nlst{namsbc_core} 632 %------------------------------------------------------------------------------------------------------------- 633 634 The CORE bulk formulae have been developed by \citet{Large_Yeager_Rep04}. 635 They have been designed to handle the CORE forcing, a mixture of NCEP reanalysis and satellite data. 636 They use an inertial dissipative method to compute the turbulent transfer coefficients 637 (momentum, sensible heat and evaporation) from the 10 metre wind speed, air temperature and specific humidity. 638 This \citet{Large_Yeager_Rep04} dataset is available through 639 the \href{http://nomads.gfdl.noaa.gov/nomads/forms/mom4/CORE.html}{GFDL web site}. 640 641 Note that substituting ERA40 to NCEP reanalysis fields does not require changes in the bulk formulea themself. 642 This is the so-called DRAKKAR Forcing Set (DFS) \citep{Brodeau_al_OM09}. 643 644 Options are defined through the \ngn{namsbc\_core} namelist variables. 645 The required 8 input fields are: 643 \np{ln\_NCAR}, \np{ln\_COARE\_3p0}, \np{ln\_COARE\_3p5} and \np{ln\_ECMWF}. 644 For sea-ice, three possibilities can be selected: 645 a constant transfer coefficient (1.4e-3; default value), \citet{lupkes.gryanik.ea_JGR12} (\np{ln\_Cd\_L12}), and \citet{lupkes.gryanik_JGR15} (\np{ln\_Cd\_L15}) parameterizations 646 647 Common options are defined through the \ngn{namsbc\_blk} namelist variables. 648 The required 9 input fields are: 646 649 647 650 %--------------------------------------------------TABLE-------------------------------------------------- 648 651 \begin{table}[htbp] 649 \label{tab: CORE}652 \label{tab:BULK} 650 653 \begin{center} 651 654 \begin{tabular}{|l|c|c|c|} 652 655 \hline 653 Variable desciption & Model variable & Units & point \\ \hline 654 i-component of the 10m air velocity & utau & $m.s^{-1}$ & T \\ \hline 655 j-component of the 10m air velocity & vtau & $m.s^{-1}$ & T \\ \hline 656 10m air temperature & tair & \r{}$K$ & T \\ \hline 657 Specific humidity & humi & \% & T \\ \hline 658 Incoming long wave radiation & qlw & $W.m^{-2}$ & T \\ \hline 659 Incoming short wave radiation & qsr & $W.m^{-2}$ & T \\ \hline 660 Total precipitation (liquid + solid) & precip & $Kg.m^{-2}.s^{-1}$ & T \\ \hline 661 Solid precipitation & snow & $Kg.m^{-2}.s^{-1}$ & T \\ \hline 656 Variable description & Model variable & Units & point \\ \hline 657 i-component of the 10m air velocity & utau & $m.s^{-1}$ & T \\ \hline 658 j-component of the 10m air velocity & vtau & $m.s^{-1}$ & T \\ \hline 659 10m air temperature & tair & \r{}$K$ & T \\ \hline 660 Specific humidity & humi & \% & T \\ \hline 661 Incoming long wave radiation & qlw & $W.m^{-2}$ & T \\ \hline 662 Incoming short wave radiation & qsr & $W.m^{-2}$ & T \\ \hline 663 Total precipitation (liquid + solid) & precip & $Kg.m^{-2}.s^{-1}$ & T \\ \hline 664 Solid precipitation & snow & $Kg.m^{-2}.s^{-1}$ & T \\ \hline 665 Mean sea-level pressure & slp & $hPa$ & T \\ \hline 662 666 \end{tabular} 663 667 \end{center} … … 678 682 \np{rn\_zu}: is the height of wind measurements (m) 679 683 680 Three multiplicative factors are available s:681 \np{rn\_pfac} and \np{rn\_efac} allow sto adjust (if necessary) the global freshwater budget by684 Three multiplicative factors are available: 685 \np{rn\_pfac} and \np{rn\_efac} allow to adjust (if necessary) the global freshwater budget by 682 686 increasing/reducing the precipitations (total and snow) and or evaporation, respectively. 683 687 The third one,\np{rn\_vfac}, control to which extend the ice/ocean velocities are taken into account in 684 688 the calculation of surface wind stress. 685 Its range should be between zero and one, and it is recommended to set it to 0. 686 687 % ------------------------------------------------------------------------------------------------------------- 688 % CLIO Bulk formulea 689 % ------------------------------------------------------------------------------------------------------------- 690 \subsection{CLIO formulea (\protect\mdl{sbcblk\_clio}, \protect\np{ln\_clio}\forcode{ = .true.})} 691 \label{subsec:SBC_blk_clio} 692 %------------------------------------------namsbc_clio---------------------------------------------------- 693 % 694 %\nlst{namsbc_clio} 695 %------------------------------------------------------------------------------------------------------------- 696 697 The CLIO bulk formulae were developed several years ago for the Louvain-la-neuve coupled ice-ocean model 698 (CLIO, \cite{Goosse_al_JGR99}). 699 They are simpler bulk formulae. 700 They assume the stress to be known and compute the radiative fluxes from a climatological cloud cover. 701 702 Options are defined through the \ngn{namsbc\_clio} namelist variables. 703 The required 7 input fields are: 704 705 %--------------------------------------------------TABLE-------------------------------------------------- 706 \begin{table}[htbp] 707 \label{tab:CLIO} 708 \begin{center} 709 \begin{tabular}{|l|l|l|l|} 710 \hline 711 Variable desciption & Model variable & Units & point \\ \hline 712 i-component of the ocean stress & utau & $N.m^{-2}$ & U \\ \hline 713 j-component of the ocean stress & vtau & $N.m^{-2}$ & V \\ \hline 714 Wind speed module & vatm & $m.s^{-1}$ & T \\ \hline 715 10m air temperature & tair & \r{}$K$ & T \\ \hline 716 Specific humidity & humi & \% & T \\ \hline 717 Cloud cover & & \% & T \\ \hline 718 Total precipitation (liquid + solid) & precip & $Kg.m^{-2}.s^{-1}$ & T \\ \hline 719 Solid precipitation & snow & $Kg.m^{-2}.s^{-1}$ & T \\ \hline 720 \end{tabular} 721 \end{center} 722 \end{table} 723 %-------------------------------------------------------------------------------------------------------------- 689 Its range must be between zero and one, and it is recommended to set it to 0 at low-resolution (ORCA2 configuration). 724 690 725 691 As for the flux formulation, information about the input data required by the model is provided in 726 the namsbc\_blk\_core or namsbc\_blk\_clio namelist (see \autoref{subsec:SBC_fldread}). 692 the namsbc\_blk namelist (see \autoref{subsec:SBC_fldread}). 693 694 695 % ------------------------------------------------------------------------------------------------------------- 696 % Ocean-Atmosphere Bulk formulae 697 % ------------------------------------------------------------------------------------------------------------- 698 \subsection{Ocean-Atmosphere Bulk formulae} 699 %\subsection[Ocean-Atmosphere Bulk formulae (\textit{sbcblk_algo\{\_ncar,\_coare,\_coare3p5,\_ecmwf}.F90})] 700 \label{subsec:SBC_blk_ocean} 701 702 Four different bulk algorithms are available to compute surface turbulent momentum and heat fluxes over the ocean. 703 COARE 3.0, COARE 3.5 and ECMWF schemes mainly differ by their roughness lenghts computation and consequently 704 their neutral transfer coefficients relationships with neutral wind. 705 \begin{itemize} 706 \item 707 NCAR (\np{ln\_NCAR}\forcode{ = .true.}): 708 The NCAR bulk formulae have been developed by \citet{large.yeager_rpt04}. 709 They have been designed to handle the NCAR forcing, a mixture of NCEP reanalysis and satellite data. 710 They use an inertial dissipative method to compute the turbulent transfer coefficients 711 (momentum, sensible heat and evaporation) from the 10m wind speed, air temperature and specific humidity. 712 This \citet{large.yeager_rpt04} dataset is available through 713 the \href{http://nomads.gfdl.noaa.gov/nomads/forms/mom4/NCAR.html}{GFDL web site}. 714 Note that substituting ERA40 to NCEP reanalysis fields does not require changes in the bulk formulea themself. 715 This is the so-called DRAKKAR Forcing Set (DFS) \citep{brodeau.barnier.ea_OM10}. 716 \item 717 COARE 3.0 (\np{ln\_COARE\_3p0}\forcode{ = .true.}): 718 See \citet{fairall.bradley.ea_JC03} for more details 719 \item 720 COARE 3.5 (\np{ln\_COARE\_3p5}\forcode{ = .true.}): 721 See \citet{edson.jampana.ea_JPO13} for more details 722 \item 723 ECMWF (\np{ln\_ECMWF}\forcode{ = .true.}): 724 Based on \href{https://www.ecmwf.int/node/9221}{IFS (Cy31)} implementation and documentation. 725 Surface roughness lengths needed for the Obukhov length are computed following \citet{beljaars_QJRMS95}. 726 \end{itemize} 727 728 729 % ------------------------------------------------------------------------------------------------------------- 730 % Ice-Atmosphere Bulk formulae 731 % ------------------------------------------------------------------------------------------------------------- 732 \subsection{ Ice-Atmosphere Bulk formulae } 733 \label{subsec:SBC_blk_ice} 734 735 Surface turbulent fluxes between sea-ice and the atmosphere can be computed in three different ways: 736 737 \begin{itemize} 738 \item 739 Constant value (\np{constant\ value}\forcode{ Cd_ice = 1.4e-3 }): 740 default constant value used for momentum and heat neutral transfer coefficients 741 \item 742 \citet{lupkes.gryanik.ea_JGR12} (\np{ln\_Cd\_L12}\forcode{ = .true.}): 743 This scheme adds a dependency on edges at leads, melt ponds and flows 744 of the constant neutral air-ice drag. After some approximations, 745 this can be resumed to a dependency on ice concentration (A). 746 This drag coefficient has a parabolic shape (as a function of ice concentration) 747 starting at 1.5e-3 for A=0, reaching 1.97e-3 for A=0.5 and going down 1.4e-3 for A=1. 748 It is theoretically applicable to all ice conditions (not only MIZ). 749 \item 750 \citet{lupkes.gryanik_JGR15} (\np{ln\_Cd\_L15}\forcode{ = .true.}): 751 Alternative turbulent transfer coefficients formulation between sea-ice 752 and atmosphere with distinct momentum and heat coefficients depending 753 on sea-ice concentration and atmospheric stability (no melt-ponds effect for now). 754 The parameterization is adapted from ECHAM6 atmospheric model. 755 Compared to Lupkes2012 scheme, it considers specific skin and form drags 756 to compute neutral transfer coefficients for both heat and momentum fluxes. 757 Atmospheric stability effect on transfer coefficient is also taken into account. 758 \end{itemize} 759 760 727 761 728 762 % ================================================================ 729 763 % Coupled formulation 730 764 % ================================================================ 731 \section{Coupled formulation (\protect\mdl{sbccpl})} 765 \section[Coupled formulation (\textit{sbccpl.F90})] 766 {Coupled formulation (\protect\mdl{sbccpl})} 732 767 \label{sec:SBC_cpl} 733 768 %------------------------------------------namsbc_cpl---------------------------------------------------- … … 737 772 738 773 In the coupled formulation of the surface boundary condition, 739 the fluxes are provided by the OASIS coupler at a frequency which is defined in the OASIS coupler ,774 the fluxes are provided by the OASIS coupler at a frequency which is defined in the OASIS coupler namelist, 740 775 while sea and ice surface temperature, ocean and ice albedo, and ocean currents are sent to 741 776 the atmospheric component. 742 777 743 778 A generalised coupled interface has been developed. 744 It is currently interfaced with OASIS-3-MCT (\key{oasis3}). 779 It is currently interfaced with OASIS-3-MCT versions 1 to 4 (\key{oasis3}). 780 An additional specific CPP key (\key{oa3mct\_v1v2}) is needed for OASIS-3-MCT versions 1 and 2. 745 781 It has been successfully used to interface \NEMO to most of the European atmospheric GCM 746 782 (ARPEGE, ECHAM, ECMWF, HadAM, HadGAM, LMDz), as well as to \href{http://wrf-model.org/}{WRF} 747 783 (Weather Research and Forecasting Model). 748 784 749 Note that in addition to the setting of \np{ln\_cpl} to true, the \key{coupled} have to be defined. 750 The CPP key is mainly used in sea-ice to ensure that the atmospheric fluxes are actually received by 751 the ice-ocean system (no calculation of ice sublimation in coupled mode). 752 When PISCES biogeochemical model (\key{top} and \key{pisces}) is also used in the coupled system, 753 the whole carbon cycle is computed by defining \key{cpl\_carbon\_cycle}. 785 When PISCES biogeochemical model (\key{top}) is also used in the coupled system, 786 the whole carbon cycle is computed. 754 787 In this case, CO$_2$ fluxes will be exchanged between the atmosphere and the ice-ocean system 755 788 (and need to be activated in \ngn{namsbc{\_}cpl} ). … … 757 790 The namelist above allows control of various aspects of the coupling fields (particularly for vectors) and 758 791 now allows for any coupling fields to have multiple sea ice categories (as required by LIM3 and CICE). 759 When indicating a multi-category coupling field in namsbc{\_}cplthe number of categories will be determined by792 When indicating a multi-category coupling field in \ngn{namsbc{\_}cpl}, the number of categories will be determined by 760 793 the number used in the sea ice model. 761 In some limited cases it may be possible to specify single category coupling fields even when794 In some limited cases, it may be possible to specify single category coupling fields even when 762 795 the sea ice model is running with multiple categories - 763 in this case the user should examine the code to be sure the assumptions made are satisfactory. 764 In cases where this is definitely not possible the model should abort with an error message. 765 The new code has been tested using ECHAM with LIM2, and HadGAM3 with CICE but 766 although it will compile with \key{lim3} additional minor code changes may be required to run using LIM3. 796 in this case, the user should examine the code to be sure the assumptions made are satisfactory. 797 In cases where this is definitely not possible, the model should abort with an error message. 798 767 799 768 800 … … 770 802 % Atmospheric pressure 771 803 % ================================================================ 772 \section{Atmospheric pressure (\protect\mdl{sbcapr})} 804 \section[Atmospheric pressure (\textit{sbcapr.F90})] 805 {Atmospheric pressure (\protect\mdl{sbcapr})} 773 806 \label{sec:SBC_apr} 774 807 %------------------------------------------namsbc_apr---------------------------------------------------- … … 778 811 779 812 The optional atmospheric pressure can be used to force ocean and ice dynamics 780 (\np{ln\_apr\_dyn}\forcode{ = .true.}, \ textit{\ngn{namsbc}} namelist).781 The input atmospheric forcing defined via \np{sn\_apr} structure (\ textit{namsbc\_apr} namelist)813 (\np{ln\_apr\_dyn}\forcode{ = .true.}, \ngn{namsbc} namelist). 814 The input atmospheric forcing defined via \np{sn\_apr} structure (\ngn{namsbc\_apr} namelist) 782 815 can be interpolated in time to the model time step, and even in space when the interpolation on-the-fly is used. 783 816 When used to force the dynamics, the atmospheric pressure is further transformed into … … 789 822 where $P_{atm}$ is the atmospheric pressure and $P_o$ a reference atmospheric pressure. 790 823 A value of $101,000~N/m^2$ is used unless \np{ln\_ref\_apr} is set to true. 791 In this case $P_o$ is set to the value of $P_{atm}$ averaged over the ocean domain,792 \ie the mean value of $\eta_{ib}$ is kept to zero at all time step .824 In this case, $P_o$ is set to the value of $P_{atm}$ averaged over the ocean domain, 825 \ie the mean value of $\eta_{ib}$ is kept to zero at all time steps. 793 826 794 827 The gradient of $\eta_{ib}$ is added to the RHS of the ocean momentum equation (see \mdl{dynspg} for the ocean). 795 828 For sea-ice, the sea surface height, $\eta_m$, which is provided to the sea ice model is set to $\eta - \eta_{ib}$ 796 829 (see \mdl{sbcssr} module). 797 $\eta_{ib}$ can be setin the output.830 $\eta_{ib}$ can be written in the output. 798 831 This can simplify altimetry data and model comparison as 799 832 inverse barometer sea surface height is usually removed from these date prior to their distribution. … … 803 836 \np{ln\_apr\_obc} might be set to true. 804 837 838 839 805 840 % ================================================================ 806 841 % Surface Tides Forcing 807 842 % ================================================================ 808 \section{Surface tides (\protect\mdl{sbctide})} 843 \section[Surface tides (\textit{sbctide.F90})] 844 {Surface tides (\protect\mdl{sbctide})} 809 845 \label{sec:SBC_tide} 810 846 … … 819 855 \[ 820 856 % \label{eq:PE_dyn_tides} 821 \frac{\partial {\ rm {\bf U}}_h }{\partial t}= ...857 \frac{\partial {\mathrm {\mathbf U}}_h }{\partial t}= ... 822 858 +g\nabla (\Pi_{eq} + \Pi_{sal}) 823 859 \] … … 827 863 The equilibrium tidal forcing is expressed as a sum over a subset of 828 864 constituents chosen from the set of available tidal constituents 829 defined in file \ rou{SBC/tide.h90} (this comprises the tidal865 defined in file \textit{SBC/tide.h90} (this comprises the tidal 830 866 constituents \textit{M2, N2, 2N2, S2, K2, K1, O1, Q1, P1, M4, Mf, Mm, 831 867 Msqm, Mtm, S1, MU2, NU2, L2}, and \textit{T2}). Individual … … 839 875 840 876 The SAL term should in principle be computed online as it depends on 841 the model tidal prediction itself (see \citet{ Arbic2004} for a877 the model tidal prediction itself (see \citet{arbic.garner.ea_DSR04} for a 842 878 discussion about the practical implementation of this term). 843 879 Nevertheless, the complex calculations involved would make this 844 computationally too expensive. 880 computationally too expensive. Here, two options are available: 845 881 $\Pi_{sal}$ generated by an external model can be read in 846 882 (\np{ln\_read\_load=.true.}), or a ``scalar approximation'' can be … … 854 890 \forcode{.false.} removes the SAL contribution. 855 891 892 893 856 894 % ================================================================ 857 895 % River runoffs 858 896 % ================================================================ 859 \section{River runoffs (\protect\mdl{sbcrnf})} 897 \section[River runoffs (\textit{sbcrnf.F90})] 898 {River runoffs (\protect\mdl{sbcrnf})} 860 899 \label{sec:SBC_rnf} 861 900 %------------------------------------------namsbc_rnf---------------------------------------------------- … … 871 910 %coastal modelling and becomes more and more often open ocean and climate modelling 872 911 %\footnote{At least a top cells thickness of 1~meter and a 3 hours forcing frequency are 873 %required to properly represent the diurnal cycle \citep{ Bernie_al_JC05}. see also \autoref{fig:SBC_dcy}.}.912 %required to properly represent the diurnal cycle \citep{bernie.woolnough.ea_JC05}. see also \autoref{fig:SBC_dcy}.}. 874 913 875 914 … … 892 931 \footnote{ 893 932 At least a top cells thickness of 1~meter and a 3 hours forcing frequency are required to 894 properly represent the diurnal cycle \citep{ Bernie_al_JC05}.933 properly represent the diurnal cycle \citep{bernie.woolnough.ea_JC05}. 895 934 see also \autoref{fig:SBC_dcy}.}. 896 935 … … 935 974 As such the volume of water does not change, but the water is diluted. 936 975 937 For the non-linear free surface case (\key{vvl}), no flux is allowed through the surface.976 For the non-linear free surface case, no flux is allowed through the surface. 938 977 Instead in the surface box (as well as water moving up from the boxes below) a volume of runoff water is added with 939 978 no corresponding heat and salt addition and so as happens in the lower boxes there is a dilution effect. … … 978 1017 %To do this we need to treat evaporation/precipitation fluxes and river runoff differently in the tra_sbc module. We decided to separate them throughout the code, so that the variable emp represented solely evaporation minus precipitation fluxes, and a new 2d variable rnf was added which represents the volume flux of river runoff (in kg/m2s to remain consistent with emp). This meant many uses of emp and emps needed to be changed, a list of all modules which use emp or emps and the changes made are below: 979 1018 980 %} 1019 1020 981 1021 % ================================================================ 982 1022 % Ice shelf melting 983 1023 % ================================================================ 984 \section{Ice shelf melting (\protect\mdl{sbcisf})} 1024 \section[Ice shelf melting (\textit{sbcisf.F90})] 1025 {Ice shelf melting (\protect\mdl{sbcisf})} 985 1026 \label{sec:SBC_isf} 986 1027 %------------------------------------------namsbc_isf---------------------------------------------------- … … 988 1029 \nlst{namsbc_isf} 989 1030 %-------------------------------------------------------------------------------------------------------- 1031 990 1032 The namelist variable in \ngn{namsbc}, \np{nn\_isf}, controls the ice shelf representation. 991 Description and result of sensitivity test to \np{nn\_isf} are presented in \citet{ Mathiot2017}.1033 Description and result of sensitivity test to \np{nn\_isf} are presented in \citet{mathiot.jenkins.ea_GMD17}. 992 1034 The different options are illustrated in \autoref{fig:SBC_isf}. 993 1035 994 1036 \begin{description} 995 \item[\np{nn\_isf}\forcode{ = 1}]: 1037 1038 \item[\np{nn\_isf}\forcode{ = 1}]: 996 1039 The ice shelf cavity is represented (\np{ln\_isfcav}\forcode{ = .true.} needed). 997 1040 The fwf and heat flux are depending of the local water properties. 1041 998 1042 Two different bulk formulae are available: 999 1043 … … 1001 1045 \item[\np{nn\_isfblk}\forcode{ = 1}]: 1002 1046 The melt rate is based on a balance between the upward ocean heat flux and 1003 the latent heat flux at the ice shelf base. A complete description is available in \citet{ Hunter2006}.1047 the latent heat flux at the ice shelf base. A complete description is available in \citet{hunter_rpt06}. 1004 1048 \item[\np{nn\_isfblk}\forcode{ = 2}]: 1005 1049 The melt rate and the heat flux are based on a 3 equations formulation 1006 1050 (a heat flux budget at the ice base, a salt flux budget at the ice base and a linearised freezing point temperature equation). 1007 A complete description is available in \citet{ Jenkins1991}.1051 A complete description is available in \citet{jenkins_JGR91}. 1008 1052 \end{description} 1009 1053 1010 Temperature and salinity used to compute the melt are the average temperature in the top boundary layer \citet{ Losch2008}.1054 Temperature and salinity used to compute the melt are the average temperature in the top boundary layer \citet{losch_JGR08}. 1011 1055 Its thickness is defined by \np{rn\_hisf\_tbl}. 1012 1056 The fluxes and friction velocity are computed using the mean temperature, salinity and velocity in the the first \np{rn\_hisf\_tbl} m. … … 1038 1082 \] 1039 1083 where $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn\_hisf\_tbl} meters). 1040 See \citet{ Jenkins2010} for all the details on this formulation. It is the recommended formulation for realistic application.1084 See \citet{jenkins.nicholls.ea_JPO10} for all the details on this formulation. It is the recommended formulation for realistic application. 1041 1085 \item[\np{nn\_gammablk}\forcode{ = 2}]: 1042 1086 The salt and heat exchange coefficients are velocity and stability dependent and defined as: … … 1047 1091 $\Gamma_{Turb}$ the contribution of the ocean stability and 1048 1092 $\Gamma^{T,S}_{Mole}$ the contribution of the molecular diffusion. 1049 See \citet{ Holland1999} for all the details on this formulation.1093 See \citet{holland.jenkins_JPO99} for all the details on this formulation. 1050 1094 This formulation has not been extensively tested in NEMO (not recommended). 1051 1095 \end{description} 1052 \item[\np{nn\_isf}\forcode{ = 2}]:1096 \item[\np{nn\_isf}\forcode{ = 2}]: 1053 1097 The ice shelf cavity is not represented. 1054 The fwf and heat flux are computed using the \citet{ Beckmann2003} parameterisation of isf melting.1098 The fwf and heat flux are computed using the \citet{beckmann.goosse_OM03} parameterisation of isf melting. 1055 1099 The fluxes are distributed along the ice shelf edge between the depth of the average grounding line (GL) 1056 1100 (\np{sn\_depmax\_isf}) and the base of the ice shelf along the calving front 1057 1101 (\np{sn\_depmin\_isf}) as in (\np{nn\_isf}\forcode{ = 3}). 1058 1102 The effective melting length (\np{sn\_Leff\_isf}) is read from a file. 1059 \item[\np{nn\_isf}\forcode{ = 3}]:1103 \item[\np{nn\_isf}\forcode{ = 3}]: 1060 1104 The ice shelf cavity is not represented. 1061 1105 The fwf (\np{sn\_rnfisf}) is prescribed and distributed along the ice shelf edge between … … 1063 1107 the base of the ice shelf along the calving front (\np{sn\_depmin\_isf}). 1064 1108 The heat flux ($Q_h$) is computed as $Q_h = fwf \times L_f$. 1065 \item[\np{nn\_isf}\forcode{ = 4}]:1109 \item[\np{nn\_isf}\forcode{ = 4}]: 1066 1110 The ice shelf cavity is opened (\np{ln\_isfcav}\forcode{ = .true.} needed). 1067 1111 However, the fwf is not computed but specified from file \np{sn\_fwfisf}). … … 1089 1133 \begin{figure}[!t] 1090 1134 \begin{center} 1091 \includegraphics[width= 0.8\textwidth]{Fig_SBC_isf}1135 \includegraphics[width=\textwidth]{Fig_SBC_isf} 1092 1136 \caption{ 1093 1137 \protect\label{fig:SBC_isf} … … 1098 1142 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1099 1143 1144 1145 1146 % ================================================================ 1147 % Ice sheet coupling 1148 % ================================================================ 1100 1149 \section{Ice sheet coupling} 1101 1150 \label{sec:SBC_iscpl} … … 1104 1153 \nlst{namsbc_iscpl} 1105 1154 %-------------------------------------------------------------------------------------------------------- 1155 1106 1156 Ice sheet/ocean coupling is done through file exchange at the restart step. 1107 1157 At each restart step: 1158 1108 1159 \begin{description} 1109 1160 \item[Step 1]: the ice sheet model send a new bathymetry and ice shelf draft netcdf file. … … 1117 1168 potentially some new wet/dry cells due to the ice sheet dynamics/thermodynamics. 1118 1169 The wetting and drying scheme applied on the restart is very simple and described below for the 6 different possible cases: 1170 1119 1171 \begin{description} 1120 1172 \item[Thin a cell down]: … … 1155 1207 The corrective increment is apply into the cell itself (if it is a wet cell), the neigbouring cells or the closest wet cell (if the cell is now dry). 1156 1208 1157 % 1209 1210 1158 1211 % ================================================================ 1159 1212 % Handling of icebergs … … 1166 1219 %------------------------------------------------------------------------------------------------------------- 1167 1220 1168 Icebergs are modelled as lagrangian particles in NEMO \citep{ Marsh_GMD2015}.1169 Their physical behaviour is controlled by equations as described in \citet{ Martin_Adcroft_OM10} ).1221 Icebergs are modelled as lagrangian particles in NEMO \citep{marsh.ivchenko.ea_GMD15}. 1222 Their physical behaviour is controlled by equations as described in \citet{martin.adcroft_OM10} ). 1170 1223 (Note that the authors kindly provided a copy of their code to act as a basis for implementation in NEMO). 1171 1224 Icebergs are initially spawned into one of ten classes which have specific mass and thickness as … … 1186 1239 the geographical box: lonmin,lonmax,latmin,latmax 1187 1240 \item[\np{nn\_test\_icebergs}\forcode{ = -1}] 1188 In this scheme the model reads a calving file supplied in the \np{sn\_icb} parameter.1241 In this scheme, the model reads a calving file supplied in the \np{sn\_icb} parameter. 1189 1242 This should be a file with a field on the configuration grid (typically ORCA) 1190 1243 representing ice accumulation rate at each model point. … … 1224 1277 since its trajectory data may be spread across multiple files. 1225 1278 1226 % ------------------------------------------------------------------------------------------------------------- 1279 1280 1281 % ============================================================================================================= 1227 1282 % Interactions with waves (sbcwave.F90, ln_wave) 1228 % ------------------------------------------------------------------------------------------------------------- 1229 \section{Interactions with waves (\protect\mdl{sbcwave}, \protect\np{ln\_wave})} 1283 % ============================================================================================================= 1284 \section[Interactions with waves (\textit{sbcwave.F90}, \texttt{ln\_wave})] 1285 {Interactions with waves (\protect\mdl{sbcwave}, \protect\np{ln\_wave})} 1230 1286 \label{sec:SBC_wave} 1231 1287 %------------------------------------------namsbc_wave-------------------------------------------------------- … … 1241 1297 1242 1298 Physical processes related to ocean surface waves can be accounted by setting the logical variable 1243 \np{ln\_wave} \forcode{= .true.} in \ngn{namsbc} namelist. In addition, specific flags accounting for1244 different p orcesses should be activated as explained in the following sections.1299 \np{ln\_wave} \forcode{= .true.} in \ngn{namsbc} namelist. In addition, specific flags accounting for 1300 different processes should be activated as explained in the following sections. 1245 1301 1246 1302 Wave fields can be provided either in forced or coupled mode: … … 1254 1310 1255 1311 1256 % ================================================================1312 % ---------------------------------------------------------------- 1257 1313 % Neutral drag coefficient from wave model (ln_cdgw) 1258 1314 1259 % ================================================================ 1260 \subsection{Neutral drag coefficient from wave model (\protect\np{ln\_cdgw})} 1315 % ---------------------------------------------------------------- 1316 \subsection[Neutral drag coefficient from wave model (\texttt{ln\_cdgw})] 1317 {Neutral drag coefficient from wave model (\protect\np{ln\_cdgw})} 1261 1318 \label{subsec:SBC_wave_cdgw} 1262 1319 1263 1320 The neutral surface drag coefficient provided from an external data source (\ie a wave model), 1264 1321 can be used by setting the logical variable \np{ln\_cdgw} \forcode{= .true.} in \ngn{namsbc} namelist. 1265 Then using the routine \rou{ turb\_ncar} and starting from the neutral drag coefficent provided,1322 Then using the routine \rou{sbcblk\_algo\_ncar} and starting from the neutral drag coefficent provided, 1266 1323 the drag coefficient is computed according to the stable/unstable conditions of the 1267 air-sea interface following \citet{ Large_Yeager_Rep04}.1268 1269 1270 % ================================================================1324 air-sea interface following \citet{large.yeager_rpt04}. 1325 1326 1327 % ---------------------------------------------------------------- 1271 1328 % 3D Stokes Drift (ln_sdw, nn_sdrift) 1272 % ================================================================ 1273 \subsection{3D Stokes Drift (\protect\np{ln\_sdw, nn\_sdrift})} 1329 % ---------------------------------------------------------------- 1330 \subsection[3D Stokes Drift (\texttt{ln\_sdw}, \texttt{nn\_sdrift})] 1331 {3D Stokes Drift (\protect\np{ln\_sdw, nn\_sdrift})} 1274 1332 \label{subsec:SBC_wave_sdw} 1275 1333 1276 The Stokes drift is a wave driven mechanism of mass and momentum transport \citep{ Stokes_1847}.1334 The Stokes drift is a wave driven mechanism of mass and momentum transport \citep{stokes_ibk09}. 1277 1335 It is defined as the difference between the average velocity of a fluid parcel (Lagrangian velocity) 1278 1336 and the current measured at a fixed point (Eulerian velocity). 1279 1337 As waves travel, the water particles that make up the waves travel in orbital motions but 1280 1338 without a closed path. Their movement is enhanced at the top of the orbit and slowed slightly 1281 at the bottom so the result is a net forward motion of water particles, referred to as the Stokes drift.1339 at the bottom, so the result is a net forward motion of water particles, referred to as the Stokes drift. 1282 1340 An accurate evaluation of the Stokes drift and the inclusion of related processes may lead to improved 1283 representation of surface physics in ocean general circulation models. 1341 representation of surface physics in ocean general circulation models. %GS: reference needed 1284 1342 The Stokes drift velocity $\mathbf{U}_{st}$ in deep water can be computed from the wave spectrum and may be written as: 1285 1343 … … 1296 1354 $k=\frac{2\pi}{\lambda}$ (being $\lambda$ the wavelength). \\ 1297 1355 1298 In order to evaluate the Stokes drift in a realistic ocean wave field the wave spectral shape is required1356 In order to evaluate the Stokes drift in a realistic ocean wave field, the wave spectral shape is required 1299 1357 and its computation quickly becomes expensive as the 2D spectrum must be integrated for each vertical level. 1300 1358 To simplify, it is customary to use approximations to the full Stokes profile. … … 1307 1365 \begin{description} 1308 1366 \item[\np{nn\_sdrift} = 0]: exponential integral profile parameterization proposed by 1309 \citet{ Breivik_al_JPO2014}:1367 \citet{breivik.janssen.ea_JPO14}: 1310 1368 1311 1369 \[ … … 1326 1384 1327 1385 \item[\np{nn\_sdrift} = 1]: velocity profile based on the Phillips spectrum which is considered to be a 1328 reasonable estimate of the part of the spectrum most contributing to the Stokes drift velocity near the surface1329 \citep{ Breivik_al_OM2016}:1386 reasonable estimate of the part of the spectrum mostly contributing to the Stokes drift velocity near the surface 1387 \citep{breivik.bidlot.ea_OM16}: 1330 1388 1331 1389 \[ … … 1364 1422 1365 1423 1366 % ================================================================1424 % ---------------------------------------------------------------- 1367 1425 % Stokes-Coriolis term (ln_stcor) 1368 % ================================================================ 1369 \subsection{Stokes-Coriolis term (\protect\np{ln\_stcor})} 1426 % ---------------------------------------------------------------- 1427 \subsection[Stokes-Coriolis term (\texttt{ln\_stcor})] 1428 {Stokes-Coriolis term (\protect\np{ln\_stcor})} 1370 1429 \label{subsec:SBC_wave_stcor} 1371 1430 … … 1378 1437 1379 1438 1380 % ================================================================1439 % ---------------------------------------------------------------- 1381 1440 % Waves modified stress (ln_tauwoc, ln_tauw) 1382 % ================================================================ 1383 \subsection{Wave modified sress (\protect\np{ln\_tauwoc, ln\_tauw})} 1441 % ---------------------------------------------------------------- 1442 \subsection[Wave modified stress (\texttt{ln\_tauwoc}, \texttt{ln\_tauw})] 1443 {Wave modified sress (\protect\np{ln\_tauwoc, ln\_tauw})} 1384 1444 \label{subsec:SBC_wave_tauw} 1385 1445 1386 1446 The surface stress felt by the ocean is the atmospheric stress minus the net stress going 1387 into the waves \citep{ Janssen_al_TM13}. Therefore, when waves are growing, momentum and energy is spent and is not1447 into the waves \citep{janssen.breivik.ea_rpt13}. Therefore, when waves are growing, momentum and energy is spent and is not 1388 1448 available for forcing the mean circulation, while in the opposite case of a decaying sea 1389 state more momentum is available for forcing the ocean.1390 Only when the sea state is in equilibrium the ocean is forced by the atmospheric stress,1391 but in practice an equilibrium sea state is a fairly rare event.1449 state, more momentum is available for forcing the ocean. 1450 Only when the sea state is in equilibrium, the ocean is forced by the atmospheric stress, 1451 but in practice, an equilibrium sea state is a fairly rare event. 1392 1452 So the atmospheric stress felt by the ocean circulation $\tau_{oc,a}$ can be expressed as: 1393 1453 … … 1419 1479 1420 1480 1481 1421 1482 % ================================================================ 1422 1483 % Miscellanea options … … 1425 1486 \label{sec:SBC_misc} 1426 1487 1488 1427 1489 % ------------------------------------------------------------------------------------------------------------- 1428 1490 % Diurnal cycle 1429 1491 % ------------------------------------------------------------------------------------------------------------- 1430 \subsection{Diurnal cycle (\protect\mdl{sbcdcy})} 1492 \subsection[Diurnal cycle (\textit{sbcdcy.F90})] 1493 {Diurnal cycle (\protect\mdl{sbcdcy})} 1431 1494 \label{subsec:SBC_dcy} 1432 %------------------------------------------namsbc _rnf----------------------------------------------------1495 %------------------------------------------namsbc------------------------------------------------------------- 1433 1496 % 1434 1497 \nlst{namsbc} … … 1438 1501 \begin{figure}[!t] 1439 1502 \begin{center} 1440 \includegraphics[width= 0.8\textwidth]{Fig_SBC_diurnal}1503 \includegraphics[width=\textwidth]{Fig_SBC_diurnal} 1441 1504 \caption{ 1442 1505 \protect\label{fig:SBC_diurnal} … … 1445 1508 the mean value of the analytical cycle (blue line) over a time step, 1446 1509 not as the mid time step value of the analytically cycle (red square). 1447 From \citet{ Bernie_al_CD07}.1510 From \citet{bernie.guilyardi.ea_CD07}. 1448 1511 } 1449 1512 \end{center} … … 1451 1514 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1452 1515 1453 \cite{Bernie_al_JC05} have shown that to capture 90$\%$ of the diurnal variability of SST requires a vertical resolution in upper ocean of 1~m or better and a temporal resolution of the surface fluxes of 3~h or less. 1454 Unfortunately high frequency forcing fields are rare, not to say inexistent. 1455 Nevertheless, it is possible to obtain a reasonable diurnal cycle of the SST knowning only short wave flux (SWF) at 1456 high frequency \citep{Bernie_al_CD07}. 1516 \cite{bernie.woolnough.ea_JC05} have shown that to capture 90$\%$ of the diurnal variability of SST requires a vertical resolution in upper ocean of 1~m or better and a temporal resolution of the surface fluxes of 3~h or less. 1517 %Unfortunately high frequency forcing fields are rare, not to say inexistent. GS: not true anymore ! 1518 Nevertheless, it is possible to obtain a reasonable diurnal cycle of the SST knowning only short wave flux (SWF) at high frequency \citep{bernie.guilyardi.ea_CD07}. 1457 1519 Furthermore, only the knowledge of daily mean value of SWF is needed, 1458 1520 as higher frequency variations can be reconstructed from them, 1459 1521 assuming that the diurnal cycle of SWF is a scaling of the top of the atmosphere diurnal cycle of incident SWF. 1460 The \cite{ Bernie_al_CD07} reconstruction algorithm is available in \NEMO by1522 The \cite{bernie.guilyardi.ea_CD07} reconstruction algorithm is available in \NEMO by 1461 1523 setting \np{ln\_dm2dc}\forcode{ = .true.} (a \textit{\ngn{namsbc}} namelist variable) when 1462 using CORE bulk formulea (\np{ln\_blk\_core}\forcode{ = .true.}) or1524 using a bulk formulation (\np{ln\_blk}\forcode{ = .true.}) or 1463 1525 the flux formulation (\np{ln\_flx}\forcode{ = .true.}). 1464 1526 The reconstruction is performed in the \mdl{sbcdcy} module. 1465 The detail of the algoritm used can be found in the appendix~A of \cite{ Bernie_al_CD07}.1466 The algorithm preserve the daily mean incoming SWF as the reconstructed SWF at1527 The detail of the algoritm used can be found in the appendix~A of \cite{bernie.guilyardi.ea_CD07}. 1528 The algorithm preserves the daily mean incoming SWF as the reconstructed SWF at 1467 1529 a given time step is the mean value of the analytical cycle over this time step (\autoref{fig:SBC_diurnal}). 1468 1530 The use of diurnal cycle reconstruction requires the input SWF to be daily 1469 (\ie a frequency of 24 and a time interpolation set to true in \np{sn\_qsr} namelist parameter).1470 Furthermore, it is recommended to have a least 8 surface module time step per day,1531 (\ie a frequency of 24 hours and a time interpolation set to true in \np{sn\_qsr} namelist parameter). 1532 Furthermore, it is recommended to have a least 8 surface module time steps per day, 1471 1533 that is $\rdt \ nn\_fsbc < 10,800~s = 3~h$. 1472 1534 An example of recontructed SWF is given in \autoref{fig:SBC_dcy} for a 12 reconstructed diurnal cycle, … … 1476 1538 \begin{figure}[!t] 1477 1539 \begin{center} 1478 \includegraphics[width= 0.7\textwidth]{Fig_SBC_dcy}1540 \includegraphics[width=\textwidth]{Fig_SBC_dcy} 1479 1541 \caption{ 1480 1542 \protect\label{fig:SBC_dcy} … … 1491 1553 an inconsistency between the scale of the vertical resolution and the forcing acting on that scale. 1492 1554 1555 1493 1556 % ------------------------------------------------------------------------------------------------------------- 1494 1557 % Rotation of vector pairs onto the model grid directions … … 1497 1560 \label{subsec:SBC_rotation} 1498 1561 1499 When using a flux (\np{ln\_flx}\forcode{ = .true.}) or 1500 bulk (\np{ln\_clio}\forcode{ = .true.} or \np{ln\_core}\forcode{ = .true.}) formulation, 1562 When using a flux (\np{ln\_flx}\forcode{ = .true.}) or bulk (\np{ln\_blk}\forcode{ = .true.}) formulation, 1501 1563 pairs of vector components can be rotated from east-north directions onto the local grid directions. 1502 1564 This is particularly useful when interpolation on the fly is used since here any vectors are likely to 1503 1565 be defined relative to a rectilinear grid. 1504 To activate this option a non-empty string is supplied in the rotation pair column of the relevant namelist.1566 To activate this option, a non-empty string is supplied in the rotation pair column of the relevant namelist. 1505 1567 The eastward component must start with "U" and the northward component with "V". 1506 1568 The remaining characters in the strings are used to identify which pair of components go together. … … 1511 1573 The rot\_rep routine from the \mdl{geo2ocean} module is used to perform the rotation. 1512 1574 1575 1513 1576 % ------------------------------------------------------------------------------------------------------------- 1514 1577 % Surface restoring to observed SST and/or SSS 1515 1578 % ------------------------------------------------------------------------------------------------------------- 1516 \subsection{Surface restoring to observed SST and/or SSS (\protect\mdl{sbcssr})} 1579 \subsection[Surface restoring to observed SST and/or SSS (\textit{sbcssr.F90})] 1580 {Surface restoring to observed SST and/or SSS (\protect\mdl{sbcssr})} 1517 1581 \label{subsec:SBC_ssr} 1518 1582 %------------------------------------------namsbc_ssr---------------------------------------------------- … … 1521 1585 %------------------------------------------------------------------------------------------------------------- 1522 1586 1523 IOptions are defined through the \ngn{namsbc\_ssr} namelist variables.1587 Options are defined through the \ngn{namsbc\_ssr} namelist variables. 1524 1588 On forced mode using a flux formulation (\np{ln\_flx}\forcode{ = .true.}), 1525 1589 a feedback term \emph{must} be added to the surface heat flux $Q_{ns}^o$: … … 1546 1610 (observed, climatological or an atmospheric model product), 1547 1611 \textit{SSS}$_{Obs}$ is a sea surface salinity 1548 (usually a time interpolation of the monthly mean Polar Hydrographic Climatology \citep{ Steele2001}),1612 (usually a time interpolation of the monthly mean Polar Hydrographic Climatology \citep{steele.morley.ea_JC01}), 1549 1613 $\left.S\right|_{k=1}$ is the model surface layer salinity and 1550 1614 $\gamma_s$ is a negative feedback coefficient which is provided as a namelist parameter. 1551 1615 Unlike heat flux, there is no physical justification for the feedback term in \autoref{eq:sbc_dmp_emp} as 1552 the atmosphere does not care about ocean surface salinity \citep{ Madec1997}.1616 the atmosphere does not care about ocean surface salinity \citep{madec.delecluse_IWN97}. 1553 1617 The SSS restoring term should be viewed as a flux correction on freshwater fluxes to 1554 1618 reduce the uncertainties we have on the observed freshwater budget. 1619 1555 1620 1556 1621 % ------------------------------------------------------------------------------------------------------------- … … 1578 1643 This prevents deep convection to occur when trying to reach the freezing point 1579 1644 (and so ice covered area condition) while the SSS is too large. 1580 This manner of managing sea-ice area, just by using siIF case,1645 This manner of managing sea-ice area, just by using a IF case, 1581 1646 is usually referred as the \textit{ice-if} model. 1582 1647 It can be found in the \mdl{sbcice{\_}if} module. … … 1585 1650 This model computes the ice-ocean fluxes, 1586 1651 that are combined with the air-sea fluxes using the ice fraction of each model cell to 1587 provide the surface ocean fluxes.1588 Note that the activation of a sea-ice model is is done by defining a CPP key (\key{lim3} or \key{cice}).1652 provide the surface averaged ocean fluxes. 1653 Note that the activation of a sea-ice model is done by defining a CPP key (\key{si3} or \key{cice}). 1589 1654 The activation automatically overwrites the read value of nn{\_}ice to its appropriate value 1590 (\ie $2$ for LIM-3 or $3$ for CICE).1655 (\ie $2$ for SI3 or $3$ for CICE). 1591 1656 \end{description} 1592 1657 1593 1658 % {Description of Ice-ocean interface to be added here or in LIM 2 and 3 doc ?} 1594 1595 \subsection{Interface to CICE (\protect\mdl{sbcice\_cice})} 1659 %GS: ocean-ice (SI3) interface is not located in SBC directory anymore, so it should be included in SI3 doc 1660 1661 1662 % ------------------------------------------------------------------------------------------------------------- 1663 % CICE-ocean Interface 1664 % ------------------------------------------------------------------------------------------------------------- 1665 \subsection[Interface to CICE (\textit{sbcice\_cice.F90})] 1666 {Interface to CICE (\protect\mdl{sbcice\_cice})} 1596 1667 \label{subsec:SBC_cice} 1597 1668 1598 It is nowpossible to couple a regional or global NEMO configuration (without AGRIF)1669 It is possible to couple a regional or global NEMO configuration (without AGRIF) 1599 1670 to the CICE sea-ice model by using \key{cice}. 1600 1671 The CICE code can be obtained from \href{http://oceans11.lanl.gov/trac/CICE/}{LANL} and … … 1603 1674 and CICE CPP keys \textbf{ORCA\_GRID}, \textbf{CICE\_IN\_NEMO} and \textbf{coupled} should be used 1604 1675 (seek advice from UKMO if necessary). 1605 Currently the code is only designed to work when using the CORE forcing option for NEMO1676 Currently, the code is only designed to work when using the NCAR forcing option for NEMO %GS: still true ? 1606 1677 (with \textit{calc\_strair}\forcode{ = .true.} and \textit{calc\_Tsfc}\forcode{ = .true.} in the CICE name-list), 1607 1678 or alternatively when NEMO is coupled to the HadGAM3 atmosphere model … … 1623 1694 there is no sea ice. 1624 1695 1696 1625 1697 % ------------------------------------------------------------------------------------------------------------- 1626 1698 % Freshwater budget control 1627 1699 % ------------------------------------------------------------------------------------------------------------- 1628 \subsection{Freshwater budget control (\protect\mdl{sbcfwb})} 1700 \subsection[Freshwater budget control (\textit{sbcfwb.F90})] 1701 {Freshwater budget control (\protect\mdl{sbcfwb})} 1629 1702 \label{subsec:SBC_fwb} 1630 1703 1631 For global ocean simulation it can be useful to introduce a control of the mean sea level in order to1704 For global ocean simulation, it can be useful to introduce a control of the mean sea level in order to 1632 1705 prevent unrealistic drift of the sea surface height due to inaccuracy in the freshwater fluxes. 1633 In \NEMO, two way of controlling the the freshwater budget. 1706 In \NEMO, two way of controlling the freshwater budget are proposed: 1707 1634 1708 \begin{description} 1635 1709 \item[\np{nn\_fwb}\forcode{ = 0}] … … 1638 1712 \item[\np{nn\_fwb}\forcode{ = 1}] 1639 1713 global mean \textit{emp} set to zero at each model time step. 1640 %Note that with a sea-ice model, this technique only control the mean sea level with linear free surface (\key{vvl} not defined) and no mass flux between ocean and ice (as it is implemented in the current ice-ocean coupling). 1714 %GS: comment below still relevant ? 1715 %Note that with a sea-ice model, this technique only controls the mean sea level with linear free surface and no mass flux between ocean and ice (as it is implemented in the current ice-ocean coupling). 1641 1716 \item[\np{nn\_fwb}\forcode{ = 2}] 1642 1717 freshwater budget is adjusted from the previous year annual mean budget which … … 1645 1720 the change in the mean sea level at January the first and saved in the \textit{EMPav.dat} file. 1646 1721 \end{description} 1647 1648 1649 1722 1650 1723 % Griffies doc: … … 1655 1728 % The result of the normalization should be a global integrated zero net water input to the ocean-ice system over 1656 1729 % a chosen time scale. 1657 % How often the normalization is done is a matter of choice. In mom4p1, we choose to do so at each model time step,1730 % How often the normalization is done is a matter of choice. In mom4p1, we choose to do so at each model time step, 1658 1731 % so that there is always a zero net input of water to the ocean-ice system. 1659 1732 % Others choose to normalize over an annual cycle, in which case the net imbalance over an annual cycle is used … … 1670 1743 % in ocean-ice models. 1671 1744 1745 1672 1746 \biblio 1673 1747 -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_STO.tex
r10442 r11422 8 8 \label{chap:STO} 9 9 10 Authors: P.-A. Bouttier 10 \minitoc 11 11 12 \minitoc 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.1} & {\em C. Levy} & {\em 4.0.1 update} \\ 18 % {\em 3.6} & {\em P.-A. Bouttier} & {\em initial version} \\ 19 % \end{tabular} 20 % \end{figure} 21 22 Authors: \\ 23 C. Levy release 4.0.1 update \\ 24 P.-A. Bouttier release 3.6 inital version 13 25 14 26 \newpage 15 27 16 The stochastic parametrization module aims to explicitly simulate uncertainties in the model. 17 More particularly, \cite{Brankart_OM2013} has shown that, 18 because of the nonlinearity of the seawater equation of state, unresolved scales represent a major source of 19 uncertainties in the computation of the large scale horizontal density gradient (from T/S large scale fields), 20 and that the impact of these uncertainties can be simulated by 21 random processes representing unresolved T/S fluctuations. 28 As a result of the nonlinearity of the seawater equation of state, unresolved scales represent a major source of uncertainties in the computation of the large-scale horizontal density gradient from the large-scale temperature and salinity fields. Following \cite{brankart_OM13}, the impact of these uncertainties can be simulated by random processes representing unresolved T/S fluctuations. The Stochastic Parametrization of EOS (STO) module implements this parametrization. 22 29 23 The stochastic formulation of the equation of state can be written as:30 As detailed in \cite{brankart_OM13}, the stochastic formulation of the equation of state can be written as: 24 31 \begin{equation} 25 32 \label{eq:eos_sto} … … 27 34 \end{equation} 28 35 where $p_o(z)$ is the reference pressure depending on the depth and, 29 $\Delta T_i$ and $\Delta S_i$ area set of T/S perturbations defined as36 $\Delta T_i$ and $\Delta S_i$ (i=1,m) is a set of T/S perturbations defined as 30 37 the scalar product of the respective local T/S gradients with random walks $\mathbf{\xi}$: 31 38 \begin{equation} … … 33 40 \Delta T_i = \mathbf{\xi}_i \cdot \nabla T \qquad \hbox{and} \qquad \Delta S_i = \mathbf{\xi}_i \cdot \nabla S 34 41 \end{equation} 35 $\mathbf{\xi}_i$ are produced by a first-order autoregressive process es(AR-1) with42 $\mathbf{\xi}_i$ are produced by a first-order autoregressive process (AR-1) with 36 43 a parametrized decorrelation time scale, and horizontal and vertical standard deviations $\sigma_s$. 37 44 $\mathbf{\xi}$ are uncorrelated over the horizontal and fully correlated along the vertical. … … 41 48 \label{sec:STO_the_details} 42 49 43 The starting point of our implementation of stochastic parameterizations in NEMO is to observe that 44 many existing parameterizations are based on autoregressive processes, 50 There are many existing parameterizations based on autoregressive processes, 45 51 which are used as a basic source of randomness to transform a deterministic model into a probabilistic model. 46 A generic approach is thus to add one single new module in NEMO,47 generating processes with appropriate statistics to simulate each kind of uncertaintyin the model48 (see \cite{ Brankart_al_GMD2015} for more details).52 The generic approach here is to a new STO module, 53 generating processes features with appropriate statistics to simulate these uncertainties in the model 54 (see \cite{brankart.candille.ea_GMD15} for more details). 49 55 50 In practice, at e verymodel grid point,56 In practice, at each model grid point, 51 57 independent Gaussian autoregressive processes~$\xi^{(i)},\,i=1,\ldots,m$ are first generated using 52 58 the same basic equation: … … 101 107 \noindent 102 108 In this way, higher order processes can be easily generated recursively using the same piece of code implementing 103 (\autoref{eq:autoreg}), and using succesivelyprocesses from order $0$ to~$n-1$ as~$w^{(i)}$.104 The parameters in (\autoref{eq:ord2})are computed so that this recursive application of105 (\autoref{eq:autoreg})leads to processes with the required standard deviation and correlation timescale,109 \autoref{eq:autoreg}, and using successive processes from order $0$ to~$n-1$ as~$w^{(i)}$. 110 The parameters in \autoref{eq:ord2} are computed so that this recursive application of 111 \autoref{eq:autoreg} leads to processes with the required standard deviation and correlation timescale, 106 112 with the additional condition that the $n-1$ first derivatives of the autocorrelation function are equal to 107 zero at~$t=0$, so that the resulting processes become smoother and smoother as $n$ i s increased.113 zero at~$t=0$, so that the resulting processes become smoother and smoother as $n$ increases. 108 114 109 115 Overall, this method provides quite a simple and generic way of generating a wide class of stochastic processes. 110 116 However, this also means that new model parameters are needed to specify each of these stochastic processes. 111 As in any parameterization of lacking physics, a very important issues then to tune these newparameters using117 As in any parameterization, the main issue is to tune the parameters using 112 118 either first principles, model simulations, or real-world observations. 119 The parameters are set by default as described in \cite{brankart_OM13}, which has been shown in the paper 120 to give good results for a global low resolution (2°) NEMO configuration. where this parametrization produces a major effect on the average large-scale circulation, especilally in regions of intense mesoscale activity. 121 The set of parameters will need further investigation to find appropriate values 122 for any other configuration or resolution of the model. 113 123 114 124 \section{Implementation details} 115 125 \label{sec:STO_thech_details} 116 126 117 %---------------------------------------namsbc--------------------------------------------------118 127 119 \nlst{namsto} 120 %-------------------------------------------------------------------------------------------------------------- 128 The code implementing stochastic parametrisation is located in the src/OCE/STO directory. 129 It contains three modules : 130 % \begin{description} 121 131 122 The computer code implementing stochastic parametrisations can be found in the STO directory. 123 It involves three modules : 124 \begin{description} 125 \item[\mdl{stopar}:] 126 define the Stochastic parameters and their time evolution. 127 \item[\mdl{storng}:] 128 a random number generator based on (and includes) the 64-bit KISS (Keep It Simple Stupid) random number generator 129 distributed by George Marsaglia 130 (see \href{https://groups.google.com/forum/#!searchin/comp.lang.fortran/64-bit$20KISS$20RNGs}{here}) 131 \item[\mdl{stopts}:] 132 stochastic parametrisation associated with the non-linearity of the equation of seawater, 133 implementing \autoref{eq:sto_pert} and specific piece of code in 134 the equation of state implementing \autoref{eq:eos_sto}. 135 \end{description} 132 \mdl{stopar} : define the Stochastic parameters and their time evolution 136 133 137 The \mdl{stopar} module has 3 public routines to be called by the model (in our case, NEMO): 134 \mdl{storng} : random number generator based on and including the 64-bit KISS (Keep It Simple Stupid) random number generator distributed by George Marsaglia 138 135 139 The first routine (\rou{sto\_par}) is a direct implementation of (\autoref{eq:autoreg}), 136 \mdl{stopts} : stochastic parametrisation associated with the non-linearity of the equation of 137 seawater, implementing \autoref{eq:sto_pert} so as specifics in the equation of state 138 implementing \autoref{eq:eos_sto}. 139 % \end{description} 140 141 The \mdl{stopar} module includes three public routines called in the model: 142 143 (\rou{sto\_par}) is a direct implementation of \autoref{eq:autoreg}, 140 144 applied at each model grid point (in 2D or 3D), and called at each model time step ($k$) to 141 145 update every autoregressive process ($i=1,\ldots,m$). … … 143 147 to introduce a spatial correlation between the stochastic processes. 144 148 145 The second routine (\rou{sto\_par\_init}) is an initialization routine mainly dedicated to 146 the computation of parameters $a^{(i)}, b^{(i)}, c^{(i)}$ for each autoregressive process,149 (\rou{sto\_par\_init}) is the initialization routine computing 150 the values $a^{(i)}, b^{(i)}, c^{(i)}$ for each autoregressive process, 147 151 as a function of the statistical properties required by the model user 148 152 (mean, standard deviation, time correlation, order of the process,\ldots). 153 This routine also includes the initialization (seeding) of the random number generator. 149 154 150 Parameters for the processes can be specified through the following \ngn{namsto} namelist parameters: 155 (\rou{sto\_rst\_write}) writes a restart file 156 (which suffix name is given by \np{cn\_storst\_out} namelist parameter) containing the current value of 157 all autoregressive processes to allow creating the file needed for a restart. 158 This restart file also contains the current state of the random number generator. 159 When \np{ln\_rststo} is set to \forcode{.true.}), 160 the restart file (which suffix name is given by \np{cn\_storst\_in} namelist parameter) is read by 161 the initialization routine (\rou{sto\_par\_init}). 162 The simulation will continue exactly as if it was not interrupted only 163 when \np{ln\_rstseed} is set to \forcode{.true.}, 164 \ie when the state of the random number generator is read in the restart file.\\ 165 166 The implementation includes the basics for a few possible stochastic parametrisations including equation of state, lateral diffusion, horizontal pressure gradient, ice strength, trend, tracers dynamics. As for this release, only the stochastic parametrisation of equation of state is fully available and tested. \\ 167 168 Options and parameters \\ 169 170 The \np{ln\_sto\_eos} namelist variable activates stochastic parametrisation of equation of state. By default it set to \forcode{.false.}) and not active. 171 The set of parameters is available in \ngn{namsto} namelist(only the subset for equation of state stochastic parametrisation is listed below): 172 %---------------------------------------namsto-------------------------------------------------- 173 174 \nlst{namsto} 175 %-------------------------------------------------------------------------------------------------------------- 176 177 The variables of stochastic paramtetrisation itself (based on the global 2° experiments as in \cite{brankart_OM13} are: 151 178 \begin{description} 152 179 \item[\np{nn\_sto\_eos}:] number of independent random walks 153 \item[\np{rn\_eos\_stdxy}:] random walk hor z.standard deviation (in grid points)154 \item[\np{rn\_eos\_stdz}:] random walk vert .standard deviation (in grid points)180 \item[\np{rn\_eos\_stdxy}:] random walk horizontal standard deviation (in grid points) 181 \item[\np{rn\_eos\_stdz}:] random walk vertical standard deviation (in grid points) 155 182 \item[\np{rn\_eos\_tcor}:] random walk time correlation (in timesteps) 156 183 \item[\np{nn\_eos\_ord}:] order of autoregressive processes … … 158 185 \item[\np{rn\_eos\_lim}:] limitation factor (default = 3.0) 159 186 \end{description} 160 This routine also includes the initialization (seeding) of the random number generator.161 187 162 The third routine (\rou{sto\_rst\_write}) writes a restart file 163 (which suffix name is given by \np{cn\_storst\_out} namelist parameter) containing the current value of 164 all autoregressive processes to allow restarting a simulation from where it has been interrupted. 165 This file also contains the current state of the random number generator. 166 When \np{ln\_rststo} is set to \forcode{.true.}), 167 the restart file (which suffix name is given by \np{cn\_storst\_in} namelist parameter) is read by 168 the initialization routine (\rou{sto\_par\_init}). 169 The simulation will continue exactly as if it was not interrupted only 170 when \np{ln\_rstseed} is set to \forcode{.true.}, 171 \ie when the state of the random number generator is read in the restart file. 172 188 The first four parameters define the stochastic part of equation of state. 173 189 \biblio 174 190 -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_TRA.tex
r10544 r11422 55 55 56 56 The user has the option of extracting each tendency term on the RHS of the tracer equation for output 57 (\np{ln\_tra\_trd} or \np{ln\_tra\_mxl} ~\forcode{= .true.}), as described in \autoref{chap:DIA}.57 (\np{ln\_tra\_trd} or \np{ln\_tra\_mxl}\forcode{ = .true.}), as described in \autoref{chap:DIA}. 58 58 59 59 % ================================================================ 60 60 % Tracer Advection 61 61 % ================================================================ 62 \section{Tracer advection (\protect\mdl{traadv})} 62 \section[Tracer advection (\textit{traadv.F90})] 63 {Tracer advection (\protect\mdl{traadv})} 63 64 \label{sec:TRA_adv} 64 65 %------------------------------------------namtra_adv----------------------------------------------------- … … 81 82 Indeed, it is obtained by using the following equality: $\nabla \cdot (\vect U \, T) = \vect U \cdot \nabla T$ which 82 83 results from the use of the continuity equation, $\partial_t e_3 + e_3 \; \nabla \cdot \vect U = 0$ 83 (which reduces to $\nabla \cdot \vect U = 0$ in linear free surface, \ie \np{ln\_linssh} ~\forcode{= .true.}).84 (which reduces to $\nabla \cdot \vect U = 0$ in linear free surface, \ie \np{ln\_linssh}\forcode{ = .true.}). 84 85 Therefore it is of paramount importance to design the discrete analogue of the advection tendency so that 85 86 it is consistent with the continuity equation in order to enforce the conservation properties of … … 90 91 \begin{figure}[!t] 91 92 \begin{center} 92 \includegraphics[ ]{Fig_adv_scheme}93 \includegraphics[width=\textwidth]{Fig_adv_scheme} 93 94 \caption{ 94 95 \protect\label{fig:adv_scheme} … … 119 120 \begin{description} 120 121 \item[linear free surface:] 121 (\np{ln\_linssh} ~\forcode{= .true.})122 (\np{ln\_linssh}\forcode{ = .true.}) 122 123 the first level thickness is constant in time: 123 124 the vertical boundary condition is applied at the fixed surface $z = 0$ rather than on … … 127 128 the first level tracer value. 128 129 \item[non-linear free surface:] 129 (\np{ln\_linssh} ~\forcode{= .false.})130 (\np{ln\_linssh}\forcode{ = .false.}) 130 131 convergence/divergence in the first ocean level moves the free surface up/down. 131 132 There is no tracer advection through it so that the advective fluxes through the surface are also zero. … … 136 137 Nevertheless, in the latter case, it is achieved to a good approximation since 137 138 the non-conservative term is the product of the time derivative of the tracer and the free surface height, 138 two quantities that are not correlated \citep{ Roullet_Madec_JGR00, Griffies_al_MWR01, Campin2004}.139 140 The velocity field that appears in (\autoref{eq:tra_adv} and \autoref{eq:tra_adv_zco }) is139 two quantities that are not correlated \citep{roullet.madec_JGR00, griffies.pacanowski.ea_MWR01, campin.adcroft.ea_OM04}. 140 141 The velocity field that appears in (\autoref{eq:tra_adv} and \autoref{eq:tra_adv_zco?}) is 141 142 the centred (\textit{now}) \textit{effective} ocean velocity, \ie the \textit{eulerian} velocity 142 143 (see \autoref{chap:DYN}) plus the eddy induced velocity (\textit{eiv}) and/or … … 183 184 % 2nd and 4th order centred schemes 184 185 % ------------------------------------------------------------------------------------------------------------- 185 \subsection{CEN: Centred scheme (\protect\np{ln\_traadv\_cen}~\forcode{= .true.})} 186 \subsection[CEN: Centred scheme (\forcode{ln_traadv_cen = .true.})] 187 {CEN: Centred scheme (\protect\np{ln\_traadv\_cen}\forcode{ = .true.})} 186 188 \label{subsec:TRA_adv_cen} 187 189 188 190 % 2nd order centred scheme 189 191 190 The centred advection scheme (CEN) is used when \np{ln\_traadv\_cen} ~\forcode{= .true.}.192 The centred advection scheme (CEN) is used when \np{ln\_traadv\_cen}\forcode{ = .true.}. 191 193 Its order ($2^{nd}$ or $4^{th}$) can be chosen independently on horizontal (iso-level) and vertical direction by 192 194 setting \np{nn\_cen\_h} and \np{nn\_cen\_v} to $2$ or $4$. … … 220 222 \tau_u^{cen4} = \overline{T - \frac{1}{6} \, \delta_i \Big[ \delta_{i + 1/2}[T] \, \Big]}^{\,i + 1/2} 221 223 \end{equation} 222 In the vertical direction (\np{nn\_cen\_v} ~\forcode{= 4}),223 a $4^{th}$ COMPACT interpolation has been prefered \citep{ Demange_PhD2014}.224 In the vertical direction (\np{nn\_cen\_v}\forcode{ = 4}), 225 a $4^{th}$ COMPACT interpolation has been prefered \citep{demange_phd14}. 224 226 In the COMPACT scheme, both the field and its derivative are interpolated, which leads, after a matrix inversion, 225 spectral characteristics similar to schemes of higher order \citep{ Lele_JCP1992}.227 spectral characteristics similar to schemes of higher order \citep{lele_JCP92}. 226 228 227 229 Strictly speaking, the CEN4 scheme is not a $4^{th}$ order advection scheme but … … 250 252 % FCT scheme 251 253 % ------------------------------------------------------------------------------------------------------------- 252 \subsection{FCT: Flux Corrected Transport scheme (\protect\np{ln\_traadv\_fct}~\forcode{= .true.})} 254 \subsection[FCT: Flux Corrected Transport scheme (\forcode{ln_traadv_fct = .true.})] 255 {FCT: Flux Corrected Transport scheme (\protect\np{ln\_traadv\_fct}\forcode{ = .true.})} 253 256 \label{subsec:TRA_adv_tvd} 254 257 255 The Flux Corrected Transport schemes (FCT) is used when \np{ln\_traadv\_fct} ~\forcode{= .true.}.258 The Flux Corrected Transport schemes (FCT) is used when \np{ln\_traadv\_fct}\forcode{ = .true.}. 256 259 Its order ($2^{nd}$ or $4^{th}$) can be chosen independently on horizontal (iso-level) and vertical direction by 257 260 setting \np{nn\_fct\_h} and \np{nn\_fct\_v} to $2$ or $4$. … … 277 280 (\ie it depends on the setting of \np{nn\_fct\_h} and \np{nn\_fct\_v}). 278 281 There exist many ways to define $c_u$, each corresponding to a different FCT scheme. 279 The one chosen in \NEMO is described in \citet{ Zalesak_JCP79}.282 The one chosen in \NEMO is described in \citet{zalesak_JCP79}. 280 283 $c_u$ only departs from $1$ when the advective term produces a local extremum in the tracer field. 281 284 The resulting scheme is quite expensive but \textit{positive}. 282 285 It can be used on both active and passive tracers. 283 A comparison of FCT-2 with MUSCL and a MPDATA scheme can be found in \citet{ Levy_al_GRL01}.286 A comparison of FCT-2 with MUSCL and a MPDATA scheme can be found in \citet{levy.estublier.ea_GRL01}. 284 287 285 288 An additional option has been added controlled by \np{nn\_fct\_zts}. … … 287 290 a $2^{nd}$ order FCT scheme is used on both horizontal and vertical direction, but on the latter, 288 291 a split-explicit time stepping is used, with a number of sub-timestep equals to \np{nn\_fct\_zts}. 289 This option can be useful when the size of the timestep is limited by vertical advection \citep{ Lemarie_OM2015}.292 This option can be useful when the size of the timestep is limited by vertical advection \citep{lemarie.debreu.ea_OM15}. 290 293 Note that in this case, a similar split-explicit time stepping should be used on vertical advection of momentum to 291 294 insure a better stability (see \autoref{subsec:DYN_zad}). … … 300 303 % MUSCL scheme 301 304 % ------------------------------------------------------------------------------------------------------------- 302 \subsection{MUSCL: Monotone Upstream Scheme for Conservative Laws (\protect\np{ln\_traadv\_mus}~\forcode{= .true.})} 305 \subsection[MUSCL: Monotone Upstream Scheme for Conservative Laws (\forcode{ln_traadv_mus = .true.})] 306 {MUSCL: Monotone Upstream Scheme for Conservative Laws (\protect\np{ln\_traadv\_mus}\forcode{ = .true.})} 303 307 \label{subsec:TRA_adv_mus} 304 308 305 The Monotone Upstream Scheme for Conservative Laws (MUSCL) is used when \np{ln\_traadv\_mus} ~\forcode{= .true.}.309 The Monotone Upstream Scheme for Conservative Laws (MUSCL) is used when \np{ln\_traadv\_mus}\forcode{ = .true.}. 306 310 MUSCL implementation can be found in the \mdl{traadv\_mus} module. 307 311 308 MUSCL has been first implemented in \NEMO by \citet{ Levy_al_GRL01}.312 MUSCL has been first implemented in \NEMO by \citet{levy.estublier.ea_GRL01}. 309 313 In its formulation, the tracer at velocity points is evaluated assuming a linear tracer variation between 310 314 two $T$-points (\autoref{fig:adv_scheme}). … … 331 335 This choice ensure the \textit{positive} character of the scheme. 332 336 In addition, fluxes round a grid-point where a runoff is applied can optionally be computed using upstream fluxes 333 (\np{ln\_mus\_ups} ~\forcode{= .true.}).337 (\np{ln\_mus\_ups}\forcode{ = .true.}). 334 338 335 339 % ------------------------------------------------------------------------------------------------------------- 336 340 % UBS scheme 337 341 % ------------------------------------------------------------------------------------------------------------- 338 \subsection{UBS a.k.a. UP3: Upstream-Biased Scheme (\protect\np{ln\_traadv\_ubs}~\forcode{= .true.})} 342 \subsection[UBS a.k.a. UP3: Upstream-Biased Scheme (\forcode{ln_traadv_ubs = .true.})] 343 {UBS a.k.a. UP3: Upstream-Biased Scheme (\protect\np{ln\_traadv\_ubs}\forcode{ = .true.})} 339 344 \label{subsec:TRA_adv_ubs} 340 345 341 The Upstream-Biased Scheme (UBS) is used when \np{ln\_traadv\_ubs} ~\forcode{= .true.}.346 The Upstream-Biased Scheme (UBS) is used when \np{ln\_traadv\_ubs}\forcode{ = .true.}. 342 347 UBS implementation can be found in the \mdl{traadv\_mus} module. 343 348 … … 358 363 359 364 This results in a dissipatively dominant (i.e. hyper-diffusive) truncation error 360 \citep{ Shchepetkin_McWilliams_OM05}.361 The overall performance of the advection scheme is similar to that reported in \cite{ Farrow1995}.365 \citep{shchepetkin.mcwilliams_OM05}. 366 The overall performance of the advection scheme is similar to that reported in \cite{farrow.stevens_JPO95}. 362 367 It is a relatively good compromise between accuracy and smoothness. 363 368 Nevertheless the scheme is not \textit{positive}, meaning that false extrema are permitted, … … 367 372 The intrinsic diffusion of UBS makes its use risky in the vertical direction where 368 373 the control of artificial diapycnal fluxes is of paramount importance 369 \citep{ Shchepetkin_McWilliams_OM05, Demange_PhD2014}.374 \citep{shchepetkin.mcwilliams_OM05, demange_phd14}. 370 375 Therefore the vertical flux is evaluated using either a $2^nd$ order FCT scheme or a $4^th$ order COMPACT scheme 371 (\np{nn\_cen\_v} ~\forcode{= 2 or 4}).376 (\np{nn\_cen\_v}\forcode{ = 2 or 4}). 372 377 373 378 For stability reasons (see \autoref{chap:STP}), the first term in \autoref{eq:tra_adv_ubs} … … 376 381 (which is the diffusive part of the scheme), 377 382 is evaluated using the \textit{before} tracer (forward in time). 378 This choice is discussed by \citet{ Webb_al_JAOT98} in the context of the QUICK advection scheme.383 This choice is discussed by \citet{webb.de-cuevas.ea_JAOT98} in the context of the QUICK advection scheme. 379 384 UBS and QUICK schemes only differ by one coefficient. 380 Replacing 1/6 with 1/8 in \autoref{eq:tra_adv_ubs} leads to the QUICK advection scheme \citep{ Webb_al_JAOT98}.385 Replacing 1/6 with 1/8 in \autoref{eq:tra_adv_ubs} leads to the QUICK advection scheme \citep{webb.de-cuevas.ea_JAOT98}. 381 386 This option is not available through a namelist parameter, since the 1/6 coefficient is hard coded. 382 387 Nevertheless it is quite easy to make the substitution in the \mdl{traadv\_ubs} module and obtain a QUICK scheme. … … 408 413 % QCK scheme 409 414 % ------------------------------------------------------------------------------------------------------------- 410 \subsection{QCK: QuiCKest scheme (\protect\np{ln\_traadv\_qck}~\forcode{= .true.})} 415 \subsection[QCK: QuiCKest scheme (\forcode{ln_traadv_qck = .true.})] 416 {QCK: QuiCKest scheme (\protect\np{ln\_traadv\_qck}\forcode{ = .true.})} 411 417 \label{subsec:TRA_adv_qck} 412 418 413 419 The Quadratic Upstream Interpolation for Convective Kinematics with Estimated Streaming Terms (QUICKEST) scheme 414 proposed by \citet{ Leonard1979} is used when \np{ln\_traadv\_qck}~\forcode{= .true.}.420 proposed by \citet{leonard_CMAME79} is used when \np{ln\_traadv\_qck}\forcode{ = .true.}. 415 421 QUICKEST implementation can be found in the \mdl{traadv\_qck} module. 416 422 417 423 QUICKEST is the third order Godunov scheme which is associated with the ULTIMATE QUICKEST limiter 418 \citep{ Leonard1991}.424 \citep{leonard_CMAME91}. 419 425 It has been implemented in NEMO by G. Reffray (MERCATOR-ocean) and can be found in the \mdl{traadv\_qck} module. 420 426 The resulting scheme is quite expensive but \textit{positive}. … … 431 437 % Tracer Lateral Diffusion 432 438 % ================================================================ 433 \section{Tracer lateral diffusion (\protect\mdl{traldf})} 439 \section[Tracer lateral diffusion (\textit{traldf.F90})] 440 {Tracer lateral diffusion (\protect\mdl{traldf})} 434 441 \label{sec:TRA_ldf} 435 442 %-----------------------------------------nam_traldf------------------------------------------------------ … … 453 460 except for the pure vertical component that appears when a rotation tensor is used. 454 461 This latter component is solved implicitly together with the vertical diffusion term (see \autoref{chap:STP}). 455 When \np{ln\_traldf\_msc} ~\forcode{= .true.}, a Method of Stabilizing Correction is used in which456 the pure vertical component is split into an explicit and an implicit part \citep{ Lemarie_OM2012}.462 When \np{ln\_traldf\_msc}\forcode{ = .true.}, a Method of Stabilizing Correction is used in which 463 the pure vertical component is split into an explicit and an implicit part \citep{lemarie.debreu.ea_OM12}. 457 464 458 465 % ------------------------------------------------------------------------------------------------------------- 459 466 % Type of operator 460 467 % ------------------------------------------------------------------------------------------------------------- 461 \subsection[Type of operator (\protect\np{ln\_traldf}\{\_NONE,\_lap,\_blp\}\})]{Type of operator (\protect\np{ln\_traldf\_NONE}, \protect\np{ln\_traldf\_lap}, or \protect\np{ln\_traldf\_blp}) } 468 \subsection[Type of operator (\texttt{ln\_traldf}\{\texttt{\_NONE,\_lap,\_blp}\})] 469 {Type of operator (\protect\np{ln\_traldf\_NONE}, \protect\np{ln\_traldf\_lap}, or \protect\np{ln\_traldf\_blp}) } 462 470 \label{subsec:TRA_ldf_op} 463 471 … … 465 473 466 474 \begin{description} 467 \item[\np{ln\_traldf\_NONE} ~\forcode{= .true.}:]475 \item[\np{ln\_traldf\_NONE}\forcode{ = .true.}:] 468 476 no operator selected, the lateral diffusive tendency will not be applied to the tracer equation. 469 477 This option can be used when the selected advection scheme is diffusive enough (MUSCL scheme for example). 470 \item[\np{ln\_traldf\_lap} ~\forcode{= .true.}:]478 \item[\np{ln\_traldf\_lap}\forcode{ = .true.}:] 471 479 a laplacian operator is selected. 472 480 This harmonic operator takes the following expression: $\mathpzc{L}(T) = \nabla \cdot A_{ht} \; \nabla T $, 473 481 where the gradient operates along the selected direction (see \autoref{subsec:TRA_ldf_dir}), 474 482 and $A_{ht}$ is the eddy diffusivity coefficient expressed in $m^2/s$ (see \autoref{chap:LDF}). 475 \item[\np{ln\_traldf\_blp} ~\forcode{= .true.}]:483 \item[\np{ln\_traldf\_blp}\forcode{ = .true.}]: 476 484 a bilaplacian operator is selected. 477 485 This biharmonic operator takes the following expression: … … 493 501 % Direction of action 494 502 % ------------------------------------------------------------------------------------------------------------- 495 \subsection[Action direction (\protect\np{ln\_traldf}\{\_lev,\_hor,\_iso,\_triad\})]{Direction of action (\protect\np{ln\_traldf\_lev}, \protect\np{ln\_traldf\_hor}, \protect\np{ln\_traldf\_iso}, or \protect\np{ln\_traldf\_triad}) } 503 \subsection[Action direction (\texttt{ln\_traldf}\{\texttt{\_lev,\_hor,\_iso,\_triad}\})] 504 {Direction of action (\protect\np{ln\_traldf\_lev}, \protect\np{ln\_traldf\_hor}, \protect\np{ln\_traldf\_iso}, or \protect\np{ln\_traldf\_triad}) } 496 505 \label{subsec:TRA_ldf_dir} 497 506 498 507 The choice of a direction of action determines the form of operator used. 499 508 The operator is a simple (re-entrant) laplacian acting in the (\textbf{i},\textbf{j}) plane when 500 iso-level option is used (\np{ln\_traldf\_lev} ~\forcode{= .true.}) or509 iso-level option is used (\np{ln\_traldf\_lev}\forcode{ = .true.}) or 501 510 when a horizontal (\ie geopotential) operator is demanded in \textit{z}-coordinate 502 511 (\np{ln\_traldf\_hor} and \np{ln\_zco} equal \forcode{.true.}). … … 519 528 % iso-level operator 520 529 % ------------------------------------------------------------------------------------------------------------- 521 \subsection{Iso-level (bi -)laplacian operator ( \protect\np{ln\_traldf\_iso}) } 530 \subsection[Iso-level (bi-)laplacian operator (\texttt{ln\_traldf\_iso})] 531 {Iso-level (bi-)laplacian operator ( \protect\np{ln\_traldf\_iso})} 522 532 \label{subsec:TRA_ldf_lev} 523 533 … … 537 547 It is a \textit{horizontal} operator (\ie acting along geopotential surfaces) in 538 548 the $z$-coordinate with or without partial steps, but is simply an iso-level operator in the $s$-coordinate. 539 It is thus used when, in addition to \np{ln\_traldf\_lap} or \np{ln\_traldf\_blp} ~\forcode{= .true.},540 we have \np{ln\_traldf\_lev} ~\forcode{= .true.} or \np{ln\_traldf\_hor}~=~\np{ln\_zco}~\forcode{= .true.}.549 It is thus used when, in addition to \np{ln\_traldf\_lap} or \np{ln\_traldf\_blp}\forcode{ = .true.}, 550 we have \np{ln\_traldf\_lev}\forcode{ = .true.} or \np{ln\_traldf\_hor}~=~\np{ln\_zco}\forcode{ = .true.}. 541 551 In both cases, it significantly contributes to diapycnal mixing. 542 552 It is therefore never recommended, even when using it in the bilaplacian case. 543 553 544 Note that in the partial step $z$-coordinate (\np{ln\_zps} ~\forcode{= .true.}),554 Note that in the partial step $z$-coordinate (\np{ln\_zps}\forcode{ = .true.}), 545 555 tracers in horizontally adjacent cells are located at different depths in the vicinity of the bottom. 546 556 In this case, horizontal derivatives in (\autoref{eq:tra_ldf_lap}) at the bottom level require a specific treatment. … … 550 560 % Rotated laplacian operator 551 561 % ------------------------------------------------------------------------------------------------------------- 552 \subsection{Standard and triad (bi 562 \subsection{Standard and triad (bi-)laplacian operator} 553 563 \label{subsec:TRA_ldf_iso_triad} 554 564 555 %&& Standard rotated (bi 565 %&& Standard rotated (bi-)laplacian operator 556 566 %&& ---------------------------------------------- 557 \subsubsection{Standard rotated (bi -)laplacian operator (\protect\mdl{traldf\_iso})} 567 \subsubsection[Standard rotated (bi-)laplacian operator (\textit{traldf\_iso.F90})] 568 {Standard rotated (bi-)laplacian operator (\protect\mdl{traldf\_iso})} 558 569 \label{subsec:TRA_ldf_iso} 559 570 The general form of the second order lateral tracer subgrid scale physics (\autoref{eq:PE_zdf}) … … 574 585 $r_1$ and $r_2$ are the slopes between the surface of computation ($z$- or $s$-surfaces) and 575 586 the surface along which the diffusion operator acts (\ie horizontal or iso-neutral surfaces). 576 It is thus used when, in addition to \np{ln\_traldf\_lap} ~\forcode{= .true.},577 we have \np{ln\_traldf\_iso} ~\forcode{= .true.},578 or both \np{ln\_traldf\_hor} ~\forcode{= .true.} and \np{ln\_zco}~\forcode{= .true.}.587 It is thus used when, in addition to \np{ln\_traldf\_lap}\forcode{ = .true.}, 588 we have \np{ln\_traldf\_iso}\forcode{ = .true.}, 589 or both \np{ln\_traldf\_hor}\forcode{ = .true.} and \np{ln\_zco}\forcode{ = .true.}. 579 590 The way these slopes are evaluated is given in \autoref{sec:LDF_slp}. 580 591 At the surface, bottom and lateral boundaries, the turbulent fluxes of heat and salt are set to zero using … … 590 601 This formulation conserves the tracer but does not ensure the decrease of the tracer variance. 591 602 Nevertheless the treatment performed on the slopes (see \autoref{chap:LDF}) allows the model to run safely without 592 any additional background horizontal diffusion \citep{ Guilyardi_al_CD01}.593 594 Note that in the partial step $z$-coordinate (\np{ln\_zps} ~\forcode{= .true.}),603 any additional background horizontal diffusion \citep{guilyardi.madec.ea_CD01}. 604 605 Note that in the partial step $z$-coordinate (\np{ln\_zps}\forcode{ = .true.}), 595 606 the horizontal derivatives at the bottom level in \autoref{eq:tra_ldf_iso} require a specific treatment. 596 607 They are calculated in module zpshde, described in \autoref{sec:TRA_zpshde}. 597 608 598 %&& Triad rotated (bi 609 %&& Triad rotated (bi-)laplacian operator 599 610 %&& ------------------------------------------- 600 \subsubsection{Triad rotated (bi -)laplacian operator (\protect\np{ln\_traldf\_triad})} 611 \subsubsection[Triad rotated (bi-)laplacian operator (\textit{ln\_traldf\_triad})] 612 {Triad rotated (bi-)laplacian operator (\protect\np{ln\_traldf\_triad})} 601 613 \label{subsec:TRA_ldf_triad} 602 614 603 If the Griffies triad scheme is employed (\np{ln\_traldf\_triad} ~\forcode{= .true.}; see \autoref{apdx:triad})604 605 An alternative scheme developed by \cite{ Griffies_al_JPO98} which ensures tracer variance decreases606 is also available in \NEMO (\np{ln\_traldf\_grif} ~\forcode{= .true.}).615 If the Griffies triad scheme is employed (\np{ln\_traldf\_triad}\forcode{ = .true.}; see \autoref{apdx:triad}) 616 617 An alternative scheme developed by \cite{griffies.gnanadesikan.ea_JPO98} which ensures tracer variance decreases 618 is also available in \NEMO (\np{ln\_traldf\_grif}\forcode{ = .true.}). 607 619 A complete description of the algorithm is given in \autoref{apdx:triad}. 608 620 … … 632 644 % Tracer Vertical Diffusion 633 645 % ================================================================ 634 \section{Tracer vertical diffusion (\protect\mdl{trazdf})} 646 \section[Tracer vertical diffusion (\textit{trazdf.F90})] 647 {Tracer vertical diffusion (\protect\mdl{trazdf})} 635 648 \label{sec:TRA_zdf} 636 649 %--------------------------------------------namzdf--------------------------------------------------------- … … 663 676 664 677 The large eddy coefficient found in the mixed layer together with high vertical resolution implies that 665 in the case of explicit time stepping (\np{ln\_zdfexp} ~\forcode{= .true.})678 in the case of explicit time stepping (\np{ln\_zdfexp}\forcode{ = .true.}) 666 679 there would be too restrictive a constraint on the time step. 667 680 Therefore, the default implicit time stepping is preferred for the vertical diffusion since 668 681 it overcomes the stability constraint. 669 A forward time differencing scheme (\np{ln\_zdfexp} ~\forcode{= .true.}) using682 A forward time differencing scheme (\np{ln\_zdfexp}\forcode{ = .true.}) using 670 683 a time splitting technique (\np{nn\_zdfexp} $> 1$) is provided as an alternative. 671 684 Namelist variables \np{ln\_zdfexp} and \np{nn\_zdfexp} apply to both tracers and dynamics. … … 680 693 % surface boundary condition 681 694 % ------------------------------------------------------------------------------------------------------------- 682 \subsection{Surface boundary condition (\protect\mdl{trasbc})} 695 \subsection[Surface boundary condition (\textit{trasbc.F90})] 696 {Surface boundary condition (\protect\mdl{trasbc})} 683 697 \label{subsec:TRA_sbc} 684 698 … … 730 744 Such time averaging prevents the divergence of odd and even time step (see \autoref{chap:STP}). 731 745 732 In the linear free surface case (\np{ln\_linssh} ~\forcode{= .true.}), an additional term has to be added on746 In the linear free surface case (\np{ln\_linssh}\forcode{ = .true.}), an additional term has to be added on 733 747 both temperature and salinity. 734 748 On temperature, this term remove the heat content associated with mass exchange that has been added to $Q_{ns}$. … … 747 761 Note that an exact conservation of heat and salt content is only achieved with non-linear free surface. 748 762 In the linear free surface case, there is a small imbalance. 749 The imbalance is larger than the imbalance associated with the Asselin time filter \citep{ Leclair_Madec_OM09}.763 The imbalance is larger than the imbalance associated with the Asselin time filter \citep{leclair.madec_OM09}. 750 764 This is the reason why the modified filter is not applied in the linear free surface case (see \autoref{chap:STP}). 751 765 … … 753 767 % Solar Radiation Penetration 754 768 % ------------------------------------------------------------------------------------------------------------- 755 \subsection{Solar radiation penetration (\protect\mdl{traqsr})} 769 \subsection[Solar radiation penetration (\textit{traqsr.F90})] 770 {Solar radiation penetration (\protect\mdl{traqsr})} 756 771 \label{subsec:TRA_qsr} 757 772 %--------------------------------------------namqsr-------------------------------------------------------- … … 761 776 762 777 Options are defined through the \ngn{namtra\_qsr} namelist variables. 763 When the penetrative solar radiation option is used (\np{ln\_flxqsr} ~\forcode{= .true.}),778 When the penetrative solar radiation option is used (\np{ln\_flxqsr}\forcode{ = .true.}), 764 779 the solar radiation penetrates the top few tens of meters of the ocean. 765 If it is not used (\np{ln\_flxqsr} ~\forcode{= .false.}) all the heat flux is absorbed in the first ocean level.780 If it is not used (\np{ln\_flxqsr}\forcode{ = .false.}) all the heat flux is absorbed in the first ocean level. 766 781 Thus, in the former case a term is added to the time evolution equation of temperature \autoref{eq:PE_tra_T} and 767 782 the surface boundary condition is modified to take into account only the non-penetrative part of the surface … … 792 807 larger depths where it contributes to local heating. 793 808 The way this second part of the solar energy penetrates into the ocean depends on which formulation is chosen. 794 In the simple 2-waveband light penetration scheme (\np{ln\_qsr\_2bd} ~\forcode{= .true.})809 In the simple 2-waveband light penetration scheme (\np{ln\_qsr\_2bd}\forcode{ = .true.}) 795 810 a chlorophyll-independent monochromatic formulation is chosen for the shorter wavelengths, 796 leading to the following expression \citep{ Paulson1977}:811 leading to the following expression \citep{paulson.simpson_JPO77}: 797 812 \[ 798 813 % \label{eq:traqsr_iradiance} … … 805 820 806 821 Such assumptions have been shown to provide a very crude and simplistic representation of 807 observed light penetration profiles (\cite{ Morel_JGR88}, see also \autoref{fig:traqsr_irradiance}).822 observed light penetration profiles (\cite{morel_JGR88}, see also \autoref{fig:traqsr_irradiance}). 808 823 Light absorption in the ocean depends on particle concentration and is spectrally selective. 809 \cite{ Morel_JGR88} has shown that an accurate representation of light penetration can be provided by824 \cite{morel_JGR88} has shown that an accurate representation of light penetration can be provided by 810 825 a 61 waveband formulation. 811 826 Unfortunately, such a model is very computationally expensive. 812 Thus, \cite{ Lengaigne_al_CD07} have constructed a simplified version of this formulation in which827 Thus, \cite{lengaigne.menkes.ea_CD07} have constructed a simplified version of this formulation in which 813 828 visible light is split into three wavebands: blue (400-500 nm), green (500-600 nm) and red (600-700nm). 814 829 For each wave-band, the chlorophyll-dependent attenuation coefficient is fitted to the coefficients computed from 815 the full spectral model of \cite{ Morel_JGR88} (as modified by \cite{Morel_Maritorena_JGR01}),830 the full spectral model of \cite{morel_JGR88} (as modified by \cite{morel.maritorena_JGR01}), 816 831 assuming the same power-law relationship. 817 832 As shown in \autoref{fig:traqsr_irradiance}, this formulation, called RGB (Red-Green-Blue), … … 820 835 The 2-bands formulation does not reproduce the full model very well. 821 836 822 The RGB formulation is used when \np{ln\_qsr\_rgb} ~\forcode{= .true.}.837 The RGB formulation is used when \np{ln\_qsr\_rgb}\forcode{ = .true.}. 823 838 The RGB attenuation coefficients (\ie the inverses of the extinction length scales) are tabulated over 824 839 61 nonuniform chlorophyll classes ranging from 0.01 to 10 g.Chl/L … … 827 842 828 843 \begin{description} 829 \item[\np{nn\_chdta} ~\forcode{= 0}]844 \item[\np{nn\_chdta}\forcode{ = 0}] 830 845 a constant 0.05 g.Chl/L value everywhere ; 831 \item[\np{nn\_chdta} ~\forcode{= 1}]846 \item[\np{nn\_chdta}\forcode{ = 1}] 832 847 an observed time varying chlorophyll deduced from satellite surface ocean color measurement spread uniformly in 833 848 the vertical direction; 834 \item[\np{nn\_chdta} ~\forcode{= 2}]849 \item[\np{nn\_chdta}\forcode{ = 2}] 835 850 same as previous case except that a vertical profile of chlorophyl is used. 836 Following \cite{ Morel_Berthon_LO89}, the profile is computed from the local surface chlorophyll value;837 \item[\np{ln\_qsr\_bio} ~\forcode{= .true.}]851 Following \cite{morel.berthon_LO89}, the profile is computed from the local surface chlorophyll value; 852 \item[\np{ln\_qsr\_bio}\forcode{ = .true.}] 838 853 simulated time varying chlorophyll by TOP biogeochemical model. 839 854 In this case, the RGB formulation is used to calculate both the phytoplankton light limitation in … … 856 871 \begin{figure}[!t] 857 872 \begin{center} 858 \includegraphics[ ]{Fig_TRA_Irradiance}873 \includegraphics[width=\textwidth]{Fig_TRA_Irradiance} 859 874 \caption{ 860 875 \protect\label{fig:traqsr_irradiance} … … 865 880 61 waveband Morel (1988) formulation (black) for a chlorophyll concentration of 866 881 (a) Chl=0.05 mg/m$^3$ and (b) Chl=0.5 mg/m$^3$. 867 From \citet{ Lengaigne_al_CD07}.882 From \citet{lengaigne.menkes.ea_CD07}. 868 883 } 869 884 \end{center} … … 874 889 % Bottom Boundary Condition 875 890 % ------------------------------------------------------------------------------------------------------------- 876 \subsection{Bottom boundary condition (\protect\mdl{trabbc})} 891 \subsection[Bottom boundary condition (\textit{trabbc.F90})] 892 {Bottom boundary condition (\protect\mdl{trabbc})} 877 893 \label{subsec:TRA_bbc} 878 894 %--------------------------------------------nambbc-------------------------------------------------------- … … 883 899 \begin{figure}[!t] 884 900 \begin{center} 885 \includegraphics[ ]{Fig_TRA_geoth}901 \includegraphics[width=\textwidth]{Fig_TRA_geoth} 886 902 \caption{ 887 903 \protect\label{fig:geothermal} 888 Geothermal Heat flux (in $mW.m^{-2}$) used by \cite{ Emile-Geay_Madec_OS09}.889 It is inferred from the age of the sea floor and the formulae of \citet{ Stein_Stein_Nat92}.904 Geothermal Heat flux (in $mW.m^{-2}$) used by \cite{emile-geay.madec_OS09}. 905 It is inferred from the age of the sea floor and the formulae of \citet{stein.stein_N92}. 890 906 } 891 907 \end{center} … … 897 913 This is the default option in \NEMO, and it is implemented using the masking technique. 898 914 However, there is a non-zero heat flux across the seafloor that is associated with solid earth cooling. 899 This flux is weak compared to surface fluxes (a mean global value of $\sim 0.1 \, W/m^2$ \citep{ Stein_Stein_Nat92}),915 This flux is weak compared to surface fluxes (a mean global value of $\sim 0.1 \, W/m^2$ \citep{stein.stein_N92}), 900 916 but it warms systematically the ocean and acts on the densest water masses. 901 917 Taking this flux into account in a global ocean model increases the deepest overturning cell 902 (\ie the one associated with the Antarctic Bottom Water) by a few Sverdrups \citep{ Emile-Geay_Madec_OS09}.918 (\ie the one associated with the Antarctic Bottom Water) by a few Sverdrups \citep{emile-geay.madec_OS09}. 903 919 904 920 Options are defined through the \ngn{namtra\_bbc} namelist variables. … … 907 923 the \np{nn\_geoflx\_cst}, which is also a namelist parameter. 908 924 When \np{nn\_geoflx} is set to 2, a spatially varying geothermal heat flux is introduced which is provided in 909 the \ifile{geothermal\_heating} NetCDF file (\autoref{fig:geothermal}) \citep{ Emile-Geay_Madec_OS09}.925 the \ifile{geothermal\_heating} NetCDF file (\autoref{fig:geothermal}) \citep{emile-geay.madec_OS09}. 910 926 911 927 % ================================================================ 912 928 % Bottom Boundary Layer 913 929 % ================================================================ 914 \section{Bottom boundary layer (\protect\mdl{trabbl} - \protect\key{trabbl})} 930 \section[Bottom boundary layer (\textit{trabbl.F90} - \texttt{\textbf{key\_trabbl}})] 931 {Bottom boundary layer (\protect\mdl{trabbl} - \protect\key{trabbl})} 915 932 \label{sec:TRA_bbl} 916 933 %--------------------------------------------nambbl--------------------------------------------------------- … … 931 948 sometimes over a thickness much larger than the thickness of the observed gravity plume. 932 949 A similar problem occurs in the $s$-coordinate when the thickness of the bottom level varies rapidly downstream of 933 a sill \citep{ Willebrand_al_PO01}, and the thickness of the plume is not resolved.934 935 The idea of the bottom boundary layer (BBL) parameterisation, first introduced by \citet{ Beckmann_Doscher1997},950 a sill \citep{willebrand.barnier.ea_PO01}, and the thickness of the plume is not resolved. 951 952 The idea of the bottom boundary layer (BBL) parameterisation, first introduced by \citet{beckmann.doscher_JPO97}, 936 953 is to allow a direct communication between two adjacent bottom cells at different levels, 937 954 whenever the densest water is located above the less dense water. … … 939 956 In the current implementation of the BBL, only the tracers are modified, not the velocities. 940 957 Furthermore, it only connects ocean bottom cells, and therefore does not include all the improvements introduced by 941 \citet{ Campin_Goosse_Tel99}.958 \citet{campin.goosse_T99}. 942 959 943 960 % ------------------------------------------------------------------------------------------------------------- 944 961 % Diffusive BBL 945 962 % ------------------------------------------------------------------------------------------------------------- 946 \subsection{Diffusive bottom boundary layer (\protect\np{nn\_bbl\_ldf}~\forcode{= 1})} 963 \subsection[Diffusive bottom boundary layer (\forcode{nn_bbl_ldf = 1})] 964 {Diffusive bottom boundary layer (\protect\np{nn\_bbl\_ldf}\forcode{ = 1})} 947 965 \label{subsec:TRA_bbl_diff} 948 966 … … 955 973 with $\nabla_\sigma$ the lateral gradient operator taken between bottom cells, and 956 974 $A_l^\sigma$ the lateral diffusivity in the BBL. 957 Following \citet{ Beckmann_Doscher1997}, the latter is prescribed with a spatial dependence,975 Following \citet{beckmann.doscher_JPO97}, the latter is prescribed with a spatial dependence, 958 976 \ie in the conditional form 959 977 \begin{equation} … … 983 1001 % Advective BBL 984 1002 % ------------------------------------------------------------------------------------------------------------- 985 \subsection{Advective bottom boundary layer (\protect\np{nn\_bbl\_adv}~\forcode{= 1..2})} 1003 \subsection[Advective bottom boundary layer (\forcode{nn_bbl_adv = [12]})] 1004 {Advective bottom boundary layer (\protect\np{nn\_bbl\_adv}\forcode{ = [12]})} 986 1005 \label{subsec:TRA_bbl_adv} 987 1006 … … 994 1013 \begin{figure}[!t] 995 1014 \begin{center} 996 \includegraphics[ ]{Fig_BBL_adv}1015 \includegraphics[width=\textwidth]{Fig_BBL_adv} 997 1016 \caption{ 998 1017 \protect\label{fig:bbl} … … 1014 1033 %%%gmcomment : this section has to be really written 1015 1034 1016 When applying an advective BBL (\np{nn\_bbl\_adv} ~\forcode{= 1..2}), an overturning circulation is added which1035 When applying an advective BBL (\np{nn\_bbl\_adv}\forcode{ = 1..2}), an overturning circulation is added which 1017 1036 connects two adjacent bottom grid-points only if dense water overlies less dense water on the slope. 1018 1037 The density difference causes dense water to move down the slope. 1019 1038 1020 \np{nn\_bbl\_adv} ~\forcode{= 1}:1039 \np{nn\_bbl\_adv}\forcode{ = 1}: 1021 1040 the downslope velocity is chosen to be the Eulerian ocean velocity just above the topographic step 1022 (see black arrow in \autoref{fig:bbl}) \citep{ Beckmann_Doscher1997}.1041 (see black arrow in \autoref{fig:bbl}) \citep{beckmann.doscher_JPO97}. 1023 1042 It is a \textit{conditional advection}, that is, advection is allowed only 1024 1043 if dense water overlies less dense water on the slope (\ie $\nabla_\sigma \rho \cdot \nabla H < 0$) and 1025 1044 if the velocity is directed towards greater depth (\ie $\vect U \cdot \nabla H > 0$). 1026 1045 1027 \np{nn\_bbl\_adv} ~\forcode{= 2}:1046 \np{nn\_bbl\_adv}\forcode{ = 2}: 1028 1047 the downslope velocity is chosen to be proportional to $\Delta \rho$, 1029 the density difference between the higher cell and lower cell densities \citep{ Campin_Goosse_Tel99}.1048 the density difference between the higher cell and lower cell densities \citep{campin.goosse_T99}. 1030 1049 The advection is allowed only if dense water overlies less dense water on the slope 1031 1050 (\ie $\nabla_\sigma \rho \cdot \nabla H < 0$). … … 1041 1060 The parameter $\gamma$ should take a different value for each bathymetric step, but for simplicity, 1042 1061 and because no direct estimation of this parameter is available, a uniform value has been assumed. 1043 The possible values for $\gamma$ range between 1 and $10~s$ \citep{ Campin_Goosse_Tel99}.1062 The possible values for $\gamma$ range between 1 and $10~s$ \citep{campin.goosse_T99}. 1044 1063 1045 1064 Scalar properties are advected by this additional transport $(u^{tr}_{bbl},v^{tr}_{bbl})$ using the upwind scheme. … … 1074 1093 % Tracer damping 1075 1094 % ================================================================ 1076 \section{Tracer damping (\protect\mdl{tradmp})} 1095 \section[Tracer damping (\textit{tradmp.F90})] 1096 {Tracer damping (\protect\mdl{tradmp})} 1077 1097 \label{sec:TRA_dmp} 1078 1098 %--------------------------------------------namtra_dmp------------------------------------------------- … … 1109 1129 In the vicinity of these walls, $\gamma$ takes large values (equivalent to a time scale of a few days) whereas 1110 1130 it is zero in the interior of the model domain. 1111 The second case corresponds to the use of the robust diagnostic method \citep{ Sarmiento1982}.1131 The second case corresponds to the use of the robust diagnostic method \citep{sarmiento.bryan_JGR82}. 1112 1132 It allows us to find the velocity field consistent with the model dynamics whilst 1113 1133 having a $T$, $S$ field close to a given climatological field ($T_o$, $S_o$). … … 1121 1141 only below the mixed layer (defined either on a density or $S_o$ criterion). 1122 1142 It is common to set the damping to zero in the mixed layer as the adjustment time scale is short here 1123 \citep{ Madec_al_JPO96}.1143 \citep{madec.delecluse.ea_JPO96}. 1124 1144 1125 1145 For generating \ifile{resto}, see the documentation for the DMP tool provided with the source code under … … 1129 1149 % Tracer time evolution 1130 1150 % ================================================================ 1131 \section{Tracer time evolution (\protect\mdl{tranxt})} 1151 \section[Tracer time evolution (\textit{tranxt.F90})] 1152 {Tracer time evolution (\protect\mdl{tranxt})} 1132 1153 \label{sec:TRA_nxt} 1133 1154 %--------------------------------------------namdom----------------------------------------------------- … … 1137 1158 1138 1159 Options are defined through the \ngn{namdom} namelist variables. 1139 The general framework for tracer time stepping is a modified leap-frog scheme \citep{ Leclair_Madec_OM09},1160 The general framework for tracer time stepping is a modified leap-frog scheme \citep{leclair.madec_OM09}, 1140 1161 \ie a three level centred time scheme associated with a Asselin time filter (cf. \autoref{sec:STP_mLF}): 1141 1162 \begin{equation} … … 1151 1172 (\ie fluxes plus content in mass exchanges). 1152 1173 $\gamma$ is initialized as \np{rn\_atfp} (\textbf{namelist} parameter). 1153 Its default value is \np{rn\_atfp} ~\forcode{= 10.e-3}.1174 Its default value is \np{rn\_atfp}\forcode{ = 10.e-3}. 1154 1175 Note that the forcing correction term in the filter is not applied in linear free surface 1155 (\jp{lk\_vvl} ~\forcode{= .false.}) (see \autoref{subsec:TRA_sbc}).1176 (\jp{lk\_vvl}\forcode{ = .false.}) (see \autoref{subsec:TRA_sbc}). 1156 1177 Not also that in constant volume case, the time stepping is performed on $T$, not on its content, $e_{3t}T$. 1157 1178 … … 1166 1187 % Equation of State (eosbn2) 1167 1188 % ================================================================ 1168 \section{Equation of state (\protect\mdl{eosbn2}) } 1189 \section[Equation of state (\textit{eosbn2.F90})] 1190 {Equation of state (\protect\mdl{eosbn2})} 1169 1191 \label{sec:TRA_eosbn2} 1170 1192 %--------------------------------------------nameos----------------------------------------------------- … … 1176 1198 % Equation of State 1177 1199 % ------------------------------------------------------------------------------------------------------------- 1178 \subsection{Equation of seawater (\protect\np{nn\_eos}~\forcode{= -1..1})} 1200 \subsection[Equation of seawater (\forcode{nn_eos = {-1,1}})] 1201 {Equation of seawater (\protect\np{nn\_eos}\forcode{ = {-1,1}})} 1179 1202 \label{subsec:TRA_eos} 1180 1203 … … 1186 1209 Nonlinearities of the EOS are of major importance, in particular influencing the circulation through 1187 1210 determination of the static stability below the mixed layer, 1188 thus controlling rates of exchange between the atmosphere and the ocean interior \citep{ Roquet_JPO2015}.1189 Therefore an accurate EOS based on either the 1980 equation of state (EOS-80, \cite{ UNESCO1983}) or1190 TEOS-10 \citep{ TEOS10} standards should be used anytime a simulation of the real ocean circulation is attempted1191 \citep{ Roquet_JPO2015}.1211 thus controlling rates of exchange between the atmosphere and the ocean interior \citep{roquet.madec.ea_JPO15}. 1212 Therefore an accurate EOS based on either the 1980 equation of state (EOS-80, \cite{fofonoff.millard_bk83}) or 1213 TEOS-10 \citep{ioc.iapso_bk10} standards should be used anytime a simulation of the real ocean circulation is attempted 1214 \citep{roquet.madec.ea_JPO15}. 1192 1215 The use of TEOS-10 is highly recommended because 1193 1216 \textit{(i)} it is the new official EOS, … … 1195 1218 \textit{(iii)} it uses Conservative Temperature and Absolute Salinity (instead of potential temperature and 1196 1219 practical salinity for EOS-980, both variables being more suitable for use as model variables 1197 \citep{ TEOS10, Graham_McDougall_JPO13}.1220 \citep{ioc.iapso_bk10, graham.mcdougall_JPO13}. 1198 1221 EOS-80 is an obsolescent feature of the NEMO system, kept only for backward compatibility. 1199 1222 For process studies, it is often convenient to use an approximation of the EOS. 1200 To that purposed, a simplified EOS (S-EOS) inspired by \citet{ Vallis06} is also available.1223 To that purposed, a simplified EOS (S-EOS) inspired by \citet{vallis_bk06} is also available. 1201 1224 1202 1225 In the computer code, a density anomaly, $d_a = \rho / \rho_o - 1$, is computed, with $\rho_o$ a reference density. … … 1204 1227 This is a sensible choice for the reference density used in a Boussinesq ocean climate model, as, 1205 1228 with the exception of only a small percentage of the ocean, 1206 density in the World Ocean varies by no more than 2$\%$ from that value \citep{ Gill1982}.1229 density in the World Ocean varies by no more than 2$\%$ from that value \citep{gill_bk82}. 1207 1230 1208 1231 Options are defined through the \ngn{nameos} namelist variables, and in particular \np{nn\_eos} which … … 1210 1233 1211 1234 \begin{description} 1212 \item[\np{nn\_eos} ~\forcode{= -1}]1213 the polyTEOS10-bsq equation of seawater \citep{ Roquet_OM2015} is used.1235 \item[\np{nn\_eos}\forcode{ = -1}] 1236 the polyTEOS10-bsq equation of seawater \citep{roquet.madec.ea_OM15} is used. 1214 1237 The accuracy of this approximation is comparable to the TEOS-10 rational function approximation, 1215 1238 but it is optimized for a boussinesq fluid and the polynomial expressions have simpler and … … 1217 1240 use in ocean models. 1218 1241 Note that a slightly higher precision polynomial form is now used replacement of 1219 the TEOS-10 rational function approximation for hydrographic data analysis \citep{ TEOS10}.1242 the TEOS-10 rational function approximation for hydrographic data analysis \citep{ioc.iapso_bk10}. 1220 1243 A key point is that conservative state variables are used: 1221 1244 Absolute Salinity (unit: g/kg, notation: $S_A$) and Conservative Temperature (unit: \deg{C}, notation: $\Theta$). 1222 1245 The pressure in decibars is approximated by the depth in meters. 1223 1246 With TEOS10, the specific heat capacity of sea water, $C_p$, is a constant. 1224 It is set to $C_p = 3991.86795711963~J\,Kg^{-1}\,^{\circ}K^{-1}$, according to \citet{ TEOS10}.1247 It is set to $C_p = 3991.86795711963~J\,Kg^{-1}\,^{\circ}K^{-1}$, according to \citet{ioc.iapso_bk10}. 1225 1248 Choosing polyTEOS10-bsq implies that the state variables used by the model are $\Theta$ and $S_A$. 1226 1249 In particular, the initial state deined by the user have to be given as \textit{Conservative} Temperature and … … 1229 1252 either computing the air-sea and ice-sea fluxes (forced mode) or 1230 1253 sending the SST field to the atmosphere (coupled mode). 1231 \item[\np{nn\_eos} ~\forcode{= 0}]1254 \item[\np{nn\_eos}\forcode{ = 0}] 1232 1255 the polyEOS80-bsq equation of seawater is used. 1233 1256 It takes the same polynomial form as the polyTEOS10, but the coefficients have been optimized to … … 1238 1261 The pressure in decibars is approximated by the depth in meters. 1239 1262 With thsi EOS, the specific heat capacity of sea water, $C_p$, is a function of temperature, salinity and 1240 pressure \citep{ UNESCO1983}.1263 pressure \citep{fofonoff.millard_bk83}. 1241 1264 Nevertheless, a severe assumption is made in order to have a heat content ($C_p T_p$) which 1242 1265 is conserved by the model: $C_p$ is set to a constant value, the TEOS10 value. 1243 \item[\np{nn\_eos} ~\forcode{= 1}]1244 a simplified EOS (S-EOS) inspired by \citet{ Vallis06} is chosen,1266 \item[\np{nn\_eos}\forcode{ = 1}] 1267 a simplified EOS (S-EOS) inspired by \citet{vallis_bk06} is chosen, 1245 1268 the coefficients of which has been optimized to fit the behavior of TEOS10 1246 (Roquet, personal comm.) (see also \citet{ Roquet_JPO2015}).1269 (Roquet, personal comm.) (see also \citet{roquet.madec.ea_JPO15}). 1247 1270 It provides a simplistic linear representation of both cabbeling and thermobaricity effects which 1248 is enough for a proper treatment of the EOS in theoretical studies \citep{ Roquet_JPO2015}.1271 is enough for a proper treatment of the EOS in theoretical studies \citep{roquet.madec.ea_JPO15}. 1249 1272 With such an equation of state there is no longer a distinction between 1250 1273 \textit{conservative} and \textit{potential} temperature, … … 1303 1326 % Brunt-V\"{a}is\"{a}l\"{a} Frequency 1304 1327 % ------------------------------------------------------------------------------------------------------------- 1305 \subsection{Brunt-V\"{a}is\"{a}l\"{a} frequency (\protect\np{nn\_eos}~\forcode{= 0..2})} 1328 \subsection[Brunt-V\"{a}is\"{a}l\"{a} frequency (\forcode{nn_eos = [0-2]})] 1329 {Brunt-V\"{a}is\"{a}l\"{a} frequency (\protect\np{nn\_eos}\forcode{ = [0-2]})} 1306 1330 \label{subsec:TRA_bn2} 1307 1331 … … 1329 1353 \label{subsec:TRA_fzp} 1330 1354 1331 The freezing point of seawater is a function of salinity and pressure \citep{ UNESCO1983}:1355 The freezing point of seawater is a function of salinity and pressure \citep{fofonoff.millard_bk83}: 1332 1356 \begin{equation} 1333 1357 \label{eq:tra_eos_fzp} … … 1357 1381 % Horizontal Derivative in zps-coordinate 1358 1382 % ================================================================ 1359 \section{Horizontal derivative in \textit{zps}-coordinate (\protect\mdl{zpshde})} 1383 \section[Horizontal derivative in \textit{zps}-coordinate (\textit{zpshde.F90})] 1384 {Horizontal derivative in \textit{zps}-coordinate (\protect\mdl{zpshde})} 1360 1385 \label{sec:TRA_zpshde} 1361 1386 … … 1363 1388 I've changed "derivative" to "difference" and "mean" to "average"} 1364 1389 1365 With partial cells (\np{ln\_zps} ~\forcode{= .true.}) at bottom and top (\np{ln\_isfcav}~\forcode{= .true.}),1390 With partial cells (\np{ln\_zps}\forcode{ = .true.}) at bottom and top (\np{ln\_isfcav}\forcode{ = .true.}), 1366 1391 in general, tracers in horizontally adjacent cells live at different depths. 1367 1392 Horizontal gradients of tracers are needed for horizontal diffusion (\mdl{traldf} module) and 1368 1393 the hydrostatic pressure gradient calculations (\mdl{dynhpg} module). 1369 The partial cell properties at the top (\np{ln\_isfcav} ~\forcode{= .true.}) are computed in the same way as1394 The partial cell properties at the top (\np{ln\_isfcav}\forcode{ = .true.}) are computed in the same way as 1370 1395 for the bottom. 1371 1396 So, only the bottom interpolation is explained below. … … 1379 1404 \begin{figure}[!p] 1380 1405 \begin{center} 1381 \includegraphics[ ]{Fig_partial_step_scheme}1406 \includegraphics[width=\textwidth]{Fig_partial_step_scheme} 1382 1407 \caption{ 1383 1408 \protect\label{fig:Partial_step_scheme} 1384 1409 Discretisation of the horizontal difference and average of tracers in the $z$-partial step coordinate 1385 (\protect\np{ln\_zps} ~\forcode{= .true.}) in the case $(e3w_k^{i + 1} - e3w_k^i) > 0$.1410 (\protect\np{ln\_zps}\forcode{ = .true.}) in the case $(e3w_k^{i + 1} - e3w_k^i) > 0$. 1386 1411 A linear interpolation is used to estimate $\widetilde T_k^{i + 1}$, 1387 1412 the tracer value at the depth of the shallower tracer point of the two adjacent bottom $T$-points. -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_ZDF.tex
r10442 r11422 25 25 At the surface they are prescribed from the surface forcing (see \autoref{chap:SBC}), 26 26 while at the bottom they are set to zero for heat and salt, 27 unless a geothermal flux forcing is prescribed as a bottom boundary condition (\ie \ key{trabbl} defined,27 unless a geothermal flux forcing is prescribed as a bottom boundary condition (\ie \np{ln\_trabbc} defined, 28 28 see \autoref{subsec:TRA_bbc}), and specified through a bottom friction parameterisation for momentum 29 (see \autoref{sec:ZDF_ bfr}).29 (see \autoref{sec:ZDF_drg}). 30 30 31 31 In this section we briefly discuss the various choices offered to compute the vertical eddy viscosity and … … 33 33 respectively (see \autoref{sec:TRA_zdf} and \autoref{sec:DYN_zdf}). 34 34 These coefficients can be assumed to be either constant, or a function of the local Richardson number, 35 or computed from a turbulent closure model (either TKE or GLS formulation).36 The computation of these coefficients is initialized in the \mdl{zdf ini} module and performed in37 the \mdl{zdfric}, \mdl{zdftke} or \mdl{zdfgls} modules.35 or computed from a turbulent closure model (either TKE or GLS or OSMOSIS formulation). 36 The computation of these coefficients is initialized in the \mdl{zdfphy} module and performed in 37 the \mdl{zdfric}, \mdl{zdftke} or \mdl{zdfgls} or \mdl{zdfosm} modules. 38 38 The trends due to the vertical momentum and tracer diffusion, including the surface forcing, 39 39 are computed and added to the general trend in the \mdl{dynzdf} and \mdl{trazdf} modules, respectively. 40 These trends can be computed using either a forward time stepping scheme 41 (namelist parameter \np{ln\_zdfexp}\forcode{ = .true.}) or a backward time stepping scheme 42 (\np{ln\_zdfexp}\forcode{ = .false.}) depending on the magnitude of the mixing coefficients, 43 and thus of the formulation used (see \autoref{chap:STP}). 44 45 % ------------------------------------------------------------------------------------------------------------- 46 % Constant 47 % ------------------------------------------------------------------------------------------------------------- 48 \subsection{Constant (\protect\key{zdfcst})} 49 \label{subsec:ZDF_cst} 50 %--------------------------------------------namzdf--------------------------------------------------------- 40 %These trends can be computed using either a forward time stepping scheme 41 %(namelist parameter \np{ln\_zdfexp}\forcode{ = .true.}) or a backward time stepping scheme 42 %(\np{ln\_zdfexp}\forcode{ = .false.}) depending on the magnitude of the mixing coefficients, 43 %and thus of the formulation used (see \autoref{chap:STP}). 44 45 %--------------------------------------------namzdf-------------------------------------------------------- 51 46 52 47 \nlst{namzdf} 53 48 %-------------------------------------------------------------------------------------------------------------- 54 49 50 % ------------------------------------------------------------------------------------------------------------- 51 % Constant 52 % ------------------------------------------------------------------------------------------------------------- 53 \subsection[Constant (\forcode{ln_zdfcst = .true.})] 54 {Constant (\protect\np{ln\_zdfcst}\forcode{ = .true.})} 55 \label{subsec:ZDF_cst} 56 55 57 Options are defined through the \ngn{namzdf} namelist variables. 56 When \ key{zdfcst} is defined, the momentum and tracer vertical eddy coefficients are set to58 When \np{ln\_zdfcst} is defined, the momentum and tracer vertical eddy coefficients are set to 57 59 constant values over the whole ocean. 58 60 This is the crudest way to define the vertical ocean physics. 59 It is recommended t hat this option is only usedin process studies, not in basin scale simulations.61 It is recommended to use this option only in process studies, not in basin scale simulations. 60 62 Typical values used in this case are: 61 63 \begin{align*} … … 72 74 % Richardson Number Dependent 73 75 % ------------------------------------------------------------------------------------------------------------- 74 \subsection{Richardson number dependent (\protect\key{zdfric})} 76 \subsection[Richardson number dependent (\forcode{ln_zdfric = .true.})] 77 {Richardson number dependent (\protect\np{ln\_zdfric}\forcode{ = .true.})} 75 78 \label{subsec:ZDF_ric} 76 79 … … 80 83 %-------------------------------------------------------------------------------------------------------------- 81 84 82 When \ key{zdfric} is defined, a local Richardson number dependent formulation for the vertical momentum and85 When \np{ln\_zdfric}\forcode{ = .true.}, a local Richardson number dependent formulation for the vertical momentum and 83 86 tracer eddy coefficients is set through the \ngn{namzdf\_ric} namelist variables. 84 87 The vertical mixing coefficients are diagnosed from the large scale variables computed by the model. … … 87 90 a dependency between the vertical eddy coefficients and the local Richardson number 88 91 (\ie the ratio of stratification to vertical shear). 89 Following \citet{ Pacanowski_Philander_JPO81}, the following formulation has been implemented:92 Following \citet{pacanowski.philander_JPO81}, the following formulation has been implemented: 90 93 \[ 91 94 % \label{eq:zdfric} … … 124 127 The final $h_{e}$ is further constrained by the adjustable bounds \np{rn\_mldmin} and \np{rn\_mldmax}. 125 128 Once $h_{e}$ is computed, the vertical eddy coefficients within $h_{e}$ are set to 126 the empirical values \np{rn\_wtmix} and \np{rn\_wvmix} \citep{ Lermusiaux2001}.129 the empirical values \np{rn\_wtmix} and \np{rn\_wvmix} \citep{lermusiaux_JMS01}. 127 130 128 131 % ------------------------------------------------------------------------------------------------------------- 129 132 % TKE Turbulent Closure Scheme 130 133 % ------------------------------------------------------------------------------------------------------------- 131 \subsection{TKE turbulent closure scheme (\protect\key{zdftke})} 134 \subsection[TKE turbulent closure scheme (\forcode{ln_zdftke = .true.})] 135 {TKE turbulent closure scheme (\protect\np{ln\_zdftke}\forcode{ = .true.})} 132 136 \label{subsec:ZDF_tke} 133 134 137 %--------------------------------------------namzdf_tke-------------------------------------------------- 135 138 … … 140 143 a prognostic equation for $\bar{e}$, the turbulent kinetic energy, 141 144 and a closure assumption for the turbulent length scales. 142 This turbulent closure model has been developed by \citet{ Bougeault1989} in the atmospheric case,143 adapted by \citet{ Gaspar1990} for the oceanic case, and embedded in OPA, the ancestor of NEMO,144 by \citet{ Blanke1993} for equatorial Atlantic simulations.145 Since then, significant modifications have been introduced by \citet{ Madec1998} in both the implementation and145 This turbulent closure model has been developed by \citet{bougeault.lacarrere_MWR89} in the atmospheric case, 146 adapted by \citet{gaspar.gregoris.ea_JGR90} for the oceanic case, and embedded in OPA, the ancestor of NEMO, 147 by \citet{blanke.delecluse_JPO93} for equatorial Atlantic simulations. 148 Since then, significant modifications have been introduced by \citet{madec.delecluse.ea_NPM98} in both the implementation and 146 149 the formulation of the mixing length scale. 147 150 The time evolution of $\bar{e}$ is the result of the production of $\bar{e}$ through vertical shear, 148 its destruction through stratification, its vertical diffusion, and its dissipation of \citet{ Kolmogorov1942} type:151 its destruction through stratification, its vertical diffusion, and its dissipation of \citet{kolmogorov_IANS42} type: 149 152 \begin{equation} 150 153 \label{eq:zdftke_e} … … 168 171 $P_{rt}$ is the Prandtl number, $K_m$ and $K_\rho$ are the vertical eddy viscosity and diffusivity coefficients. 169 172 The constants $C_k = 0.1$ and $C_\epsilon = \sqrt {2} /2$ $\approx 0.7$ are designed to deal with 170 vertical mixing at any depth \citep{ Gaspar1990}.173 vertical mixing at any depth \citep{gaspar.gregoris.ea_JGR90}. 171 174 They are set through namelist parameters \np{nn\_ediff} and \np{nn\_ediss}. 172 $P_{rt}$ can be set to unity or, following \citet{ Blanke1993}, be a function of the local Richardson number, $R_i$:175 $P_{rt}$ can be set to unity or, following \citet{blanke.delecluse_JPO93}, be a function of the local Richardson number, $R_i$: 173 176 \begin{align*} 174 177 % \label{eq:prt} … … 180 183 \end{cases} 181 184 \end{align*} 182 Options are defined through the \ngn{namzdfy\_tke} namelist variables.183 185 The choice of $P_{rt}$ is controlled by the \np{nn\_pdl} namelist variable. 184 186 185 187 At the sea surface, the value of $\bar{e}$ is prescribed from the wind stress field as 186 188 $\bar{e}_o = e_{bb} |\tau| / \rho_o$, with $e_{bb}$ the \np{rn\_ebb} namelist parameter. 187 The default value of $e_{bb}$ is 3.75. \citep{ Gaspar1990}), however a much larger value can be used when189 The default value of $e_{bb}$ is 3.75. \citep{gaspar.gregoris.ea_JGR90}), however a much larger value can be used when 188 190 taking into account the surface wave breaking (see below Eq. \autoref{eq:ZDF_Esbc}). 189 191 The bottom value of TKE is assumed to be equal to the value of the level just above. … … 191 193 the numerical scheme does not ensure its positivity. 192 194 To overcome this problem, a cut-off in the minimum value of $\bar{e}$ is used (\np{rn\_emin} namelist parameter). 193 Following \citet{ Gaspar1990}, the cut-off value is set to $\sqrt{2}/2~10^{-6}~m^2.s^{-2}$.194 This allows the subsequent formulations to match that of \citet{ Gargett1984} for the diffusion in195 Following \citet{gaspar.gregoris.ea_JGR90}, the cut-off value is set to $\sqrt{2}/2~10^{-6}~m^2.s^{-2}$. 196 This allows the subsequent formulations to match that of \citet{gargett_JMR84} for the diffusion in 195 197 the thermocline and deep ocean : $K_\rho = 10^{-3} / N$. 196 198 In addition, a cut-off is applied on $K_m$ and $K_\rho$ to avoid numerical instabilities associated with 197 199 too weak vertical diffusion. 198 200 They must be specified at least larger than the molecular values, and are set through \np{rn\_avm0} and 199 \np{rn\_avt0} ( namzdfnamelist, see \autoref{subsec:ZDF_cst}).201 \np{rn\_avt0} (\ngn{namzdf} namelist, see \autoref{subsec:ZDF_cst}). 200 202 201 203 \subsubsection{Turbulent length scale} 202 204 203 205 For computational efficiency, the original formulation of the turbulent length scales proposed by 204 \citet{ Gaspar1990} has been simplified.206 \citet{gaspar.gregoris.ea_JGR90} has been simplified. 205 207 Four formulations are proposed, the choice of which is controlled by the \np{nn\_mxl} namelist parameter. 206 The first two are based on the following first order approximation \citep{ Blanke1993}:208 The first two are based on the following first order approximation \citep{blanke.delecluse_JPO93}: 207 209 \begin{equation} 208 210 \label{eq:tke_mxl0_1} … … 212 214 The resulting length scale is bounded by the distance to the surface or to the bottom 213 215 (\np{nn\_mxl}\forcode{ = 0}) or by the local vertical scale factor (\np{nn\_mxl}\forcode{ = 1}). 214 \citet{ Blanke1993} notice that this simplification has two major drawbacks:216 \citet{blanke.delecluse_JPO93} notice that this simplification has two major drawbacks: 215 217 it makes no sense for locally unstable stratification and the computation no longer uses all 216 218 the information contained in the vertical density profile. 217 To overcome these drawbacks, \citet{ Madec1998} introduces the \np{nn\_mxl}\forcode{ = 2..3} cases,219 To overcome these drawbacks, \citet{madec.delecluse.ea_NPM98} introduces the \np{nn\_mxl}\forcode{ = 2, 3} cases, 218 220 which add an extra assumption concerning the vertical gradient of the computed length scale. 219 221 So, the length scales are first evaluated as in \autoref{eq:tke_mxl0_1} and then bounded such that: … … 225 227 \autoref{eq:tke_mxl_constraint} means that the vertical variations of the length scale cannot be larger than 226 228 the variations of depth. 227 It provides a better approximation of the \citet{ Gaspar1990} formulation while being much less229 It provides a better approximation of the \citet{gaspar.gregoris.ea_JGR90} formulation while being much less 228 230 time consuming. 229 231 In particular, it allows the length scale to be limited not only by the distance to the surface or … … 237 239 \begin{figure}[!t] 238 240 \begin{center} 239 \includegraphics[width= 1.00\textwidth]{Fig_mixing_length}241 \includegraphics[width=\textwidth]{Fig_mixing_length} 240 242 \caption{ 241 243 \protect\label{fig:mixing_length} … … 258 260 In the \np{nn\_mxl}\forcode{ = 2} case, the dissipation and mixing length scales take the same value: 259 261 $ l_k= l_\epsilon = \min \left(\ l_{up} \;,\; l_{dwn}\ \right)$, while in the \np{nn\_mxl}\forcode{ = 3} case, 260 the dissipation and mixing turbulent length scales are give as in \citet{ Gaspar1990}:262 the dissipation and mixing turbulent length scales are give as in \citet{gaspar.gregoris.ea_JGR90}: 261 263 \[ 262 264 % \label{eq:tke_mxl_gaspar} … … 270 272 Usually the surface scale is given by $l_o = \kappa \,z_o$ where $\kappa = 0.4$ is von Karman's constant and 271 273 $z_o$ the roughness parameter of the surface. 272 Assuming $z_o=0.1$~m \citep{ Craig_Banner_JPO94} leads to a 0.04~m, the default value of \np{rn\_mxl0}.274 Assuming $z_o=0.1$~m \citep{craig.banner_JPO94} leads to a 0.04~m, the default value of \np{rn\_mxl0}. 273 275 In the ocean interior a minimum length scale is set to recover the molecular viscosity when 274 276 $\bar{e}$ reach its minimum value ($1.10^{-6}= C_k\, l_{min} \,\sqrt{\bar{e}_{min}}$ ). … … 277 279 %-----------------------------------------------------------------------% 278 280 279 Following \citet{ Mellor_Blumberg_JPO04}, the TKE turbulence closure model has been modified to281 Following \citet{mellor.blumberg_JPO04}, the TKE turbulence closure model has been modified to 280 282 include the effect of surface wave breaking energetics. 281 283 This results in a reduction of summertime surface temperature when the mixed layer is relatively shallow. 282 The \citet{ Mellor_Blumberg_JPO04} modifications acts on surface length scale and TKE values and284 The \citet{mellor.blumberg_JPO04} modifications acts on surface length scale and TKE values and 283 285 air-sea drag coefficient. 284 The latter concerns the bulk formul eaand is not discussed here.285 286 Following \citet{ Craig_Banner_JPO94}, the boundary condition on surface TKE value is :286 The latter concerns the bulk formulae and is not discussed here. 287 288 Following \citet{craig.banner_JPO94}, the boundary condition on surface TKE value is : 287 289 \begin{equation} 288 290 \label{eq:ZDF_Esbc} 289 291 \bar{e}_o = \frac{1}{2}\,\left( 15.8\,\alpha_{CB} \right)^{2/3} \,\frac{|\tau|}{\rho_o} 290 292 \end{equation} 291 where $\alpha_{CB}$ is the \citet{ Craig_Banner_JPO94} constant of proportionality which depends on the ''wave age'',292 ranging from 57 for mature waves to 146 for younger waves \citep{ Mellor_Blumberg_JPO04}.293 where $\alpha_{CB}$ is the \citet{craig.banner_JPO94} constant of proportionality which depends on the ''wave age'', 294 ranging from 57 for mature waves to 146 for younger waves \citep{mellor.blumberg_JPO04}. 293 295 The boundary condition on the turbulent length scale follows the Charnock's relation: 294 296 \begin{equation} … … 297 299 \end{equation} 298 300 where $\kappa=0.40$ is the von Karman constant, and $\beta$ is the Charnock's constant. 299 \citet{ Mellor_Blumberg_JPO04} suggest $\beta = 2.10^{5}$ the value chosen by300 \citet{ Stacey_JPO99} citing observation evidence, and301 \citet{mellor.blumberg_JPO04} suggest $\beta = 2.10^{5}$ the value chosen by 302 \citet{stacey_JPO99} citing observation evidence, and 301 303 $\alpha_{CB} = 100$ the Craig and Banner's value. 302 304 As the surface boundary condition on TKE is prescribed through $\bar{e}_o = e_{bb} |\tau| / \rho_o$, 303 305 with $e_{bb}$ the \np{rn\_ebb} namelist parameter, setting \np{rn\_ebb}\forcode{ = 67.83} corresponds 304 306 to $\alpha_{CB} = 100$. 305 Further setting \np{ln\_mxl0 } to true applies \autoref{eq:ZDF_Lsbc} as surface boundary condition onlength scale,307 Further setting \np{ln\_mxl0=.true.}, applies \autoref{eq:ZDF_Lsbc} as the surface boundary condition on the length scale, 306 308 with $\beta$ hard coded to the Stacey's value. 307 Note that a minimal threshold of \np{rn\_emin0}$=10^{-4}~m^2.s^{-2}$ (namelist parameters) is applied on 309 Note that a minimal threshold of \np{rn\_emin0}$=10^{-4}~m^2.s^{-2}$ (namelist parameters) is applied on the 308 310 surface $\bar{e}$ value. 309 311 … … 315 317 Although LC have nothing to do with convection, the circulation pattern is rather similar to 316 318 so-called convective rolls in the atmospheric boundary layer. 317 The detailed physics behind LC is described in, for example, \citet{ Craik_Leibovich_JFM76}.319 The detailed physics behind LC is described in, for example, \citet{craik.leibovich_JFM76}. 318 320 The prevailing explanation is that LC arise from a nonlinear interaction between the Stokes drift and 319 321 wind drift currents. 320 322 321 323 Here we introduced in the TKE turbulent closure the simple parameterization of Langmuir circulations proposed by 322 \citep{ Axell_JGR02} for a $k-\epsilon$ turbulent closure.324 \citep{axell_JGR02} for a $k-\epsilon$ turbulent closure. 323 325 The parameterization, tuned against large-eddy simulation, includes the whole effect of LC in 324 an extra source term sof TKE, $P_{LC}$.326 an extra source term of TKE, $P_{LC}$. 325 327 The presence of $P_{LC}$ in \autoref{eq:zdftke_e}, the TKE equation, is controlled by setting \np{ln\_lc} to 326 \forcode{.true.} in the namtkenamelist.328 \forcode{.true.} in the \ngn{namzdf\_tke} namelist. 327 329 328 By making an analogy with the characteristic convective velocity scale (\eg, \citet{ D'Alessio_al_JPO98}),330 By making an analogy with the characteristic convective velocity scale (\eg, \citet{dalessio.abdella.ea_JPO98}), 329 331 $P_{LC}$ is assumed to be : 330 332 \[ … … 334 336 With no information about the wave field, $w_{LC}$ is assumed to be proportional to 335 337 the Stokes drift $u_s = 0.377\,\,|\tau|^{1/2}$, where $|\tau|$ is the surface wind stress module 336 \footnote{Following \citet{ Li_Garrett_JMR93}, the surface Stoke drift velocity may be expressed as338 \footnote{Following \citet{li.garrett_JMR93}, the surface Stoke drift velocity may be expressed as 337 339 $u_s = 0.016 \,|U_{10m}|$. 338 340 Assuming an air density of $\rho_a=1.22 \,Kg/m^3$ and a drag coefficient of … … 350 352 \end{cases} 351 353 \] 352 where $c_{LC} = 0.15$ has been chosen by \citep{ Axell_JGR02} as a good compromise to fit LES data.354 where $c_{LC} = 0.15$ has been chosen by \citep{axell_JGR02} as a good compromise to fit LES data. 353 355 The chosen value yields maximum vertical velocities $w_{LC}$ of the order of a few centimeters per second. 354 356 The value of $c_{LC}$ is set through the \np{rn\_lc} namelist parameter, 355 having in mind that it should stay between 0.15 and 0.54 \citep{ Axell_JGR02}.357 having in mind that it should stay between 0.15 and 0.54 \citep{axell_JGR02}. 356 358 357 359 The $H_{LC}$ is estimated in a similar way as the turbulent length scale of TKE equations: 358 $H_{LC}$ is depth to which a water parcel with kinetic energy due to Stoke drift can reach on its own by360 $H_{LC}$ is the depth to which a water parcel with kinetic energy due to Stoke drift can reach on its own by 359 361 converting its kinetic energy to potential energy, according to 360 362 \[ … … 368 370 produce mixed-layer depths that are too shallow during summer months and windy conditions. 369 371 This bias is particularly acute over the Southern Ocean. 370 To overcome this systematic bias, an ad hoc parameterization is introduced into the TKE scheme \cite{ Rodgers_2014}.372 To overcome this systematic bias, an ad hoc parameterization is introduced into the TKE scheme \cite{rodgers.aumont.ea_B14}. 371 373 The parameterization is an empirical one, \ie not derived from theoretical considerations, 372 374 but rather is meant to account for observed processes that affect the density structure of … … 383 385 \end{equation} 384 386 where $z$ is the depth, $e_s$ is TKE surface boundary condition, $f_r$ is the fraction of the surface TKE that 385 penetrate in the ocean, $h_\tau$ is a vertical mixing length scale that controls exponential shape of387 penetrates in the ocean, $h_\tau$ is a vertical mixing length scale that controls exponential shape of 386 388 the penetration, and $f_i$ is the ice concentration 387 (no penetration if $f_i=1$, that isif the ocean is entirely covered by sea-ice).389 (no penetration if $f_i=1$, \ie if the ocean is entirely covered by sea-ice). 388 390 The value of $f_r$, usually a few percents, is specified through \np{rn\_efr} namelist parameter. 389 391 The vertical mixing length scale, $h_\tau$, can be set as a 10~m uniform value (\np{nn\_etau}\forcode{ = 0}) or … … 391 393 (\np{nn\_etau}\forcode{ = 1}). 392 394 393 Note that two other option exist e, \np{nn\_etau}\forcode{ = 2..3}.395 Note that two other option exist, \np{nn\_etau}\forcode{ = 2, 3}. 394 396 They correspond to applying \autoref{eq:ZDF_Ehtau} only at the base of the mixed layer, 395 or to using the high frequency part of the stress to evaluate the fraction of TKE that penetrate the ocean.397 or to using the high frequency part of the stress to evaluate the fraction of TKE that penetrates the ocean. 396 398 Those two options are obsolescent features introduced for test purposes. 397 399 They will be removed in the next release. 400 401 % This should be explain better below what this rn_eice parameter is meant for: 402 In presence of Sea Ice, the value of this mixing can be modulated by the \np{rn\_eice} namelist parameter. 403 This parameter varies from \forcode{0} for no effect to \forcode{4} to suppress the TKE input into the ocean when Sea Ice concentration 404 is greater than 25\%. 398 405 399 406 % from Burchard et al OM 2008 : … … 406 413 407 414 % ------------------------------------------------------------------------------------------------------------- 408 % TKE discretization considerations 409 % ------------------------------------------------------------------------------------------------------------- 410 \subsection{TKE discretization considerations (\protect\key{zdftke})} 415 % GLS Generic Length Scale Scheme 416 % ------------------------------------------------------------------------------------------------------------- 417 \subsection[GLS: Generic Length Scale (\forcode{ln_zdfgls = .true.})] 418 {GLS: Generic Length Scale (\protect\np{ln\_zdfgls}\forcode{ = .true.})} 419 \label{subsec:ZDF_gls} 420 421 %--------------------------------------------namzdf_gls--------------------------------------------------------- 422 423 \nlst{namzdf_gls} 424 %-------------------------------------------------------------------------------------------------------------- 425 426 The Generic Length Scale (GLS) scheme is a turbulent closure scheme based on two prognostic equations: 427 one for the turbulent kinetic energy $\bar {e}$, and another for the generic length scale, 428 $\psi$ \citep{umlauf.burchard_JMR03, umlauf.burchard_CSR05}. 429 This later variable is defined as: $\psi = {C_{0\mu}}^{p} \ {\bar{e}}^{m} \ l^{n}$, 430 where the triplet $(p, m, n)$ value given in Tab.\autoref{tab:GLS} allows to recover a number of 431 well-known turbulent closures ($k$-$kl$ \citep{mellor.yamada_RG82}, $k$-$\epsilon$ \citep{rodi_JGR87}, 432 $k$-$\omega$ \citep{wilcox_AJ88} among others \citep{umlauf.burchard_JMR03,kantha.carniel_JMR03}). 433 The GLS scheme is given by the following set of equations: 434 \begin{equation} 435 \label{eq:zdfgls_e} 436 \frac{\partial \bar{e}}{\partial t} = 437 \frac{K_m}{\sigma_e e_3 }\;\left[ {\left( \frac{\partial u}{\partial k} \right)^2 438 +\left( \frac{\partial v}{\partial k} \right)^2} \right] 439 -K_\rho \,N^2 440 +\frac{1}{e_3}\,\frac{\partial}{\partial k} \left[ \frac{K_m}{e_3}\,\frac{\partial \bar{e}}{\partial k} \right] 441 - \epsilon 442 \end{equation} 443 444 \[ 445 % \label{eq:zdfgls_psi} 446 \begin{split} 447 \frac{\partial \psi}{\partial t} =& \frac{\psi}{\bar{e}} \left\{ 448 \frac{C_1\,K_m}{\sigma_{\psi} {e_3}}\;\left[ {\left( \frac{\partial u}{\partial k} \right)^2 449 +\left( \frac{\partial v}{\partial k} \right)^2} \right] 450 - C_3 \,K_\rho\,N^2 - C_2 \,\epsilon \,Fw \right\} \\ 451 &+\frac{1}{e_3} \;\frac{\partial }{\partial k}\left[ {\frac{K_m}{e_3 } 452 \;\frac{\partial \psi}{\partial k}} \right]\; 453 \end{split} 454 \] 455 456 \[ 457 % \label{eq:zdfgls_kz} 458 \begin{split} 459 K_m &= C_{\mu} \ \sqrt {\bar{e}} \ l \\ 460 K_\rho &= C_{\mu'}\ \sqrt {\bar{e}} \ l 461 \end{split} 462 \] 463 464 \[ 465 % \label{eq:zdfgls_eps} 466 {\epsilon} = C_{0\mu} \,\frac{\bar {e}^{3/2}}{l} \; 467 \] 468 where $N$ is the local Brunt-Vais\"{a}l\"{a} frequency (see \autoref{subsec:TRA_bn2}) and 469 $\epsilon$ the dissipation rate. 470 The constants $C_1$, $C_2$, $C_3$, ${\sigma_e}$, ${\sigma_{\psi}}$ and the wall function ($Fw$) depends of 471 the choice of the turbulence model. 472 Four different turbulent models are pre-defined (\autoref{tab:GLS}). 473 They are made available through the \np{nn\_clo} namelist parameter. 474 475 %--------------------------------------------------TABLE-------------------------------------------------- 476 \begin{table}[htbp] 477 \begin{center} 478 % \begin{tabular}{cp{70pt}cp{70pt}cp{70pt}cp{70pt}cp{70pt}cp{70pt}c} 479 \begin{tabular}{ccccc} 480 & $k-kl$ & $k-\epsilon$ & $k-\omega$ & generic \\ 481 % & \citep{mellor.yamada_RG82} & \citep{rodi_JGR87} & \citep{wilcox_AJ88} & \\ 482 \hline 483 \hline 484 \np{nn\_clo} & \textbf{0} & \textbf{1} & \textbf{2} & \textbf{3} \\ 485 \hline 486 $( p , n , m )$ & ( 0 , 1 , 1 ) & ( 3 , 1.5 , -1 ) & ( -1 , 0.5 , -1 ) & ( 2 , 1 , -0.67 ) \\ 487 $\sigma_k$ & 2.44 & 1. & 2. & 0.8 \\ 488 $\sigma_\psi$ & 2.44 & 1.3 & 2. & 1.07 \\ 489 $C_1$ & 0.9 & 1.44 & 0.555 & 1. \\ 490 $C_2$ & 0.5 & 1.92 & 0.833 & 1.22 \\ 491 $C_3$ & 1. & 1. & 1. & 1. \\ 492 $F_{wall}$ & Yes & -- & -- & -- \\ 493 \hline 494 \hline 495 \end{tabular} 496 \caption{ 497 \protect\label{tab:GLS} 498 Set of predefined GLS parameters, or equivalently predefined turbulence models available with 499 \protect\np{ln\_zdfgls}\forcode{ = .true.} and controlled by the \protect\np{nn\_clos} namelist variable in \protect\ngn{namzdf\_gls}. 500 } 501 \end{center} 502 \end{table} 503 %-------------------------------------------------------------------------------------------------------------- 504 505 In the Mellor-Yamada model, the negativity of $n$ allows to use a wall function to force the convergence of 506 the mixing length towards $\kappa z_b$ ($\kappa$ is the Von Karman constant and $z_b$ the rugosity length scale) value near physical boundaries 507 (logarithmic boundary layer law). 508 $C_{\mu}$ and $C_{\mu'}$ are calculated from stability function proposed by \citet{galperin.kantha.ea_JAS88}, 509 or by \citet{kantha.clayson_JGR94} or one of the two functions suggested by \citet{canuto.howard.ea_JPO01} 510 (\np{nn\_stab\_func}\forcode{ = 0, 3}, resp.). 511 The value of $C_{0\mu}$ depends on the choice of the stability function. 512 513 The surface and bottom boundary condition on both $\bar{e}$ and $\psi$ can be calculated thanks to Dirichlet or 514 Neumann condition through \np{nn\_bc\_surf} and \np{nn\_bc\_bot}, resp. 515 As for TKE closure, the wave effect on the mixing is considered when 516 \np{rn\_crban}\forcode{ > 0.} \citep{craig.banner_JPO94, mellor.blumberg_JPO04}. 517 The \np{rn\_crban} namelist parameter is $\alpha_{CB}$ in \autoref{eq:ZDF_Esbc} and 518 \np{rn\_charn} provides the value of $\beta$ in \autoref{eq:ZDF_Lsbc}. 519 520 The $\psi$ equation is known to fail in stably stratified flows, and for this reason 521 almost all authors apply a clipping of the length scale as an \textit{ad hoc} remedy. 522 With this clipping, the maximum permissible length scale is determined by $l_{max} = c_{lim} \sqrt{2\bar{e}}/ N$. 523 A value of $c_{lim} = 0.53$ is often used \citep{galperin.kantha.ea_JAS88}. 524 \cite{umlauf.burchard_CSR05} show that the value of the clipping factor is of crucial importance for 525 the entrainment depth predicted in stably stratified situations, 526 and that its value has to be chosen in accordance with the algebraic model for the turbulent fluxes. 527 The clipping is only activated if \np{ln\_length\_lim}\forcode{ = .true.}, 528 and the $c_{lim}$ is set to the \np{rn\_clim\_galp} value. 529 530 The time and space discretization of the GLS equations follows the same energetic consideration as for 531 the TKE case described in \autoref{subsec:ZDF_tke_ene} \citep{burchard_OM02}. 532 Evaluation of the 4 GLS turbulent closure schemes can be found in \citet{warner.sherwood.ea_OM05} in ROMS model and 533 in \citet{reffray.guillaume.ea_GMD15} for the \NEMO model. 534 535 536 % ------------------------------------------------------------------------------------------------------------- 537 % OSM OSMOSIS BL Scheme 538 % ------------------------------------------------------------------------------------------------------------- 539 \subsection[OSM: OSMosis boundary layer scheme (\forcode{ln_zdfosm = .true.})] 540 {OSM: OSMosis boundary layer scheme (\protect\np{ln\_zdfosm}\forcode{ = .true.})} 541 \label{subsec:ZDF_osm} 542 %--------------------------------------------namzdf_osm--------------------------------------------------------- 543 544 \nlst{namzdf_osm} 545 %-------------------------------------------------------------------------------------------------------------- 546 547 The OSMOSIS turbulent closure scheme is based on...... TBC 548 549 % ------------------------------------------------------------------------------------------------------------- 550 % TKE and GLS discretization considerations 551 % ------------------------------------------------------------------------------------------------------------- 552 \subsection[ Discrete energy conservation for TKE and GLS schemes] 553 {Discrete energy conservation for TKE and GLS schemes} 411 554 \label{subsec:ZDF_tke_ene} 412 555 … … 414 557 \begin{figure}[!t] 415 558 \begin{center} 416 \includegraphics[width= 1.00\textwidth]{Fig_ZDF_TKE_time_scheme}559 \includegraphics[width=\textwidth]{Fig_ZDF_TKE_time_scheme} 417 560 \caption{ 418 561 \protect\label{fig:TKE_time_scheme} 419 Illustration of the TKE time integrationand its links to the momentum and tracer time integration.562 Illustration of the subgrid kinetic energy integration in GLS and TKE schemes and its links to the momentum and tracer time integration. 420 563 } 421 564 \end{center} … … 424 567 425 568 The production of turbulence by vertical shear (the first term of the right hand side of 426 \autoref{eq:zdftke_e}) should balance the loss of kinetic energy associated with the vertical momentum diffusion569 \autoref{eq:zdftke_e}) and \autoref{eq:zdfgls_e}) should balance the loss of kinetic energy associated with the vertical momentum diffusion 427 570 (first line in \autoref{eq:PE_zdf}). 428 To do so a special care ha veto be taken for both the time and space discretization of429 the TKE equation \citep{Burchard_OM02,Marsaleix_al_OM08}.571 To do so a special care has to be taken for both the time and space discretization of 572 the kinetic energy equation \citep{burchard_OM02,marsaleix.auclair.ea_OM08}. 430 573 431 574 Let us first address the time stepping issue. \autoref{fig:TKE_time_scheme} shows how 432 575 the two-level Leap-Frog time stepping of the momentum and tracer equations interplays with 433 the one-level forward time stepping of TKE equation.576 the one-level forward time stepping of the equation for $\bar{e}$. 434 577 With this framework, the total loss of kinetic energy (in 1D for the demonstration) due to 435 578 the vertical momentum diffusion is obtained by multiplying this quantity by $u^t$ and … … 456 599 457 600 A similar consideration applies on the destruction rate of $\bar{e}$ due to stratification 458 (second term of the right hand side of \autoref{eq:zdftke_e} ).601 (second term of the right hand side of \autoref{eq:zdftke_e} and \autoref{eq:zdfgls_e}). 459 602 This term must balance the input of potential energy resulting from vertical mixing. 460 The rate of change of potential energy (in 1D for the demonstration) due vertical mixing is obtained by461 multiplying vertical density diffusion tendency by $g\,z$ and and summing the result vertically:603 The rate of change of potential energy (in 1D for the demonstration) due to vertical mixing is obtained by 604 multiplying the vertical density diffusion tendency by $g\,z$ and and summing the result vertically: 462 605 \begin{equation} 463 606 \label{eq:energ2} … … 475 618 The second term is minus the destruction rate of $\bar{e}$ due to stratification. 476 619 Therefore \autoref{eq:energ1} implies that, to be energetically consistent, 477 the product ${K_\rho}^{t-\rdt}\,(N^2)^t$ should be used in \autoref{eq:zdftke_e} , the TKE equation.620 the product ${K_\rho}^{t-\rdt}\,(N^2)^t$ should be used in \autoref{eq:zdftke_e} and \autoref{eq:zdfgls_e}. 478 621 479 622 Let us now address the space discretization issue. … … 483 626 By redoing the \autoref{eq:energ1} in the 3D case, it can be shown that the product of eddy coefficient by 484 627 the shear at $t$ and $t-\rdt$ must be performed prior to the averaging. 485 Furthermore, the possible time variation of $e_3$ (\key{vvl} case) have tobe taken into account.628 Furthermore, the time variation of $e_3$ has be taken into account. 486 629 487 630 The above energetic considerations leads to the following final discrete form for the TKE equation: … … 507 650 are time stepped using a backward scheme (see\autoref{sec:STP_forward_imp}). 508 651 Note that the Kolmogorov term has been linearized in time in order to render the implicit computation possible. 509 The restart of the TKE scheme requires the storage of $\bar {e}$, $K_m$, $K_\rho$ and $l_\epsilon$ as 510 they all appear in the right hand side of \autoref{eq:zdftke_ene}. 511 For the latter, it is in fact the ratio $\sqrt{\bar{e}}/l_\epsilon$ which is stored. 512 513 % ------------------------------------------------------------------------------------------------------------- 514 % GLS Generic Length Scale Scheme 515 % ------------------------------------------------------------------------------------------------------------- 516 \subsection{GLS: Generic Length Scale (\protect\key{zdfgls})} 517 \label{subsec:ZDF_gls} 518 519 %--------------------------------------------namzdf_gls--------------------------------------------------------- 520 521 \nlst{namzdf_gls} 522 %-------------------------------------------------------------------------------------------------------------- 523 524 The Generic Length Scale (GLS) scheme is a turbulent closure scheme based on two prognostic equations: 525 one for the turbulent kinetic energy $\bar {e}$, and another for the generic length scale, 526 $\psi$ \citep{Umlauf_Burchard_JMS03, Umlauf_Burchard_CSR05}. 527 This later variable is defined as: $\psi = {C_{0\mu}}^{p} \ {\bar{e}}^{m} \ l^{n}$, 528 where the triplet $(p, m, n)$ value given in Tab.\autoref{tab:GLS} allows to recover a number of 529 well-known turbulent closures ($k$-$kl$ \citep{Mellor_Yamada_1982}, $k$-$\epsilon$ \citep{Rodi_1987}, 530 $k$-$\omega$ \citep{Wilcox_1988} among others \citep{Umlauf_Burchard_JMS03,Kantha_Carniel_CSR05}). 531 The GLS scheme is given by the following set of equations: 532 \begin{equation} 533 \label{eq:zdfgls_e} 534 \frac{\partial \bar{e}}{\partial t} = 535 \frac{K_m}{\sigma_e e_3 }\;\left[ {\left( \frac{\partial u}{\partial k} \right)^2 536 +\left( \frac{\partial v}{\partial k} \right)^2} \right] 537 -K_\rho \,N^2 538 +\frac{1}{e_3}\,\frac{\partial}{\partial k} \left[ \frac{K_m}{e_3}\,\frac{\partial \bar{e}}{\partial k} \right] 539 - \epsilon 540 \end{equation} 541 542 \[ 543 % \label{eq:zdfgls_psi} 544 \begin{split} 545 \frac{\partial \psi}{\partial t} =& \frac{\psi}{\bar{e}} \left\{ 546 \frac{C_1\,K_m}{\sigma_{\psi} {e_3}}\;\left[ {\left( \frac{\partial u}{\partial k} \right)^2 547 +\left( \frac{\partial v}{\partial k} \right)^2} \right] 548 - C_3 \,K_\rho\,N^2 - C_2 \,\epsilon \,Fw \right\} \\ 549 &+\frac{1}{e_3} \;\frac{\partial }{\partial k}\left[ {\frac{K_m}{e_3 } 550 \;\frac{\partial \psi}{\partial k}} \right]\; 551 \end{split} 552 \] 553 554 \[ 555 % \label{eq:zdfgls_kz} 556 \begin{split} 557 K_m &= C_{\mu} \ \sqrt {\bar{e}} \ l \\ 558 K_\rho &= C_{\mu'}\ \sqrt {\bar{e}} \ l 559 \end{split} 560 \] 561 562 \[ 563 % \label{eq:zdfgls_eps} 564 {\epsilon} = C_{0\mu} \,\frac{\bar {e}^{3/2}}{l} \; 565 \] 566 where $N$ is the local Brunt-Vais\"{a}l\"{a} frequency (see \autoref{subsec:TRA_bn2}) and 567 $\epsilon$ the dissipation rate. 568 The constants $C_1$, $C_2$, $C_3$, ${\sigma_e}$, ${\sigma_{\psi}}$ and the wall function ($Fw$) depends of 569 the choice of the turbulence model. 570 Four different turbulent models are pre-defined (Tab.\autoref{tab:GLS}). 571 They are made available through the \np{nn\_clo} namelist parameter. 572 573 %--------------------------------------------------TABLE-------------------------------------------------- 574 \begin{table}[htbp] 575 \begin{center} 576 % \begin{tabular}{cp{70pt}cp{70pt}cp{70pt}cp{70pt}cp{70pt}cp{70pt}c} 577 \begin{tabular}{ccccc} 578 & $k-kl$ & $k-\epsilon$ & $k-\omega$ & generic \\ 579 % & \citep{Mellor_Yamada_1982} & \citep{Rodi_1987} & \citep{Wilcox_1988} & \\ 580 \hline 581 \hline 582 \np{nn\_clo} & \textbf{0} & \textbf{1} & \textbf{2} & \textbf{3} \\ 583 \hline 584 $( p , n , m )$ & ( 0 , 1 , 1 ) & ( 3 , 1.5 , -1 ) & ( -1 , 0.5 , -1 ) & ( 2 , 1 , -0.67 ) \\ 585 $\sigma_k$ & 2.44 & 1. & 2. & 0.8 \\ 586 $\sigma_\psi$ & 2.44 & 1.3 & 2. & 1.07 \\ 587 $C_1$ & 0.9 & 1.44 & 0.555 & 1. \\ 588 $C_2$ & 0.5 & 1.92 & 0.833 & 1.22 \\ 589 $C_3$ & 1. & 1. & 1. & 1. \\ 590 $F_{wall}$ & Yes & -- & -- & -- \\ 591 \hline 592 \hline 593 \end{tabular} 594 \caption{ 595 \protect\label{tab:GLS} 596 Set of predefined GLS parameters, or equivalently predefined turbulence models available with 597 \protect\key{zdfgls} and controlled by the \protect\np{nn\_clos} namelist variable in \protect\ngn{namzdf\_gls}. 598 } 599 \end{center} 600 \end{table} 601 %-------------------------------------------------------------------------------------------------------------- 602 603 In the Mellor-Yamada model, the negativity of $n$ allows to use a wall function to force the convergence of 604 the mixing length towards $K z_b$ ($K$: Kappa and $z_b$: rugosity length) value near physical boundaries 605 (logarithmic boundary layer law). 606 $C_{\mu}$ and $C_{\mu'}$ are calculated from stability function proposed by \citet{Galperin_al_JAS88}, 607 or by \citet{Kantha_Clayson_1994} or one of the two functions suggested by \citet{Canuto_2001} 608 (\np{nn\_stab\_func}\forcode{ = 0..3}, resp.). 609 The value of $C_{0\mu}$ depends of the choice of the stability function. 610 611 The surface and bottom boundary condition on both $\bar{e}$ and $\psi$ can be calculated thanks to Dirichlet or 612 Neumann condition through \np{nn\_tkebc\_surf} and \np{nn\_tkebc\_bot}, resp. 613 As for TKE closure, the wave effect on the mixing is considered when 614 \np{ln\_crban}\forcode{ = .true.} \citep{Craig_Banner_JPO94, Mellor_Blumberg_JPO04}. 615 The \np{rn\_crban} namelist parameter is $\alpha_{CB}$ in \autoref{eq:ZDF_Esbc} and 616 \np{rn\_charn} provides the value of $\beta$ in \autoref{eq:ZDF_Lsbc}. 617 618 The $\psi$ equation is known to fail in stably stratified flows, and for this reason 619 almost all authors apply a clipping of the length scale as an \textit{ad hoc} remedy. 620 With this clipping, the maximum permissible length scale is determined by $l_{max} = c_{lim} \sqrt{2\bar{e}}/ N$. 621 A value of $c_{lim} = 0.53$ is often used \citep{Galperin_al_JAS88}. 622 \cite{Umlauf_Burchard_CSR05} show that the value of the clipping factor is of crucial importance for 623 the entrainment depth predicted in stably stratified situations, 624 and that its value has to be chosen in accordance with the algebraic model for the turbulent fluxes. 625 The clipping is only activated if \np{ln\_length\_lim}\forcode{ = .true.}, 626 and the $c_{lim}$ is set to the \np{rn\_clim\_galp} value. 627 628 The time and space discretization of the GLS equations follows the same energetic consideration as for 629 the TKE case described in \autoref{subsec:ZDF_tke_ene} \citep{Burchard_OM02}. 630 Examples of performance of the 4 turbulent closure scheme can be found in \citet{Warner_al_OM05}. 631 632 % ------------------------------------------------------------------------------------------------------------- 633 % OSM OSMOSIS BL Scheme 634 % ------------------------------------------------------------------------------------------------------------- 635 \subsection{OSM: OSMOSIS boundary layer scheme (\protect\key{zdfosm})} 636 \label{subsec:ZDF_osm} 637 638 %--------------------------------------------namzdf_osm--------------------------------------------------------- 639 640 \nlst{namzdf_osm} 641 %-------------------------------------------------------------------------------------------------------------- 642 643 The OSMOSIS turbulent closure scheme is based on...... TBC 652 %The restart of the TKE scheme requires the storage of $\bar {e}$, $K_m$, $K_\rho$ and $l_\epsilon$ as 653 %they all appear in the right hand side of \autoref{eq:zdftke_ene}. 654 %For the latter, it is in fact the ratio $\sqrt{\bar{e}}/l_\epsilon$ which is stored. 644 655 645 656 % ================================================================ … … 648 659 \section{Convection} 649 660 \label{sec:ZDF_conv} 650 651 %--------------------------------------------namzdf--------------------------------------------------------652 653 \nlst{namzdf}654 %--------------------------------------------------------------------------------------------------------------655 661 656 662 Static instabilities (\ie light potential densities under heavy ones) may occur at particular ocean grid points. … … 664 670 % Non-Penetrative Convective Adjustment 665 671 % ------------------------------------------------------------------------------------------------------------- 666 \subsection[Non-penetrative convective adj mt (\protect\np{ln\_tranpc}\forcode{= .true.})]667 672 \subsection[Non-penetrative convective adjustment (\forcode{ln_tranpc = .true.})] 673 {Non-penetrative convective adjustment (\protect\np{ln\_tranpc}\forcode{ = .true.})} 668 674 \label{subsec:ZDF_npc} 669 670 %--------------------------------------------namzdf--------------------------------------------------------671 672 \nlst{namzdf}673 %--------------------------------------------------------------------------------------------------------------674 675 675 676 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 676 677 \begin{figure}[!htb] 677 678 \begin{center} 678 \includegraphics[width= 0.90\textwidth]{Fig_npc}679 \includegraphics[width=\textwidth]{Fig_npc} 679 680 \caption{ 680 681 \protect\label{fig:npc} … … 700 701 the water column, but only until the density structure becomes neutrally stable 701 702 (\ie until the mixed portion of the water column has \textit{exactly} the density of the water just below) 702 \citep{ Madec_al_JPO91}.703 \citep{madec.delecluse.ea_JPO91}. 703 704 The associated algorithm is an iterative process used in the following way (\autoref{fig:npc}): 704 705 starting from the top of the ocean, the first instability is found. … … 718 719 the algorithm used in \NEMO converges for any profile in a number of iterations which is less than 719 720 the number of vertical levels. 720 This property is of paramount importance as pointed out by \citet{ Killworth1989}:721 This property is of paramount importance as pointed out by \citet{killworth_iprc89}: 721 722 it avoids the existence of permanent and unrealistic static instabilities at the sea surface. 722 723 This non-penetrative convective algorithm has been proved successful in studies of the deep water formation in 723 the north-western Mediterranean Sea \citep{ Madec_al_JPO91, Madec_al_DAO91, Madec_Crepon_Bk91}.724 the north-western Mediterranean Sea \citep{madec.delecluse.ea_JPO91, madec.chartier.ea_DAO91, madec.crepon_iprc91}. 724 725 725 726 The current implementation has been modified in order to deal with any non linear equation of seawater … … 727 728 Two main differences have been introduced compared to the original algorithm: 728 729 $(i)$ the stability is now checked using the Brunt-V\"{a}is\"{a}l\"{a} frequency 729 (not the thedifference in potential density);730 (not the difference in potential density); 730 731 $(ii)$ when two levels are found unstable, their thermal and haline expansion coefficients are vertically mixed in 731 732 the same way their temperature and salinity has been mixed. … … 736 737 % Enhanced Vertical Diffusion 737 738 % ------------------------------------------------------------------------------------------------------------- 738 \subsection{Enhanced vertical diffusion (\protect\np{ln\_zdfevd}\forcode{ = .true.})} 739 \subsection[Enhanced vertical diffusion (\forcode{ln_zdfevd = .true.})] 740 {Enhanced vertical diffusion (\protect\np{ln\_zdfevd}\forcode{ = .true.})} 739 741 \label{subsec:ZDF_evd} 740 741 %--------------------------------------------namzdf--------------------------------------------------------742 743 \nlst{namzdf}744 %--------------------------------------------------------------------------------------------------------------745 742 746 743 Options are defined through the \ngn{namzdf} namelist variables. 747 744 The enhanced vertical diffusion parameterisation is used when \np{ln\_zdfevd}\forcode{ = .true.}. 748 In this case, the vertical eddy mixing coefficients are assigned very large values 749 (a typical value is $10\;m^2s^{-1})$in regions where the stratification is unstable750 (\ie when $N^2$ the Brunt-Vais\"{a}l\"{a} frequency is negative) \citep{ Lazar_PhD97, Lazar_al_JPO99}.745 In this case, the vertical eddy mixing coefficients are assigned very large values 746 in regions where the stratification is unstable 747 (\ie when $N^2$ the Brunt-Vais\"{a}l\"{a} frequency is negative) \citep{lazar_phd97, lazar.madec.ea_JPO99}. 751 748 This is done either on tracers only (\np{nn\_evdm}\forcode{ = 0}) or 752 749 on both momentum and tracers (\np{nn\_evdm}\forcode{ = 1}). … … 759 756 the convective adjustment algorithm presented above when mixing both tracers and 760 757 momentum in the case of static instabilities. 761 It requires the use of an implicit time stepping on vertical diffusion terms762 (\ie np{ln\_zdfexp}\forcode{ = .false.}).763 758 764 759 Note that the stability test is performed on both \textit{before} and \textit{now} values of $N^2$. 765 760 This removes a potential source of divergence of odd and even time step in 766 a leapfrog environment \citep{ Leclair_PhD2010} (see \autoref{sec:STP_mLF}).761 a leapfrog environment \citep{leclair_phd10} (see \autoref{sec:STP_mLF}). 767 762 768 763 % ------------------------------------------------------------------------------------------------------------- 769 764 % Turbulent Closure Scheme 770 765 % ------------------------------------------------------------------------------------------------------------- 771 \subsection[Turbulent closure scheme (\protect\key{zdf}\{tke,gls,osm\})]{Turbulent Closure Scheme (\protect\key{zdftke}, \protect\key{zdfgls} or \protect\key{zdfosm})} 766 \subsection[Handling convection with turbulent closure schemes (\forcode{ln_zdf/tke/gls/osm = .true.})] 767 {Handling convection with turbulent closure schemes (\protect\np{ln\_zdf/tke/gls/osm}\forcode{ = .true.})} 772 768 \label{subsec:ZDF_tcs} 773 769 774 The turbulent closure scheme presented in \autoref{subsec:ZDF_tke} and \autoref{subsec:ZDF_gls} 775 (\key{zdftke} or \key{zdftke} is defined) in theory solves the problem of statically unstable density profiles. 770 771 The turbulent closure schemes presented in \autoref{subsec:ZDF_tke}, \autoref{subsec:ZDF_gls} and 772 \autoref{subsec:ZDF_osm} (\ie \np{ln\_zdftke} or \np{ln\_zdfgls} or \np{ln\_zdfosm} defined) deal, in theory, 773 with statically unstable density profiles. 776 774 In such a case, the term corresponding to the destruction of turbulent kinetic energy through stratification in 777 775 \autoref{eq:zdftke_e} or \autoref{eq:zdfgls_e} becomes a source term, since $N^2$ is negative. 778 It results in large values of $A_T^{vT}$ and $A_T^{vT}$, and also the four neighbouring $A_u^{vm} {and}\;A_v^{vm}$779 (up to $1\;m^2s^{-1}$).776 It results in large values of $A_T^{vT}$ and $A_T^{vT}$, and also of the four neighboring values at 777 velocity points $A_u^{vm} {and}\;A_v^{vm}$ (up to $1\;m^2s^{-1}$). 780 778 These large values restore the static stability of the water column in a way similar to that of 781 779 the enhanced vertical diffusion parameterisation (\autoref{subsec:ZDF_evd}). … … 785 783 It can thus be useful to combine the enhanced vertical diffusion with the turbulent closure scheme, 786 784 \ie setting the \np{ln\_zdfnpc} namelist parameter to true and 787 defining the turbulent closure CPP keyall together.788 789 The KPPturbulent closure scheme already includes enhanced vertical diffusion in the case of convection,790 as governed by the variables $bvsqcon$ and $difcon$ found in \mdl{zdfkpp},791 therefore \np{ln\_zdfevd}\forcode{ = .false.} should be used with the KPPscheme.785 defining the turbulent closure (\np{ln\_zdftke} or \np{ln\_zdfgls} = \forcode{.true.}) all together. 786 787 The OSMOSIS turbulent closure scheme already includes enhanced vertical diffusion in the case of convection, 788 %as governed by the variables $bvsqcon$ and $difcon$ found in \mdl{zdfkpp}, 789 therefore \np{ln\_zdfevd}\forcode{ = .false.} should be used with the OSMOSIS scheme. 792 790 % gm% + one word on non local flux with KPP scheme trakpp.F90 module... 793 791 … … 795 793 % Double Diffusion Mixing 796 794 % ================================================================ 797 \section{Double diffusion mixing (\protect\key{zdfddm})} 798 \label{sec:ZDF_ddm} 795 \section[Double diffusion mixing (\forcode{ln_zdfddm = .true.})] 796 {Double diffusion mixing (\protect\np{ln\_zdfddm}\forcode{ = .true.})} 797 \label{subsec:ZDF_ddm} 798 799 799 800 800 %-------------------------------------------namzdf_ddm------------------------------------------------- … … 803 803 %-------------------------------------------------------------------------------------------------------------- 804 804 805 Options are defined through the \ngn{namzdf\_ddm} namelist variables. 805 This parameterisation has been introduced in \mdl{zdfddm} module and is controlled by the namelist parameter 806 \np{ln\_zdfddm} in \ngn{namzdf}. 806 807 Double diffusion occurs when relatively warm, salty water overlies cooler, fresher water, or vice versa. 807 808 The former condition leads to salt fingering and the latter to diffusive convection. 808 809 Double-diffusive phenomena contribute to diapycnal mixing in extensive regions of the ocean. 809 \citet{ Merryfield1999} include a parameterisation of such phenomena in a global ocean model and show that810 \citet{merryfield.holloway.ea_JPO99} include a parameterisation of such phenomena in a global ocean model and show that 810 811 it leads to relatively minor changes in circulation but exerts significant regional influences on 811 812 temperature and salinity. 812 This parameterisation has been introduced in \mdl{zdfddm} module and is controlled by the \key{zdfddm} CPP key. 813 813 814 814 815 Diapycnal mixing of S and T are described by diapycnal diffusion coefficients … … 839 840 \begin{figure}[!t] 840 841 \begin{center} 841 \includegraphics[width= 0.99\textwidth]{Fig_zdfddm}842 \includegraphics[width=\textwidth]{Fig_zdfddm} 842 843 \caption{ 843 844 \protect\label{fig:zdfddm} 844 From \citet{ Merryfield1999} :845 From \citet{merryfield.holloway.ea_JPO99} : 845 846 (a) Diapycnal diffusivities $A_f^{vT}$ and $A_f^{vS}$ for temperature and salt in regions of salt fingering. 846 847 Heavy curves denote $A^{\ast v} = 10^{-3}~m^2.s^{-1}$ and thin curves $A^{\ast v} = 10^{-4}~m^2.s^{-1}$; … … 855 856 856 857 The factor 0.7 in \autoref{eq:zdfddm_f_T} reflects the measured ratio $\alpha F_T /\beta F_S \approx 0.7$ of 857 buoyancy flux of heat to buoyancy flux of salt (\eg, \citet{ McDougall_Taylor_JMR84}).858 Following \citet{ Merryfield1999}, we adopt $R_c = 1.6$, $n = 6$, and $A^{\ast v} = 10^{-4}~m^2.s^{-1}$.858 buoyancy flux of heat to buoyancy flux of salt (\eg, \citet{mcdougall.taylor_JMR84}). 859 Following \citet{merryfield.holloway.ea_JPO99}, we adopt $R_c = 1.6$, $n = 6$, and $A^{\ast v} = 10^{-4}~m^2.s^{-1}$. 859 860 860 861 To represent mixing of S and T by diffusive layering, the diapycnal diffusivities suggested by … … 887 888 % Bottom Friction 888 889 % ================================================================ 889 \section{Bottom and top friction (\protect\mdl{zdfbfr})} 890 \label{sec:ZDF_bfr} 890 \section[Bottom and top friction (\textit{zdfdrg.F90})] 891 {Bottom and top friction (\protect\mdl{zdfdrg})} 892 \label{sec:ZDF_drg} 891 893 892 894 %--------------------------------------------nambfr-------------------------------------------------------- 893 895 % 894 %\nlst{nambfr} 896 \nlst{namdrg} 897 \nlst{namdrg_top} 898 \nlst{namdrg_bot} 899 895 900 %-------------------------------------------------------------------------------------------------------------- 896 901 897 Options to define the top and bottom friction are defined through the \ngn{nam bfr} namelist variables.902 Options to define the top and bottom friction are defined through the \ngn{namdrg} namelist variables. 898 903 The bottom friction represents the friction generated by the bathymetry. 899 904 The top friction represents the friction generated by the ice shelf/ocean interface. 900 As the friction processes at the top and bottom are treated in similar way,901 only the bottom friction is described in detail below.905 As the friction processes at the top and the bottom are treated in and identical way, 906 the description below considers mostly the bottom friction case, if not stated otherwise. 902 907 903 908 … … 905 910 a condition on the vertical diffusive flux. 906 911 For the bottom boundary layer, one has: 907 \[908 % \label{eq:zdfbfr_flux}909 A^{vm} \left( \partial {\textbf U}_h / \partial z \right) = {{\cal F}}_h^{\textbf U}910 \]912 \[ 913 % \label{eq:zdfbfr_flux} 914 A^{vm} \left( \partial {\textbf U}_h / \partial z \right) = {{\cal F}}_h^{\textbf U} 915 \] 911 916 where ${\cal F}_h^{\textbf U}$ is represents the downward flux of horizontal momentum outside 912 917 the logarithmic turbulent boundary layer (thickness of the order of 1~m in the ocean). … … 922 927 To illustrate this, consider the equation for $u$ at $k$, the last ocean level: 923 928 \begin{equation} 924 \label{eq:zdf bfr_flux2}929 \label{eq:zdfdrg_flux2} 925 930 \frac{\partial u_k}{\partial t} = \frac{1}{e_{3u}} \left[ \frac{A_{uw}^{vm}}{e_{3uw}} \delta_{k+1/2}\;[u] - {\cal F}^u_h \right] \approx - \frac{{\cal F}^u_{h}}{e_{3u}} 926 931 \end{equation} … … 935 940 936 941 In the code, the bottom friction is imposed by adding the trend due to the bottom friction to 937 the general momentum trend in \mdl{dynbfr}.942 the general momentum trend in \mdl{dynzdf}. 938 943 For the time-split surface pressure gradient algorithm, the momentum trend due to 939 944 the barotropic component needs to be handled separately. 940 945 For this purpose it is convenient to compute and store coefficients which can be simply combined with 941 946 bottom velocities and geometric values to provide the momentum trend due to bottom friction. 942 These coefficients are computed in \mdl{zdfbfr} and generally take the form $c_b^{\textbf U}$ where:947 These coefficients are computed in \mdl{zdfdrg} and generally take the form $c_b^{\textbf U}$ where: 943 948 \begin{equation} 944 949 \label{eq:zdfbfr_bdef} … … 946 951 - \frac{{\cal F}^{\textbf U}_{h}}{e_{3u}} = \frac{c_b^{\textbf U}}{e_{3u}} \;{\textbf U}_h^b 947 952 \end{equation} 948 where $\textbf{U}_h^b = (u_b\;,\;v_b)$ is the near-bottom, horizontal, ocean velocity. 953 where $\textbf{U}_h^b = (u_b\;,\;v_b)$ is the near-bottom, horizontal, ocean velocity. 954 Note than from \NEMO 4.0, drag coefficients are only computed at cell centers (\ie at T-points) and refer to as $c_b^T$ in the following. These are then linearly interpolated in space to get $c_b^\textbf{U}$ at velocity points. 949 955 950 956 % ------------------------------------------------------------------------------------------------------------- 951 957 % Linear Bottom Friction 952 958 % ------------------------------------------------------------------------------------------------------------- 953 \subsection{Linear bottom friction (\protect\np{nn\_botfr}\forcode{ = 0..1})} 954 \label{subsec:ZDF_bfr_linear} 955 956 The linear bottom friction parameterisation (including the special case of a free-slip condition) assumes that 957 the bottom friction is proportional to the interior velocity (\ie the velocity of the last model level): 959 \subsection[Linear top/bottom friction (\forcode{ln_lin = .true.})] 960 {Linear top/bottom friction (\protect\np{ln\_lin}\forcode{ = .true.)}} 961 \label{subsec:ZDF_drg_linear} 962 963 The linear friction parameterisation (including the special case of a free-slip condition) assumes that 964 the friction is proportional to the interior velocity (\ie the velocity of the first/last model level): 958 965 \[ 959 966 % \label{eq:zdfbfr_linear} 960 967 {\cal F}_h^\textbf{U} = \frac{A^{vm}}{e_3} \; \frac{\partial \textbf{U}_h}{\partial k} = r \; \textbf{U}_h^b 961 968 \] 962 where $r$ is a friction coefficient expressed in ms$^{-1}$.969 where $r$ is a friction coefficient expressed in $m s^{-1}$. 963 970 This coefficient is generally estimated by setting a typical decay time $\tau$ in the deep ocean, 964 971 and setting $r = H / \tau$, where $H$ is the ocean depth. 965 Commonly accepted values of $\tau$ are of the order of 100 to 200 days \citep{ Weatherly_JMR84}.972 Commonly accepted values of $\tau$ are of the order of 100 to 200 days \citep{weatherly_JMR84}. 966 973 A value $\tau^{-1} = 10^{-7}$~s$^{-1}$ equivalent to 115 days, is usually used in quasi-geostrophic models. 967 974 One may consider the linear friction as an approximation of quadratic friction, $r \approx 2\;C_D\;U_{av}$ 968 (\citet{ Gill1982}, Eq. 9.6.6).975 (\citet{gill_bk82}, Eq. 9.6.6). 969 976 For example, with a drag coefficient $C_D = 0.002$, a typical speed of tidal currents of $U_{av} =0.1$~m\;s$^{-1}$, 970 977 and assuming an ocean depth $H = 4000$~m, the resulting friction coefficient is $r = 4\;10^{-4}$~m\;s$^{-1}$. 971 978 This is the default value used in \NEMO. It corresponds to a decay time scale of 115~days. 972 It can be changed by specifying \np{rn\_ bfri1} (namelist parameter).973 974 For the linear friction case the coefficients defined in the general expression \autoref{eq:zdfbfr_bdef} are:979 It can be changed by specifying \np{rn\_Uc0} (namelist parameter). 980 981 For the linear friction case the drag coefficient used in the general expression \autoref{eq:zdfbfr_bdef} is: 975 982 \[ 976 983 % \label{eq:zdfbfr_linbfr_b} 977 \begin{split} 978 c_b^u &= - r\\ 979 c_b^v &= - r\\ 980 \end{split} 981 \] 982 When \np{nn\_botfr}\forcode{ = 1}, the value of $r$ used is \np{rn\_bfri1}. 983 Setting \np{nn\_botfr}\forcode{ = 0} is equivalent to setting $r=0$ and 984 leads to a free-slip bottom boundary condition. 985 These values are assigned in \mdl{zdfbfr}. 986 From v3.2 onwards there is support for local enhancement of these values via an externally defined 2D mask array 987 (\np{ln\_bfr2d}\forcode{ = .true.}) given in the \ifile{bfr\_coef} input NetCDF file. 984 c_b^T = - r 985 \] 986 When \np{ln\_lin} \forcode{= .true.}, the value of $r$ used is \np{rn\_Uc0}*\np{rn\_Cd0}. 987 Setting \np{ln\_OFF} \forcode{= .true.} (and \forcode{ln_lin = .true.}) is equivalent to setting $r=0$ and leads to a free-slip boundary condition. 988 989 These values are assigned in \mdl{zdfdrg}. 990 Note that there is support for local enhancement of these values via an externally defined 2D mask array 991 (\np{ln\_boost}\forcode{ = .true.}) given in the \ifile{bfr\_coef} input NetCDF file. 988 992 The mask values should vary from 0 to 1. 989 993 Locations with a non-zero mask value will have the friction coefficient increased by 990 $mask\_value$ *\np{rn\_bfrien}*\np{rn\_bfri1}.994 $mask\_value$ * \np{rn\_boost} * \np{rn\_Cd0}. 991 995 992 996 % ------------------------------------------------------------------------------------------------------------- 993 997 % Non-Linear Bottom Friction 994 998 % ------------------------------------------------------------------------------------------------------------- 995 \subsection{Non-linear bottom friction (\protect\np{nn\_botfr}\forcode{ = 2})} 996 \label{subsec:ZDF_bfr_nonlinear} 997 998 The non-linear bottom friction parameterisation assumes that the bottom friction is quadratic: 999 \[ 1000 % \label{eq:zdfbfr_nonlinear} 999 \subsection[Non-linear top/bottom friction (\forcode{ln_non_lin = .true.})] 1000 {Non-linear top/bottom friction (\protect\np{ln\_non\_lin}\forcode{ = .true.})} 1001 \label{subsec:ZDF_drg_nonlinear} 1002 1003 The non-linear bottom friction parameterisation assumes that the top/bottom friction is quadratic: 1004 \[ 1005 % \label{eq:zdfdrg_nonlinear} 1001 1006 {\cal F}_h^\textbf{U} = \frac{A^{vm}}{e_3 }\frac{\partial \textbf {U}_h 1002 1007 }{\partial k}=C_D \;\sqrt {u_b ^2+v_b ^2+e_b } \;\; \textbf {U}_h^b 1003 1008 \] 1004 where $C_D$ is a drag coefficient, and $e_b $ a bottom turbulent kinetic energy due to tides,1009 where $C_D$ is a drag coefficient, and $e_b $ a top/bottom turbulent kinetic energy due to tides, 1005 1010 internal waves breaking and other short time scale currents. 1006 1011 A typical value of the drag coefficient is $C_D = 10^{-3} $. 1007 As an example, the CME experiment \citep{ Treguier_JGR92} uses $C_D = 10^{-3}$ and1008 $e_b = 2.5\;10^{-3}$m$^2$\;s$^{-2}$, while the FRAM experiment \citep{ Killworth1992} uses $C_D = 1.4\;10^{-3}$ and1012 As an example, the CME experiment \citep{treguier_JGR92} uses $C_D = 10^{-3}$ and 1013 $e_b = 2.5\;10^{-3}$m$^2$\;s$^{-2}$, while the FRAM experiment \citep{killworth_JPO92} uses $C_D = 1.4\;10^{-3}$ and 1009 1014 $e_b =2.5\;\;10^{-3}$m$^2$\;s$^{-2}$. 1010 The CME choices have been set as default values (\np{rn\_bfri2} and \np{rn\_bfeb2} namelist parameters). 1011 1012 As for the linear case, the bottom friction is imposed in the code by adding the trend due to 1013 the bottom friction to the general momentum trend in \mdl{dynbfr}. 1014 For the non-linear friction case the terms computed in \mdl{zdfbfr} are: 1015 \[ 1016 % \label{eq:zdfbfr_nonlinbfr} 1017 \begin{split} 1018 c_b^u &= - \; C_D\;\left[ u^2 + \left(\bar{\bar{v}}^{i+1,j}\right)^2 + e_b \right]^{1/2}\\ 1019 c_b^v &= - \; C_D\;\left[ \left(\bar{\bar{u}}^{i,j+1}\right)^2 + v^2 + e_b \right]^{1/2}\\ 1020 \end{split} 1021 \] 1022 1023 The coefficients that control the strength of the non-linear bottom friction are initialised as namelist parameters: 1024 $C_D$= \np{rn\_bfri2}, and $e_b$ =\np{rn\_bfeb2}. 1025 Note for applications which treat tides explicitly a low or even zero value of \np{rn\_bfeb2} is recommended. 1026 From v3.2 onwards a local enhancement of $C_D$ is possible via an externally defined 2D mask array 1027 (\np{ln\_bfr2d}\forcode{ = .true.}). 1028 This works in the same way as for the linear bottom friction case with non-zero masked locations increased by 1029 $mask\_value$*\np{rn\_bfrien}*\np{rn\_bfri2}. 1015 The CME choices have been set as default values (\np{rn\_Cd0} and \np{rn\_ke0} namelist parameters). 1016 1017 As for the linear case, the friction is imposed in the code by adding the trend due to 1018 the friction to the general momentum trend in \mdl{dynzdf}. 1019 For the non-linear friction case the term computed in \mdl{zdfdrg} is: 1020 \[ 1021 % \label{eq:zdfdrg_nonlinbfr} 1022 c_b^T = - \; C_D\;\left[ \left(\bar{u_b}^{i}\right)^2 + \left(\bar{v_b}^{j}\right)^2 + e_b \right]^{1/2} 1023 \] 1024 1025 The coefficients that control the strength of the non-linear friction are initialised as namelist parameters: 1026 $C_D$= \np{rn\_Cd0}, and $e_b$ =\np{rn\_bfeb2}. 1027 Note that for applications which consider tides explicitly, a low or even zero value of \np{rn\_bfeb2} is recommended. A local enhancement of $C_D$ is again possible via an externally defined 2D mask array 1028 (\np{ln\_boost}\forcode{ = .true.}). 1029 This works in the same way as for the linear friction case with non-zero masked locations increased by 1030 $mask\_value$ * \np{rn\_boost} * \np{rn\_Cd0}. 1030 1031 1031 1032 % ------------------------------------------------------------------------------------------------------------- 1032 1033 % Bottom Friction Log-layer 1033 1034 % ------------------------------------------------------------------------------------------------------------- 1034 \subsection[Log-layer btm frict enhncmnt (\protect\np{nn\_botfr}\forcode{ = 2}, \protect\np{ln\_loglayer}\forcode{ = .true.})] 1035 {Log-layer bottom friction enhancement (\protect\np{nn\_botfr}\forcode{ = 2}, \protect\np{ln\_loglayer}\forcode{ = .true.})} 1036 \label{subsec:ZDF_bfr_loglayer} 1037 1038 In the non-linear bottom friction case, the drag coefficient, $C_D$, can be optionally enhanced using 1039 a "law of the wall" scaling. 1040 If \np{ln\_loglayer} = .true., $C_D$ is no longer constant but is related to the thickness of 1041 the last wet layer in each column by: 1042 \[ 1043 C_D = \left ( {\kappa \over {\rm log}\left ( 0.5e_{3t}/rn\_bfrz0 \right ) } \right )^2 1044 \] 1045 1046 \noindent where $\kappa$ is the von-Karman constant and \np{rn\_bfrz0} is a roughness length provided via 1047 the namelist. 1048 1049 For stability, the drag coefficient is bounded such that it is kept greater or equal to 1050 the base \np{rn\_bfri2} value and it is not allowed to exceed the value of an additional namelist parameter: 1051 \np{rn\_bfri2\_max}, \ie 1052 \[ 1053 rn\_bfri2 \leq C_D \leq rn\_bfri2\_max 1054 \] 1055 1056 \noindent Note also that a log-layer enhancement can also be applied to the top boundary friction if 1057 under ice-shelf cavities are in use (\np{ln\_isfcav}\forcode{ = .true.}). 1058 In this case, the relevant namelist parameters are \np{rn\_tfrz0}, \np{rn\_tfri2} and \np{rn\_tfri2\_max}. 1059 1060 % ------------------------------------------------------------------------------------------------------------- 1061 % Bottom Friction stability 1062 % ------------------------------------------------------------------------------------------------------------- 1063 \subsection{Bottom friction stability considerations} 1064 \label{subsec:ZDF_bfr_stability} 1065 1066 Some care needs to exercised over the choice of parameters to ensure that the implementation of 1067 bottom friction does not induce numerical instability. 1068 For the purposes of stability analysis, an approximation to \autoref{eq:zdfbfr_flux2} is: 1035 \subsection[Log-layer top/bottom friction (\forcode{ln_loglayer = .true.})] 1036 {Log-layer top/bottom friction (\protect\np{ln\_loglayer}\forcode{ = .true.})} 1037 \label{subsec:ZDF_drg_loglayer} 1038 1039 In the non-linear friction case, the drag coefficient, $C_D$, can be optionally enhanced using 1040 a "law of the wall" scaling. This assumes that the model vertical resolution can capture the logarithmic layer which typically occur for layers thinner than 1 m or so. 1041 If \np{ln\_loglayer} \forcode{= .true.}, $C_D$ is no longer constant but is related to the distance to the wall (or equivalently to the half of the top/bottom layer thickness): 1042 \[ 1043 C_D = \left ( {\kappa \over {\mathrm log}\left ( 0.5 \; e_{3b} / rn\_{z0} \right ) } \right )^2 1044 \] 1045 1046 \noindent where $\kappa$ is the von-Karman constant and \np{rn\_z0} is a roughness length provided via the namelist. 1047 1048 The drag coefficient is bounded such that it is kept greater or equal to 1049 the base \np{rn\_Cd0} value which occurs where layer thicknesses become large and presumably logarithmic layers are not resolved at all. For stability reason, it is also not allowed to exceed the value of an additional namelist parameter: 1050 \np{rn\_Cdmax}, \ie 1051 \[ 1052 rn\_Cd0 \leq C_D \leq rn\_Cdmax 1053 \] 1054 1055 \noindent The log-layer enhancement can also be applied to the top boundary friction if 1056 under ice-shelf cavities are activated (\np{ln\_isfcav}\forcode{ = .true.}). 1057 %In this case, the relevant namelist parameters are \np{rn\_tfrz0}, \np{rn\_tfri2} and \np{rn\_tfri2\_max}. 1058 1059 % ------------------------------------------------------------------------------------------------------------- 1060 % Explicit bottom Friction 1061 % ------------------------------------------------------------------------------------------------------------- 1062 \subsection{Explicit top/bottom friction (\forcode{ln_drgimp = .false.})} 1063 \label{subsec:ZDF_drg_stability} 1064 1065 Setting \np{ln\_drgimp} \forcode{= .false.} means that bottom friction is treated explicitly in time, which has the advantage of simplifying the interaction with the split-explicit free surface (see \autoref{subsec:ZDF_drg_ts}). The latter does indeed require the knowledge of bottom stresses in the course of the barotropic sub-iteration, which becomes less straightforward in the implicit case. In the explicit case, top/bottom stresses can be computed using \textit{before} velocities and inserted in the overall momentum tendency budget. This reads: 1066 1067 At the top (below an ice shelf cavity): 1068 \[ 1069 \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{t} 1070 = c_{t}^{\textbf{U}}\textbf{u}^{n-1}_{t} 1071 \] 1072 1073 At the bottom (above the sea floor): 1074 \[ 1075 \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{b} 1076 = c_{b}^{\textbf{U}}\textbf{u}^{n-1}_{b} 1077 \] 1078 1079 Since this is conditionally stable, some care needs to exercised over the choice of parameters to ensure that the implementation of explicit top/bottom friction does not induce numerical instability. 1080 For the purposes of stability analysis, an approximation to \autoref{eq:zdfdrg_flux2} is: 1069 1081 \begin{equation} 1070 \label{eq:Eqn_ bfrstab}1082 \label{eq:Eqn_drgstab} 1071 1083 \begin{split} 1072 1084 \Delta u &= -\frac{{{\cal F}_h}^u}{e_{3u}}\;2 \rdt \\ … … 1074 1086 \end{split} 1075 1087 \end{equation} 1076 \noindent where linear bottomfriction and a leapfrog timestep have been assumed.1077 To ensure that the bottomfriction cannot reverse the direction of flow it is necessary to have:1088 \noindent where linear friction and a leapfrog timestep have been assumed. 1089 To ensure that the friction cannot reverse the direction of flow it is necessary to have: 1078 1090 \[ 1079 1091 |\Delta u| < \;|u| 1080 1092 \] 1081 \noindent which, using \autoref{eq:Eqn_ bfrstab}, gives:1093 \noindent which, using \autoref{eq:Eqn_drgstab}, gives: 1082 1094 \[ 1083 1095 r\frac{2\rdt}{e_{3u}} < 1 \qquad \Rightarrow \qquad r < \frac{e_{3u}}{2\rdt}\\ … … 1093 1105 For most applications, with physically sensible parameters these restrictions should not be of concern. 1094 1106 But caution may be necessary if attempts are made to locally enhance the bottom friction parameters. 1095 To ensure stability limits are imposed on the bottom friction coefficients both1107 To ensure stability limits are imposed on the top/bottom friction coefficients both 1096 1108 during initialisation and at each time step. 1097 Checks at initialisation are made in \mdl{zdf bfr} (assuming a 1 m.s$^{-1}$ velocity in the non-linear case).1109 Checks at initialisation are made in \mdl{zdfdrg} (assuming a 1 m.s$^{-1}$ velocity in the non-linear case). 1098 1110 The number of breaches of the stability criterion are reported as well as 1099 1111 the minimum and maximum values that have been set. 1100 The criterion is also checked at each time step, using the actual velocity, in \mdl{dyn bfr}.1101 Values of the bottomfriction coefficient are reduced as necessary to ensure stability;1112 The criterion is also checked at each time step, using the actual velocity, in \mdl{dynzdf}. 1113 Values of the friction coefficient are reduced as necessary to ensure stability; 1102 1114 these changes are not reported. 1103 1115 1104 Limits on the bottom friction coefficient are not imposed if the user has elected to1105 handle the bottom friction implicitly (see \autoref{subsec:ZDF_bfr_imp}).1116 Limits on the top/bottom friction coefficient are not imposed if the user has elected to 1117 handle the friction implicitly (see \autoref{subsec:ZDF_drg_imp}). 1106 1118 The number of potential breaches of the explicit stability criterion are still reported for information purposes. 1107 1119 … … 1109 1121 % Implicit Bottom Friction 1110 1122 % ------------------------------------------------------------------------------------------------------------- 1111 \subsection{Implicit bottom friction (\protect\np{ln\_bfrimp}\forcode{ = .true.})} 1112 \label{subsec:ZDF_bfr_imp} 1123 \subsection[Implicit top/bottom friction (\forcode{ln_drgimp = .true.})] 1124 {Implicit top/bottom friction (\protect\np{ln\_drgimp}\forcode{ = .true.})} 1125 \label{subsec:ZDF_drg_imp} 1113 1126 1114 1127 An optional implicit form of bottom friction has been implemented to improve model stability. 1115 We recommend this option for shelf sea and coastal ocean applications, especially for split-explicit time splitting. 1116 This option can be invoked by setting \np{ln\_bfrimp} to \forcode{.true.} in the \textit{nambfr} namelist. 1117 This option requires \np{ln\_zdfexp} to be \forcode{.false.} in the \textit{namzdf} namelist. 1118 1119 This implementation is realised in \mdl{dynzdf\_imp} and \mdl{dynspg\_ts}. In \mdl{dynzdf\_imp}, 1120 the bottom boundary condition is implemented implicitly. 1121 1122 \[ 1123 % \label{eq:dynzdf_bfr} 1124 \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{mbk} 1125 = \binom{c_{b}^{u}u^{n+1}_{mbk}}{c_{b}^{v}v^{n+1}_{mbk}} 1126 \] 1127 1128 where $mbk$ is the layer number of the bottom wet layer. 1129 Superscript $n+1$ means the velocity used in the friction formula is to be calculated, so, it is implicit. 1130 1131 If split-explicit time splitting is used, care must be taken to avoid the double counting of the bottom friction in 1132 the 2-D barotropic momentum equations. 1133 As NEMO only updates the barotropic pressure gradient and Coriolis' forcing terms in the 2-D barotropic calculation, 1134 we need to remove the bottom friction induced by these two terms which has been included in the 3-D momentum trend 1135 and update it with the latest value. 1136 On the other hand, the bottom friction contributed by the other terms 1137 (\eg the advection term, viscosity term) has been included in the 3-D momentum equations and 1138 should not be added in the 2-D barotropic mode. 1139 1140 The implementation of the implicit bottom friction in \mdl{dynspg\_ts} is done in two steps as the following: 1141 1142 \[ 1143 % \label{eq:dynspg_ts_bfr1} 1144 \frac{\textbf{U}_{med}-\textbf{U}^{m-1}}{2\Delta t}=-g\nabla\eta-f\textbf{k}\times\textbf{U}^{m}+c_{b} 1145 \left(\textbf{U}_{med}-\textbf{U}^{m-1}\right) 1146 \] 1147 \[ 1148 \frac{\textbf{U}^{m+1}-\textbf{U}_{med}}{2\Delta t}=\textbf{T}+ 1149 \left(g\nabla\eta^{'}+f\textbf{k}\times\textbf{U}^{'}\right)- 1150 2\Delta t_{bc}c_{b}\left(g\nabla\eta^{'}+f\textbf{k}\times\textbf{u}_{b}\right) 1151 \] 1152 1153 where $\textbf{T}$ is the vertical integrated 3-D momentum trend. 1154 We assume the leap-frog time-stepping is used here. 1155 $\Delta t$ is the barotropic mode time step and $\Delta t_{bc}$ is the baroclinic mode time step. 1156 $c_{b}$ is the friction coefficient. 1157 $\eta$ is the sea surface level calculated in the barotropic loops while $\eta^{'}$ is the sea surface level used in 1158 the 3-D baroclinic mode. 1159 $\textbf{u}_{b}$ is the bottom layer horizontal velocity. 1160 1161 % ------------------------------------------------------------------------------------------------------------- 1162 % Bottom Friction with split-explicit time splitting 1163 % ------------------------------------------------------------------------------------------------------------- 1164 \subsection[Bottom friction w/ split-explicit time splitting (\protect\np{ln\_bfrimp})] 1165 {Bottom friction with split-explicit time splitting (\protect\np{ln\_bfrimp})} 1166 \label{subsec:ZDF_bfr_ts} 1167 1168 When calculating the momentum trend due to bottom friction in \mdl{dynbfr}, 1169 the bottom velocity at the before time step is used. 1170 This velocity includes both the baroclinic and barotropic components which is appropriate when 1171 using either the explicit or filtered surface pressure gradient algorithms 1172 (\key{dynspg\_exp} or \key{dynspg\_flt}). 1173 Extra attention is required, however, when using split-explicit time stepping (\key{dynspg\_ts}). 1174 In this case the free surface equation is solved with a small time step \np{rn\_rdt}/\np{nn\_baro}, 1175 while the three dimensional prognostic variables are solved with the longer time step of \np{rn\_rdt} seconds. 1176 The trend in the barotropic momentum due to bottom friction appropriate to this method is that given by 1177 the selected parameterisation (\ie linear or non-linear bottom friction) computed with 1178 the evolving velocities at each barotropic timestep. 1179 1180 In the case of non-linear bottom friction, we have elected to partially linearise the problem by 1181 keeping the coefficients fixed throughout the barotropic time-stepping to those computed in 1182 \mdl{zdfbfr} using the now timestep. 1183 This decision allows an efficient use of the $c_b^{\vect{U}}$ coefficients to: 1184 1128 We recommend this option for shelf sea and coastal ocean applications. %, especially for split-explicit time splitting. 1129 This option can be invoked by setting \np{ln\_drgimp} to \forcode{.true.} in the \textit{namdrg} namelist. 1130 %This option requires \np{ln\_zdfexp} to be \forcode{.false.} in the \textit{namzdf} namelist. 1131 1132 This implementation is performed in \mdl{dynzdf} where the following boundary conditions are set while solving the fully implicit diffusion step: 1133 1134 At the top (below an ice shelf cavity): 1135 \[ 1136 % \label{eq:dynzdf_drg_top} 1137 \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{t} 1138 = c_{t}^{\textbf{U}}\textbf{u}^{n+1}_{t} 1139 \] 1140 1141 At the bottom (above the sea floor): 1142 \[ 1143 % \label{eq:dynzdf_drg_bot} 1144 \left.{\left( {\frac{A^{vm} }{e_3 }\ \frac{\partial \textbf{U}_h}{\partial k}} \right)} \right|_{b} 1145 = c_{b}^{\textbf{U}}\textbf{u}^{n+1}_{b} 1146 \] 1147 1148 where $t$ and $b$ refers to top and bottom layers respectively. 1149 Superscript $n+1$ means the velocity used in the friction formula is to be calculated, so it is implicit. 1150 1151 % ------------------------------------------------------------------------------------------------------------- 1152 % Bottom Friction with split-explicit free surface 1153 % ------------------------------------------------------------------------------------------------------------- 1154 \subsection[Bottom friction with split-explicit free surface] 1155 {Bottom friction with split-explicit free surface} 1156 \label{subsec:ZDF_drg_ts} 1157 1158 With split-explicit free surface, the sub-stepping of barotropic equations needs the knowledge of top/bottom stresses. An obvious way to satisfy this is to take them as constant over the course of the barotropic integration and equal to the value used to update the baroclinic momentum trend. Provided \np{ln\_drgimp}\forcode{= .false.} and a centred or \textit{leap-frog} like integration of barotropic equations is used (\ie \forcode{ln_bt_fw = .false.}, cf \autoref{subsec:DYN_spg_ts}), this does ensure that barotropic and baroclinic dynamics feel the same stresses during one leapfrog time step. However, if \np{ln\_drgimp}\forcode{= .true.}, stresses depend on the \textit{after} value of the velocities which themselves depend on the barotropic iteration result. This cyclic dependency makes difficult obtaining consistent stresses in 2d and 3d dynamics. Part of this mismatch is then removed when setting the final barotropic component of 3d velocities to the time splitting estimate. This last step can be seen as a necessary evil but should be minimized since it interferes with the adjustment to the boundary conditions. 1159 1160 The strategy to handle top/bottom stresses with split-explicit free surface in \NEMO is as follows: 1185 1161 \begin{enumerate} 1186 \item On entry to \rou{dyn\_spg\_ts}, remove the contribution of the before barotropic velocity to 1187 the bottom friction component of the vertically integrated momentum trend. 1188 Note the same stability check that is carried out on the bottom friction coefficient in \mdl{dynbfr} has to 1189 be applied here to ensure that the trend removed matches that which was added in \mdl{dynbfr}. 1190 \item At each barotropic step, compute the contribution of the current barotropic velocity to 1191 the trend due to bottom friction. 1192 Add this contribution to the vertically integrated momentum trend. 1193 This contribution is handled implicitly which eliminates the need to impose a stability criteria on 1194 the values of the bottom friction coefficient within the barotropic loop. 1195 \end{enumerate} 1196 1197 Note that the use of an implicit formulation within the barotropic loop for the bottom friction trend means that 1198 any limiting of the bottom friction coefficient in \mdl{dynbfr} does not adversely affect the solution when 1199 using split-explicit time splitting. 1200 This is because the major contribution to bottom friction is likely to come from the barotropic component which 1201 uses the unrestricted value of the coefficient. 1202 However, if the limiting is thought to be having a major effect 1203 (a more likely prospect in coastal and shelf seas applications) then 1204 the fully implicit form of the bottom friction should be used (see \autoref{subsec:ZDF_bfr_imp}) 1205 which can be selected by setting \np{ln\_bfrimp} $=$ \forcode{.true.}. 1206 1207 Otherwise, the implicit formulation takes the form: 1208 \[ 1209 % \label{eq:zdfbfr_implicitts} 1210 \bar{U}^{t+ \rdt} = \; \left [ \bar{U}^{t-\rdt}\; + 2 \rdt\;RHS \right ] / \left [ 1 - 2 \rdt \;c_b^{u} / H_e \right ] 1211 \] 1212 where $\bar U$ is the barotropic velocity, $H_e$ is the full depth (including sea surface height), 1213 $c_b^u$ is the bottom friction coefficient as calculated in \rou{zdf\_bfr} and 1214 $RHS$ represents all the components to the vertically integrated momentum trend except for 1215 that due to bottom friction. 1216 1217 % ================================================================ 1218 % Tidal Mixing 1219 % ================================================================ 1220 \section{Tidal mixing (\protect\key{zdftmx})} 1221 \label{sec:ZDF_tmx} 1222 1223 %--------------------------------------------namzdf_tmx-------------------------------------------------- 1162 \item To extend the stability of the barotropic sub-stepping, bottom stresses are refreshed at each sub-iteration. The baroclinic part of the flow entering the stresses is frozen at the initial time of the barotropic iteration. In case of non-linear friction, the drag coefficient is also constant. 1163 \item In case of an implicit drag, specific computations are performed in \mdl{dynzdf} which renders the overall scheme mixed explicit/implicit: the barotropic components of 3d velocities are removed before seeking for the implicit vertical diffusion result. Top/bottom stresses due to the barotropic components are explicitly accounted for thanks to the updated values of barotropic velocities. Then the implicit solution of 3d velocities is obtained. Lastly, the residual barotropic component is replaced by the time split estimate. 1164 \end{enumerate} 1165 1166 Note that other strategies are possible, like considering vertical diffusion step in advance, \ie prior barotropic integration. 1167 1168 1169 % ================================================================ 1170 % Internal wave-driven mixing 1171 % ================================================================ 1172 \section[Internal wave-driven mixing (\forcode{ln_zdfiwm = .true.})] 1173 {Internal wave-driven mixing (\protect\np{ln\_zdfiwm}\forcode{ = .true.})} 1174 \label{subsec:ZDF_tmx_new} 1175 1176 %--------------------------------------------namzdf_iwm------------------------------------------ 1224 1177 % 1225 %\nlst{namzdf_tmx}1178 \nlst{namzdf_iwm} 1226 1179 %-------------------------------------------------------------------------------------------------------------- 1227 1180 1228 1229 % -------------------------------------------------------------------------------------------------------------1230 % Bottom intensified tidal mixing1231 % -------------------------------------------------------------------------------------------------------------1232 \subsection{Bottom intensified tidal mixing}1233 \label{subsec:ZDF_tmx_bottom}1234 1235 Options are defined through the \ngn{namzdf\_tmx} namelist variables.1236 The parameterization of tidal mixing follows the general formulation for the vertical eddy diffusivity proposed by1237 \citet{St_Laurent_al_GRL02} and first introduced in an OGCM by \citep{Simmons_al_OM04}.1238 In this formulation an additional vertical diffusivity resulting from internal tide breaking,1239 $A^{vT}_{tides}$ is expressed as a function of $E(x,y)$,1240 the energy transfer from barotropic tides to baroclinic tides:1241 \begin{equation}1242 \label{eq:Ktides}1243 A^{vT}_{tides} = q \,\Gamma \,\frac{ E(x,y) \, F(z) }{ \rho \, N^2 }1244 \end{equation}1245 where $\Gamma$ is the mixing efficiency, $N$ the Brunt-Vais\"{a}l\"{a} frequency (see \autoref{subsec:TRA_bn2}),1246 $\rho$ the density, $q$ the tidal dissipation efficiency, and $F(z)$ the vertical structure function.1247 1248 The mixing efficiency of turbulence is set by $\Gamma$ (\np{rn\_me} namelist parameter) and1249 is usually taken to be the canonical value of $\Gamma = 0.2$ (Osborn 1980).1250 The tidal dissipation efficiency is given by the parameter $q$ (\np{rn\_tfe} namelist parameter)1251 represents the part of the internal wave energy flux $E(x, y)$ that is dissipated locally,1252 with the remaining $1-q$ radiating away as low mode internal waves and1253 contributing to the background internal wave field.1254 A value of $q=1/3$ is typically used \citet{St_Laurent_al_GRL02}.1255 The vertical structure function $F(z)$ models the distribution of the turbulent mixing in the vertical.1256 It is implemented as a simple exponential decaying upward away from the bottom,1257 with a vertical scale of $h_o$ (\np{rn\_htmx} namelist parameter,1258 with a typical value of $500\,m$) \citep{St_Laurent_Nash_DSR04},1259 \[1260 % \label{eq:Fz}1261 F(i,j,k) = \frac{ e^{ -\frac{H+z}{h_o} } }{ h_o \left( 1- e^{ -\frac{H}{h_o} } \right) }1262 \]1263 and is normalized so that vertical integral over the water column is unity.1264 1265 The associated vertical viscosity is calculated from the vertical diffusivity assuming a Prandtl number of 1,1266 \ie $A^{vm}_{tides}=A^{vT}_{tides}$.1267 In the limit of $N \rightarrow 0$ (or becoming negative), the vertical diffusivity is capped at $300\,cm^2/s$ and1268 impose a lower limit on $N^2$ of \np{rn\_n2min} usually set to $10^{-8} s^{-2}$.1269 These bounds are usually rarely encountered.1270 1271 The internal wave energy map, $E(x, y)$ in \autoref{eq:Ktides}, is derived from a barotropic model of1272 the tides utilizing a parameterization of the conversion of barotropic tidal energy into internal waves.1273 The essential goal of the parameterization is to represent the momentum exchange between the barotropic tides and1274 the unrepresented internal waves induced by the tidal flow over rough topography in a stratified ocean.1275 In the current version of \NEMO, the map is built from the output of1276 the barotropic global ocean tide model MOG2D-G \citep{Carrere_Lyard_GRL03}.1277 This model provides the dissipation associated with internal wave energy for the M2 and K1 tides component1278 (\autoref{fig:ZDF_M2_K1_tmx}).1279 The S2 dissipation is simply approximated as being $1/4$ of the M2 one.1280 The internal wave energy is thus : $E(x, y) = 1.25 E_{M2} + E_{K1}$.1281 Its global mean value is $1.1$ TW,1282 in agreement with independent estimates \citep{Egbert_Ray_Nat00, Egbert_Ray_JGR01}.1283 1284 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>1285 \begin{figure}[!t]1286 \begin{center}1287 \includegraphics[width=0.90\textwidth]{Fig_ZDF_M2_K1_tmx}1288 \caption{1289 \protect\label{fig:ZDF_M2_K1_tmx}1290 (a) M2 and (b) K1 internal wave drag energy from \citet{Carrere_Lyard_GRL03} ($W/m^2$).1291 }1292 \end{center}1293 \end{figure}1294 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>1295 1296 % -------------------------------------------------------------------------------------------------------------1297 % Indonesian area specific treatment1298 % -------------------------------------------------------------------------------------------------------------1299 \subsection{Indonesian area specific treatment (\protect\np{ln\_zdftmx\_itf})}1300 \label{subsec:ZDF_tmx_itf}1301 1302 When the Indonesian Through Flow (ITF) area is included in the model domain,1303 a specific treatment of tidal induced mixing in this area can be used.1304 It is activated through the namelist logical \np{ln\_tmx\_itf}, and the user must provide an input NetCDF file,1305 \ifile{mask\_itf}, which contains a mask array defining the ITF area where the specific treatment is applied.1306 1307 When \np{ln\_tmx\_itf}\forcode{ = .true.}, the two key parameters $q$ and $F(z)$ are adjusted following1308 the parameterisation developed by \citet{Koch-Larrouy_al_GRL07}:1309 1310 First, the Indonesian archipelago is a complex geographic region with a series of1311 large, deep, semi-enclosed basins connected via numerous narrow straits.1312 Once generated, internal tides remain confined within this semi-enclosed area and hardly radiate away.1313 Therefore all the internal tides energy is consumed within this area.1314 So it is assumed that $q = 1$, \ie all the energy generated is available for mixing.1315 Note that for test purposed, the ITF tidal dissipation efficiency is a namelist parameter (\np{rn\_tfe\_itf}).1316 A value of $1$ or close to is this recommended for this parameter.1317 1318 Second, the vertical structure function, $F(z)$, is no more associated with a bottom intensification of the mixing,1319 but with a maximum of energy available within the thermocline.1320 \citet{Koch-Larrouy_al_GRL07} have suggested that the vertical distribution of1321 the energy dissipation proportional to $N^2$ below the core of the thermocline and to $N$ above.1322 The resulting $F(z)$ is:1323 \[1324 % \label{eq:Fz_itf}1325 F(i,j,k) \sim \left\{1326 \begin{aligned}1327 \frac{q\,\Gamma E(i,j) } {\rho N \, \int N dz} \qquad \text{when $\partial_z N < 0$} \\1328 \frac{q\,\Gamma E(i,j) } {\rho \, \int N^2 dz} \qquad \text{when $\partial_z N > 0$}1329 \end{aligned}1330 \right.1331 \]1332 1333 Averaged over the ITF area, the resulting tidal mixing coefficient is $1.5\,cm^2/s$,1334 which agrees with the independent estimates inferred from observations.1335 Introduced in a regional OGCM, the parameterization improves the water mass characteristics in1336 the different Indonesian seas, suggesting that the horizontal and vertical distributions of1337 the mixing are adequately prescribed \citep{Koch-Larrouy_al_GRL07, Koch-Larrouy_al_OD08a, Koch-Larrouy_al_OD08b}.1338 Note also that such a parameterisation has a significant impact on the behaviour of1339 global coupled GCMs \citep{Koch-Larrouy_al_CD10}.1340 1341 % ================================================================1342 % Internal wave-driven mixing1343 % ================================================================1344 \section{Internal wave-driven mixing (\protect\key{zdftmx\_new})}1345 \label{sec:ZDF_tmx_new}1346 1347 %--------------------------------------------namzdf_tmx_new------------------------------------------1348 %1349 %\nlst{namzdf_tmx_new}1350 %--------------------------------------------------------------------------------------------------------------1351 1352 1181 The parameterization of mixing induced by breaking internal waves is a generalization of 1353 the approach originally proposed by \citet{ St_Laurent_al_GRL02}.1182 the approach originally proposed by \citet{st-laurent.simmons.ea_GRL02}. 1354 1183 A three-dimensional field of internal wave energy dissipation $\epsilon(x,y,z)$ is first constructed, 1355 1184 and the resulting diffusivity is obtained as … … 1360 1189 where $R_f$ is the mixing efficiency and $\epsilon$ is a specified three dimensional distribution of 1361 1190 the energy available for mixing. 1362 If the \np{ln\_mevar} namelist parameter is set to false, the mixing efficiency is taken as constant and1363 equal to 1/6 \citep{ Osborn_JPO80}.1191 If the \np{ln\_mevar} namelist parameter is set to \forcode{.false.}, the mixing efficiency is taken as constant and 1192 equal to 1/6 \citep{osborn_JPO80}. 1364 1193 In the opposite (recommended) case, $R_f$ is instead a function of 1365 1194 the turbulence intensity parameter $Re_b = \frac{ \epsilon}{\nu \, N^2}$, 1366 with $\nu$ the molecular viscosity of seawater, following the model of \cite{ Bouffard_Boegman_DAO2013} and1367 the implementation of \cite{de _lavergne_JPO2016_efficiency}.1195 with $\nu$ the molecular viscosity of seawater, following the model of \cite{bouffard.boegman_DAO13} and 1196 the implementation of \cite{de-lavergne.madec.ea_JPO16}. 1368 1197 Note that $A^{vT}_{wave}$ is bounded by $10^{-2}\,m^2/s$, a limit that is often reached when 1369 1198 the mixing efficiency is constant. 1370 1199 1371 1200 In addition to the mixing efficiency, the ratio of salt to heat diffusivities can chosen to vary 1372 as a function of $Re_b$ by setting the \np{ln\_tsdiff} parameter to true, a recommended choice.1373 This parameterization of differential mixing, due to \cite{ Jackson_Rehmann_JPO2014},1374 is implemented as in \cite{de _lavergne_JPO2016_efficiency}.1201 as a function of $Re_b$ by setting the \np{ln\_tsdiff} parameter to \forcode{.true.}, a recommended choice. 1202 This parameterization of differential mixing, due to \cite{jackson.rehmann_JPO14}, 1203 is implemented as in \cite{de-lavergne.madec.ea_JPO16}. 1375 1204 1376 1205 The three-dimensional distribution of the energy available for mixing, $\epsilon(i,j,k)$, 1377 1206 is constructed from three static maps of column-integrated internal wave energy dissipation, 1378 $E_{cri}(i,j)$, $E_{pyc}(i,j)$, and $E_{bot}(i,j)$, combined to three corresponding vertical structures 1379 (de Lavergne et al., in prep): 1207 $E_{cri}(i,j)$, $E_{pyc}(i,j)$, and $E_{bot}(i,j)$, combined to three corresponding vertical structures: 1208 1380 1209 \begin{align*} 1381 1210 F_{cri}(i,j,k) &\propto e^{-h_{ab} / h_{cri} }\\ 1382 F_{pyc}(i,j,k) &\propto N^{n \_p}\\1211 F_{pyc}(i,j,k) &\propto N^{n_p}\\ 1383 1212 F_{bot}(i,j,k) &\propto N^2 \, e^{- h_{wkb} / h_{bot} } 1384 1213 \end{align*} … … 1388 1217 h_{wkb} = H \, \frac{ \int_{-H}^{z} N \, dz' } { \int_{-H}^{\eta} N \, dz' } \; , 1389 1218 \] 1390 The $n_p$ parameter (given by \np{nn\_zpyc} in \ngn{namzdf\_ tmx\_new} namelist)1219 The $n_p$ parameter (given by \np{nn\_zpyc} in \ngn{namzdf\_iwm} namelist) 1391 1220 controls the stratification-dependence of the pycnocline-intensified dissipation. 1392 It can take values of 1 (recommended) or 2.1221 It can take values of $1$ (recommended) or $2$. 1393 1222 Finally, the vertical structures $F_{cri}$ and $F_{bot}$ require the specification of 1394 1223 the decay scales $h_{cri}(i,j)$ and $h_{bot}(i,j)$, which are defined by two additional input maps. 1395 1224 $h_{cri}$ is related to the large-scale topography of the ocean (etopo2) and 1396 1225 $h_{bot}$ is a function of the energy flux $E_{bot}$, the characteristic horizontal scale of 1397 the abyssal hill topography \citep{Goff_JGR2010} and the latitude. 1226 the abyssal hill topography \citep{goff_JGR10} and the latitude. 1227 % 1228 % Jc: input files names ? 1229 1230 % ================================================================ 1231 % surface wave-induced mixing 1232 % ================================================================ 1233 \section[Surface wave-induced mixing (\forcode{ln_zdfswm = .true.})] 1234 {Surface wave-induced mixing (\protect\np{ln\_zdfswm}\forcode{ = .true.})} 1235 \label{subsec:ZDF_swm} 1236 1237 Surface waves produce an enhanced mixing through wave-turbulence interaction. 1238 In addition to breaking waves induced turbulence (\autoref{subsec:ZDF_tke}), 1239 the influence of non-breaking waves can be accounted introducing 1240 wave-induced viscosity and diffusivity as a function of the wave number spectrum. 1241 Following \citet{qiao.yuan.ea_OD10}, a formulation of wave-induced mixing coefficient 1242 is provided as a function of wave amplitude, Stokes Drift and wave-number: 1243 1244 \begin{equation} 1245 \label{eq:Bv} 1246 B_{v} = \alpha {A} {U}_{st} {exp(3kz)} 1247 \end{equation} 1248 1249 Where $B_{v}$ is the wave-induced mixing coefficient, $A$ is the wave amplitude, 1250 ${U}_{st}$ is the Stokes Drift velocity, $k$ is the wave number and $\alpha$ 1251 is a constant which should be determined by observations or 1252 numerical experiments and is set to be 1. 1253 1254 The coefficient $B_{v}$ is then directly added to the vertical viscosity 1255 and diffusivity coefficients. 1256 1257 In order to account for this contribution set: \forcode{ln_zdfswm = .true.}, 1258 then wave interaction has to be activated through \forcode{ln_wave = .true.}, 1259 the Stokes Drift can be evaluated by setting \forcode{ln_sdw = .true.} 1260 (see \autoref{subsec:SBC_wave_sdw}) 1261 and the needed wave fields can be provided either in forcing or coupled mode 1262 (for more information on wave parameters and settings see \autoref{sec:SBC_wave}) 1263 1264 % ================================================================ 1265 % Adaptive-implicit vertical advection 1266 % ================================================================ 1267 \section[Adaptive-implicit vertical advection (\forcode{ln_zad_Aimp = .true.})] 1268 {Adaptive-implicit vertical advection(\protect\np{ln\_zad\_Aimp}\forcode{ = .true.})} 1269 \label{subsec:ZDF_aimp} 1270 1271 The adaptive-implicit vertical advection option in NEMO is based on the work of 1272 \citep{shchepetkin_OM15}. In common with most ocean models, the timestep used with NEMO 1273 needs to satisfy multiple criteria associated with different physical processes in order 1274 to maintain numerical stability. \citep{shchepetkin_OM15} pointed out that the vertical 1275 CFL criterion is commonly the most limiting. \citep{lemarie.debreu.ea_OM15} examined the 1276 constraints for a range of time and space discretizations and provide the CFL stability 1277 criteria for a range of advection schemes. The values for the Leap-Frog with Robert 1278 asselin filter time-stepping (as used in NEMO) are reproduced in 1279 \autoref{tab:zad_Aimp_CFLcrit}. Treating the vertical advection implicitly can avoid these 1280 restrictions but at the cost of large dispersive errors and, possibly, large numerical 1281 viscosity. The adaptive-implicit vertical advection option provides a targetted use of the 1282 implicit scheme only when and where potential breaches of the vertical CFL condition 1283 occur. In many practical applications these events may occur remote from the main area of 1284 interest or due to short-lived conditions such that the extra numerical diffusion or 1285 viscosity does not greatly affect the overall solution. With such applications, setting: 1286 \forcode{ln_zad_Aimp = .true.} should allow much longer model timesteps to be used whilst 1287 retaining the accuracy of the high order explicit schemes over most of the domain. 1288 1289 \begin{table}[htbp] 1290 \begin{center} 1291 % \begin{tabular}{cp{70pt}cp{70pt}cp{70pt}cp{70pt}} 1292 \begin{tabular}{r|ccc} 1293 \hline 1294 spatial discretization & 2nd order centered & 3rd order upwind & 4th order compact \\ 1295 advective CFL criterion & 0.904 & 0.472 & 0.522 \\ 1296 \hline 1297 \end{tabular} 1298 \caption{ 1299 \protect\label{tab:zad_Aimp_CFLcrit} 1300 The advective CFL criteria for a range of spatial discretizations for the Leap-Frog with Robert Asselin filter time-stepping 1301 ($\nu=0.1$) as given in \citep{lemarie.debreu.ea_OM15}. 1302 } 1303 \end{center} 1304 \end{table} 1305 1306 In particular, the advection scheme remains explicit everywhere except where and when 1307 local vertical velocities exceed a threshold set just below the explicit stability limit. 1308 Once the threshold is reached a tapered transition towards an implicit scheme is used by 1309 partitioning the vertical velocity into a part that can be treated explicitly and any 1310 excess that must be treated implicitly. The partitioning is achieved via a Courant-number 1311 dependent weighting algorithm as described in \citep{shchepetkin_OM15}. 1312 1313 The local cell Courant number ($Cu$) used for this partitioning is: 1314 1315 \begin{equation} 1316 \label{eq:Eqn_zad_Aimp_Courant} 1317 \begin{split} 1318 Cu &= {2 \rdt \over e^n_{3t_{ijk}}} \bigg (\big [ \texttt{Max}(w^n_{ijk},0.0) - \texttt{Min}(w^n_{ijk+1},0.0) \big ] \\ 1319 &\phantom{=} +\big [ \texttt{Max}(e_{{2_u}ij}e^n_{{3_{u}}ijk}u^n_{ijk},0.0) - \texttt{Min}(e_{{2_u}i-1j}e^n_{{3_{u}}i-1jk}u^n_{i-1jk},0.0) \big ] 1320 \big / e_{{1_t}ij}e_{{2_t}ij} \\ 1321 &\phantom{=} +\big [ \texttt{Max}(e_{{1_v}ij}e^n_{{3_{v}}ijk}v^n_{ijk},0.0) - \texttt{Min}(e_{{1_v}ij-1}e^n_{{3_{v}}ij-1k}v^n_{ij-1k},0.0) \big ] 1322 \big / e_{{1_t}ij}e_{{2_t}ij} \bigg ) \\ 1323 \end{split} 1324 \end{equation} 1325 1326 \noindent and the tapering algorithm follows \citep{shchepetkin_OM15} as: 1327 1328 \begin{align} 1329 \label{eq:Eqn_zad_Aimp_partition} 1330 Cu_{min} &= 0.15 \nonumber \\ 1331 Cu_{max} &= 0.3 \nonumber \\ 1332 Cu_{cut} &= 2Cu_{max} - Cu_{min} \nonumber \\ 1333 Fcu &= 4Cu_{max}*(Cu_{max}-Cu_{min}) \nonumber \\ 1334 C\kern-0.14em f &= 1335 \begin{cases} 1336 0.0 &\text{if $Cu \leq Cu_{min}$} \\ 1337 (Cu - Cu_{min})^2 / (Fcu + (Cu - Cu_{min})^2) &\text{else if $Cu < Cu_{cut}$} \\ 1338 (Cu - Cu_{max}) / Cu &\text{else} 1339 \end{cases} 1340 \end{align} 1341 1342 \begin{figure}[!t] 1343 \begin{center} 1344 \includegraphics[width=\textwidth]{Fig_ZDF_zad_Aimp_coeff} 1345 \caption{ 1346 \protect\label{fig:zad_Aimp_coeff} 1347 The value of the partitioning coefficient ($C\kern-0.14em f$) used to partition vertical velocities into parts to 1348 be treated implicitly and explicitly for a range of typical Courant numbers (\forcode{ln_zad_Aimp=.true.}) 1349 } 1350 \end{center} 1351 \end{figure} 1352 1353 \noindent The partitioning coefficient is used to determine the part of the vertical 1354 velocity that must be handled implicitly ($w_i$) and to subtract this from the total 1355 vertical velocity ($w_n$) to leave that which can continue to be handled explicitly: 1356 1357 \begin{align} 1358 \label{eq:Eqn_zad_Aimp_partition2} 1359 w_{i_{ijk}} &= C\kern-0.14em f_{ijk} w_{n_{ijk}} \nonumber \\ 1360 w_{n_{ijk}} &= (1-C\kern-0.14em f_{ijk}) w_{n_{ijk}} 1361 \end{align} 1362 1363 \noindent Note that the coefficient is such that the treatment is never fully implicit; 1364 the three cases from \autoref{eq:Eqn_zad_Aimp_partition} can be considered as: 1365 fully-explicit; mixed explicit/implicit and mostly-implicit. With the settings shown the 1366 coefficient ($C\kern-0.14em f$) varies as shown in \autoref{fig:zad_Aimp_coeff}. Note with these values 1367 the $Cu_{cut}$ boundary between the mixed implicit-explicit treatment and 'mostly 1368 implicit' is 0.45 which is just below the stability limited given in 1369 \autoref{tab:zad_Aimp_CFLcrit} for a 3rd order scheme. 1370 1371 The $w_i$ component is added to the implicit solvers for the vertical mixing in 1372 \mdl{dynzdf} and \mdl{trazdf} in a similar way to \citep{shchepetkin_OM15}. This is 1373 sufficient for the flux-limited advection scheme (\forcode{ln_traadv_mus}) but further 1374 intervention is required when using the flux-corrected scheme (\forcode{ln_traadv_fct}). 1375 For these schemes the implicit upstream fluxes must be added to both the monotonic guess 1376 and to the higher order solution when calculating the antidiffusive fluxes. The implicit 1377 vertical fluxes are then removed since they are added by the implicit solver later on. 1378 1379 The adaptive-implicit vertical advection option is new to NEMO at v4.0 and has yet to be 1380 used in a wide range of simulations. The following test simulation, however, does illustrate 1381 the potential benefits and will hopefully encourage further testing and feedback from users: 1382 1383 \begin{figure}[!t] 1384 \begin{center} 1385 \includegraphics[width=\textwidth]{Fig_ZDF_zad_Aimp_overflow_frames} 1386 \caption{ 1387 \protect\label{fig:zad_Aimp_overflow_frames} 1388 A time-series of temperature vertical cross-sections for the OVERFLOW test case. These results are for the default 1389 settings with \forcode{nn_rdt=10.0} and without adaptive implicit vertical advection (\forcode{ln_zad_Aimp=.false.}). 1390 } 1391 \end{center} 1392 \end{figure} 1393 1394 \subsection{Adaptive-implicit vertical advection in the OVERFLOW test-case} 1395 The \href{https://forge.ipsl.jussieu.fr/nemo/chrome/site/doc/NEMO/guide/html/test\_cases.html\#overflow}{OVERFLOW test case} 1396 provides a simple illustration of the adaptive-implicit advection in action. The example here differs from the basic test case 1397 by only a few extra physics choices namely: 1398 1399 \begin{verbatim} 1400 ln_dynldf_OFF = .false. 1401 ln_dynldf_lap = .true. 1402 ln_dynldf_hor = .true. 1403 ln_zdfnpc = .true. 1404 ln_traadv_fct = .true. 1405 nn_fct_h = 2 1406 nn_fct_v = 2 1407 \end{verbatim} 1408 1409 \noindent which were chosen to provide a slightly more stable and less noisy solution. The 1410 result when using the default value of \forcode{nn_rdt = 10.} without adaptive-implicit 1411 vertical velocity is illustrated in \autoref{fig:zad_Aimp_overflow_frames}. The mass of 1412 cold water, initially sitting on the shelf, moves down the slope and forms a 1413 bottom-trapped, dense plume. Even with these extra physics choices the model is close to 1414 stability limits and attempts with \forcode{nn_rdt = 30.} will fail after about 5.5 hours 1415 with excessively high horizontal velocities. This time-scale corresponds with the time the 1416 plume reaches the steepest part of the topography and, although detected as a horizontal 1417 CFL breach, the instability originates from a breach of the vertical CFL limit. This is a good 1418 candidate, therefore, for use of the adaptive-implicit vertical advection scheme. 1419 1420 The results with \forcode{ln_zad_Aimp=.true.} and a variety of model timesteps 1421 are shown in \autoref{fig:zad_Aimp_overflow_all_rdt} (together with the equivalent 1422 frames from the base run). In this simple example the use of the adaptive-implicit 1423 vertcal advection scheme has enabled a 12x increase in the model timestep without 1424 significantly altering the solution (although at this extreme the plume is more diffuse 1425 and has not travelled so far). Notably, the solution with and without the scheme is 1426 slightly different even with \forcode{nn_rdt = 10.}; suggesting that the base run was 1427 close enough to instability to trigger the scheme despite completing successfully. 1428 To assist in diagnosing how active the scheme is, in both location and time, the 3D 1429 implicit and explicit components of the vertical velocity are available via XIOS as 1430 \texttt{wimp} and \texttt{wexp} respectively. Likewise, the partitioning coefficient 1431 ($C\kern-0.14em f$) is also available as \texttt{wi\_cff}. For a quick oversight of 1432 the schemes activity the global maximum values of the absolute implicit component 1433 of the vertical velocity and the partitioning coefficient are written to the netCDF 1434 version of the run statistics file (\texttt{run.stat.nc}) if this is active (see 1435 \autoref{sec:MISC_opt} for activation details). 1436 1437 \autoref{fig:zad_Aimp_maxCf} shows examples of the maximum partitioning coefficient for 1438 the various overflow tests. Note that the adaptive-implicit vertical advection scheme is 1439 active even in the base run with \forcode{nn_rdt=10.0s} adding to the evidence that the 1440 test case is close to stability limits even with this value. At the larger timesteps, the 1441 vertical velocity is treated mostly implicitly at some location throughout the run. The 1442 oscillatory nature of this measure appears to be linked to the progress of the plume front 1443 as each cusp is associated with the location of the maximum shifting to the adjacent cell. 1444 This is illustrated in \autoref{fig:zad_Aimp_maxCf_loc} where the i- and k- locations of the 1445 maximum have been overlaid for the base run case. 1446 1447 \medskip 1448 \noindent Only limited tests have been performed in more realistic configurations. In the 1449 ORCA2\_ICE\_PISCES reference configuration the scheme does activate and passes 1450 restartability and reproducibility tests but it is unable to improve the model's stability 1451 enough to allow an increase in the model time-step. A view of the time-series of maximum 1452 partitioning coefficient (not shown here) suggests that the default time-step of 5400s is 1453 already pushing at stability limits, especially in the initial start-up phase. The 1454 time-series does not, however, exhibit any of the 'cuspiness' found with the overflow 1455 tests. 1456 1457 \medskip 1458 \noindent A short test with an eORCA1 configuration promises more since a test using a 1459 time-step of 3600s remains stable with \forcode{ln_zad_Aimp=.true.} whereas the 1460 time-step is limited to 2700s without. 1461 1462 \begin{figure}[!t] 1463 \begin{center} 1464 \includegraphics[width=\textwidth]{Fig_ZDF_zad_Aimp_overflow_all_rdt} 1465 \caption{ 1466 \protect\label{fig:zad_Aimp_overflow_all_rdt} 1467 Sample temperature vertical cross-sections from mid- and end-run using different values for \forcode{nn_rdt} 1468 and with or without adaptive implicit vertical advection. Without the adaptive implicit vertical advection only 1469 the run with the shortest timestep is able to run to completion. Note also that the colour-scale has been 1470 chosen to confirm that temperatures remain within the original range of 10$^o$ to 20$^o$. 1471 } 1472 \end{center} 1473 \end{figure} 1474 1475 \begin{figure}[!t] 1476 \begin{center} 1477 \includegraphics[width=\textwidth]{Fig_ZDF_zad_Aimp_maxCf} 1478 \caption{ 1479 \protect\label{fig:zad_Aimp_maxCf} 1480 The maximum partitioning coefficient during a series of test runs with increasing model timestep length. 1481 At the larger timesteps, the vertical velocity is treated mostly implicitly at some location throughout 1482 the run. 1483 } 1484 \end{center} 1485 \end{figure} 1486 1487 \begin{figure}[!t] 1488 \begin{center} 1489 \includegraphics[width=\textwidth]{Fig_ZDF_zad_Aimp_maxCf_loc} 1490 \caption{ 1491 \protect\label{fig:zad_Aimp_maxCf_loc} 1492 The maximum partitioning coefficient for the \forcode{nn_rdt=10.0s} case overlaid with information on the gridcell i- and k- 1493 locations of the maximum value. 1494 } 1495 \end{center} 1496 \end{figure} 1398 1497 1399 1498 % ================================================================ -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_conservation.tex
r10442 r11422 21 21 horizontal kinetic energy and/or potential enstrophy of horizontally non-divergent flow, 22 22 and variance of temperature and salinity will be conserved in the absence of dissipative effects and forcing. 23 \citet{ Arakawa1966} has first pointed out the advantage of this approach.23 \citet{arakawa_JCP66} has first pointed out the advantage of this approach. 24 24 He showed that if integral constraints on energy are maintained, 25 25 the computation will be free of the troublesome "non linear" instability originally pointed out by 26 \citet{ Phillips1959}.26 \citet{phillips_TAMS59}. 27 27 A consistent formulation of the energetic properties is also extremely important in carrying out 28 28 long-term numerical simulations for an oceanographic model. 29 Such a formulation avoids systematic errors that accumulate with time \citep{ Bryan1997}.29 Such a formulation avoids systematic errors that accumulate with time \citep{bryan_JCP97}. 30 30 31 31 The general philosophy of OPA which has led to the discrete formulation presented in {\S}II.2 and II.3 is to … … 39 39 Note that in some very specific cases as passive tracer studies, the positivity of the advective scheme is required. 40 40 In that case, and in that case only, the advective scheme used for passive tracer is a flux correction scheme 41 \citep{Marti1992 , Levy1996, Levy1998}.41 \citep{Marti1992?, Levy1996?, Levy1998?}. 42 42 43 43 % ------------------------------------------------------------------------------------------------------------- … … 65 65 % \label{eq:vor_vorticity} 66 66 \int_D {{\textbf {k}}\cdot \frac{1}{e_3 }\nabla \times \left( {\varsigma 67 \;{\ rm {\bf k}}\times {\textbf {U}}_h } \right)\;dv} =067 \;{\mathrm {\mathbf k}}\times {\textbf {U}}_h } \right)\;dv} =0 68 68 \] 69 69 … … 189 189 \[ 190 190 % \label{eq:dynldf_dyn} 191 \int\limits_D {\frac{1}{e_3 }{\ rm {\bf k}}\cdot \nabla \times \left[ {\nabla191 \int\limits_D {\frac{1}{e_3 }{\mathrm {\mathbf k}}\cdot \nabla \times \left[ {\nabla 192 192 _h \left( {A^{lm}\;\chi } \right)-\nabla _h \times \left( {A^{lm}\;\zeta 193 \;{\ rm {\bf k}}} \right)} \right]\;dv} =0193 \;{\mathrm {\mathbf k}}} \right)} \right]\;dv} =0 194 194 \] 195 195 … … 197 197 % \label{eq:dynldf_div} 198 198 \int\limits_D {\nabla _h \cdot \left[ {\nabla _h \left( {A^{lm}\;\chi } 199 \right)-\nabla _h \times \left( {A^{lm}\;\zeta \;{\ rm {\bf k}}} \right)}199 \right)-\nabla _h \times \left( {A^{lm}\;\zeta \;{\mathrm {\mathbf k}}} \right)} 200 200 \right]\;dv} =0 201 201 \] … … 203 203 \[ 204 204 % \label{eq:dynldf_curl} 205 \int_D {{\ rm {\bf U}}_h \cdot \left[ {\nabla _h \left( {A^{lm}\;\chi }206 \right)-\nabla _h \times \left( {A^{lm}\;\zeta \;{\ rm {\bf k}}} \right)}205 \int_D {{\mathrm {\mathbf U}}_h \cdot \left[ {\nabla _h \left( {A^{lm}\;\chi } 206 \right)-\nabla _h \times \left( {A^{lm}\;\zeta \;{\mathrm {\mathbf k}}} \right)} 207 207 \right]\;dv} \leqslant 0 208 208 \] … … 210 210 \[ 211 211 % \label{eq:dynldf_curl2} 212 \mbox{if}\quad A^{lm}=cste\quad \quad \int_D {\zeta \;{\ rm {\bf k}}\cdot212 \mbox{if}\quad A^{lm}=cste\quad \quad \int_D {\zeta \;{\mathrm {\mathbf k}}\cdot 213 213 \nabla \times \left[ {\nabla _h \left( {A^{lm}\;\chi } \right)-\nabla _h 214 \times \left( {A^{lm}\;\zeta \;{\ rm {\bf k}}} \right)} \right]\;dv}214 \times \left( {A^{lm}\;\zeta \;{\mathrm {\mathbf k}}} \right)} \right]\;dv} 215 215 \leqslant 0 216 216 \] … … 220 220 \mbox{if}\quad A^{lm}=cste\quad \quad \int_D {\chi \;\nabla _h \cdot \left[ 221 221 {\nabla _h \left( {A^{lm}\;\chi } \right)-\nabla _h \times \left( 222 {A^{lm}\;\zeta \;{\ rm {\bf k}}} \right)} \right]\;dv} \leqslant 0222 {A^{lm}\;\zeta \;{\mathrm {\mathbf k}}} \right)} \right]\;dv} \leqslant 0 223 223 \] 224 224 … … 260 260 % \label{eq:dynzdf_vor} 261 261 \begin{aligned} 262 & \int_D {\frac{1}{e_3 }{\ rm {\bf k}}\cdot \nabla \times \left( {\frac{1}{e_3263 }\frac{\partial }{\partial k}\left( {\frac{A^{vm}}{e_3 }\frac{\partial {\ rm264 {\ bf U}}_h }{\partial k}} \right)} \right)\;dv} =0 \\265 & \int_D {\zeta \,{\ rm {\bf k}}\cdot \nabla \times \left( {\frac{1}{e_3266 }\frac{\partial }{\partial k}\left( {\frac{A^{vm}}{e_3 }\frac{\partial {\ rm267 {\ bf U}}_h }{\partial k}} \right)} \right)\;dv} \leq 0 \\262 & \int_D {\frac{1}{e_3 }{\mathrm {\mathbf k}}\cdot \nabla \times \left( {\frac{1}{e_3 263 }\frac{\partial }{\partial k}\left( {\frac{A^{vm}}{e_3 }\frac{\partial {\mathrm 264 {\mathbf U}}_h }{\partial k}} \right)} \right)\;dv} =0 \\ 265 & \int_D {\zeta \,{\mathrm {\mathbf k}}\cdot \nabla \times \left( {\frac{1}{e_3 266 }\frac{\partial }{\partial k}\left( {\frac{A^{vm}}{e_3 }\frac{\partial {\mathrm 267 {\mathbf U}}_h }{\partial k}} \right)} \right)\;dv} \leq 0 \\ 268 268 \end{aligned} 269 269 \] … … 273 273 \begin{aligned} 274 274 &\int_D {\nabla \cdot \left( {\frac{1}{e_3 }\frac{\partial }{\partial 275 k}\left( {\frac{A^{vm}}{e_3 }\frac{\partial {\ rm {\bf U}}_h }{\partial k}}275 k}\left( {\frac{A^{vm}}{e_3 }\frac{\partial {\mathrm {\mathbf U}}_h }{\partial k}} 276 276 \right)} \right)\;dv} =0 \\ 277 277 & \int_D {\chi \;\nabla \cdot \left( {\frac{1}{e_3 }\frac{\partial }{\partial 278 k}\left( {\frac{A^{vm}}{e_3 }\frac{\partial {\ rm {\bf U}}_h }{\partial k}}278 k}\left( {\frac{A^{vm}}{e_3 }\frac{\partial {\mathrm {\mathbf U}}_h }{\partial k}} 279 279 \right)} \right)\;dv} \leq 0 \\ 280 280 \end{aligned} -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_misc.tex
r10601 r11422 30 30 are much narrow than even a single ocean grid-point. 31 31 32 We describe briefly here the three methods that can be used in \NEMO to handle such improperly resolved straits. 33 The first two consist of opening the strait by hand while ensuring that the mass exchanges through 34 the strait are not too large by either artificially reducing the surface of the strait grid-cells or, 35 locally increasing the lateral friction. 36 In the third one, the strait is closed but exchanges of mass, heat and salt across the land are allowed. 37 Note that such modifications are so specific to a given configuration that no attempt has been made to 38 set them in a generic way. 39 However, examples of how they can be set up is given in the ORCA 2\deg and 0.5\deg configurations. 40 For example, for details of implementation in ORCA2, search: \texttt{IF( cp\_cfg == "orca" .AND. jp\_cfg == 2 )} 32 We describe briefly here the two methods that can be used in \NEMO to handle such 33 improperly resolved straits. The methods consist of opening the strait while ensuring 34 that the mass exchanges through the strait are not too large by either artificially 35 reducing the cross-sectional area of the strait grid-cells or, locally increasing the 36 lateral friction. 41 37 42 38 % ------------------------------------------------------------------------------------------------------------- … … 46 42 \label{subsec:MISC_strait_hand} 47 43 48 $\bullet$ reduced scale factor in the cross-strait direction to a value in better agreement with 49 the true mean width of the strait (\autoref{fig:MISC_strait_hand}). 50 This technique is sometime called "partially open face" or "partially closed cells". 51 The key issue here is only to reduce the faces of $T$-cell 52 (\ie change the value of the horizontal scale factors at $u$- or $v$-point) but not the volume of the $T$-cell. 53 Indeed, reducing the volume of strait $T$-cell can easily produce a numerical instability at 54 that grid point that would require a reduction of the model time step. 55 The changes associated with strait management are done in \mdl{domhgr}, 56 just after the definition or reading of the horizontal scale factors. 57 58 $\bullet$ increase of the viscous boundary layer thickness by local increase of the fmask value at the coast 59 (\autoref{fig:MISC_strait_hand}). 60 This is done in \mdl{dommsk} together with the setting of the coastal value of fmask (see \autoref{sec:LBC_coast}). 44 The first method involves reducing the scale factor in the cross-strait direction to a 45 value in better agreement with the true mean width of the strait 46 (\autoref{fig:MISC_strait_hand}). This technique is sometime called "partially open face" 47 or "partially closed cells". The key issue here is only to reduce the faces of $T$-cell 48 (\ie change the value of the horizontal scale factors at $u$- or $v$-point) but not the 49 volume of the $T$-cell. Indeed, reducing the volume of strait $T$-cell can easily produce 50 a numerical instability at that grid point which would require a reduction of the model 51 time step. Thus to instigate a local change in the width of a Strait requires two steps: 52 53 \begin{itemize} 54 55 \item Add \texttt{e1e2u} and \texttt{e1e2v} arrays to the \np{cn\_domcfg} file. These 2D 56 arrays should contain the products of the unaltered values of: $\texttt{e1u}*\texttt{e2u}$ 57 and $\texttt{e1u}*\texttt{e2v}$ respectively. That is the original surface areas of $u$- 58 and $v$- cells respectively. These areas are usually defined by the corresponding product 59 within the \NEMO code but the presence of \texttt{e1e2u} and \texttt{e1e2v} in the 60 \np{cn\_domcfg} file will suppress this calculation and use the supplied fields instead. 61 If the model domain is provided by user-supplied code in \mdl{usrdef\_hgr}, then this 62 routine should also return \texttt{e1e2u} and \texttt{e1e2v} and set the integer return 63 argument \texttt{ie1e2u\_v} to a non-zero value. Values other than 0 for this argument 64 will suppress the calculation of the areas. 65 66 \item Change values of \texttt{e2u} or \texttt{e1v} (either in the \np{cn\_domcfg} file or 67 via code in \mdl{usrdef\_hgr}), whereever a Strait reduction is required. The choice of 68 whether to alter \texttt{e2u} or \texttt{e1v} depends. respectively, on whether the 69 Strait in question is North-South orientated (\eg Gibraltar) or East-West orientated (\eg 70 Lombok). 71 72 \end{itemize} 73 74 75 The second method is to increase the viscous boundary layer thickness by a local increase 76 of the fmask value at the coast. This method can also be effective in wider passages. The 77 concept is illustarted in the second part of \autoref{fig:MISC_strait_hand} and changes 78 to specific locations can be coded in \mdl{usrdef\_fmask}. The \forcode{usr_def_fmask} 79 routine is always called after \texttt{fmask} has been defined according to the choice of 80 lateral boundary condition as discussed in \autoref{sec:LBC_coast}. The default version of 81 \mdl{usrdef\_fmask} contains settings specific to ORCA2 and ORCA1 configurations. These are 82 meant as examples only; it is up to the user to verify settings and provide alternatives 83 for their own configurations. The default \forcode{usr_def_fmask} makes no changes to 84 \texttt{fmask} for any other configuration. 61 85 62 86 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 63 87 \begin{figure}[!tbp] 64 88 \begin{center} 65 \includegraphics[width= 0.80\textwidth]{Fig_Gibraltar}66 \includegraphics[width= 0.80\textwidth]{Fig_Gibraltar2}89 \includegraphics[width=\textwidth]{Fig_Gibraltar} 90 \includegraphics[width=\textwidth]{Fig_Gibraltar2} 67 91 \caption{ 68 92 \protect\label{fig:MISC_strait_hand} … … 84 108 \begin{figure}[!tbp] 85 109 \begin{center} 86 \includegraphics[width= 1.0\textwidth]{Fig_closea_mask_example}110 \includegraphics[width=\textwidth]{Fig_closea_mask_example} 87 111 \caption{ 88 112 \protect\label{fig:closea_mask_example} … … 102 126 % Closed seas 103 127 % ================================================================ 104 \section{Closed seas (\protect\mdl{closea})} 128 \section[Closed seas (\textit{closea.F90})] 129 {Closed seas (\protect\mdl{closea})} 105 130 \label{sec:MISC_closea} 106 131 … … 122 147 123 148 \begin{enumerate} 124 \item{{\bf No ``closea\_mask'' field is included in domain configuration149 \item{{\bfseries No ``closea\_mask'' field is included in domain configuration 125 150 file.} In this case the closea module does nothing.} 126 151 127 \item{{\bf A field called closea\_mask is included in the domain152 \item{{\bfseries A field called closea\_mask is included in the domain 128 153 configuration file and ln\_closea=.false. in namelist namcfg.} In this 129 154 case the inland seas defined by the closea\_mask field are filled in … … 131 156 closea\_mask that is nonzero is set to be a land point.} 132 157 133 \item{{\bf A field called closea\_mask is included in the domain158 \item{{\bfseries A field called closea\_mask is included in the domain 134 159 configuration file and ln\_closea=.true. in namelist namcfg.} Each 135 160 inland sea or group of inland seas is set to a positive integer value … … 140 165 closea\_mask is zero).} 141 166 142 \item{{\bf Fields called closea\_mask and closea\_mask\_rnf are167 \item{{\bfseries Fields called closea\_mask and closea\_mask\_rnf are 143 168 included in the domain configuration file and ln\_closea=.true. in 144 169 namelist namcfg.} This option works as for option 3, except that if … … 154 179 ocean.} 155 180 156 \item{{\bf Fields called closea\_mask and closea\_mask\_emp are181 \item{{\bfseries Fields called closea\_mask and closea\_mask\_emp are 157 182 included in the domain configuration file and ln\_closea=.true. in 158 183 namelist namcfg.} This option works the same as option 4 except that … … 174 199 \subsection{Simple subsetting of input files via NetCDF attributes} 175 200 176 The extended grids for use with the under-shelf ice cavities will result in redundant rows around Antarctica if 177 the ice cavities are not active. 178 A simple mechanism for subsetting input files associated with the extended domains has been implemented to 179 avoid the need to maintain different sets of input fields for use with or without active ice cavities. 180 The existing 'zoom' options are overly complex for this task and marked for deletion anyway. 181 This alternative subsetting operates for the j-direction only and works by optionally looking for and 182 using a global file attribute (named: \np{open\_ocean\_jstart}) to determine the starting j-row for input. 183 The use of this option is best explained with an example: 184 consider an ORCA1 configuration using the extended grid bathymetry and coordinate files: 185 \vspace{-10pt} 186 \ifile{eORCA1\_bathymetry\_v2} 187 \ifile{eORCA1\_coordinates} 188 \noindent These files define a horizontal domain of 362x332. 189 Assuming the first row with open ocean wet points in the non-isf bathymetry for this set is row 42 190 (\fortran indexing) then the formally correct setting for \np{open\_ocean\_jstart} is 41. 191 Using this value as the first row to be read will result in a 362x292 domain which is the same size as 192 the original ORCA1 domain. 193 Thus the extended coordinates and bathymetry files can be used with all the original input files for ORCA1 if 194 the ice cavities are not active (\np{ln\_isfcav = .false.}). 195 Full instructions for achieving this are: 196 197 \noindent Add the new attribute to any input files requiring a j-row offset, i.e: 198 \vspace{-10pt} 201 The extended grids for use with the under-shelf ice cavities will result in redundant rows 202 around Antarctica if the ice cavities are not active. A simple mechanism for subsetting 203 input files associated with the extended domains has been implemented to avoid the need to 204 maintain different sets of input fields for use with or without active ice cavities. This 205 subsetting operates for the j-direction only and works by optionally looking for and using 206 a global file attribute (named: \np{open\_ocean\_jstart}) to determine the starting j-row 207 for input. The use of this option is best explained with an example: 208 \medskip 209 210 \noindent Consider an ORCA1 211 configuration using the extended grid domain configuration file: \ifile{eORCA1\_domcfg.nc} 212 This file define a horizontal domain of 362x332. The first row with 213 open ocean wet points in the non-isf bathymetry for this set is row 42 (\fortran indexing) 214 then the formally correct setting for \np{open\_ocean\_jstart} is 41. Using this value as 215 the first row to be read will result in a 362x292 domain which is the same size as the 216 original ORCA1 domain. Thus the extended domain configuration file can be used with all 217 the original input files for ORCA1 if the ice cavities are not active (\np{ln\_isfcav = 218 .false.}). Full instructions for achieving this are: 219 220 \begin{itemize} 221 \item Add the new attribute to any input files requiring a j-row offset, i.e: 222 \begin{cmds} 223 ncatted -a open_ocean_jstart,global,a,d,41 eORCA1_domcfg.nc 224 \end{cmds} 225 226 \item Add the logical switch \np{ln\_use\_jattr} to \ngn{namcfg} in the configuration 227 namelist (if it is not already there) and set \np{.true.} 228 \end{itemize} 229 230 \noindent Note that with this option, the j-size of the global domain is (extended 231 j-size minus \np{open\_ocean\_jstart} + 1 ) and this must match the \texttt{jpjglo} value 232 for the configuration. This means an alternative version of \ifile{eORCA1\_domcfg.nc} must 233 be created for when \np{ln\_use\_jattr} is active. The \texttt{ncap2} tool provides a 234 convenient way of achieving this: 235 199 236 \begin{cmds} 200 ncatted -a open_ocean_jstart,global,a,d,41 eORCA1_coordinates.nc 201 ncatted -a open_ocean_jstart,global,a,d,41 eORCA1_bathymetry_v2.nc 237 ncap2 -s 'jpjglo=292' eORCA1_domcfg.nc nORCA1_domcfg.nc 202 238 \end{cmds} 203 204 \noindent Add the logical switch to \ngn{namcfg} in the configuration namelist and set true: 205 %--------------------------------------------namcfg-------------------------------------------------------- 206 207 \nlst{namcfg} 208 %-------------------------------------------------------------------------------------------------------------- 209 210 \noindent Note the j-size of the global domain is the (extended j-size minus \np{open\_ocean\_jstart} + 1 ) and 211 this must match the size of all datasets other than bathymetry and coordinates currently. 212 However the option can be extended to any global, 2D and 3D, netcdf, input field by adding the: 213 \vspace{-10pt} 239 240 The domain configuration file is unique in this respect since it also contains the value 241 of \texttt{jpjglo} that is read and used by the model. Any other global, 2D and 3D, 242 netcdf, input field can be prepared for use in a reduced domain by adding the 243 \texttt{open\_ocean\_jstart} attribute to the file's global attributes. In particular 244 this is true for any field that is read by \NEMO using the following optional argument to 245 the appropriate call to \np{iom\_get}. 214 246 \begin{forlines} 215 247 lrowattr=ln_use_jattr 216 248 \end{forlines} 217 optional argument to the appropriate \np{iom\_get} call and the \np{open\_ocean\_jstart} attribute to 218 the corresponding input files. 219 It remains the users responsibility to set \np{jpjdta} and \np{jpjglo} values in 220 the \np{namelist\_cfg} file according to their needs. 221 222 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 223 \begin{figure}[!ht] 224 \begin{center} 225 \includegraphics[width=0.90\textwidth]{Fig_LBC_zoom} 226 \caption{ 227 \protect\label{fig:LBC_zoom} 228 Position of a model domain compared to the data input domain when the zoom functionality is used. 229 } 230 \end{center} 231 \end{figure} 232 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 233 249 250 Currently, only the domain configuration variables make use of this optional argument so 251 this facility is of little practical use except for tests where no other external input 252 files are needed or you wish to use an extended domain configuration with inputs from 253 earlier, non-extended configurations. Alternatively, it should be possible to exclude 254 empty rows for extended domain, forced ocean runs using interpolation on the fly, by 255 adding the optional argument to \texttt{iom\_get} calls for the weights and initial 256 conditions. Experimenting with this remains an exercise for the user. 234 257 235 258 % ================================================================ 236 259 % Accuracy and Reproducibility 237 260 % ================================================================ 238 \section{Accuracy and reproducibility (\protect\mdl{lib\_fortran})} 261 \section[Accuracy and reproducibility (\textit{lib\_fortran.F90})] 262 {Accuracy and reproducibility (\protect\mdl{lib\_fortran})} 239 263 \label{sec:MISC_fortran} 240 264 241 \subsection{Issues with intrinsinc SIGN function (\protect\key{nosignedzero})} 265 \subsection[Issues with intrinsinc SIGN function (\texttt{\textbf{key\_nosignedzero}})] 266 {Issues with intrinsinc SIGN function (\protect\key{nosignedzero})} 242 267 \label{subsec:MISC_sign} 243 268 … … 272 297 and their propagation and accumulation cause uncertainty in final simulation reproducibility on 273 298 different numbers of processors. 274 To avoid so, based on \citet{ He_Ding_JSC01} review of different technics,299 To avoid so, based on \citet{he.ding_JS01} review of different technics, 275 300 we use a so called self-compensated summation method. 276 301 The idea is to estimate the roundoff error, store it in a buffer, and then add it back in the next addition. … … 314 339 This alternative method should give identical results to the default \textsc{ALLGATHER} method and 315 340 is recommended for large values of \np{jpni}. 316 The new method is activated by setting \np{ln\_nnogather} to be true ( {\bfnammpp}).341 The new method is activated by setting \np{ln\_nnogather} to be true (\ngn{nammpp}). 317 342 The reproducibility of results using the two methods should be confirmed for each new, 318 343 non-reference configuration. -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_model_basics.tex
r10544 r11422 32 32 \begin{enumerate} 33 33 \item 34 \textit{spherical earth approximation}: the geopotential surfaces are assumed to be spheres so that 35 gravity (local vertical) is parallel to the earth's radius 34 \textit{spherical Earth approximation}: the geopotential surfaces are assumed to be oblate spheriods 35 that follow the Earth's bulge; these spheroids are approximated by spheres with 36 gravity locally vertical (parallel to the Earth's radius) and independent of latitude 37 \citep[][section 2]{white.hoskins.ea_QJRMS05}. 36 38 \item 37 39 \textit{thin-shell approximation}: the ocean depth is neglected compared to the earth's radius … … 63 65 \nabla \cdot \vect U = 0 64 66 \end{equation} 67 \item 68 \textit{Neglect of additional Coriolis terms}: the Coriolis terms that vary with the cosine of latitude are neglected. 69 These terms may be non-negligible where the Brunt-Vaisala frequency $N$ is small, either in the deep ocean or 70 in the sub-mesoscale motions of the mixed layer, or near the equator \citep[][section 1]{white.hoskins.ea_QJRMS05}. 71 They can be consistently included as part of the ocean dynamics \citep[][section 3(d)]{white.hoskins.ea_QJRMS05} and are 72 retained in the MIT ocean model. 65 73 \end{enumerate} 66 74 67 75 Because the gravitational force is so dominant in the equations of large-scale motions, 68 it is useful to choose an orthogonal set of unit vectors $(i,j,k)$ linked to the earth such that76 it is useful to choose an orthogonal set of unit vectors $(i,j,k)$ linked to the Earth such that 69 77 $k$ is the local upward vector and $(i,j)$ are two vectors orthogonal to $k$, 70 78 \ie tangent to the geopotential surfaces. … … 107 115 an air-sea or ice-sea interface at its top. 108 116 These boundaries can be defined by two surfaces, $z = - H(i,j)$ and $z = \eta(i,j,k,t)$, 109 where $H$ is the depth of the ocean bottom and $\eta$ is the height of the sea surface. 110 Both $H$ and $\eta$ are usually referenced to a given surface, $z = 0$, chosen as a mean sea surface 117 where $H$ is the depth of the ocean bottom and $\eta$ is the height of the sea surface 118 (discretisation can introduce additional artificial ``side-wall'' boundaries). 119 Both $H$ and $\eta$ are referenced to a surface of constant geopotential (\ie a mean sea surface height) on which $z = 0$. 111 120 (\autoref{fig:ocean_bc}). 112 121 Through these two boundaries, the ocean can exchange fluxes of heat, fresh water, salt, and momentum with … … 120 129 \begin{figure}[!ht] 121 130 \begin{center} 122 \includegraphics[ ]{Fig_I_ocean_bc}131 \includegraphics[width=\textwidth]{Fig_I_ocean_bc} 123 132 \caption{ 124 133 \protect\label{fig:ocean_bc} … … 210 219 The flow is barotropic and the surface moves up and down with gravity as the restoring force. 211 220 The phase speed of such waves is high (some hundreds of metres per second) so that 212 the time step would have to be very short if they were present in the model.221 the time step has to be very short when they are present in the model. 213 222 The latter strategy filters out these waves since the rigid lid approximation implies $\eta = 0$, 214 223 \ie the sea surface is the surface $z = 0$. … … 217 226 The rigid-lid hypothesis is an obsolescent feature in modern OGCMs. 218 227 It has been available until the release 3.1 of \NEMO, and it has been removed in release 3.2 and followings. 219 Only the free surface formulation is now described in th e this document (see the next sub-section).228 Only the free surface formulation is now described in this document (see the next sub-section). 220 229 221 230 % ------------------------------------------------------------------------------------------------------------- … … 237 246 Allowing the air-sea interface to move introduces the external gravity waves (EGWs) as 238 247 a class of solution of the primitive equations. 239 These waves are barotropic because of hydrostatic assumption,and their phase speed is quite high.248 These waves are barotropic (\ie nearly independent of depth) and their phase speed is quite high. 240 249 Their time scale is short with respect to the other processes described by the primitive equations. 241 250 … … 258 267 If further, an approximative conservation of heat and salt contents is sufficient for the problem solved, 259 268 then it is sufficient to solve a linearized version of \autoref{eq:PE_ssh}, 260 which still allows to take into account freshwater fluxes applied at the ocean surface \citep{ Roullet_Madec_JGR00}.269 which still allows to take into account freshwater fluxes applied at the ocean surface \citep{roullet.madec_JGR00}. 261 270 Nevertheless, with the linearization, an exact conservation of heat and salt contents is lost. 262 271 263 272 The filtering of EGWs in models with a free surface is usually a matter of discretisation of 264 273 the temporal derivatives, 265 using a split-explicit method \citep{ Killworth_al_JPO91, Zhang_Endoh_JGR92} or266 the implicit scheme \citep{ Dukowicz1994} or267 the addition of a filtering force in the momentum equation \citep{ Roullet_Madec_JGR00}.268 With the present release, \NEMO offers the choice between274 using a split-explicit method \citep{killworth.webb.ea_JPO91, zhang.endoh_JGR92} or 275 the implicit scheme \citep{dukowicz.smith_JGR94} or 276 the addition of a filtering force in the momentum equation \citep{roullet.madec_JGR00}. 277 With the present release, \NEMO offers the choice between 269 278 an explicit free surface (see \autoref{subsec:DYN_spg_exp}) or 270 a split-explicit scheme strongly inspired the one proposed by \citet{ Shchepetkin_McWilliams_OM05}279 a split-explicit scheme strongly inspired the one proposed by \citet{shchepetkin.mcwilliams_OM05} 271 280 (see \autoref{subsec:DYN_spg_ts}). 272 281 … … 292 301 cannot be easily treated in a global model without filtering. 293 302 A solution consists of introducing an appropriate coordinate transformation that 294 shifts the singular point onto land \citep{ Madec_Imbard_CD96, Murray_JCP96}.303 shifts the singular point onto land \citep{madec.imbard_CD96, murray_JCP96}. 295 304 As a consequence, it is important to solve the primitive equations in various curvilinear coordinate systems. 296 305 An efficient way of introducing an appropriate coordinate transform can be found when using a tensorial formalism. … … 298 307 Ocean modellers mainly use three-dimensional orthogonal grids on the sphere (spherical earth approximation), 299 308 with preservation of the local vertical. Here we give the simplified equations for this particular case. 300 The general case is detailed by \citet{ Eiseman1980} in their survey of the conservation laws of fluid dynamics.309 The general case is detailed by \citet{eiseman.stone_SR80} in their survey of the conservation laws of fluid dynamics. 301 310 302 311 Let $(i,j,k)$ be a set of orthogonal curvilinear coordinates on … … 323 332 \begin{figure}[!tb] 324 333 \begin{center} 325 \includegraphics[ ]{Fig_I_earth_referential}334 \includegraphics[width=\textwidth]{Fig_I_earth_referential} 326 335 \caption{ 327 336 \protect\label{fig:referential} … … 338 347 the vertical scale factor is a single function of $k$ as $k$ is parallel to $z$. 339 348 The scalar and vector operators that appear in the primitive equations 340 (\autoref{eq:PE_dyn} to \autoref{eq:PE_eos}) can be written in the tensorial form,349 (\autoref{eq:PE_dyn} to \autoref{eq:PE_eos}) can then be written in the tensorial form, 341 350 invariant in any orthogonal horizontal curvilinear coordinate system transformation: 342 351 \begin{subequations} … … 384 393 \end{gather} 385 394 386 Using the fact that the horizontal scale factors $e_1$ and $e_2$ are independent of $k$ and that395 Using again the fact that the horizontal scale factors $e_1$ and $e_2$ are independent of $k$ and that 387 396 $e_3$ is a function of the single variable $k$, 388 397 $NLT$ the nonlinear term of \autoref{eq:PE_dyn} can be transformed as follows: … … 456 465 & &= &\nabla \cdot (\vect U \, u) - (\nabla \cdot \vect U) \ u 457 466 + \frac{1}{e_1 e_2} \lt( -v^2 \pd[e_2]{i} + u v \, \pd[e_1]{j} \rt) \\ 458 \intertext{as $\nabla \cdot {\vect U} \; = 0$ (incompressibility) it comes:}467 \intertext{as $\nabla \cdot {\vect U} \; = 0$ (incompressibility) it becomes:} 459 468 & &= &\, \nabla \cdot (\vect U \, u) + \frac{1}{e_1 e_2} \lt( v \; \pd[e_2]{i} - u \; \pd[e_1]{j} \rt) (-v) 460 469 \end{alignat*} … … 516 525 % \label{eq:PE_dyn_flux_v} 517 526 \pd[v]{t} = - \lt[ f + \frac{1}{e_1 \; e_2} \lt( v \pd[e_2]{i} - u \pd[e_1]{j} \rt) \rt] \, u \\ 518 +\frac{1}{e_1 \; e_2} \lt( \pd[(e_2 \, u \, v)]{i} + \pd[(e_1 \, v \, v)]{j} \rt) \\527 - \frac{1}{e_1 \; e_2} \lt( \pd[(e_2 \, u \, v)]{i} + \pd[(e_1 \, v \, v)]{j} \rt) \\ 519 528 - \frac{1}{e_3} \pd[(w \, v)]{k} - \frac{1}{e_2} \pd[]{j} \lt( \frac{p_s + p_h}{\rho_o} \rt) 520 529 + D_v^{\vect U} + F_v^{\vect U} … … 526 535 p_s = \rho \,g \, \eta 527 536 \] 528 with $\eta$ issolution of \autoref{eq:PE_ssh}.537 and $\eta$ is the solution of \autoref{eq:PE_ssh}. 529 538 530 539 The vertical velocity and the hydrostatic pressure are diagnosed from the following equations: … … 536 545 \] 537 546 where the divergence of the horizontal velocity, $\chi$ is given by \autoref{eq:PE_div_Uh}. 538 \item \textit{tracer equations}: 539 \[ 540 %\label{eq:S} 541 \pd[T]{t} = - \frac{1}{e_1 e_2} \lt[ \pd[(e_2 T \, u)]{i} + \pd[(e_1 T \, v)]{j} \rt] 547 548 \item 549 \textbf{tracer equations}: 550 \begin{equation} 551 \begin{split} 552 \pd[T]{t} = & - \frac{1}{e_1 e_2} \lt[ \pd[(e_2 T \, u)]{i} + \pd[(e_1 T \, v)]{j} \rt] 542 553 - \frac{1}{e_3} \pd[(T \, w)]{k} + D^T + F^T \\ 543 %\label{eq:T} 544 \pd[S]{t} = - \frac{1}{e_1 e_2} \lt[ \pd[(e_2 S \, u)]{i} + \pd[(e_1 S \, v)]{j} \rt] 545 - \frac{1}{e_3} \pd[(S \, w)]{k} + D^S + F^S 546 %\label{eq:rho} 547 \rho = \rho \big( T,S,z(k) \big) 548 \] 554 \pd[S]{t} = & - \frac{1}{e_1 e_2} \lt[ \pd[(e_2 S \, u)]{i} + \pd[(e_1 S \, v)]{j} \rt] 555 - \frac{1}{e_3} \pd[(S \, w)]{k} + D^S + F^S \\ 556 \rho = & \rho \big( T,S,z(k) \big) 557 \end{split} 558 \end{equation} 549 559 \end{itemize} 550 560 … … 575 585 follows the isopycnal surfaces, \eg an isopycnic coordinate. 576 586 577 In order to satisfy two or more constrain s one can even be tempted to mixed these coordinate systems, as in587 In order to satisfy two or more constraints one can even be tempted to mixed these coordinate systems, as in 578 588 HYCOM (mixture of $z$-coordinate at the surface, isopycnic coordinate in the ocean interior and $\sigma$ at 579 the ocean bottom) \citep{ Chassignet_al_JPO03} or589 the ocean bottom) \citep{chassignet.smith.ea_JPO03} or 580 590 OPA (mixture of $z$-coordinate in vicinity the surface and steep topography areas and $\sigma$-coordinate elsewhere) 581 \citep{ Madec_al_JPO96} among others.591 \citep{madec.delecluse.ea_JPO96} among others. 582 592 583 593 In fact one is totally free to choose any space and time vertical coordinate by … … 592 602 the $(i,j,s,t)$ generalised coordinate system with $s$ depending on the other three variables through 593 603 \autoref{eq:PE_s}. 594 This so-called \textit{generalised vertical coordinate} \citep{ Kasahara_MWR74} is in fact604 This so-called \textit{generalised vertical coordinate} \citep{kasahara_MWR74} is in fact 595 605 an Arbitrary Lagrangian--Eulerian (ALE) coordinate. 596 Indeed, choosing an expression for $s$ is an arbitrary choice thatdetermines606 Indeed, one has a great deal of freedom in the choice of expression for $s$. The choice determines 597 607 which part of the vertical velocity (defined from a fixed referential) will cross the levels (Eulerian part) and 598 608 which part will be used to move them (Lagrangian part). 599 The coordinate is also sometime referenced as an adaptive coordinate \citep{ Hofmeister_al_OM09},609 The coordinate is also sometime referenced as an adaptive coordinate \citep{hofmeister.burchard.ea_OM10}, 600 610 since the coordinate system is adapted in the course of the simulation. 601 611 Its most often used implementation is via an ALE algorithm, 602 612 in which a pure lagrangian step is followed by regridding and remapping steps, 603 the lat er step implicitly embedding the vertical advection604 \citep{ Hirt_al_JCP74, Chassignet_al_JPO03, White_al_JCP09}.605 Here we follow the \citep{ Kasahara_MWR74} strategy:606 a regridding step (an update of the vertical coordinate) followed by an eulerian step with613 the latter step implicitly embedding the vertical advection 614 \citep{hirt.amsden.ea_JCP74, chassignet.smith.ea_JPO03, white.adcroft.ea_JCP09}. 615 Here we follow the \citep{kasahara_MWR74} strategy: 616 a regridding step (an update of the vertical coordinate) followed by an Eulerian step with 607 617 an explicit computation of vertical advection relative to the moving s-surfaces. 608 618 609 619 %\gmcomment{ 610 620 %A key point here is that the $s$-coordinate depends on $(i,j)$ ==> horizontal pressure gradient... 611 the generalized vertical coordinates used in ocean modelling are not orthogonal,621 The generalized vertical coordinates used in ocean modelling are not orthogonal, 612 622 which contrasts with many other applications in mathematical physics. 613 623 Hence, it is useful to keep in mind the following properties that may seem odd on initial encounter. … … 615 625 The horizontal velocity in ocean models measures motions in the horizontal plane, 616 626 perpendicular to the local gravitational field. 617 That is, horizontal velocity is mathematically the same regardless the vertical coordinate, be it geopotential,627 That is, horizontal velocity is mathematically the same regardless of the vertical coordinate, be it geopotential, 618 628 isopycnal, pressure, or terrain following. 619 629 The key motivation for maintaining the same horizontal velocity component is that … … 660 670 \[ 661 671 % \label{eq:PE_sco_w} 662 \omega = w - e_3 \, \pd[s]{t}- \sigma_1 \, u - \sigma_2 \, v672 \omega = w - \, \lt. \pd[z]{t} \rt|_s - \sigma_1 \, u - \sigma_2 \, v 663 673 \] 664 674 … … 671 681 % \label{eq:PE_sco_u_vector} 672 682 \pd[u]{t} = + (\zeta + f) \, v - \frac{1}{2 \, e_1} \pd[]{i} (u^2 + v^2) - \frac{1}{e_3} \omega \pd[u]{k} \\ 673 - \frac{1}{e_1} \pd[]{i} \lt( \frac{p_s + p_h}{\rho_o} \rt) +g \frac{\rho}{\rho_o} \sigma_1683 - \frac{1}{e_1} \pd[]{i} \lt( \frac{p_s + p_h}{\rho_o} \rt) - g \frac{\rho}{\rho_o} \sigma_1 674 684 + D_u^{\vect U} + F_u^{\vect U} 675 685 \end{multline*} … … 677 687 % \label{eq:PE_sco_v_vector} 678 688 \pd[v]{t} = - (\zeta + f) \, u - \frac{1}{2 \, e_2} \pd[]{j}(u^2 + v^2) - \frac{1}{e_3} \omega \pd[v]{k} \\ 679 - \frac{1}{e_2} \pd[]{j} \lt( \frac{p_s + p_h}{\rho_o} \rt) +g \frac{\rho}{\rho_o} \sigma_2689 - \frac{1}{e_2} \pd[]{j} \lt( \frac{p_s + p_h}{\rho_o} \rt) - g \frac{\rho}{\rho_o} \sigma_2 680 690 + D_v^{\vect U} + F_v^{\vect U} 681 691 \end{multline*} … … 687 697 - \frac{1}{e_3} \pd[(\omega \, u)]{k} 688 698 - \frac{1}{e_1} \pd[]{i} \lt( \frac{p_s + p_h}{\rho_o} \rt) 689 +g \frac{\rho}{\rho_o} \sigma_1 + D_u^{\vect U} + F_u^{\vect U}699 - g \frac{\rho}{\rho_o} \sigma_1 + D_u^{\vect U} + F_u^{\vect U} 690 700 \end{multline*} 691 701 \begin{multline*} … … 695 705 - \frac{1}{e_3} \pd[(\omega \, v)]{k} 696 706 - \frac{1}{e_2} \pd[]{j} \lt( \frac{p_s + p_h}{\rho_o} \rt) 697 +g \frac{\rho}{\rho_o}\sigma_2 + D_v^{\vect U} + F_v^{\vect U}707 - g \frac{\rho}{\rho_o}\sigma_2 + D_v^{\vect U} + F_v^{\vect U} 698 708 \end{multline*} 699 709 where the relative vorticity, $\zeta$, the surface pressure gradient, … … 738 748 \begin{figure}[!b] 739 749 \begin{center} 740 \includegraphics[ ]{Fig_z_zstar}750 \includegraphics[width=\textwidth]{Fig_z_zstar} 741 751 \caption{ 742 752 \protect\label{fig:z_zstar} … … 744 754 (b) $z$-coordinate in non-linear free surface case ; 745 755 (c) re-scaled height coordinate 746 (become popular as the \zstar-coordinate \citep{ Adcroft_Campin_OM04}).756 (become popular as the \zstar-coordinate \citep{adcroft.campin_OM04}). 747 757 } 748 758 \end{center} … … 750 760 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 751 761 752 In th atcase, the free surface equation is nonlinear, and the variations of volume are fully taken into account.753 These coordinates systems is presented in a report \citep{ Levier2007} available on the \NEMO web site.762 In this case, the free surface equation is nonlinear, and the variations of volume are fully taken into account. 763 These coordinates systems is presented in a report \citep{levier.treguier.ea_rpt07} available on the \NEMO web site. 754 764 755 765 The \zstar coordinate approach is an unapproximated, non-linear free surface implementation which allows one to 756 deal with large amplitude free-surface variations relative to the vertical resolution \citep{ Adcroft_Campin_OM04}.766 deal with large amplitude free-surface variations relative to the vertical resolution \citep{adcroft.campin_OM04}. 757 767 In the \zstar formulation, 758 768 the variation of the column thickness due to sea-surface undulations is not concentrated in the surface level, … … 766 776 The position (\zstar) and vertical discretization (\zstar) are expressed as: 767 777 \[ 768 % \label{eq: z-star}778 % \label{eq:PE_z-star} 769 779 H + \zstar = (H + z) / r \quad \text{and} \quad \delta \zstar 770 780 = \delta z / r \quad \text{with} \quad r 771 = \frac{H + \eta}{H} 781 = \frac{H + \eta}{H} . 782 \] 783 Simple re-organisation of the above expressions gives 784 \[ 785 % \label{eq:PE_zstar_2} 786 \zstar = H \lt( \frac{z - \eta}{H + \eta} \rt) . 772 787 \] 773 788 Since the vertical displacement of the free surface is incorporated in the vertical coordinate \zstar, … … 776 791 Also the divergence of the flow field is no longer zero as shown by the continuity equation: 777 792 \[ 778 \pd[r]{t} = \nabla_{\zstar} \cdot \lt( r \; \vect U_h \rt) (r \; w *) = 0793 \pd[r]{t} = \nabla_{\zstar} \cdot \lt( r \; \vect U_h \rt) + \pd[r \; w^*]{\zstar} = 0 . 779 794 \] 780 781 % from MOM4p1 documentation 782 To overcome problems with vanishing surface and/or bottom cells, we consider the zstar coordinate 783 \[ 784 % \label{eq:PE_} 785 \zstar = H \lt( \frac{z - \eta}{H + \eta} \rt) 786 \] 787 788 This coordinate is closely related to the "eta" coordinate used in many atmospheric models 795 This \zstar coordinate is closely related to the "eta" coordinate used in many atmospheric models 789 796 (see Black (1994) for a review of eta coordinate atmospheric models). 790 797 It was originally used in ocean models by Stacey et al. (1995) for studies of tides next to shelves, … … 798 805 These properties greatly reduce difficulties of computing the horizontal pressure gradient relative to 799 806 terrain following sigma models discussed in \autoref{subsec:PE_sco}. 800 Additionally, since \zstarwhen $\eta = 0$,807 Additionally, since $\zstar = z$ when $\eta = 0$, 801 808 no flow is spontaneously generated in an unforced ocean starting from rest, regardless the bottom topography. 802 809 This behaviour is in contrast to the case with "s"-models, where pressure gradient errors in the presence of … … 804 811 depending on the sophistication of the pressure gradient solver. 805 812 The quasi -horizontal nature of the coordinate surfaces also facilitates the implementation of 806 neutral physics parameterizations in \zstar models using the same techniques as in $z$-models807 (see Chapters 13-16 of \cite{ Griffies_Bk04}) for a discussion of neutral physics in $z$-models,813 neutral physics parameterizations in \zstar models using the same techniques as in $z$-models 814 (see Chapters 13-16 of \cite{griffies_bk04}) for a discussion of neutral physics in $z$-models, 808 815 as well as \autoref{sec:LDF_slp} in this document for treatment in \NEMO). 809 816 810 The range over which \zstar varies is time independent $-H \leq \zstar \leq 0$.811 Hence, all cells remain nonvanishing, so long as the surface height maintains $\eta > ?H$.817 The range over which \zstar varies is time independent $-H \leq \zstar \leq 0$. 818 Hence, all cells remain nonvanishing, so long as the surface height maintains $\eta > -H$. 812 819 This is a minor constraint relative to that encountered on the surface height when using $s = z$ or $s = z - \eta$. 813 820 814 Because \zstar has a time independent range, all grid cells have static increments ds,815 and the sum of the ver 821 Because \zstar has a time independent range, all grid cells have static increments ds, 822 and the sum of the vertical increments yields the time independent ocean depth. %k ds = H. 816 823 The \zstar coordinate is therefore invisible to undulations of the free surface, 817 824 since it moves along with the free surface. 818 This proper ty means that no spurious vertical transport is induced across surfaces of constant \zstarby825 This property means that no spurious vertical transport is induced across surfaces of constant \zstar by 819 826 the motion of external gravity waves. 820 Such spurious transpor 821 Quite generally, the time independent range for the \zstar coordinate is a very convenient property that822 allows for a nearly arbitrary ver 827 Such spurious transport can be a problem in z-models, especially those with tidal forcing. 828 Quite generally, the time independent range for the \zstar coordinate is a very convenient property that 829 allows for a nearly arbitrary vertical resolution even in the presence of large amplitude fluctuations of 823 830 the surface height, again so long as $\eta > -H$. 824 831 %end MOM doc %%% … … 849 856 The response to such a velocity field often leads to numerical dispersion effects. 850 857 One solution to strongly reduce this error is to use a partial step representation of bottom topography instead of 851 a full step one \cite{ Pacanowski_Gnanadesikan_MWR98}.858 a full step one \cite{pacanowski.gnanadesikan_MWR98}. 852 859 Another solution is to introduce a terrain-following coordinate system (hereafter $s$-coordinate). 853 860 … … 870 877 \begin{equation} 871 878 \label{eq:PE_p_sco} 872 \nabla p |_z = \nabla p |_s - \ pd[p]{s} \nabla z |_s879 \nabla p |_z = \nabla p |_s - \frac{1}{e_3} \pd[p]{s} \nabla z |_s 873 880 \end{equation} 874 881 875 882 The second term in \autoref{eq:PE_p_sco} depends on the tilt of the coordinate surface and 876 introducesa truncation error that is not present in a $z$-model.883 leads to a truncation error that is not present in a $z$-model. 877 884 In the special case of a $\sigma$-coordinate (i.e. a depth-normalised coordinate system $\sigma = z/H$), 878 \citet{ Haney1991} and \citet{Beckmann1993} have given estimates of the magnitude of this truncation error.885 \citet{haney_JPO91} and \citet{beckmann.haidvogel_JPO93} have given estimates of the magnitude of this truncation error. 879 886 It depends on topographic slope, stratification, horizontal and vertical resolution, the equation of state, 880 887 and the finite difference scheme. … … 884 891 The large-scale slopes require high horizontal resolution, and the computational cost becomes prohibitive. 885 892 This problem can be at least partially overcome by mixing $s$-coordinate and 886 step-like representation of bottom topography \citep{ Gerdes1993a,Gerdes1993b,Madec_al_JPO96}.893 step-like representation of bottom topography \citep{gerdes_JGR93*a,gerdes_JGR93*b,madec.delecluse.ea_JPO96}. 887 894 However, the definition of the model domain vertical coordinate becomes then a non-trivial thing for 888 895 a realistic bottom topography: 889 a envelope topography is defined in $s$-coordinate on which a full or896 an envelope topography is defined in $s$-coordinate on which a full or 890 897 partial step bottom topography is then applied in order to adjust the model depth to the observed one 891 898 (see \autoref{sec:DOM_zgr}. … … 904 911 In contrast, the ocean will stay at rest in a $z$-model. 905 912 As for the truncation error, the problem can be reduced by introducing the terrain-following coordinate below 906 the strongly stratified portion of the water column (\ie the main thermocline) \citep{ Madec_al_JPO96}.913 the strongly stratified portion of the water column (\ie the main thermocline) \citep{madec.delecluse.ea_JPO96}. 907 914 An alternate solution consists of rotating the lateral diffusive tensor to geopotential or to isoneutral surfaces 908 915 (see \autoref{subsec:PE_ldf}). … … 910 917 strongly exceeding the stability limit of such a operator when it is discretized (see \autoref{chap:LDF}). 911 918 912 The $s$-coordinates introduced here \citep{ Lott_al_OM90,Madec_al_JPO96} differ mainly in two aspects from919 The $s$-coordinates introduced here \citep{lott.madec.ea_OM90,madec.delecluse.ea_JPO96} differ mainly in two aspects from 913 920 similar models: 914 921 it allows a representation of bottom topography with mixed full or partial step-like/terrain following topography; … … 921 928 \label{subsec:PE_zco_tilde} 922 929 923 The \ztilde -coordinate has been developed by \citet{ Leclair_Madec_OM11}.924 It is available in \NEMO since the version 3.4 .930 The \ztilde -coordinate has been developed by \citet{leclair.madec_OM11}. 931 It is available in \NEMO since the version 3.4 and is more robust in version 4.0 than previously. 925 932 Nevertheless, it is currently not robust enough to be used in all possible configurations. 926 933 Its use is therefore not recommended. … … 934 941 \label{sec:PE_zdf_ldf} 935 942 936 The primitive equations describe the behaviour of a geophysical fluid at space and time scales larger than943 The hydrostatic primitive equations describe the behaviour of a geophysical fluid at space and time scales larger than 937 944 a few kilometres in the horizontal, a few meters in the vertical and a few minutes. 938 945 They are usually solved at larger scales: the specified grid spacing and time step of the numerical model. … … 984 991 All the vertical physics is embedded in the specification of the eddy coefficients. 985 992 They can be assumed to be either constant, or function of the local fluid properties 986 (\eg Richardson number, Brunt-Vais\"{a}l\"{a} frequency ...),993 (\eg Richardson number, Brunt-Vais\"{a}l\"{a} frequency, distance from the boundary ...), 987 994 or computed from a turbulent closure model. 988 995 The choices available in \NEMO are discussed in \autoref{chap:ZDF}). … … 1005 1012 The resulting lateral diffusive and dissipative operators are of second order. 1006 1013 Observations show that lateral mixing induced by mesoscale turbulence tends to be along isopycnal surfaces 1007 (or more precisely neutral surfaces \cite{ McDougall1987}) rather than across them.1014 (or more precisely neutral surfaces \cite{mcdougall_JPO87}) rather than across them. 1008 1015 As the slope of neutral surfaces is small in the ocean, a common approximation is to assume that 1009 1016 the `lateral' direction is the horizontal, \ie the lateral mixing is performed along geopotential surfaces. … … 1016 1023 both horizontal and isoneutral operators have no effect on mean (\ie large scale) potential energy whereas 1017 1024 potential energy is a main source of turbulence (through baroclinic instabilities). 1018 \citet{ Gent1990} haveproposed a parameterisation of mesoscale eddy-induced turbulence which1025 \citet{gent.mcwilliams_JPO90} proposed a parameterisation of mesoscale eddy-induced turbulence which 1019 1026 associates an eddy-induced velocity to the isoneutral diffusion. 1020 1027 Its mean effect is to reduce the mean potential energy of the ocean. … … 1033 1040 Another approach is becoming more and more popular: 1034 1041 instead of specifying explicitly a sub-grid scale term in the momentum and tracer time evolution equations, 1035 one uses a advective scheme which is diffusive enough to maintain the model stability.1042 one uses an advective scheme which is diffusive enough to maintain the model stability. 1036 1043 It must be emphasised that then, all the sub-grid scale physics is included in the formulation of 1037 1044 the advection scheme. 1038 1045 1039 1046 All these parameterisations of subgrid scale physics have advantages and drawbacks. 1040 The reare not all available in \NEMO. For active tracers (temperature and salinity) the main ones are:1047 They are not all available in \NEMO. For active tracers (temperature and salinity) the main ones are: 1041 1048 Laplacian and bilaplacian operators acting along geopotential or iso-neutral surfaces, 1042 \citet{ Gent1990} parameterisation, and various slightly diffusive advection schemes.1049 \citet{gent.mcwilliams_JPO90} parameterisation, and various slightly diffusive advection schemes. 1043 1050 For momentum, the main ones are: Laplacian and bilaplacian operators acting along geopotential surfaces, 1044 1051 and UBS advection schemes when flux form is chosen for the momentum advection. … … 1062 1069 the rotation between geopotential and $s$-surfaces, 1063 1070 while it is only an approximation for the rotation between isoneutral and $z$- or $s$-surfaces. 1064 Indeed, in the latter case, two assumptions are made to simplify \autoref{eq:PE_iso_tensor} \citep{ Cox1987}.1071 Indeed, in the latter case, two assumptions are made to simplify \autoref{eq:PE_iso_tensor} \citep{cox_OM87}. 1065 1072 First, the horizontal contribution of the dianeutral mixing is neglected since the ratio between iso and 1066 1073 dia-neutral diffusive coefficients is known to be several orders of magnitude smaller than unity. … … 1087 1094 \subsubsection{Eddy induced velocity} 1088 1095 1089 When the \textit{eddy induced velocity} parametrisation (eiv) \citep{ Gent1990} is used,1096 When the \textit{eddy induced velocity} parametrisation (eiv) \citep{gent.mcwilliams_JPO90} is used, 1090 1097 an additional tracer advection is introduced in combination with the isoneutral diffusion of tracers: 1091 1098 \[ … … 1141 1148 - \nabla_h \times \big( A^{lm} \, \zeta \; \vect k \big) \\ 1142 1149 &= \lt( \frac{1}{e_1} \pd[ \lt( A^{lm} \chi \rt) ]{i} \rt. 1143 - \frac{1}{e_2 e_3} \pd[ \lt( A^{lm} \; e_3 \zeta \rt) ]{j} 1150 - \frac{1}{e_2 e_3} \pd[ \lt( A^{lm} \; e_3 \zeta \rt) ]{j} , 1144 1151 \frac{1}{e_2} \pd[ \lt( A^{lm} \chi \rt) ]{j} 1145 1152 \lt. + \frac{1}{e_1 e_3} \pd[ \lt( A^{lm} \; e_3 \zeta \rt) ]{i} \rt) … … 1162 1169 \ie on a $f$- or $\beta$-plane, not on the sphere. 1163 1170 It is also a very good approximation in vicinity of the Equator in 1164 a geographical coordinate system \citep{ Lengaigne_al_JGR03}.1165 1166 \subsubsection{ lateral bilaplacian momentum diffusive operator}1171 a geographical coordinate system \citep{lengaigne.madec.ea_JGR03}. 1172 1173 \subsubsection{Lateral bilaplacian momentum diffusive operator} 1167 1174 1168 1175 As for tracers, the bilaplacian order momentum diffusive operator is a re-entering Laplacian operator with -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_model_basics_zstar.tex
r10544 r11422 18 18 19 19 In that case, the free surface equation is nonlinear, and the variations of volume are fully taken into account. 20 These coordinates systems is presented in a report \citep{ Levier2007} available on the \NEMO web site.20 These coordinates systems is presented in a report \citep{levier.treguier.ea_rpt07} available on the \NEMO web site. 21 21 22 22 \colorbox{yellow}{ end of to be updated} … … 73 73 % Surface Pressure Gradient and Sea Surface Height 74 74 % ================================================================ 75 \section{Surface pressure gradient and sea surface heigth (\protect\mdl{dynspg})} 75 \section[Surface pressure gradient and sea surface heigth (\textit{dynspg.F90})] 76 {Surface pressure gradient and sea surface heigth (\protect\mdl{dynspg})} 76 77 \label{sec:DYN_hpg_spg} 77 78 %-----------------------------------------nam_dynspg---------------------------------------------------- … … 89 90 which imposes a very small time step when an explicit time stepping is used. 90 91 Two methods are proposed to allow a longer time step for the three-dimensional equations: 91 the filtered free surface, which is a modification of the continuous equations %(see \autoref{eq:PE_flt }),92 the filtered free surface, which is a modification of the continuous equations %(see \autoref{eq:PE_flt?}), 92 93 and the split-explicit free surface described below. 93 94 The extra term introduced in the filtered method is calculated implicitly, … … 97 98 % Explicit 98 99 %------------------------------------------------------------- 99 \subsubsection{Explicit (\protect\key{dynspg\_exp})} 100 \subsubsection[Explicit (\texttt{\textbf{key\_dynspg\_exp}})] 101 {Explicit (\protect\key{dynspg\_exp})} 100 102 \label{subsec:DYN_spg_exp} 101 103 … … 133 135 % Split-explicit time-stepping 134 136 %------------------------------------------------------------- 135 \subsubsection{Split-explicit time-stepping (\protect\key{dynspg\_ts})} 137 \subsubsection[Split-explicit time-stepping (\texttt{\textbf{key\_dynspg\_ts}})] 138 {Split-explicit time-stepping (\protect\key{dynspg\_ts})} 136 139 \label{subsec:DYN_spg_ts} 137 140 %--------------------------------------------namdom---------------------------------------------------- … … 139 142 \nlst{namdom} 140 143 %-------------------------------------------------------------------------------------------------------------- 141 The split-explicit free surface formulation used in OPA follows the one proposed by \citet{Griffies2004 }.144 The split-explicit free surface formulation used in OPA follows the one proposed by \citet{Griffies2004?}. 142 145 The general idea is to solve the free surface equation with a small time step, 143 146 while the three dimensional prognostic variables are solved with a longer time step that … … 147 150 \begin{figure}[!t] 148 151 \begin{center} 149 \includegraphics[width= 0.90\textwidth]{Fig_DYN_dynspg_ts}152 \includegraphics[width=\textwidth]{Fig_DYN_dynspg_ts} 150 153 \caption{ 151 154 \protect\label{fig:DYN_dynspg_ts} 152 155 Schematic of the split-explicit time stepping scheme for the barotropic and baroclinic modes, 153 after \citet{Griffies2004 }.156 after \citet{Griffies2004?}. 154 157 Time increases to the right. 155 158 Baroclinic time steps are denoted by $t-\Delta t$, $t, t+\Delta t$, and $t+2\Delta t$. … … 171 174 172 175 The split-explicit formulation has a damping effect on external gravity waves, 173 which is weaker than the filtered free surface but still significant as shown by \citet{ Levier2007} in176 which is weaker than the filtered free surface but still significant as shown by \citet{levier.treguier.ea_rpt07} in 174 177 the case of an analytical barotropic Kelvin wave. 175 178 … … 291 294 % Filtered formulation 292 295 %------------------------------------------------------------- 293 \subsubsection{Filtered formulation (\protect\key{dynspg\_flt})} 296 \subsubsection[Filtered formulation (\texttt{\textbf{key\_dynspg\_flt}})] 297 {Filtered formulation (\protect\key{dynspg\_flt})} 294 298 \label{subsec:DYN_spg_flt} 295 299 296 The filtered formulation follows the \citet{Roullet2000 } implementation.300 The filtered formulation follows the \citet{Roullet2000?} implementation. 297 301 The extra term introduced in the equations (see {\S}I.2.2) is solved implicitly. 298 302 The elliptic solvers available in the code are documented in \autoref{chap:MISC}. 299 303 The amplitude of the extra term is given by the namelist variable \np{rnu}. 300 The default value is 1, as recommended by \citet{Roullet2000 }304 The default value is 1, as recommended by \citet{Roullet2000?} 301 305 302 306 \colorbox{red}{\np{rnu}\forcode{ = 1} to be suppressed from namelist !} … … 305 309 % Non-linear free surface formulation 306 310 %------------------------------------------------------------- 307 \subsection{Non-linear free surface formulation (\protect\key{vvl})} 311 \subsection[Non-linear free surface formulation (\texttt{\textbf{key\_vvl}})] 312 {Non-linear free surface formulation (\protect\key{vvl})} 308 313 \label{subsec:DYN_spg_vvl} 309 314 310 315 In the non-linear free surface formulation, the variations of volume are fully taken into account. 311 This option is presented in a report \citep{ Levier2007} available on the NEMO web site.316 This option is presented in a report \citep{levier.treguier.ea_rpt07} available on the NEMO web site. 312 317 The three time-stepping methods (explicit, split-explicit and filtered) are the same as in 313 318 \autoref{DYN_spg_linear} except that the ocean depth is now time-dependent. -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/chap_time_domain.tex
r10501 r11422 11 11 12 12 % Missing things: 13 % - daymod: definition of the time domain (nit000, nitend and dthe calendar)13 % - daymod: definition of the time domain (nit000, nitend and the calendar) 14 14 15 15 \gmcomment{STEVEN :maybe a picture of the directory structure in the introduction which could be referred to here, … … 22 22 a key feature of an ocean model as it exerts a strong influence on the structure of the computer code 23 23 (\ie on its flowchart). 24 In the present chapter, we provide a general description of the \NEMO time stepping strategy and24 In the present chapter, we provide a general description of the \NEMO time stepping strategy and 25 25 the consequences for the order in which the equations are solved. 26 26 … … 40 40 $\rdt$ is the time step; 41 41 and the superscripts indicate the time at which a quantity is evaluated. 42 Each term of the RHS is evaluated at a specific time step depending on the physics with which it is associated.43 44 The choice of the time step used for this evaluation is discussed below as well as42 Each term of the RHS is evaluated at a specific time stepping depending on the physics with which it is associated. 43 44 The choice of the time stepping used for this evaluation is discussed below as well as 45 45 the implications for starting or restarting a model simulation. 46 46 Note that the time stepping calculation is generally performed in a single operation. … … 53 53 is usually not the variable at the after time step; 54 54 but rather it is used to store the time derivative (RHS in \autoref{eq:STP}) prior to time-stepping the equation. 55 Generally, the time stepping is performed once at each time step in the \mdl{tranxt} and \mdl{dynnxt} modules, 56 except when using implicit vertical diffusion or calculating sea surface height in which 57 case time-splitting options are used. 55 The time stepping itself is performed once at each time step where implicit vertical diffusion is computed, \ie in the \mdl{trazdf} and \mdl{dynzdf} modules. 58 56 59 57 % ------------------------------------------------------------------------------------------------------------- … … 64 62 65 63 The time stepping used for processes other than diffusion is the well-known leapfrog scheme 66 \citep{ Mesinger_Arakawa_Bk76}.64 \citep{mesinger.arakawa_bk76}. 67 65 This scheme is widely used for advection processes in low-viscosity fluids. 68 66 It is a time centred scheme, \ie the RHS in \autoref{eq:STP} is evaluated at time step $t$, the now time step. … … 80 78 To prevent it, the leapfrog scheme is often used in association with a Robert-Asselin time filter 81 79 (hereafter the LF-RA scheme). 82 This filter, first designed by \citet{ Robert_JMSJ66} and more comprehensively studied by \citet{Asselin_MWR72},80 This filter, first designed by \citet{robert_JMSJ66} and more comprehensively studied by \citet{asselin_MWR72}, 83 81 is a kind of laplacian diffusion in time that mixes odd and even time steps: 84 82 \begin{equation} … … 88 86 where the subscript $F$ denotes filtered values and $\gamma$ is the Asselin coefficient. 89 87 $\gamma$ is initialized as \np{rn\_atfp} (namelist parameter). 90 Its default value is \np{rn\_atfp} ~\forcode{= 10.e-3} (see \autoref{sec:STP_mLF}),91 causing only a weak dissipation of high frequency motions (\citep{ Farge1987}).88 Its default value is \np{rn\_atfp}\forcode{ = 10.e-3} (see \autoref{sec:STP_mLF}), 89 causing only a weak dissipation of high frequency motions (\citep{farge-coulombier_phd87}). 92 90 The addition of a time filter degrades the accuracy of the calculation from second to first order. 93 91 However, the second order truncation error is proportional to $\gamma$, which is small compared to 1. 94 92 Therefore, the LF-RA is a quasi second order accurate scheme. 95 93 The LF-RA scheme is preferred to other time differencing schemes such as predictor corrector or trapezoidal schemes, 96 because the user has an explicit and simple control of the magnitude of the time diffusion of the scheme. 94 because the user has an explicit and simple control of the magnitude of the time diffusion of the scheme. 97 95 When used with the 2nd order space centred discretisation of the advection terms in 98 96 the momentum and tracer equations, LF-RA avoids implicit numerical diffusion: … … 107 105 108 106 The leapfrog differencing scheme is unsuitable for the representation of diffusion and damping processes. 109 For a tend ancy $D_x$, representing a diffusion term or a restoring term to a tracer climatology107 For a tendency $D_x$, representing a diffusion term or a restoring term to a tracer climatology 110 108 (when present, see \autoref{sec:TRA_dmp}), a forward time differencing scheme is used : 111 109 \[ … … 115 113 116 114 This is diffusive in time and conditionally stable. 117 The conditions for stability of second and fourth order horizontal diffusion schemes are \citep{ Griffies_Bk04}:115 The conditions for stability of second and fourth order horizontal diffusion schemes are \citep{griffies_bk04}: 118 116 \begin{equation} 119 117 \label{eq:STP_euler_stability} … … 130 128 131 129 For the vertical diffusion terms, a forward time differencing scheme can be used, 132 but usually the numerical stability condition imposes a strong constraint on the time step. 133 Two solutions are available in \NEMO to overcome the stability constraint: 134 $(a)$ a forward time differencing scheme using a time splitting technique (\np{ln\_zdfexp}~\forcode{= .true.}) or 135 $(b)$ a backward (or implicit) time differencing scheme (\np{ln\_zdfexp}~\forcode{= .false.}). 136 In $(a)$, the master time step $\Delta$t is cut into $N$ fractional time steps so that 137 the stability criterion is reduced by a factor of $N$. 138 The computation is performed as follows: 139 \begin{alignat*}{2} 140 % \label{eq:STP_ts} 141 &x_\ast^{t - \rdt} &= &x^{t - \rdt} \\ 142 &x_\ast^{t - \rdt + L \frac{2 \rdt}{N}} &= &x_\ast ^{t - \rdt + (L - 1) \frac{2 \rdt}{N}} 143 + \frac{2 \rdt}{N} \; DF^{t - \rdt + (L - 1) \frac{2 \rdt}{N}} 144 \quad \text{for $L = 1$ to $N$} \\ 145 &x^{t + \rdt} &= &x_\ast^{t + \rdt} 146 \end{alignat*} 147 with DF a vertical diffusion term. 148 The number of fractional time steps, $N$, is given by setting \np{nn\_zdfexp}, (namelist parameter). 149 The scheme $(b)$ is unconditionally stable but diffusive. It can be written as follows: 130 but usually the numerical stability condition imposes a strong constraint on the time step. To overcome the stability constraint, a 131 backward (or implicit) time differencing scheme is used. This scheme is unconditionally stable but diffusive and can be written as follows: 150 132 \begin{equation} 151 133 \label{eq:STP_imp} … … 157 139 %%gm 158 140 159 This scheme is rather time consuming since it requires a matrix inversion, 160 but it becomes attractive since a value of 3 or more is needed for N in the forward time differencing scheme. 161 For example, the finite difference approximation of the temperature equation is: 141 This scheme is rather time consuming since it requires a matrix inversion. For example, the finite difference approximation of the temperature equation is: 162 142 \[ 163 143 % \label{eq:STP_imp_zdf} … … 183 163 $c(k)$ and $d(k)$ are positive and the diagonal term is greater than the sum of the two extra-diagonal terms, 184 164 therefore a special adaptation of the Gauss elimination procedure is used to find the solution 185 (see for example \citet{ Richtmyer1967}).165 (see for example \citet{richtmyer.morton_bk67}). 186 166 187 167 % ------------------------------------------------------------------------------------------------------------- … … 191 171 \label{sec:STP_spg_ts} 192 172 193 ===>>>> TO BE written.... :-) 173 The leapfrog environment supports a centred in time computation of the surface pressure, \ie evaluated 174 at \textit{now} time step. This refers to as the explicit free surface case in the code (\np{ln\_dynspg\_exp}\forcode{ = .true.}). 175 This choice however imposes a strong constraint on the time step which should be small enough to resolve the propagation 176 of external gravity waves. As a matter of fact, one rather use in a realistic setup, a split-explicit free surface 177 (\np{ln\_dynspg\_ts}\forcode{ = .true.}) in which barotropic and baroclinic dynamical equations are solved separately with ad-hoc 178 time steps. The use of the time-splitting (in combination with non-linear free surface) imposes some constraints on the design of 179 the overall flowchart, in particular to ensure exact tracer conservation (see \autoref{fig:TimeStep_flowchart}). 180 181 Compared to the former use of the filtered free surface in \NEMO v3.6 (\citet{roullet.madec_JGR00}), the use of a split-explicit free surface is advantageous 182 on massively parallel computers. Indeed, no global computations are anymore required by the elliptic solver which saves a substantial amount of communication 183 time. Fast barotropic motions (such as tides) are also simulated with a better accuracy. 194 184 195 185 %\gmcomment{ … … 197 187 \begin{figure}[!t] 198 188 \begin{center} 199 \includegraphics[ ]{Fig_TimeStepping_flowchart}189 \includegraphics[width=\textwidth]{Fig_TimeStepping_flowchart_v4} 200 190 \caption{ 201 191 \protect\label{fig:TimeStep_flowchart} 202 Sketch of the leapfrog time stepping sequence in \NEMO from \citet{Leclair_Madec_OM09}. 203 The use of a semi -implicit computation of the hydrostatic pressure gradient requires the tracer equation to 204 be stepped forward prior to the momentum equation. 205 The need for knowledge of the vertical scale factor (here denoted as $h$) requires the sea surface height and 206 the continuity equation to be stepped forward prior to the computation of the tracer equation. 207 Note that the method for the evaluation of the surface pressure gradient $\nabla p_s$ is not presented here 208 (see \autoref{sec:DYN_spg}). 192 Sketch of the leapfrog time stepping sequence in \NEMO with split-explicit free surface. The latter combined 193 with non-linear free surface requires the dynamical tendency being updated prior tracers tendency to ensure 194 conservation. Note the use of time integrated fluxes issued from the barotropic loop in subsequent calculations 195 of tracer advection and in the continuity equation. Details about the time-splitting scheme can be found 196 in \autoref{subsec:DYN_spg_ts}. 209 197 } 210 198 \end{center} … … 219 207 \label{sec:STP_mLF} 220 208 221 Significant changes have been introduced by \cite{ Leclair_Madec_OM09} in the LF-RA scheme in order to209 Significant changes have been introduced by \cite{leclair.madec_OM09} in the LF-RA scheme in order to 222 210 ensure tracer conservation and to allow the use of a much smaller value of the Asselin filter parameter. 223 211 The modifications affect both the forcing and filtering treatments in the LF-RA scheme. … … 237 225 The change in the forcing formulation given by \autoref{eq:STP_forcing} (see \autoref{fig:MLF_forcing}) 238 226 has a significant effect: 239 the forcing term no longer excites the divergence of odd and even time steps \citep{ Leclair_Madec_OM09}.227 the forcing term no longer excites the divergence of odd and even time steps \citep{leclair.madec_OM09}. 240 228 % forcing seen by the model.... 241 This property improves the LF-RA scheme in two respects.229 This property improves the LF-RA scheme in two aspects. 242 230 First, the LF-RA can now ensure the local and global conservation of tracers. 243 231 Indeed, time filtering is no longer required on the forcing part. 244 The influence of the Asselin filter on the forcing is beremoved by adding a new term in the filter232 The influence of the Asselin filter on the forcing is explicitly removed by adding a new term in the filter 245 233 (last term in \autoref{eq:STP_RA} compared to \autoref{eq:STP_asselin}). 246 234 Since the filtering of the forcing was the source of non-conservation in the classical LF-RA scheme, 247 the modified formulation becomes conservative \citep{ Leclair_Madec_OM09}.235 the modified formulation becomes conservative \citep{leclair.madec_OM09}. 248 236 Second, the LF-RA becomes a truly quasi -second order scheme. 249 237 Indeed, \autoref{eq:STP_forcing} used in combination with a careful treatment of static instability 250 (\autoref{subsec:ZDF_evd}) and of the TKE physics (\autoref{subsec:ZDF_tke_ene}) ,251 the two other main sources of time step divergence,238 (\autoref{subsec:ZDF_evd}) and of the TKE physics (\autoref{subsec:ZDF_tke_ene}) 239 (the two other main sources of time step divergence), 252 240 allows a reduction by two orders of magnitude of the Asselin filter parameter. 253 241 … … 255 243 $Q^{t + \rdt / 2}$ is the forcing applied over the $[t,t + \rdt]$ time interval. 256 244 This and the change in the time filter, \autoref{eq:STP_RA}, 257 allows an exact evaluation of the contribution due to the forcing term between any two time steps,245 allows for an exact evaluation of the contribution due to the forcing term between any two time steps, 258 246 even if separated by only $\rdt$ since the time filter is no longer applied to the forcing term. 259 247 … … 261 249 \begin{figure}[!t] 262 250 \begin{center} 263 \includegraphics[ ]{Fig_MLF_forcing}251 \includegraphics[width=\textwidth]{Fig_MLF_forcing} 264 252 \caption{ 265 253 \protect\label{fig:MLF_forcing} … … 294 282 This is done simply by keeping the leapfrog environment (\ie the \autoref{eq:STP} three level time stepping) but 295 283 setting all $x^0$ (\textit{before}) and $x^1$ (\textit{now}) fields equal at the first time step and 296 using half the value of $\rdt$.284 using half the value of a leapfrog time step ($2 \rdt$). 297 285 298 286 It is also possible to restart from a previous computation, by using a restart file. … … 303 291 This requires saving two time levels and many auxiliary data in the restart files in machine precision. 304 292 305 Note that when a semi -implicit scheme is used to evaluate the hydrostatic pressure gradient 306 (see \autoref{subsec:DYN_hpg_imp}), an extra three-dimensional field has to 307 be added to the restart file to ensure an exact restartability. 308 This is done optionally via the \np{nn\_dynhpg\_rst} namelist parameter, 309 so that the size of the restart file can be reduced when restartability is not a key issue 310 (operational oceanography or in ensemble simulations for seasonal forecasting). 311 312 Note the size of the time step used, $\rdt$, is also saved in the restart file. 313 When restarting, if the the time step has been changed, a restart using an Euler time stepping scheme is imposed. 314 Options are defined through the \ngn{namrun} namelist variables. 293 Note that the time step $\rdt$, is also saved in the restart file. 294 When restarting, if the time step has been changed, or one of the prognostic variables at \textit{before} time step 295 is missing, an Euler time stepping scheme is imposed. A forward initial step can still be enforced by the user by setting 296 the namelist variable \np{nn\_euler}\forcode{=0}. Other options to control the time integration of the model 297 are defined through the \ngn{namrun} namelist variables. 315 298 %%% 316 299 \gmcomment{ -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/NEMO/subfiles/introduction.tex
r10544 r11422 27 27 28 28 The ocean component of \NEMO has been developed from the legacy of the OPA model, release 8.2, 29 described in \citet{ Madec1998}.29 described in \citet{madec.delecluse.ea_NPM98}. 30 30 This model has been used for a wide range of applications, both regional or global, as a forced ocean model and 31 31 as a model coupled with the sea-ice and/or the atmosphere. … … 67 67 Within the \NEMO system the ocean model is interactively coupled with a sea ice model (SI$^3$) and 68 68 a biogeochemistry model (PISCES). 69 Interactive coupling to Atmospheric models is possible via the OASIS coupler \citep{OASIS2006}.69 Interactive coupling to Atmospheric models is possible via the \href{https://portal.enes.org/oasis}{OASIS coupler}. 70 70 Two-way nesting is also available through an interface to the AGRIF package 71 (Adaptative Grid Refinement in \fortran) \citep{ Debreu_al_CG2008}.71 (Adaptative Grid Refinement in \fortran) \citep{debreu.vouland.ea_CG08}. 72 72 % Needs to be reviewed 73 73 %The interface code for coupling to an alternative sea ice model (CICE, \citet{Hunke2008}) has now been upgraded so … … 83 83 The lateral Laplacian and biharmonic viscosity and diffusion can be rotated following 84 84 a geopotential or neutral direction. 85 There is an optional eddy induced velocity \citep{ Gent1990} with a space and time variable coefficient86 \citet{ Treguier1997}.85 There is an optional eddy induced velocity \citep{gent.mcwilliams_JPO90} with a space and time variable coefficient 86 \citet{treguier.held.ea_JPO97}. 87 87 The model has vertical harmonic viscosity and diffusion with a space and time variable coefficient, 88 with options to compute the coefficients with \citet{ Blanke1993}, \citet{Pacanowski_Philander_JPO81}, or89 \citet{ Umlauf_Burchard_JMS03} mixing schemes.88 with options to compute the coefficients with \citet{blanke.delecluse_JPO93}, \citet{pacanowski.philander_JPO81}, or 89 \citet{umlauf.burchard_JMR03} mixing schemes. 90 90 91 91 %%gm To be put somewhere else .... … … 151 151 The coding rules for OPA include conventions for naming variables, 152 152 with different starting letters for different types of variables (real, integer, parameter\ldots). 153 Those rules are briefly presented in \autoref{apdx: D} and a more complete document is available .153 Those rules are briefly presented in \autoref{apdx:coding} and a more complete document is available . 154 154 155 155 The model is organized with a high internal modularity based on physics. … … 158 158 To make it easier for the user to find his way around the code, the module names follow a three-letter rule. 159 159 For example, \mdl{traldf} is a module related to the TRAcers equation, computing the Lateral DiFfussion. 160 %The complete list of module names is presented in \autoref{apdx: D}. %====>>>> to be done !160 %The complete list of module names is presented in \autoref{apdx:coding}. %====>>>> to be done ! 161 161 Furthermore, modules are organized in a few directories that correspond to their category, 162 162 as indicated by the first three letters of their name (\autoref{tab:chapters}). … … 213 213 NEMO/OPA, like all research tools, is in perpetual evolution. 214 214 The present document describes the OPA version include in the release 3.4 of NEMO. 215 This release differs significantly from version 8, documented in \citet{ Madec1998}. \\215 This release differs significantly from version 8, documented in \citet{madec.delecluse.ea_NPM98}. \\ 216 216 217 217 The main modifications from OPA v8 and NEMO/OPA v3.2 are : … … 222 222 \item 223 223 introduction of partial step representation of bottom topography 224 \citep{ Barnier_al_OD06, Le_Sommer_al_OM09, Penduff_al_OS07};224 \citep{barnier.madec.ea_OD06, le-sommer.penduff.ea_OM09, penduff.le-sommer.ea_OS07}; 225 225 \item 226 226 partial reactivation of a terrain-following vertical coordinate ($s$- and hybrid $s$-$z$) with … … 242 242 additional advection schemes for tracers; 243 243 \item 244 implementation of the AGRIF package (Adaptative Grid Refinement in \fortran) \citep{ Debreu_al_CG2008};244 implementation of the AGRIF package (Adaptative Grid Refinement in \fortran) \citep{debreu.vouland.ea_CG08}; 245 245 \item 246 246 online diagnostics : tracers trend in the mixed layer and vorticity balance; … … 255 255 RGB light penetration and optional use of ocean color 256 256 \item 257 major changes in the TKE schemes: it now includes a Langmuir cell parameterization \citep{ Axell_JGR02},258 the \citet{ Mellor_Blumberg_JPO04} surface wave breaking parameterization, and has a time discretization which259 is energetically consistent with the ocean model equations \citep{ Burchard_OM02, Marsaleix_al_OM08};257 major changes in the TKE schemes: it now includes a Langmuir cell parameterization \citep{axell_JGR02}, 258 the \citet{mellor.blumberg_JPO04} surface wave breaking parameterization, and has a time discretization which 259 is energetically consistent with the ocean model equations \citep{burchard_OM02, marsaleix.auclair.ea_OM08}; 260 260 \item 261 261 tidal mixing parametrisation (bottom intensification) + Indonesian specific tidal mixing 262 \citep{ Koch-Larrouy_al_GRL07};262 \citep{koch-larrouy.madec.ea_GRL07}; 263 263 \item 264 264 introduction of LIM-3, the new Louvain-la-Neuve sea-ice model 265 265 (C-grid rheology and new thermodynamics including bulk ice salinity) 266 \citep{ Vancoppenolle_al_OM09a, Vancoppenolle_al_OM09b}266 \citep{vancoppenolle.fichefet.ea_OM09*a, vancoppenolle.fichefet.ea_OM09*b} 267 267 \end{itemize} 268 268 … … 272 272 \item 273 273 introduction of a modified leapfrog-Asselin filter time stepping scheme 274 \citep{ Leclair_Madec_OM09};275 \item 276 additional scheme for iso-neutral mixing \citep{ Griffies_al_JPO98}, although it is still a "work in progress";277 \item 278 a rewriting of the bottom boundary layer scheme, following \citet{ Campin_Goosse_Tel99};279 \item 280 addition of a Generic Length Scale vertical mixing scheme, following \citet{ Umlauf_Burchard_JMS03};274 \citep{leclair.madec_OM09}; 275 \item 276 additional scheme for iso-neutral mixing \citep{griffies.gnanadesikan.ea_JPO98}, although it is still a "work in progress"; 277 \item 278 a rewriting of the bottom boundary layer scheme, following \citet{campin.goosse_T99}; 279 \item 280 addition of a Generic Length Scale vertical mixing scheme, following \citet{umlauf.burchard_JMR03}; 281 281 \item 282 282 addition of the atmospheric pressure as an external forcing on both ocean and sea-ice dynamics; 283 283 \item 284 addition of a diurnal cycle on solar radiation \citep{ Bernie_al_CD07};284 addition of a diurnal cycle on solar radiation \citep{bernie.guilyardi.ea_CD07}; 285 285 \item 286 286 river runoffs added through a non-zero depth, and having its own temperature and salinity; … … 296 296 coupling interface adjusted for WRF atmospheric model; 297 297 \item 298 C-grid ice rheology now available fro both LIM-2 and LIM-3 \citep{ Bouillon_al_OM09};298 C-grid ice rheology now available fro both LIM-2 and LIM-3 \citep{bouillon.maqueda.ea_OM09}; 299 299 \item 300 300 LIM-3 ice-ocean momentum coupling applied to LIM-2; … … 318 318 319 319 \begin{itemize} 320 \item finalisation of above iso-neutral mixing \citep{ Griffies_al_JPO98}";320 \item finalisation of above iso-neutral mixing \citep{griffies.gnanadesikan.ea_JPO98}"; 321 321 \item "Neptune effect" parametrisation; 322 322 \item horizontal pressure gradient suitable for s-coordinate; -
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/SI3
- Property svn:ignore deleted
-
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/SI3/namelists
- Property svn:ignore deleted
-
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/SI3/namelists/namdyn_adv
- Property svn:mime-type set to text/x-fortran
-
NEMO/branches/2019/fix_vvl_ticket1791/doc/latex/TOP
- Property svn:ignore deleted
Note: See TracChangeset
for help on using the changeset viewer.