/[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.25 - (show annotations) (download) (as text)
Wed Jun 14 21:05:01 2017 UTC (8 years ago) by jmc
Branch: MAIN
CVS Tags: checkpoint01, HEAD
Changes since 1.24: +3 -3 lines
File MIME type: application/x-tex
fix typo (spotted by Brian G)

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

  ViewVC Help
Powered by ViewVC 1.1.22