/[MITgcm]/manual/s_phys_pkgs/text/gridalt.tex
ViewVC logotype

Contents of /manual/s_phys_pkgs/text/gridalt.tex

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


Revision 1.14 - (show annotations) (download) (as text)
Mon Aug 30 23:09:21 2010 UTC (14 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint01, HEAD
Changes since 1.13: +6 -6 lines
File MIME type: application/x-tex
clean-up latex built:
 (remove multiple definition of label; fix missing reference; replace
  non-standard latex stuff; ...)

1 \subsection{Gridalt - Alternate Grid Package}
2 \label{sec:pkg:gridalt}
3 \begin{rawhtml}
4 <!-- CMIREDIR:package_gridalt: -->
5 \end{rawhtml}
6
7 \subsubsection {Introduction}
8
9 The gridalt package \citep{mol:09}
10 is designed to allow different components of MITgcm to
11 be run using horizontal and/or vertical grids which are different from the main
12 model grid. The gridalt routines handle the definition of the all the various
13 alternative grid(s) and the mappings between them and the MITgcm grid.
14 The implementation of the gridalt package which allows the high end atmospheric
15 physics (fizhi) to be run on a high resolution and quasi terrain-following vertical
16 grid is documented here. The package has also (with some user modifications) been used
17 for other calculations within the GCM.
18
19 The rationale for implementing the atmospheric physics on a high resolution vertical
20 grid involves the fact that the MITgcm $p^*$ (or any pressure-type) coordinate cannot
21 maintain the vertical resolution near the surface as the bottom topography rises above
22 sea level. The vertical length scales near the ground are small and can vary
23 on small time scales, and the vertical grid must be adequate to resolve them.
24 Many studies with both regional and global atmospheric models have demonstrated the
25 improvements in the simulations when the vertical resolution near the surface is
26 increased (\cite{bm:99,Inn:01,wo:98,breth:99}). Some of the benefit of increased resolution
27 near the surface is realized by employing the higher resolution for the computation of the
28 forcing due to turbulent and convective processes in the atmosphere.
29
30 The parameterizations of atmospheric subgrid scale processes are all essentially
31 one-dimensional in nature, and the computation of the terms in the equations of
32 motion due to these processes can be performed for the air column over one grid point
33 at a time. The vertical grid on which these computations take place can therefore be
34 entirely independant of the grid on which the equations of motion are integrated, and
35 the 'tendency' terms can be interpolated to the vertical grid on which the equations
36 of motion are integrated. A modified $p^*$ coordinate, which adjusts to the local
37 terrain and adds additional levels between the lower levels of the existing $p^*$ grid
38 (and perhaps between the levels near the tropopause as well), is implemented. The
39 vertical discretization is different for each grid point, although it consist of the
40 same number of levels. Additional 'sponge' levels aloft are added when needed. The levels
41 of the physics grid are constrained to fit exactly into the existing $p^*$ grid, simplifying
42 the mapping between the two vertical coordinates. This is illustrated as follows:
43
44 \begin{figure}[htbp]
45 \vspace*{-0.4in}
46 \begin{center}
47 \includegraphics[height=2.4in]{s_phys_pkgs/figs/vertical.eps}
48 \caption{Vertical discretization for MITgcm (dark grey lines) and for the
49 atmospheric physics (light grey lines). In this implementation, all MITgcm level
50 interfaces must coincide with atmospheric physics level interfaces.}
51 \end{center}
52 \end{figure}
53
54 The algorithm presented here retains the state variables on the high resolution 'physics'
55 grid as well as on the coarser resolution 'dynamics` grid, and ensures that the two
56 estimates of the state 'agree' on the coarse resolution grid. It would have been possible
57 to implement a technique in which the tendencies due to atmospheric physics are computed
58 on the high resolution grid and the state variables are retained at low resolution only.
59 This, however, for the case of the turbulence parameterization, would mean that the
60 turbulent kinetic energy source terms, and all the turbulence terms that are written
61 in terms of gradients of the mean flow, cannot really be computed making use of the fine
62 structure in the vertical.
63
64 \subsubsection{Equations on Both Grids}
65
66 In addition to computing the physical forcing terms of the momentum, thermodynamic and humidity
67 equations on the modified (higher resolution) grid, the higher resolution structure of the
68 atmosphere (the boundary layer) is retained between physics calculations. This neccessitates
69 a second set of evolution equations for the atmospheric state variables on the modified grid.
70 If the equation for the evolution of $U$ on $p^*$ can be expressed as:
71 \[
72 \left . \frac{\partial U}{\partial t} \right |_{p^*}^{total} =
73 \left . \frac{\partial U}{\partial t} \right |_{p^*}^{dynamics} +
74 \left . \frac{\partial U}{\partial t} \right |_{p^*}^{physics}
75 \]
76 where the physics forcing terms on $p^*$ have been mapped from the modified grid, then an additional
77 equation to govern the evolution of $U$ (for example) on the modified grid is written:
78 \[
79 \left . \frac{\partial U}{\partial t} \right |_{p^{*m}}^{total} =
80 \left . \frac{\partial U}{\partial t} \right |_{p^{*m}}^{dynamics} +
81 \left . \frac{\partial U}{\partial t} \right |_{p^{*m}}^{physics} +
82 \gamma ({\left . U \right |_{p^*}} - {\left . U \right |_{p^{*m}}})
83 \]
84 where $p^{*m}$ refers to the modified higher resolution grid, and the dynamics forcing terms have
85 been mapped from $p^*$ space. The last term on the RHS is a relaxation term, meant to constrain
86 the state variables on the modified vertical grid to `track' the state variables on the $p^*$ grid
87 on some time scale, governed by $\gamma$. In the present implementation, $\gamma = 1$, requiring
88 an immediate agreement between the two 'states'.
89
90 \subsubsection{Time stepping Sequence}
91 If we write $T_{phys}$ as the temperature (or any other state variable) on the high
92 resolution physics grid, and $T_{dyn}$ as the temperature on the coarse vertical resolution
93 dynamics grid, then:
94
95 \begin{enumerate}
96 %\itemsep{-0.05in}
97
98 \item{Compute the tendency due to physics processes.}
99
100 \item{Advance the physics state: ${{T^{n+1}}^{**}}_{phys}(l) = {T^n}_{phys}(l) + \delta T_{phys}$.}
101
102 \item{Interpolate the physics tendency to the dynamics grid, and advance the dynamics
103 state by physics and dynamics tendencies:
104 ${T^{n+1}}_{dyn}(L) = {T^n}_{dyn}(L) + \delta T_{dyn}(L) + [\delta T _{phys}(l)](L)$.}
105
106 \item{Interpolate the dynamics tendency to the physics grid, and update the physics
107 grid due to dynamics tendencies:
108 ${{T^{n+1}}^*}_{phys}(l)$ = ${{T^{n+1}}^{**}}_{phys}(l) + {\delta T_{dyn}(L)}(l)$.}
109
110 \item{Apply correction term to physics state to account for divergence from dynamics state:
111 ${T^{n+1}}_{phys}(l)$ = ${{T^{n+1}}^*}_{phys}(l) + \gamma \{ T_{dyn}(L) - [T_{phys}(l)](L) \}(l)$.} \\
112 Where $\gamma=1$ here.
113
114 \end{enumerate}
115
116 \subsubsection{Interpolation}
117 In order to minimize the correction terms for the state variables on the alternative,
118 higher resolution grid, the vertical interpolation scheme must be constructed so that
119 a dynamics-to-physics interpolation can be exactly reversed with a physics-to-dynamics mapping.
120 The simple scheme employed to achieve this is:\\
121
122 Coarse to fine:\
123 For all physics layers l in dynamics layer L, $ T_{phys}(l) = \{T_{dyn}(L)\} = T_{dyn}(L) $.
124
125 Fine to coarse:\
126 For all physics layers l in dynamics layer L, $T_{dyn}(L) = [T_{phys}(l)] = \int{T_{phys} dp } $.\\
127
128 Where $\{\}$ is defined as the dynamics-to-physics operator and $[ ]$ is the physics-to-dynamics operator, $T$ stands for any state variable, and the subscripts $phys$ and $dyn$ stand for variables on
129 the physics and dynamics grids, respectively.
130
131 \subsubsection {Key subroutines, parameters and files }
132
133 \noindent
134 One of the central elements of the gridalt package is the routine which
135 is called from subroutine gridalt\_initialise to define the grid to be
136 used for the high end physics calculations. Routine make\_phys\_grid
137 passes back the parameters which define the grid, ultimately stored
138 in the common block gridalt\_mapping.
139
140 \begin{verbatim}
141 subroutine make_phys_grid(drF,hfacC,im1,im2,jm1,jm2,Nr,
142 . Nsx,Nsy,i1,i2,j1,j2,bi,bj,Nrphys,Lbot,dpphys,numlevphys,nlperdyn)
143 c***********************************************************************
144 c Purpose: Define the grid that the will be used to run the high-end
145 c atmospheric physics.
146 c
147 c Algorithm: Fit additional levels of some (~) known thickness in
148 c between existing levels of the grid used for the dynamics
149 c
150 c Need: Information about the dynamics grid vertical spacing
151 c
152 c Input: drF - delta r (p*) edge-to-edge
153 c hfacC - fraction of grid box above topography
154 c im1, im2 - beginning and ending i - dimensions
155 c jm1, jm2 - beginning and ending j - dimensions
156 c Nr - number of levels in dynamics grid
157 c Nsx,Nsy - number of processes in x and y direction
158 c i1, i2 - beginning and ending i - index to fill
159 c j1, j2 - beginning and ending j - index to fill
160 c bi, bj - x-dir and y-dir index of process
161 c Nrphys - number of levels in physics grid
162 c
163 c Output: dpphys - delta r (p*) edge-to-edge of physics grid
164 c numlevphys - number of levels used in the physics
165 c nlperdyn - physics level number atop each dynamics layer
166 c
167 c NOTES: 1) Pressure levs are built up from bottom, using p0, ps and dp:
168 c p(i,j,k)=p(i,j,k-1) + dp(k)*ps(i,j)/p0(i,j)
169 c 2) Output dp's are aligned to fit EXACTLY between existing
170 c levels of the dynamics vertical grid
171 c 3) IMPORTANT! This routine assumes the levels are numbered
172 c from the bottom up, ie, level 1 is the surface.
173 c IT WILL NOT WORK OTHERWISE!!!
174 c 4) This routine does NOT work for surface pressures less
175 c (ie, above in the atmosphere) than about 350 mb
176 c***********************************************************************
177 \end{verbatim}
178
179 \noindent In the case of the grid used to compute the atmospheric physical
180 forcing (fizhi package), the locations of the grid points move in time with
181 the MITgcm $p^*$ coordinate, and subroutine gridalt\_update is called during
182 the run to update the locations of the grid points:
183
184 \begin{verbatim}
185 subroutine gridalt_update(myThid)
186 c***********************************************************************
187 c Purpose: Update the pressure thicknesses of the layers of the
188 c alternative vertical grid (used now for atmospheric physics).
189 c
190 c Calculate: dpphys - new delta r (p*) edge-to-edge of physics grid
191 c using dpphys0 (initial value) and rstarfacC
192 c***********************************************************************
193 \end{verbatim}
194
195 \noindent The gridalt package also supplies utility routines which perform
196 the mappings from one grid to the other. These routines are called from the
197 code which computes the fields on the alternative (fizhi) grid.
198
199 \begin{verbatim}
200 subroutine dyn2phys(qdyn,pedyn,im1,im2,jm1,jm2,lmdyn,Nsx,Nsy,
201 . idim1,idim2,jdim1,jdim2,bi,bj,windphy,pephy,Lbot,lmphy,nlperdyn,
202 . flg,qphy)
203 C***********************************************************************
204 C Purpose:
205 C To interpolate an arbitrary quantity from the 'dynamics' eta (pstar)
206 C grid to the higher resolution physics grid
207 C Algorithm:
208 C Routine works one layer (edge to edge pressure) at a time.
209 C Dynamics -> Physics retains the dynamics layer mean value,
210 C weights the field either with the profile of the physics grid
211 C wind speed (for U and V fields), or uniformly (T and Q)
212 C
213 C Input:
214 C qdyn..... [im,jm,lmdyn] Arbitrary Quantity on Input Grid
215 C pedyn.... [im,jm,lmdyn+1] Pressures at bottom edges of input levels
216 C im1,2 ... Limits for Longitude Dimension of Input
217 C jm1,2 ... Limits for Latitude Dimension of Input
218 C lmdyn.... Vertical Dimension of Input
219 C Nsx...... Number of processes in x-direction
220 C Nsy...... Number of processes in y-direction
221 C idim1,2.. Beginning and ending i-values to calculate
222 C jdim1,2.. Beginning and ending j-values to calculate
223 C bi....... Index of process number in x-direction
224 C bj....... Index of process number in x-direction
225 C windphy.. [im,jm,lmphy] Magnitude of the wind on the output levels
226 C pephy.... [im,jm,lmphy+1] Pressures at bottom edges of output levels
227 C lmphy.... Vertical Dimension of Output
228 C nlperdyn. [im,jm,lmdyn] Highest Physics level in each dynamics level
229 C flg...... Flag to indicate field type (0 for T or Q, 1 for U or V)
230 C
231 C Output:
232 C qphy..... [im,jm,lmphy] Quantity at output grid (physics grid)
233 C
234 C Notes:
235 C 1) This algorithm assumes that the output (physics) grid levels
236 C fit exactly into the input (dynamics) grid levels
237 C***********************************************************************
238 \end{verbatim}
239
240 \noindent And similarly, gridalt contains subroutine phys2dyn.
241
242 \subsubsection {Gridalt Diagnostics}
243 \label{sec:pkg:gridalt:diagnostics}
244
245 {\footnotesize
246 \begin{verbatim}
247
248 ------------------------------------------------------------------------
249 <-Name->|Levs|<-parsing code->|<-- Units -->|<- Tile (max=80c)
250 ------------------------------------------------------------------------
251 DPPHYS | 20 |SM ML |Pascal |Pressure Thickness of Layers on Fizhi Grid
252 \end{verbatim}
253 }
254
255 \subsubsection {Dos and donts}
256
257 \subsubsection {Gridalt Reference}
258
259 \subsubsection{Experiments and tutorials that use gridalt}
260 \label{sec:pkg:gridalt:experiments}
261
262 \begin{itemize}
263 \item{Fizhi experiment, in fizhi-cs-32x32x10 verification directory }
264 \end{itemize}

  ViewVC Help
Powered by ViewVC 1.1.22