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

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

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

revision 1.5 by molod, Tue Aug 2 21:15:00 2005 UTC revision 1.12 by jmc, Mon Nov 23 21:08:56 2009 UTC
# Line 6  Line 6 
6    
7  \subsubsection {Introduction}  \subsubsection {Introduction}
8    
9  The gridalt package is designed to allow different components of the MITgcm to  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  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  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.  alternative grid(s) and the mappings between them and the MITgcm grid.
# Line 44  the mapping between the two vertical coo Line 45  the mapping between the two vertical coo
45  \vspace*{-0.4in}  \vspace*{-0.4in}
46  \begin{center}  \begin{center}
47  \includegraphics[height=2.4in]{part6/vertical.eps}  \includegraphics[height=2.4in]{part6/vertical.eps}
48  \caption{Vertical discretization for the MITgcm (dark grey lines) and for the  \caption{Vertical discretization for MITgcm (dark grey lines) and for the
49  atmospheric physics (light grey lines). In this implementation, all MITgcm level  atmospheric physics (light grey lines). In this implementation, all MITgcm level
50  interfaces must coincide with atmospheric physics level interfaces.}  interfaces must coincide with atmospheric physics level interfaces.}
 must be entirely  
51  \end{center}  \end{center}
52  \end{figure}  \end{figure}
53    
# Line 97  dynamics grid, then: Line 97  dynamics grid, then:
97    
98  \item{Compute the tendency due to physics processes.}  \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}$.}  \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  \item{Interpolate the physics tendency to the dynamics grid, and advance the dynamics
103  state by physics and dynamics tendencies:  state by physics and dynamics tendencies:
# Line 105  ${T^{n+1}}_{dyn}(L) = {T^n}_{dyn}(L) + \ Line 105  ${T^{n+1}}_{dyn}(L) = {T^n}_{dyn}(L) + \
105    
106  \item{Interpolate the dynamics tendency to the physics grid, and update the physics  \item{Interpolate the dynamics tendency to the physics grid, and update the physics
107  grid due to dynamics tendencies:  grid due to dynamics tendencies:
108  ${T^{n+1}^*}_{phys}(l)$ = ${T^{n+1}^{**}}_{phys}(l) + {\delta T_{dyn}(L)}(l)$.}  ${{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:  \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)$.} \\  ${T^{n+1}}_{phys}(l)$ = ${{T^{n+1}}^*}_{phys}(l) + \gamma \{  T_{dyn}(L) - [T_{phys}(l)](L) \}(l)$.} \\
112  Where $\gamma=1$ here.  Where $\gamma=1$ here.
113    
114  \end{enumerate}  \end{enumerate}
# Line 117  Where $\gamma=1$ here. Line 117  Where $\gamma=1$ here.
117  In order to minimize the correction terms for the state variables on the alternative,  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  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.  a dynamics-to-physics interpolation can be exactly reversed with a physics-to-dynamics mapping.
120  The simple scheme employed to achieve this is:  The simple scheme employed to achieve this is:\\
121    
122  Coarse to fine:\  Coarse to fine:\
123  For all physics layers l in dynamics layer L, $ T_{phys}(l) = \{T_{dyn}(L)\} = T_{dyn}(L) $.  For all physics layers l in dynamics layer L, $ T_{phys}(l) = \{T_{dyn}(L)\} = T_{dyn}(L) $.
124    
125  Fine to coarse:\  Fine to coarse:\
126  For all physics layers l in dynamics layer L, $T_{dyn}(L) = [T_{phys}(l)] = \int{T_{phys} dp } $.  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  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.  the physics and dynamics grids, respectively.
130    
131  \subsubsection {Key subroutines, parameters and files }  \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}  \subsubsection {Dos and donts}
256    
257  \subsubsection {Gridalt Reference}  \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}

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.22