/[MITgcm]/manual/s_examples/rotating_tank/tank.tex
ViewVC logotype

Diff of /manual/s_examples/rotating_tank/tank.tex

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

revision 1.5 by afe, Mon Jul 26 18:41:32 2004 UTC revision 1.8 by afe, Mon Jul 26 21:25:34 2004 UTC
# Line 36  levels. Line 36  levels.
36    
37    
38    
 This example experiment demonstrates using the MITgcm to simulate  
 a Barotropic, wind-forced, ocean gyre circulation. The experiment  
 is a numerical rendition of the gyre circulation problem similar  
 to the problems described analytically by Stommel in 1966  
 \cite{Stommel66} and numerically in Holland et. al \cite{Holland75}.  
   
 In this experiment the model  
 is configured to represent a rectangular enclosed box of fluid,  
 $1200 \times 1200 $~km in lateral extent. The fluid is $5$~km deep and is forced  
 by a constant in time zonal wind stress, $\tau_x$, that varies sinusoidally  
 in the ``north-south'' direction. Topologically the grid is Cartesian and  
 the coriolis parameter $f$ is defined according to a mid-latitude beta-plane  
 equation  
   
 \begin{equation}  
 \label{EQ:eg-baro-fcori}  
 f(y) = f_{0}+\beta y  
 \end{equation}  
39    
 \noindent where $y$ is the distance along the ``north-south'' axis of the  
 simulated domain. For this experiment $f_{0}$ is set to $10^{-4}s^{-1}$ in  
 (\ref{EQ:eg-baro-fcori}) and $\beta = 10^{-11}s^{-1}m^{-1}$.  
 \\  
 \\  
  The sinusoidal wind-stress variations are defined according to  
   
 \begin{equation}  
 \label{EQ:eg-baro-taux}  
 \tau_x(y) = \tau_{0}\sin(\pi \frac{y}{L_y})  
 \end{equation}  
   
 \noindent where $L_{y}$ is the lateral domain extent ($1200$~km) and  
 $\tau_0$ is set to $0.1N m^{-2}$.  
 \\  
 \\  
 Figure \ref{FIG:eg-baro-simulation_config}  
 summarizes the configuration simulated.  
   
 %% === eh3 ===  
 \begin{figure}  
 %% \begin{center}  
 %%  \resizebox{7.5in}{5.5in}{  
 %%    \includegraphics*[0.2in,0.7in][10.5in,10.5in]  
 %%     {part3/case_studies/barotropic_gyre/simulation_config.eps} }  
 %% \end{center}  
 \centerline{  
   \scalefig{.95}  
   \epsfbox{part3/case_studies/barotropic_gyre/simulation_config.eps}  
 }  
 \caption{Schematic of simulation domain and wind-stress forcing function  
 for barotropic gyre numerical experiment. The domain is enclosed bu solid  
 walls at $x=$~0,1200km and at $y=$~0,1200km.}  
 \label{FIG:eg-baro-simulation_config}  
 \end{figure}  
40    
41  \subsection{Equations Solved}  \subsection{Equations Solved}
42  \label{www:tutorials}  \label{www:tutorials}
 The model is configured in hydrostatic form. The implicit free surface form of the  
 pressure equation described in Marshall et. al \cite{marshall:97a} is  
 employed.  
 A horizontal Laplacian operator $\nabla_{h}^2$ provides viscous  
 dissipation. The wind-stress momentum input is added to the momentum equation  
 for the ``zonal flow'', $u$. Other terms in the model  
 are explicitly switched off for this experiment configuration (see section  
 \ref{SEC:code_config} ), yielding an active set of equations solved in this  
 configuration as follows  
   
 \begin{eqnarray}  
 \label{EQ:eg-baro-model_equations}  
 \frac{Du}{Dt} - fv +  
               g\frac{\partial \eta}{\partial x} -  
               A_{h}\nabla_{h}^2u  
 & = &  
 \frac{\tau_{x}}{\rho_{0}\Delta z}  
 \\  
 \frac{Dv}{Dt} + fu + g\frac{\partial \eta}{\partial y} -  
               A_{h}\nabla_{h}^2v  
 & = &  
 0  
 \\  
 \frac{\partial \eta}{\partial t} + \nabla_{h}\cdot \vec{u}  
 &=&  
 0  
 \end{eqnarray}  
   
 \noindent where $u$ and $v$ and the $x$ and $y$ components of the  
 flow vector $\vec{u}$.  
 \\  
43    
44    
45  \subsection{Discrete Numerical Configuration}  \subsection{Discrete Numerical Configuration}
# Line 219  are Line 135  are
135    
136  \begin{itemize}  \begin{itemize}
137    
138  \item Line 7, \begin{verbatim} viscAh=4.E2, \end{verbatim} this line sets  \item Line X, \begin{verbatim} viscAh=5.0E-6, \end{verbatim} this line sets
139  the Laplacian friction coefficient to $400 m^2s^{-1}$  the Laplacian friction coefficient to $0.000006 m^2s^{-1}$, which is ususally
140    low because of the small scale, presumably.... qqq
141    
142    \item Line X, \begin{verbatim}f0=0.5 , \end{verbatim} this line sets the
143    coriolis term, and represents a tank spinning at qqq
144  \item Line 10, \begin{verbatim} beta=1.E-11, \end{verbatim} this line sets  \item Line 10, \begin{verbatim} beta=1.E-11, \end{verbatim} this line sets
145  $\beta$ (the gradient of the coriolis parameter, $f$) to $10^{-11} s^{-1}m^{-1}$  $\beta$ (the gradient of the coriolis parameter, $f$) to $10^{-11} s^{-1}m^{-1}$
146    
147  \item Lines 15 and 16  \item Lines 15 and 16
148  \begin{verbatim}  \begin{verbatim}
149  rigidLid=.FALSE.,  rigidLid=.TRUE.,
150  implicitFreeSurface=.TRUE.,  implicitFreeSurface=.FALSE.,
151  \end{verbatim}  \end{verbatim}
152  these lines suppress the rigid lid formulation of the surface  
153    these lines do the opposite of the following:
154    suppress the rigid lid formulation of the surface
155  pressure inverter and activate the implicit free surface form  pressure inverter and activate the implicit free surface form
156  of the pressure inverter.  of the pressure inverter.
157    
# Line 241  this line indicates that the experiment Line 163  this line indicates that the experiment
163  and implicitly suppresses searching for checkpoint files associated  and implicitly suppresses searching for checkpoint files associated
164  with restarting an numerical integration from a previously saved state.  with restarting an numerical integration from a previously saved state.
165    
 \item Line 29,  
 \begin{verbatim}  
 endTime=12000,  
 \end{verbatim}  
 this line indicates that the experiment should start finish at $t=12000s$.  
 A restart file will be written at this time that will enable the  
 simulation to be continued from this point.  
   
166  \item Line 30,  \item Line 30,
167  \begin{verbatim}  \begin{verbatim}
168  deltaTmom=1200,  deltaT=0.1,
169  \end{verbatim}  \end{verbatim}
170  This line sets the momentum equation timestep to $1200s$.  This line sets the integration timestep to $0.1s$.  This is an unsually
171    small value among the examples due to the small physical scale of the
172    experiment.
173    
174  \item Line 39,  \item Line 39,
175  \begin{verbatim}  \begin{verbatim}
176  usingCartesianGrid=.TRUE.,  usingCylindricalGrid=.TRUE.,
177  \end{verbatim}  \end{verbatim}
178  This line requests that the simulation be performed in a  This line requests that the simulation be performed in a
179  Cartesian coordinate system.  cylindrical coordinate system.
180    
181  \item Line 41,  \item Line qqq,
182  \begin{verbatim}  \begin{verbatim}
183  delX=60*20E3,  dXspacing=3,
184  \end{verbatim}  \end{verbatim}
185  This line sets the horizontal grid spacing between each x-coordinate line  This line sets the azimuthal grid spacing between each x-coordinate line
186  in the discrete grid. The syntax indicates that the discrete grid  in the discrete grid. The syntax indicates that the discrete grid
187  should be comprise of $60$ grid lines each separated by $20 \times 10^{3}m$  should be comprise of $120$ grid lines each separated by $3^{\circ}$.
188  ($20$~km).                                                                                  
189    
190  \item Line 42,  
191    \item Line qqq,
192  \begin{verbatim}  \begin{verbatim}
193  delY=60*20E3,  dYspacing=0.01,
194  \end{verbatim}  \end{verbatim}
195  This line sets the horizontal grid spacing between each y-coordinate line  This line sets the radial grid spacing between each $\rho$-coordinate line
196  in the discrete grid to $20 \times 10^{3}m$ ($20$~km).  in the discrete grid to $1cm$.
197    
198  \item Line 43,  \item Line 43,
199  \begin{verbatim}  \begin{verbatim}
200  delZ=5000,  delZ=29*0.005,
201  \end{verbatim}  \end{verbatim}
202  This line sets the vertical grid spacing between each z-coordinate line  This line sets the vertical grid spacing between each z-coordinate line
203  in the discrete grid to $5000m$ ($5$~km).  in the discrete grid to $5000m$ ($5$~km).
204    
205  \item Line 46,  \item Line 46,
206  \begin{verbatim}  \begin{verbatim}
207  bathyFile='topog.box'  bathyFile='bathyPol.bin',
208  \end{verbatim}  \end{verbatim}
209  This line specifies the name of the file from which the domain  This line specifies the name of the file from which the domain
210  bathymetry is read. This file is a two-dimensional ($x,y$) map of  ``bathymetry'' (tank depth) is read. This file is a two-dimensional
211    ($x,y$) map of
212  depths. This file is assumed to contain 64-bit binary numbers  depths. This file is assumed to contain 64-bit binary numbers
213  giving the depth of the model at each grid cell, ordered with the x  giving the depth of the model at each grid cell, ordered with the $x$
214  coordinate varying fastest. The points are ordered from low coordinate  coordinate varying fastest. The points are ordered from low coordinate
215  to high coordinate for both axes. The units and orientation of the  to high coordinate for both axes.  The units and orientation of the
216  depths in this file are the same as used in the MITgcm code. In this  depths in this file are the same as used in the MITgcm code. In this
217  experiment, a depth of $0m$ indicates a solid wall and a depth  experiment, a depth of $0m$ indicates an area outside of the tank
218  of $-5000m$ indicates open ocean. The matlab program  and a depth
219  {\it input/gendata.m} shows an example of how to generate a  f $-0.145m$ indicates the tank itself.
 bathymetry file.  
   
220    
221  \item Line 49,  \item Line 49,
222  \begin{verbatim}  \begin{verbatim}
223  zonalWindFile='windx.sin_y'  hydrogThetaFile='thetaPol.bin',
224    \end{verbatim}
225    This line specifies the name of the file from which the initial values
226    of $\theta$
227    are read. This file is a three-dimensional
228    ($x,y,z$) map and is enumerated and formatted in the same manner as the
229    bathymetry file.
230    
231    \item Line qqq
232    \begin{verbatim}
233     tCyl  = 0
234  \end{verbatim}  \end{verbatim}
235  This line specifies the name of the file from which the x-direction  This line specifies the temperature in degrees Celsius of the interior
236  surface wind stress is read. This file is also a two-dimensional  wall of the tank -- usually a bucket of ice water.
237  ($x,y$) map and is enumerated and formatted in the same manner as the  
 bathymetry file. The matlab program {\it input/gendata.m} includes example  
 code to generate a valid {\bf zonalWindFile} file.    
238    
239  \end{itemize}  \end{itemize}
240    
# Line 334  customizations for this experiment. Line 258  customizations for this experiment.
258  This file uses standard default values and does not contain  This file uses standard default values and does not contain
259  customizations for this experiment.  customizations for this experiment.
260    
261  \subsubsection{File {\it input/windx.sin\_y}}  \subsubsection{File {\it input/thetaPol.bin}}
262  \label{www:tutorials}  \label{www:tutorials}
263    
264  The {\it input/windx.sin\_y} file specifies a two-dimensional ($x,y$)  The {\it input/thetaPol.bin} file specifies a three-dimensional ($x,y,z$)
265  map of wind stress ,$\tau_{x}$, values. The units used are $Nm^{-2}$.  map of initial values of $\theta$ in degrees Celsius.
 Although $\tau_{x}$ is only a function of $y$n in this experiment  
 this file must still define a complete two-dimensional map in order  
 to be compatible with the standard code for loading forcing fields  
 in MITgcm. The included matlab program {\it input/gendata.m} gives a complete  
 code for creating the {\it input/windx.sin\_y} file.  
266    
267  \subsubsection{File {\it input/topog.box}}  \subsubsection{File {\it input/bathyPol.bin}}
268  \label{www:tutorials}  \label{www:tutorials}
269    
270    
271  The {\it input/topog.box} file specifies a two-dimensional ($x,y$)  The {\it input/bathyPol.bin} file specifies a two-dimensional ($x,y$)
272  map of depth values. For this experiment values are either  map of depth values. For this experiment values are either
273  $0m$ or {\bf -delZ}m, corresponding respectively to a wall or to deep  $0m$ or {\bf -delZ}m, corresponding respectively to outside or inside of
274  ocean. The file contains a raw binary stream of data that is enumerated  the tank. The file contains a raw binary stream of data that is enumerated
275  in the same way as standard MITgcm two-dimensional, horizontal arrays.  in the same way as standard MITgcm two-dimensional, horizontal arrays.
 The included matlab program {\it input/gendata.m} gives a complete  
 code for creating the {\it input/topog.box} file.  
276    
277  \subsubsection{File {\it code/SIZE.h}}  \subsubsection{File {\it code/SIZE.h}}
278  \label{www:tutorials}  \label{www:tutorials}
# Line 365  Two lines are customized in this file fo Line 282  Two lines are customized in this file fo
282  \begin{itemize}  \begin{itemize}
283    
284  \item Line 39,  \item Line 39,
285  \begin{verbatim} sNx=60, \end{verbatim} this line sets  \begin{verbatim} sNx=120, \end{verbatim} this line sets
286  the lateral domain extent in grid points for the  the lateral domain extent in grid points for the
287  axis aligned with the x-coordinate.  axis aligned with the x-coordinate.
288    
289  \item Line 40,  \item Line 40,
290  \begin{verbatim} sNy=60, \end{verbatim} this line sets  \begin{verbatim} sNy=31, \end{verbatim} this line sets
291  the lateral domain extent in grid points for the  the lateral domain extent in grid points for the
292  axis aligned with the y-coordinate.  axis aligned with the y-coordinate.
293    
294  \end{itemize}  \end{itemize}
295    
296  \begin{small}  \begin{small}
297  \input{part3/case_studies/barotropic_gyre/code/SIZE.h}  \input{part3/case_studies/rotating_tank/code/SIZE.h}
298  \end{small}  \end{small}
299    
300  \subsubsection{File {\it code/CPP\_OPTIONS.h}}  \subsubsection{File {\it code/CPP\_OPTIONS.h}}

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

  ViewVC Help
Powered by ViewVC 1.1.22