/[MITgcm]/manual/s_algorithm/text/spatial-discrete.tex
ViewVC logotype

Contents of /manual/s_algorithm/text/spatial-discrete.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.7 - (show annotations) (download) (as text)
Wed Sep 26 21:59:33 2001 UTC (23 years, 9 months ago) by adcroft
Branch: MAIN
Changes since 1.6: +14 -8 lines
File MIME type: application/x-tex
Replaced \centerline with \begin{center} for latex2html compatibility.

1 % $Header: /u/gcmpack/mitgcmdoc/part2/spatial-discrete.tex,v 1.6 2001/09/25 20:13:42 adcroft Exp $
2 % $Name: $
3
4 \section{Spatial discretization of the dynamical equations}
5
6 Spatial discretization is carried out using the finite volume
7 method. This amounts to a grid-point method (namely second-order
8 centered finite difference) in the fluid interior but allows
9 boundaries to intersect a regular grid allowing a more accurate
10 representation of the position of the boundary. We treat the
11 horizontal and veritical directions as seperable and differently.
12
13 \input{part2/notation}
14
15
16 \subsection{The finite volume method: finite volumes versus finite difference}
17
18 The finite volume method is used to discretize the equations in
19 space. The expression ``finite volume'' actually has two meanings; one
20 is the method of cut or instecting boundaries (shaved or lopped cells
21 in our terminology) and the other is non-linear interpolation methods
22 that can deal with non-smooth solutions such as shocks (i.e. flux
23 limiters for advection). Both make use of the integral form of the
24 conservation laws to which the {\it weak solution} is a solution on
25 each finite volume of (sub-domain). The weak solution can be
26 constructed outof piece-wise constant elements or be
27 differentiable. The differentiable equations can not be satisfied by
28 piece-wise constant functions.
29
30 As an example, the 1-D constant coefficient advection-diffusion
31 equation:
32 \begin{displaymath}
33 \partial_t \theta + \partial_x ( u \theta - \kappa \partial_x \theta ) = 0
34 \end{displaymath}
35 can be discretized by integrating over finite sub-domains, i.e.
36 the lengths $\Delta x_i$:
37 \begin{displaymath}
38 \Delta x \partial_t \theta + \delta_i ( F ) = 0
39 \end{displaymath}
40 is exact if $\theta(x)$ is peice-wise constant over the interval
41 $\Delta x_i$ or more generally if $\theta_i$ is defined as the average
42 over the interval $\Delta x_i$.
43
44 The flux, $F_{i-1/2}$, must be approximated:
45 \begin{displaymath}
46 F = u \overline{\theta} - \frac{\kappa}{\Delta x_c} \partial_i \theta
47 \end{displaymath}
48 and this is where truncation errors can enter the solution. The
49 method for obtaining $\overline{\theta}$ is unspecified and a wide
50 range of possibilities exist including centered and upwind
51 interpolation, polynomial fits based on the the volume average
52 definitions of quantities and non-linear interpolation such as
53 flux-limiters.
54
55 Choosing simple centered second-order interpolation and differencing
56 recovers the same ODE's resulting from finite differencing for the
57 interior of a fluid. Differences arise at boundaries where a boundary
58 is not positioned on a regular or smoothly varying grid. This method
59 is used to represent the topography using lopped cell, see
60 \cite{Adcroft98}. Subtle difference also appear in more than one
61 dimension away from boundaries. This happens because the each
62 direction is discretized independantly in the finite difference method
63 while the integrating over finite volume implicitly treats all
64 directions simultaneously. Illustration of this is given in
65 \cite{Adcroft02}.
66
67 \subsection{C grid staggering of variables}
68
69 \begin{figure}
70 \begin{center}
71 \resizebox{!}{2in}{ \includegraphics{part2/cgrid3d.eps}}
72 \end{center}
73 \caption{Three dimensional staggering of velocity components. This
74 facilitates the natural discretization of the continuity and tracer
75 equations. }
76 \label{fig:cgrid3d}
77 \end{figure}
78
79 The basic algorithm employed for stepping forward the momentum
80 equations is based on retaining non-divergence of the flow at all
81 times. This is most naturally done if the components of flow are
82 staggered in space in the form of an Arakawa C grid \cite{Arakawa70}.
83
84 Fig. \ref{fig:cgrid3d} shows the components of flow ($u$,$v$,$w$)
85 staggered in space such that the zonal component falls on the
86 interface between continiuty cells in the zonal direction. Similarly
87 for the meridional and vertical directions. The continiuty cell is
88 synonymous with tracer cells (they are one and the same).
89
90
91
92 \subsection{Grid initialization and data}
93
94 Initialization of grid data is controlled by subroutine {\em
95 INI\_GRID} which in calls {\em INI\_VERTICAL\_GRID} to initialize the
96 vertical grid, and then either of {\em INI\_CARTESIAN\_GRID}, {\em
97 INI\_SPHERICAL\_POLAR\_GRID} or {\em INI\_CURV\-ILINEAR\_GRID} to
98 initialize the horizontal grid for cartesian, spherical-polar or
99 curvilinear coordinates respectively.
100
101 The reciprocals of all grid quantities are pre-calculated and this is
102 done in subroutine {\em INI\_MASKS\_ETC} which is called later by
103 subroutine {\em INITIALIZE\_FIXED}.
104
105 All grid descriptors are global arrays and stored in common blocks in
106 {\em GRID.h} and a generally declared as {\em \_RS}.
107
108 \fbox{ \begin{minipage}{4.75in}
109 {\em S/R INI\_GRID} ({\em model/src/ini\_grid.F})
110
111 {\em S/R INI\_MASKS\_ETC} ({\em model/src/ini\_masks\_etc.F})
112
113 grid data: ({\em model/inc/GRID.h})
114 \end{minipage} }
115
116
117 \subsection{Horizontal grid}
118
119 \begin{figure}
120 \begin{center}
121 \begin{tabular}{cc}
122 \raisebox{1.5in}{a)}\resizebox{!}{2in}{ \includegraphics{part2/hgrid-Ac.eps}}
123 & \raisebox{1.5in}{b)}\resizebox{!}{2in}{ \includegraphics{part2/hgrid-Az.eps}}
124 \\
125 \raisebox{1.5in}{c)}\resizebox{!}{2in}{ \includegraphics{part2/hgrid-Au.eps}}
126 & \raisebox{1.5in}{d)}\resizebox{!}{2in}{ \includegraphics{part2/hgrid-Av.eps}}
127 \end{tabular}
128 \end{center}
129 \caption{
130 Staggering of horizontal grid descriptors (lengths and areas). The
131 grid lines indicate the tracer cell boundaries and are the reference
132 grid for all panels. a) The area of a tracer cell, $A_c$, is bordered
133 by the lengths $\Delta x_g$ and $\Delta y_g$. b) The area of a
134 vorticity cell, $A_\zeta$, is bordered by the lengths $\Delta x_c$ and
135 $\Delta y_c$. c) The area of a u cell, $A_c$, is bordered by the
136 lengths $\Delta x_v$ and $\Delta y_f$. d) The area of a v cell, $A_c$,
137 is bordered by the lengths $\Delta x_f$ and $\Delta y_u$.}
138 \label{fig:hgrid}
139 \end{figure}
140
141 The model domain is decomposed into tiles and within each tile a
142 quasi-regular grid is used. A tile is the basic unit of domain
143 decomposition for parallelization but may be used whether parallized
144 or not; see section \ref{sect:tiles} for more details. Although the
145 tiles may be patched together in an unstructured manner
146 (i.e. irregular or non-tessilating pattern), the interior of tiles is
147 a structered grid of quadrilateral cells. The horizontal coordinate
148 system is orthogonal curvilinear meaning we can not necessarily treat
149 the two horizontal directions as seperable. Instead, each cell in the
150 horizontal grid is described by the length of it's sides and it's
151 area.
152
153 The grid information is quite general and describes any of the
154 available coordinates systems, cartesian, spherical-polar or
155 curvilinear. All that is necessary to distinguish between the
156 coordinate systems is to initialize the grid data (discriptors)
157 appropriately.
158
159 In the following, we refer to the orientation of quantities on the
160 computational grid using geographic terminology such as points of the
161 compass.
162 \marginpar{Caution!}
163 This is purely for convenience but should note be confused
164 with the actual geographic orientation of model quantities.
165
166 Fig.~\ref{fig:hgrid}a shows the tracer cell (synonymous with the
167 continuity cell). The length of the southern edge, $\Delta x_g$,
168 western edge, $\Delta y_g$ and surface area, $A_c$, presented in the
169 vertical are stored in arrays {\bf DXg}, {\bf DYg} and {\bf rAc}.
170 \marginpar{$A_c$: {\bf rAc}}
171 \marginpar{$\Delta x_g$: {\bf DXg}}
172 \marginpar{$\Delta y_g$: {\bf DYg}}
173 The ``g'' suffix indicates that the lengths are along the defining
174 grid boundaries. The ``c'' suffix associates the quantity with the
175 cell centers. The quantities are staggered in space and the indexing
176 is such that {\bf DXg(i,j)} is positioned to the south of {\bf
177 rAc(i,j)} and {\bf DYg(i,j)} positioned to the west.
178
179 Fig.~\ref{fig:hgrid}b shows the vorticity cell. The length of the
180 southern edge, $\Delta x_c$, western edge, $\Delta y_c$ and surface
181 area, $A_\zeta$, presented in the vertical are stored in arrays {\bf
182 DXg}, {\bf DYg} and {\bf rAz}.
183 \marginpar{$A_\zeta$: {\bf rAz}}
184 \marginpar{$\Delta x_c$: {\bf DXc}}
185 \marginpar{$\Delta y_c$: {\bf DYc}}
186 The ``z'' suffix indicates that the lengths are measured between the
187 cell centers and the ``$\zeta$'' suffix associates points with the
188 vorticity points. The quantities are staggered in space and the
189 indexing is such that {\bf DXc(i,j)} is positioned to the north of
190 {\bf rAc(i,j)} and {\bf DYc(i,j)} positioned to the east.
191
192 Fig.~\ref{fig:hgrid}c shows the ``u'' or western (w) cell. The length of
193 the southern edge, $\Delta x_v$, eastern edge, $\Delta y_f$ and
194 surface area, $A_w$, presented in the vertical are stored in arrays
195 {\bf DXv}, {\bf DYf} and {\bf rAw}.
196 \marginpar{$A_w$: {\bf rAw}}
197 \marginpar{$\Delta x_v$: {\bf DXv}}
198 \marginpar{$\Delta y_f$: {\bf DYf}}
199 The ``v'' suffix indicates that the length is measured between the
200 v-points, the ``f'' suffix indicates that the length is measured
201 between the (tracer) cell faces and the ``w'' suffix associates points
202 with the u-points (w stands for west). The quantities are staggered in
203 space and the indexing is such that {\bf DXv(i,j)} is positioned to
204 the south of {\bf rAw(i,j)} and {\bf DYf(i,j)} positioned to the east.
205
206 Fig.~\ref{fig:hgrid}d shows the ``v'' or southern (s) cell. The length of
207 the northern edge, $\Delta x_f$, western edge, $\Delta y_u$ and
208 surface area, $A_s$, presented in the vertical are stored in arrays
209 {\bf DXf}, {\bf DYu} and {\bf rAs}.
210 \marginpar{$A_s$: {\bf rAs}}
211 \marginpar{$\Delta x_f$: {\bf DXf}}
212 \marginpar{$\Delta y_u$: {\bf DYu}}
213 The ``u'' suffix indicates that the length is measured between the
214 u-points, the ``f'' suffix indicates that the length is measured
215 between the (tracer) cell faces and the ``s'' suffix associates points
216 with the v-points (s stands for south). The quantities are staggered
217 in space and the indexing is such that {\bf DXf(i,j)} is positioned to
218 the north of {\bf rAs(i,j)} and {\bf DYu(i,j)} positioned to the west.
219
220 \fbox{ \begin{minipage}{4.75in}
221 {\em S/R INI\_CARTESIAN\_GRID} ({\em
222 model/src/ini\_cartesian\_grid.F})
223
224 {\em S/R INI\_SPHERICAL\_POLAR\_GRID} ({\em
225 model/src/ini\_spherical\_polar\_grid.F})
226
227 {\em S/R INI\_CURVILINEAR\_GRID} ({\em
228 model/src/ini\_curvilinear\_grid.F})
229
230 $A_c$, $A_\zeta$, $A_w$, $A_s$: {\bf rAc}, {\bf rAz}, {\bf rAw}, {\bf rAs}
231 ({\em GRID.h})
232
233 $\Delta x_g$, $\Delta y_g$: {\bf DXg}, {\bf DYg} ({\em GRID.h})
234
235 $\Delta x_c$, $\Delta y_c$: {\bf DXc}, {\bf DYc} ({\em GRID.h})
236
237 $\Delta x_f$, $\Delta y_f$: {\bf DXf}, {\bf DYf} ({\em GRID.h})
238
239 $\Delta x_v$, $\Delta y_u$: {\bf DXv}, {\bf DYu} ({\em GRID.h})
240
241 \end{minipage} }
242
243 \subsubsection{Reciprocals of horizontal grid descriptors}
244
245 %\marginpar{$A_c^{-1}$: {\bf RECIP\_rAc}}
246 %\marginpar{$A_\zeta^{-1}$: {\bf RECIP\_rAz}}
247 %\marginpar{$A_w^{-1}$: {\bf RECIP\_rAw}}
248 %\marginpar{$A_s^{-1}$: {\bf RECIP\_rAs}}
249 Lengths and areas appear in the denominator of expressions as much as
250 in the numerator. For efficiency and portability, we pre-calculate the
251 reciprocal of the horizontal grid quantities so that in-line divisions
252 can be avoided.
253
254 %\marginpar{$\Delta x_g^{-1}$: {\bf RECIP\_DXg}}
255 %\marginpar{$\Delta y_g^{-1}$: {\bf RECIP\_DYg}}
256 %\marginpar{$\Delta x_c^{-1}$: {\bf RECIP\_DXc}}
257 %\marginpar{$\Delta y_c^{-1}$: {\bf RECIP\_DYc}}
258 %\marginpar{$\Delta x_f^{-1}$: {\bf RECIP\_DXf}}
259 %\marginpar{$\Delta y_f^{-1}$: {\bf RECIP\_DYf}}
260 %\marginpar{$\Delta x_v^{-1}$: {\bf RECIP\_DXv}}
261 %\marginpar{$\Delta y_u^{-1}$: {\bf RECIP\_DYu}}
262 For each grid descriptor (array) there is a reciprocal named using the
263 prefix {\bf RECIP\_}. This doubles the amount of storage in {\em
264 GRID.h} but they are all only 2-D descriptors.
265
266 \fbox{ \begin{minipage}{4.75in}
267 {\em S/R INI\_MASKS\_ETC} ({\em
268 model/src/ini\_masks\_etc.F})
269
270 $A_c^{-1}$: {\bf RECIP\_Ac} ({\em GRID.h})
271
272 $A_\zeta^{-1}$: {\bf RECIP\_Az} ({\em GRID.h})
273
274 $A_w^{-1}$: {\bf RECIP\_Aw} ({\em GRID.h})
275
276 $A_s^{-1}$: {\bf RECIP\_As} ({\em GRID.h})
277
278 $\Delta x_g^{-1}$, $\Delta y_g^{-1}$: {\bf RECIP\_DXg}, {\bf RECIP\_DYg} ({\em GRID.h})
279
280 $\Delta x_c^{-1}$, $\Delta y_c^{-1}$: {\bf RECIP\_DXc}, {\bf RECIP\_DYc} ({\em GRID.h})
281
282 $\Delta x_f^{-1}$, $\Delta y_f^{-1}$: {\bf RECIP\_DXf}, {\bf RECIP\_DYf} ({\em GRID.h})
283
284 $\Delta x_v^{-1}$, $\Delta y_u^{-1}$: {\bf RECIP\_DXv}, {\bf RECIP\_DYu} ({\em GRID.h})
285
286 \end{minipage} }
287
288 \subsubsection{Cartesian coordinates}
289
290 Cartesian coordinates are selected when the logical flag {\bf
291 using\-Cartes\-ianGrid} in namelist {\em PARM04} is set to true. The grid
292 spacing can be set to uniform via scalars {\bf dXspacing} and {\bf
293 dYspacing} in namelist {\em PARM04} or to variable resolution by the
294 vectors {\bf DELX} and {\bf DELY}. Units are normally
295 meters. Non-dimensional coordinates can be used by interpretting the
296 gravitational constant as the Rayleigh number.
297
298 \subsubsection{Spherical-polar coordinates}
299
300 Spherical coordinates are selected when the logical flag {\bf
301 using\-Spherical\-PolarGrid} in namelist {\em PARM04} is set to true. The
302 grid spacing can be set to uniform via scalars {\bf dXspacing} and
303 {\bf dYspacing} in namelist {\em PARM04} or to variable resolution by
304 the vectors {\bf DELX} and {\bf DELY}. Units of these namelist
305 variables are alway degrees. The horizontal grid descriptors are
306 calculated from these namelist variables have units of meters.
307
308 \subsubsection{Curvilinear coordinates}
309
310 Curvilinear coordinates are selected when the logical flag {\bf
311 using\-Curvil\-inear\-Grid} in namelist {\em PARM04} is set to true. The
312 grid spacing can not be set via the namelist. Instead, the grid
313 descriptors are read from data files, one for each descriptor. As for
314 other grids, the horizontal grid descriptors have units of meters.
315
316
317 \subsection{Vertical grid}
318
319 \begin{figure}
320 \begin{center}
321 \begin{tabular}{cc}
322 \raisebox{4in}{a)} \resizebox{!}{4in}{
323 \includegraphics{part2/vgrid-cellcentered.eps}} & \raisebox{4in}{b)}
324 \resizebox{!}{4in}{ \includegraphics{part2/vgrid-accurate.eps}}
325 \end{tabular}
326 \end{center}
327 \caption{Two versions of the vertical grid. a) The cell centered
328 approach where the interface depths are specified and the tracer
329 points centered in between the interfaces. b) The interface centered
330 approach where tracer levels are specified and the w-interfaces are
331 centered in between.}
332 \label{fig:vgrid}
333 \end{figure}
334
335 As for the horizontal grid, we use the suffixes ``c'' and ``f'' to
336 indicates faces and centers. Fig.~\ref{fig:vgrid}a shows the default
337 vertical grid used by the model.
338 \marginpar{$\Delta r_f$: {\bf DRf}}
339 \marginpar{$\Delta r_c$: {\bf DRc}}
340 $\Delta r_f$ is the difference in $r$
341 (vertical coordinate) between the faces (i.e. $\Delta r_f \equiv -
342 \delta_k r$ where the minus sign appears due to the convention that the
343 surface layer has index $k=1$.).
344
345 The vertical grid is calculated in subroutine {\em
346 INI\_VERTICAL\_GRID} and specified via the vector {\bf DELR} in
347 namelist {\em PARM04}. The units of ``r'' are either meters or Pascals
348 depending on the isomorphism being used which in turn is dependent
349 only on the choise of equation of state.
350
351 There are alternative namelist vectors {\bf DELZ} and {\bf DELP} which
352 dictate whether z- or
353 \marginpar{Caution!}
354 p- coordinates are to be used but we intend to
355 phase this out since they are redundant.
356
357 The reciprocals $\Delta r_f^{-1}$ and $\Delta r_c^{-1}$ are
358 pre-calculated (also in subroutine {\em INI\_VERTICAL\_GRID}). All
359 vertical grid descriptors are stored in common blocks in {\em GRID.h}.
360
361 The above grid (Fig.~\ref{fig:vgrid}a) is known as the cell centered
362 approach because the tracer points are at cell centers; the cell
363 centers are mid-way between the cell interfaces. An alternative, the
364 vertex or interface centered approach, is shown in
365 Fig.~\ref{fig:vgrid}b. Here, the interior interfaces are positioned
366 mid-way between the tracer nodes (no longer cell centers). This
367 approach is formally more accurate for evaluation of hydrostatic
368 pressure and vertical advection but historically the cell centered
369 approach has been used. An alternative form of subroutine {\em
370 INI\_VERTICAL\_GRID} is used to select the interface centered approach
371 but no run time option is currently available.
372
373 \fbox{ \begin{minipage}{4.75in}
374 {\em S/R INI\_VERTICAL\_GRID} ({\em
375 model/src/ini\_vertical\_grid.F})
376
377 $\Delta r_f$: {\bf DRf} ({\em GRID.h})
378
379 $\Delta r_c$: {\bf DRc} ({\em GRID.h})
380
381 $\Delta r_f^{-1}$: {\bf RECIP\_DRf} ({\em GRID.h})
382
383 $\Delta r_c^{-1}$: {\bf RECIP\_DRc} ({\em GRID.h})
384
385 \end{minipage} }
386
387
388 \subsection{Topography: partially filled cells}
389
390 \begin{figure}
391 \begin{center}
392 \resizebox{4.5in}{!}{\includegraphics{part2/vgrid-xz.eps}}
393 \end{center}
394 \caption{
395 A schematic of the x-r plane showing the location of the
396 non-dimensional fractions $h_c$ and $h_w$. The physical thickness of a
397 tracer cell is given by $h_c(i,j,k) \Delta r_f(k)$ and the physical
398 thickness of the open side is given by $h_w(i,j,k) \Delta r_f(k)$.}
399 \label{fig:hfacs}
400 \end{figure}
401
402 \cite{Adcroft97} presented two alternatives to the step-wise finite
403 difference representation of topography. The method is known to the
404 engineering community as {\em intersecting boundary method}. It
405 involves allowing the boundary to intersect a grid of cells thereby
406 modifying the shape of those cells intersected. We suggested allowing
407 the topgoraphy to take on a peice-wise linear representation (shaved
408 cells) or a simpler piecewise constant representaion (partial step).
409 Both show dramatic improvements in solution compared to the
410 traditional full step representation, the piece-wise linear being the
411 best. However, the storage requirements are excessive so the simpler
412 piece-wise constant or partial-step method is all that is currently
413 supported.
414
415 Fig.~\ref{fig:hfacs} shows a schematic of the x-r plane indicating how
416 the thickness of a level is determined at tracer and u points.
417 \marginpar{$h_c$: {\bf hFacC}}
418 \marginpar{$h_w$: {\bf hFacW}}
419 \marginpar{$h_s$: {\bf hFacS}}
420 The physical thickness of a tracer cell is given by $h_c(i,j,k) \Delta
421 r_f(k)$ and the physical thickness of the open side is given by
422 $h_w(i,j,k) \Delta r_f(k)$. Three 3-D discriptors $h_c$, $h_w$ and
423 $h_s$ are used to describe the geometry: {\bf hFacC}, {\bf hFacW} and
424 {\bf hFacS} respectively. These are calculated in subroutine {\em
425 INI\_MASKS\_ETC} along with there reciprocals {\bf RECIP\_hFacC}, {\bf
426 RECIP\_hFacW} and {\bf RECIP\_hFacS}.
427
428 The non-dimensional fractions (or h-facs as we call them) are
429 calculated from the model depth array and then processed to avoid tiny
430 volumes. The rule is that if a fraction is less than {\bf hFacMin}
431 then it is rounded to the nearer of $0$ or {\bf hFacMin} or if the
432 physical thickness is less than {\bf hFacMinDr} then it is similarly
433 rounded. The larger of the two methods is used when there is a
434 conflict. By setting {\bf hFacMinDr} equal to or larger than the
435 thinnest nominal layers, $\min{(\Delta z_f)}$, but setting {\bf
436 hFacMin} to some small fraction then the model will only lop thick
437 layers but retain stability based on the thinnest unlopped thickness;
438 $\min{(\Delta z_f,\mbox{\bf hFacMinDr})}$.
439
440 \fbox{ \begin{minipage}{4.75in}
441 {\em S/R INI\_MASKS\_ETC} ({\em model/src/ini\_masks\_etc.F})
442
443 $h_c$: {\bf hFacC} ({\em GRID.h})
444
445 $h_w$: {\bf hFacW} ({\em GRID.h})
446
447 $h_s$: {\bf hFacS} ({\em GRID.h})
448
449 $h_c^{-1}$: {\bf RECIP\_hFacC} ({\em GRID.h})
450
451 $h_w^{-1}$: {\bf RECIP\_hFacW} ({\em GRID.h})
452
453 $h_s^{-1}$: {\bf RECIP\_hFacS} ({\em GRID.h})
454
455 \end{minipage} }
456
457
458 \section{Continuity and horizontal pressure gradient terms}
459
460 The core algorithm is based on the ``C grid'' discretization of the
461 continuity equation which can be summarized as:
462 \begin{eqnarray}
463 \partial_t u + \frac{1}{\Delta x_c} \delta_i \left. \frac{ \partial \Phi}{\partial r}\right|_{s} \eta + \frac{\epsilon_{nh}}{\Delta x_c} \delta_i \Phi_{nh}' & = & G_u - \frac{1}{\Delta x_c} \delta_i \Phi_h' \label{eq:discrete-momu} \\
464 \partial_t v + \frac{1}{\Delta y_c} \delta_j \left. \frac{ \partial \Phi}{\partial r}\right|_{s} \eta + \frac{\epsilon_{nh}}{\Delta y_c} \delta_j \Phi_{nh}' & = & G_v - \frac{1}{\Delta y_c} \delta_j \Phi_h' \label{eq:discrete-momv} \\
465 \epsilon_{nh} \left( \partial_t w + \frac{1}{\Delta r_c} \delta_k \Phi_{nh}' \right) & = & \epsilon_{nh} G_w + \overline{b}^k - \frac{1}{\Delta r_c} \delta_k \Phi_{h}' \label{eq:discrete-momw} \\
466 \delta_i \Delta y_g \Delta r_f h_w u +
467 \delta_j \Delta x_g \Delta r_f h_s v +
468 \delta_k {\cal A}_c w & = & {\cal A}_c \delta_k (P-E)_{r=0}
469 \label{eq:discrete-continuity}
470 \end{eqnarray}
471 where the continuity equation has been most naturally discretized by
472 staggering the three components of velocity as shown in
473 Fig.~\ref{fig-cgrid3d}. The grid lengths $\Delta x_c$ and $\Delta y_c$
474 are the lengths between tracer points (cell centers). The grid lengths
475 $\Delta x_g$, $\Delta y_g$ are the grid lengths between cell
476 corners. $\Delta r_f$ and $\Delta r_c$ are the distance (in units of
477 $r$) between level interfaces (w-level) and level centers (tracer
478 level). The surface area presented in the vertical is denoted ${\cal
479 A}_c$. The factors $h_w$ and $h_s$ are non-dimensional fractions
480 (between 0 and 1) that represent the fraction cell depth that is
481 ``open'' for fluid flow.
482 \marginpar{$h_w$: {\bf hFacW}}
483 \marginpar{$h_s$: {\bf hFacS}}
484
485 The last equation, the discrete continuity equation, can be summed in
486 the vertical to yeild the free-surface equation:
487 \begin{equation}
488 {\cal A}_c \partial_t \eta + \delta_i \sum_k \Delta y_g \Delta r_f h_w
489 u + \delta_j \sum_k \Delta x_g \Delta r_f h_s v = {\cal
490 A}_c(P-E)_{r=0} \label{eq:discrete-freesurface}
491 \end{equation}
492 The source term $P-E$ on the rhs of continuity accounts for the local
493 addition of volume due to excess precipitation and run-off over
494 evaporation and only enters the top-level of the {\em ocean} model.
495
496 \section{Hydrostatic balance}
497
498 The vertical momentum equation has the hydrostatic or
499 quasi-hydrostatic balance on the right hand side. This discretization
500 guarantees that the conversion of potential to kinetic energy as
501 derived from the buoyancy equation exactly matches the form derived
502 from the pressure gradient terms when forming the kinetic energy
503 equation.
504
505 In the ocean, using z-ccordinates, the hydrostatic balance terms are
506 discretized:
507 \begin{equation}
508 \epsilon_{nh} \partial_t w
509 + g \overline{\rho'}^k + \frac{1}{\Delta z} \delta_k \Phi_h' = \ldots
510 \label{eq:discrete_hydro_ocean}
511 \end{equation}
512
513 In the atmosphere, using p-coordinates, hydrostatic balance is
514 discretized:
515 \begin{equation}
516 \overline{\theta'}^k + \frac{1}{\Delta \Pi} \delta_k \Phi_h' = 0
517 \label{eq:discrete_hydro_atmos}
518 \end{equation}
519 where $\Delta \Pi$ is the difference in Exner function between the
520 pressure points. The non-hydrostatic equations are not available in
521 the atmosphere.
522
523 The difference in approach between ocean and atmosphere occurs because
524 of the direct use of the ideal gas equation in forming the potential
525 energy conversion term $\alpha \omega$. The form of these consversion
526 terms is discussed at length in \cite{Adcroft01}.
527
528 Because of the different representation of hydrostatic balance between
529 ocean and atmosphere there is no elegant way to represent both systems
530 using an arbitrary coordinate.
531
532 The integration for hydrostatic pressure is made in the positive $r$
533 direction (increasing k-index). For the ocean, this is from the
534 free-surface down and for the atmosphere this is from the ground up.
535
536 The calculations are made in the subroutine {\em
537 CALC\_PHI\_HYD}. Inside this routine, one of other of the
538 atmospheric/oceanic form is selected based on the string variable {\bf
539 buoyancyRelation}.
540

  ViewVC Help
Powered by ViewVC 1.1.22