|
|
|||
Warning, /doc/examples/barotropic_gyre/barotropic_gyre.rst is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit 0bad585a on 2022-02-16 18:55:09 UTC94151a9b18 Jeff*0001 .. _sec_eg_baro: 0002 d67096e55c Jeff*0003 Barotropic Ocean Gyre 94151a9b18 Jeff*0004 ===================== 0005 0006 (in directory :filelink:`verification/tutorial_barotropic_gyre/`) 0007 0008 This example experiment demonstrates using the MITgcm to simulate a barotropic, wind-forced, ocean gyre circulation. 0009 The experiment is a numerical rendition of the gyre circulation problem described analytically 0010 by Stommel in 1948 :cite:`stommel:48` and Munk in 1950 :cite:`munk:50`, and numerically in Bryan (1963) :cite:`bryan:63`. 0011 Note this tutorial assumes a basic familiarity with ocean dynamics and geophysical fluid dynamics; readers new to the field 0012 may which to consult one of the standard texts on these subjects, 0013 such as Vallis (2017) :cite:`vallis:17` or Cushman-Roisin and Beckers (2011) :cite:`cushmanroisin:11`. 0014 0015 In this experiment the model is configured to represent a rectangular enclosed box of fluid, :math:`1200 \times 1200` km 0016 in lateral extent. The fluid depth :math:`H =` 5 km. The fluid is forced by a zonal wind stress, :math:`\tau_x`, that varies 0017 sinusoidally in the north-south direction and is constant in time. Topologically the grid is Cartesian and the Coriolis parameter :math:`f` is 0018 defined according to a mid-latitude beta-plane equation 0019 0020 .. math:: 0021 f(y) = f_{0}+\beta y 0022 0023 where :math:`y` is the distance along the 'north-south' axis of the simulated domain. For this experiment :math:`f_{0}` is 0024 set to :math:`10^{-4}\text{s}^{-1}` and :math:`\beta = 10^{-11}\text{s}^{-1}\text{m}^{-1}`. 0025 d67096e55c Jeff*0026 The sinusoidal wind-stress variations are defined according to 94151a9b18 Jeff*0027 d67096e55c Jeff*0028 .. math:: 0bad585a21 Navi*0029 \tau_x(y) = -\tau_{0} \cos\left(\pi \frac{y}{L_y}\right) 94151a9b18 Jeff*0030 0031 where :math:`L_{y}` is the lateral domain extent and d67096e55c Jeff*0032 :math:`\tau_0` is set to :math:`0.1 \text{N m}^{-2}`. 94151a9b18 Jeff*0033 0034 :numref:`baro_simulation_config` summarizes the configuration simulated. 0035 0036 .. figure:: figs/new_barotropic_gyre.png 0037 :width: 100% 0038 :align: center 0039 :alt: barotropic gyre configuration 0040 :name: baro_simulation_config 0041 0042 Schematic of simulation domain and wind-stress forcing function for barotropic gyre numerical experiment. The domain is enclosed by solid walls at :math:`x=` 0, 1200 km and at :math:`y=` 0, 1200 km. 0043 0044 Equations Solved 0045 ---------------- 0046 0047 The model is configured in hydrostatic form (the MITgcm default). The implicit free surface form of the 0048 pressure equation described in Marshall et al. (1997) :cite:`marshall:97a` is employed. 0049 A horizontal Laplacian operator :math:`\nabla_{h}^2` provides viscous 0050 dissipation. The wind-stress momentum input is added to the momentum equation d67096e55c Jeff*0051 for the 'zonal flow', :math:`u`. This effectively yields an active set of 0052 equations for this configuration as follows: 94151a9b18 Jeff*0053 0054 .. math:: 0055 \frac{Du}{Dt} - fv + g\frac{\partial \eta}{\partial x} - A_{h}\nabla_{h}^2u 0056 = \frac{\tau_{x}}{\rho_{c}H} 0057 :label: baro_model_eq_u 0058 0059 .. math:: 0060 \frac{Dv}{Dt} + fu + g\frac{\partial \eta}{\partial y} - A_{h}\nabla_{h}^2v 0061 = 0 0062 :label: baro_model_eq_v 0063 0064 .. math:: 0bad585a21 Navi*0065 \frac{\partial \eta}{\partial t} + \nabla _{h}\cdot (H \vec{\bf u}) 94151a9b18 Jeff*0066 = 0 0067 :label: baro_model_eq_eta 0068 0069 where :math:`u` and :math:`v` are the :math:`x` and :math:`y` components of the 0bad585a21 Navi*0070 flow vector :math:`\vec{\bf u}`, :math:`\eta` is the free surface height, 94151a9b18 Jeff*0071 :math:`A_{h}` the horizontal Laplacian viscosity, :math:`\rho_{c}` is the fluid density, 0072 and :math:`g` the acceleration due to gravity. 0073 0074 .. _sec_baro_num_config: 0075 0076 Discrete Numerical Configuration 0077 -------------------------------- 0078 0079 The domain is discretized with a uniform grid spacing in the horizontal set to :math:`\Delta x=\Delta y=20` km, 0080 so that there are sixty ocean grid cells in the :math:`x` and :math:`y` directions. The numerical d67096e55c Jeff*0081 domain includes a border row of "land" cell surrounding the ocean cells, so the numerical grid size is 62\ :math:`\times`\ 62 94151a9b18 Jeff*0082 (if these land cells were not included, the domain would be periodic in both 0083 the :math:`x` and :math:`y` directions). 0084 d67096e55c Jeff*0085 Vertically the model is configured using a single layer in depth, :math:`\Delta z`, of 5000 m. 94151a9b18 Jeff*0086 0087 .. _barotropic_gyre_stab_crit: 0088 0089 Numerical Stability Criteria 0090 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0091** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 93.
0092 Let’s start with our choice for the model’s time step. To minimize the amount of required computational resources, typically one 0093 opts for as large a time step as possible while keeping the model solution stable. The advective** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 95.
0094 Courant–Friedrichs–Lewy (CFL) condition (see Adcroft 1995 :cite:`adcroft:95`) for an extreme 0095 maximum horizontal flow speed is: 0096 0097 .. math:: 0098 :label: eq_baro_cfl_stability 0099 0bad585a21 Navi*0100 S_{\rm adv} = 2 \left( \frac{ |u| \Delta t}{ \Delta x} \right) < 0.5 \text{ for stability} 94151a9b18 Jeff*0101 0102 The 2 factor on the left is because we have a 2-D problem d67096e55c Jeff*0103 (in contrast with the more familiar 1-D canonical stability analysis); the right hand side is 0.5 94151a9b18 Jeff*0104 due to our default use of Adams-Bashforth2 (see :numref:`adams-bashforth`) rather than the more familiar 0105 value of 1 that one would obtain using a forward Euler scheme.** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 107.
0106 In our configuration, let’s assume our solution will achieve a maximum :math:`| u | = 1` ms\ :sup:`--1` 0107 (in reality, current speeds in our solution will be much smaller). To keep :math:`\Delta t` safely d67096e55c Jeff*** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 109.
0108 below the stability threshold, let’s choose :math:`\Delta t` = 1200 s (= 20 minutes), which 0bad585a21 Navi*0109 results in :math:`S_{\rm adv}` = 0.12. 94151a9b18 Jeff*0110 0111 The numerical stability for inertial oscillations using Adams-Bashforth II (Adcroft 1995 :cite:`adcroft:95`) 0112 0113 .. math:: 0114 :label: eq_baro_inertial_stability 0115 0bad585a21 Navi*0116 S_{\rm inert} = f {\Delta t} < 0.5 \text{ for stability} 94151a9b18 Jeff*0117 0118 evaluates to 0.12 for our choice of :math:`\Delta t`, which is below the stability threshold. 0119 0120 There are two general rules in choosing a horizontal Laplacian eddy viscosity :math:`A_{h}`: 0121 0122 - the resulting Munk layer width should be at least as large (preferably, larger) than the lateral grid spacing; d67096e55c Jeff*0123 - the viscosity should be sufficiently small that the model is stable for horizontal friction, given the time step. 94151a9b18 Jeff*0124** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 126.
0125 Let’s use this first rule to make our choice for :math:`A_{h}`, and check this value using the second rule. 0126 The theoretical Munk boundary layer width (as defined by the solution d67096e55c Jeff*0127 zero-crossing, see Pedlosky 1987 :cite:`pedlosky:87`) is given by: 94151a9b18 Jeff*0128 0129 .. math:: 0130 :label: baro_munk_layer d67096e55c Jeff*0131 0bad585a21 Navi*0132 M = \frac{2\pi}{\sqrt{3}} \left( \frac { A_{h} }{ \beta } \right) ^{\frac{1}{3}} 94151a9b18 Jeff*0133 0134 For our configuration we will choose to resolve a boundary layer of :math:`\approx` 100 km, 0135 or roughly across five grid cells, so we set :math:`A_{h} = 400` m\ :sup:`2` s\ :sup:`--1` 0bad585a21 Navi*0136 (more precisely, this sets the full width at :math:`M` = 124 km). This choice ensures 94151a9b18 Jeff*0137 that the frictional boundary layer is well resolved. 0138 d67096e55c Jeff*0139 Given our choice of :math:`\Delta t`, the stability 94151a9b18 Jeff*0140 parameter for the horizontal Laplacian friction (Adcroft 1995 :cite:`adcroft:95`) 0141 0142 .. math:: 0143 :label: baro_laplacian_stability 0144 0bad585a21 Navi*0145 S_{\rm Lh} = 2 \left( 4 \frac{A_{h} \Delta t}{{\Delta x}^2} \right) < 0.6 \text{ for stability} 94151a9b18 Jeff*0146 0147 evaluates to 0.0096, which is well below the stability threshold. As in :eq:`eq_baro_cfl_stability` the above criteria 0148 is for a 2D problem using Adams-Bashforth2 time stepping, with the 0.6 value on the right replacing the more familiar 1 0149 that is obtained using a forward Euler scheme. 0150 0151 See :numref:`adams-bashforth` for additional details on Adams-Bashforth time-stepping and numerical stability criteria. 0152 0153 .. _sec_eg_baro_code_config: 0154 0155 Configuration 0156 ------------- 0157 0158 The model configuration for this experiment resides under the directory :filelink:`verification/tutorial_barotropic_gyre/`. 0159 0160 The experiment files 0161 0162 - :filelink:`verification/tutorial_barotropic_gyre/code/SIZE.h` 0163 - :filelink:`verification/tutorial_barotropic_gyre/input/data` 0164 - :filelink:`verification/tutorial_barotropic_gyre/input/data.pkg` 0165 - :filelink:`verification/tutorial_barotropic_gyre/input/eedata` 0166 - verification/tutorial_barotropic_gyre/input/bathy.bin 0167 - verification/tutorial_barotropic_gyre/input/windx_cosy.bin d67096e55c Jeff*0168 0169 contain the code customizations and parameter settings for this 94151a9b18 Jeff*0170 experiment. Below we describe these customizations in detail. 0171** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 173.
0172 Note: MITgcm’s defaults are configured to simulate an ocean rather than an atmosphere, with vertical :math:`z`-coordinates. d67096e55c Jeff*0173 To model the ocean using pressure coordinates using MITgcm, additional parameter changes are required; see tutorial ocean_in_p. 94151a9b18 Jeff*0174 To switch parameters to model an atmosphere, see tutorial Held_Suarez. 0175 0176 Compile-time Configuration 0177 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 0178 0179 File :filelink:`code/SIZE.h <verification/tutorial_barotropic_gyre/code/SIZE.h>` 0180 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0181 0182 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/code/SIZE.h 0183 :linenos: 0184 :caption: verification/tutorial_barotropic_gyre/code/SIZE.h 0185** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 187.
0186 Here we show a modified :filelink:`model/inc` source code file, customizing MITgcm’s array sizes to our model domain. 0187 This file must be uniquely configured for any model setup; using the MITgcm default 0188 :filelink:`model/inc/SIZE.h` will in fact cause a compilation error. d67096e55c Jeff*0189 Note that MITgcm's storage arrays are allocated as `static variables <https://en.wikipedia.org/wiki/Static_variable>`_ 94151a9b18 Jeff*0190 (hence their size must be declared in the source code), in contrast to some model codes which declare array sizes dynamically, d67096e55c Jeff*0191 i.e., through runtime (namelist) parameter settings. 94151a9b18 Jeff*0192 d67096e55c Jeff*0193 For this first tutorial, our setup and run environment is the most simple possible: we run on a single process 94151a9b18 Jeff*0194 (i.e., NOT `MPI <https://en.wikipedia.org/wiki/Message_Passing_Interface>`_ and NOT multi-threaded) 0195 using a single model :ref:`"tile" <tile_description>`. For a more complete explanation of the parameter choices to use multiple tiles, 0196 see the tutorial Baroclinic Gyre. 0197 0198 - These lines set parameters :varlink:`sNx` and :varlink:`sNy`, the number of grid points in the :math:`x` and :math:`y` directions, respectively. 0199 0200 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/code/SIZE.h 0201 :start-at: sNx = 0202 :end-at: sNy = 0203 :lineno-match: 0204 0205 - These lines set parameters :varlink:`OLx` and :varlink:`OLy` in the :math:`x` and :math:`y` directions, respectively. 0206 These values are the overlap extent of a model tile, the purpose of which will be explained in later tutorials. 0207 Here, we simply specify the required minimum value (2) 0208 in both :math:`x` and :math:`y`. 0209 0210 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/code/SIZE.h 0211 :start-at: OLx = 0212 :end-at: OLy = 0213 :lineno-match: 0214 0215 - These lines set parameters :varlink:`nSx`, :varlink:`nSy`, :varlink:`nPx`, and :varlink:`nPy`, d67096e55c Jeff*0216 the number of model tiles and the number of processes in the :math:`x` and :math:`y` directions, respectively. 94151a9b18 Jeff*0217 As discussed above, in this tutorial we configure a single model tile on 0218 a single process, so these parameters are all set to the value one. 0219 0220 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/code/SIZE.h 0221 :start-at: nSx = 0222 :end-at: nPy = 0223 :lineno-match: 0224 0225 - This line sets parameter :varlink:`Nr`, the number of points in the vertical dimension. Here we use just a single vertical level. 0226 0227 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/code/SIZE.h 0228 :start-at: Nr = 0229 :end-at: Nr = 0230 :lineno-match: 0231 0232 - Note these lines summarize the horizontal size of the model domain (**NOT** to be edited). 0233 0234 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/code/SIZE.h 0235 :start-at: sNx*nSx*nPx 0236 :end-at: sNy*nSy*nPy 0237 :lineno-match: 0238 0239 Further information and examples about how to configure :filelink:`model/inc/SIZE.h` 0240 are given in :numref:`specify_decomp`. 0241 0242 Run-time Configuration 0243 ~~~~~~~~~~~~~~~~~~~~~~ 0244 0245 .. _baro_gyre_data: 0246 0247 File :filelink:`input/data <verification/tutorial_barotropic_gyre/input/data>` 0248 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0249 0250 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0251 :linenos: 0252 :caption: verification/tutorial_barotropic_gyre/input/data 0253 d67096e55c Jeff*0254 This file, reproduced completely above, specifies the main parameters 94151a9b18 Jeff*0255 for the experiment. The parameters that are significant for this configuration 0256 (shown with line numbers to left) are as follows. 0257 0258 PARM01 - Continuous equation parameters d67096e55c Jeff*0259 ####################################### 94151a9b18 Jeff*0260 0261 - This line sets parameter :varlink:`viscAh`, the horizontal Laplacian viscosity, to :math:`400` m\ :sup:`2` s\ :sup:`--1`. 0262 0263 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0264 :start-at: viscAh 0265 :end-at: viscAh 0266 :lineno-match: 0267 0268 - These lines set :math:`f_0` and :math:`\beta` (the Coriolis parameter :varlink:`f0` and d67096e55c Jeff*0269 the gradient of the Coriolis parameter :varlink:`beta`) for our beta-plane to 94151a9b18 Jeff*0270 :math:`1 \times 10^{-4}` s\ :sup:`--1` and :math:`1 \times 10^{-11}` m\ :sup:`--1`\ s\ :sup:`--1`, respectively. 0271 0272 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0273 :start-at: f0 0274 :end-at: beta 0275 :lineno-match: 0276 0277 - This line sets parameter :varlink:`rhoConst`, the Boussinesq reference density 0278 :math:`\rho_c` in :eq:`baro_model_eq_u`, to 1000 kg/m\ :sup:`3`. 0279 0280 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0281 :start-at: rhoConst 0282 :end-at: rhoConst 0283 :lineno-match: 0284 0285 - This line sets parameter :varlink:`gBaro`, the acceleration due to gravity :math:`g` (in the free surface terms 0286 in :eq:`baro_model_eq_u` and :eq:`baro_model_eq_v`), to 9.81 m/s\ :sup:`2`. 0287 This is the MITgcm default value, i.e., the value used if this line were not 0288 included in ``data``. One might alter this parameter for a reduced gravity model, or to simulate a different planet, for example. 0289 0290 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0291 :start-at: gBaro 0292 :end-at: gBaro 0293 :lineno-match: 0294 0295 - These lines set parameters :varlink:`rigidLid` and :varlink:`implicitFreeSurface` in order to 0296 suppress the rigid lid formulation of the surface pressure inverter and activate the implicit free surface formulation. 0297 0298 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0299 :start-at: rigidLid 0300 :end-at: implicitFreeSurface 0301 :lineno-match: 0302 0303 - This line sets parameter :varlink:`momAdvection` to suppress the (non-linear) momentum of advection 0304 terms in the momentum equations. However, note the ``#`` in column 1: this** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 306.
0305 “comments out” the line, so using the above :filelink:`data <verification/tutorial_barotropic_gyre/input/data>` 0306 file verbatim will in fact include the momentum advection terms (i.e., MITgcm default for this parameter is TRUE).** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 308.
0307 We’ll explore the linearized solution (i.e., by removing the leading ``#``) in :numref:`barotropic_gyre_solution`. 0308 Note the ability to comment out a line in a namelist file is not part of standard Fortran, 0309 but this feature is implemented for all MITgcm namelist files. 0310 0311 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0312 :start-at: momAdvection 0313 :end-at: momAdvection 0314 :lineno-match: 0315 0316 - These lines set parameters :varlink:`tempStepping` and :varlink:`saltStepping` to** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 318.
0317 suppress MITgcm’s forward time integration of temperature and salt in the tracer equations, 0318 as these prognostic variables are not relevant for the model solution in this configuration. 0319 By default, MITgcm solves equations governing these two (active) tracers; later tutorials will 0320 demonstrate how additional passive tracers can be included in the solution. 0321 The advantage of NOT solving the temperature and salinity equations is to 0322 eliminate many unnecessary computations. In most typical configurations however, one will want the model to 0323 compute a solution for :math:`T` and :math:`S`, which d67096e55c Jeff*** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 325.
0324 typically comprises the majority of MITgcm’s processing time. 94151a9b18 Jeff*0325 0326 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0327 :start-at: tempStepping 0328 :end-at: saltStepping 0329 :lineno-match: 0330 0331 PARM02 - Elliptic solver parameters d67096e55c Jeff*0332 ################################### 94151a9b18 Jeff*0333 0334 - The first line sets the tolerance (parameter :varlink:`cg2dTargetResidual`) that the 2-D conjugate gradient solver, 0335 the iterative method used in the pressure method algorithm, will use to test for convergence. 0336 The second line sets parameter :varlink:`cg2dMaxIters`, the maximum 0337 number of iterations. 0338 The solver will iterate until the residual falls below this target value 0339 (here, set to :math:`1 \times 10^{-7}`) or until this maximum number of solver iterations is reached 0340 (here, set to a maximum 1000 iterations). Typically, the solver will converge in far fewer than 1000 iterations, but 0341 it does not hurt to allow for a large number. The chosen value for the target residual 0342 happens to be the MITgcm default, and will serve well 0343 in most model configurations. 0344 0345 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0346 :start-at: cg2dTargetResidual 0347 :end-at: cg2dMaxIters 0348 :lineno-match: 0349 0350 .. _baro_time_stepping_parms: 0351 0352 PARM03 - Time stepping parameters 0353 ################################# 0354 0355 - This line sets the starting (integer) iteration number for the run. Here we set the value to zero, which starts the model from a new, initialized state. 0356 If :varlink:`nIter0` is non-zero, the model would require appropriate pickup files (i.e., restart files) in order to continue integration of an existing run. 0357 0358 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0359 :start-at: nIter0 0360 :end-at: nIter0 0361 :lineno-match: 0362 0363 - This line sets parameter :varlink:`nTimeSteps`, the (integer) number of timesteps the model will integrate forward. Below, 0364 we have set this to integrate for just 10 time steps, for MITgcm automated testing purposes (:numref:`code_testing_protocols`). 0365 To integrate the solution to near steady state, 0366 uncomment the line further down where we set the value to 77760 time steps. When you make this change, 0367 be sure to also uncomment the next line that sets :varlink:`monitorFreq` (see below). 0368 0369 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0370 :start-at: nTimeSteps=10 0371 :end-at: nTimeSteps=10 0372 :lineno-match: d67096e55c Jeff*0373 94151a9b18 Jeff*0374 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0375 :start-at: for longer 0376 :end-at: Freq=864 0377 :lineno-match: 0378 0379 - This line sets parameter :varlink:`deltaT`, the timestep used in stepping forward the model, to 1200 seconds. 0380 In combination with the larger value of :varlink:`nTimeSteps` mentioned above, 0381 we have effectively set the model to integrate forward for :math:`77760 \times 1200 \text{ s} = 3.0` years (based on 360-day years), long enough for the solution to approach equilibrium. 0382 0383 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0384 :start-at: deltaT 0385 :end-at: deltaT 0386 :lineno-match: 0387 0388 .. _barot_describe_checkp: 0389 0390 - These lines control the frequency at which restart (a.k.a. pickup) files are dumped by MITgcm. 0391 Here the value of :varlink:`pChkptFreq` is set to 31,104,000 seconds (=1.0 years) of model time;** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 393.
0392 this controls the frequency of “permanent” checkpoint pickup files. With permanent files,** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 394.
0393 the model’s iteration number is part of the file name (as the filename “suffix”; see :numref:`other_output`) 0394 in order to save it as a labelled, permanent, pickup state. 0395 The value of :varlink:`ChkptFreq` is set to 15,552,000 seconds (=0.5 years); the pickup files 0396 written at this frequency but will NOT include the iteration number in the filename, 0397 instead toggling between ``ckptA`` and ``ckptB`` in the filename, and thus these 0398 files will be overwritten with new data every 2 :math:`\times` 15,552,000 seconds. 0399 Temporary checkpoint files can be written more frequently without requiring additional disk space, 0400 for example to peruse (or re-run) the model state prior to an instability, 0401 or restart following a computer crash, etc. 0402 Either type of checkpoint file can be used to restart the model. 0403 0404 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0405 :start-at: pChkptFreq 0406 :end-at: chkptFreq 0407 :lineno-match: 0408 0409 - This line sets parameter :varlink:`dumpFreq`, frequency of writing model state 0410 snapshot diagnostics (of relevance in this setup: variables :math:`u`, :math:`v`, and :math:`\eta`). 0411 Here, we opt for a snapshot of model state every 15,552,000 seconds (=0.5 years), or after every 12960 time steps of integration. 0412 0413 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0414 :start-at: dumpFreq 0415 :end-at: dumpFreq 0416 :lineno-match: 0417 d67096e55c Jeff*0418 - These lines are set to dump monitor output (see :numref:`pkg_monitor`) every 1200 seconds (i.e., every time step) to standard output. 94151a9b18 Jeff*0419 While this monitor frequency is needed for MITgcm automated testing, this is too much output for our tutorial run. Comment out this line 0420 and uncomment the line where :varlink:`monitorFreq` is set to 864,000 seconds, i.e., output every 10 days. d67096e55c Jeff*0421 Parameter :varlink:`monitorSelect` is set to 2 here to reduce output of non-applicable quantities for this simple example. 94151a9b18 Jeff*0422 0423 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0424 :start-at: monitorFreq 0425 :end-at: monitorSelect 0426 :lineno-match: 0427 0428 PARM04 - Gridding parameters d67096e55c Jeff*0429 ############################ 94151a9b18 Jeff*0430 0431 - This line sets parameter :varlink:`usingCartesianGrid`, which specifies that the simulation will use a Cartesian coordinate system. 0432 0433 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0434 :start-at: usingCartesianGrid 0435 :end-at: usingCartesianGrid 0436 :lineno-match: 0437 0438 - These lines set the horizontal grid spacing of the model grid, as vectors :varlink:`delX` and :varlink:`delY` 0439 (i.e., :math:`\Delta x` and :math:`\Delta y` respectively). 0440 This syntax indicates that we specify 62 values in both the :math:`x` and :math:`y` directions, which matches the 0441 domain size as specified in :filelink:`SIZE.h <verification/tutorial_barotropic_gyre/code/SIZE.h>`. d67096e55c Jeff*0442 Grid spacing is set to :math:`20 \times 10^{3}`m (=20 km). 94151a9b18 Jeff*0443 0444 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0445 :start-at: delX 0446 :end-at: delY 0447 :lineno-match: 0448 0449 - The cartesian grid default origin is (0,0) so here we set the origin with 0450 parameters :varlink:`xgOrigin` and :varlink:`ygOrigin` to (-20000,-20000), 0451 accounting for the bordering solid wall. 0452 The centers of the grid boxes will thus be at -10 km, 10 km, 30 km, 50 km, ..., 0453 in both :math:`x` and :math:`y` directions. 0454 0455 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0456 :start-at: xgOrigin 0457 :end-at: ygOrigin 0458 :lineno-match: 0459 0460 - This line sets parameter :varlink:`delR`, the vertical grid spacing in the :math:`z`-coordinate (i.e., :math:`\Delta z`), to 5000m. 0461 0462 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0463 :start-at: delR 0464 :end-at: delR 0465 :lineno-match: d67096e55c Jeff*0466 94151a9b18 Jeff*0467 PARM05 - Input datasets 0468 ####################### 0469 0470 - This line sets parameter :varlink:`bathyFile`, the name of the bathymetry file. 0471 See :numref:`baro_gyre_bathy_file` for information about the file format. 0472 0473 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0474 :start-at: bathyFile 0475 :end-at: bathyFile 0476 :lineno-match: d67096e55c Jeff*0477 94151a9b18 Jeff*0478 - These lines specify the names of the files from which the surface wind stress is read. 0479 There is a separate file for the :math:`x`-direction (:varlink:`zonalWindFile`) and the :math:`y`-direction (:varlink:`meridWindFile`). 0480 Note, here we have left the latter parameter blank, as there is no meridional wind stress forcing in our example. d67096e55c Jeff*0481 94151a9b18 Jeff*0482 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data 0483 :start-at: zonalWindFile 0484 :end-at: meridWindFile 0485 :lineno-match: 0486 0487 File :filelink:`input/data.pkg <verification/tutorial_barotropic_gyre/input/data.pkg>` 0488 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0489 0490 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/data.pkg 0491 :linenos: 0492 :caption: verification/tutorial_barotropic_gyre/input/data.pkg 0493 0494 This file does not set any namelist parameters, yet is necessary to run -- only standard packages 0495 (i.e., those compiled in MITgcm by default) are required for this setup, so no other customization is necessary. 0496 We will demonstrate how to include additional packages 0497 in other tutorial experiments. 0498 0499 File :filelink:`input/eedata <verification/tutorial_barotropic_gyre/input/eedata>` 0500 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0501 0502 .. literalinclude:: ../../../verification/tutorial_barotropic_gyre/input/eedata 0503 :linenos: 0504 :caption: verification/tutorial_barotropic_gyre/input/eedata 0505 0506 This file uses standard default values (i.e., MITgcm default is single-threaded) and does not contain 0507 customizations for this experiment. 0508 0509 .. _baro_gyre_bathy_file: 0510 0511 File ``input/bathy.bin`` 0512 ^^^^^^^^^^^^^^^^^^^^^^^^ 0513 0514 This file is a 2-D(:math:`x,y`) map of bottom bathymetry, specified as the :math:`z`-coordinate of the solid bottom boundary. 0515 Here, the value is set to -5000 m everywhere except along the N, S, E, and W edges of the array, where the** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 517.
0516 value is set to 0 (i.e., “land”). As discussed in :numref:`sec_baro_num_config`, the domain in MITgcm is assumed doubly periodic 0517 (i.e., periodic in both :math:`x`- and :math:`y`-directions), so boundary walls d67096e55c Jeff*0518 are necessary to set up our enclosed box domain. 94151a9b18 Jeff*0519 The matlab program :filelink:`verification/tutorial_barotropic_gyre/input/gendata.m` ce0d9af5ea Jeff*0520 was used to generate this bathymetry file (alternatively, see python equivalent 0521 :filelink:`gendata.py <verification/tutorial_barotropic_gyre/input/gendata.py>`). By default, this file is assumed to 83cdbd2346 Jeff*0522 contain 32-bit (single precision) binary numbers. 0523 See :numref:`sec_mitgcm_inp_file_format` for additional information on MITgcm input data file format specifications. 94151a9b18 Jeff*0524 0525 .. _baro_gyre_windx_cosy: 0526 0527 File ``input/windx_cosy.bin`` 0528 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0529 0530 Similar to file ``input/bathy.bin``, this file is a 2-D(:math:`x,y`) 0531 map of :math:`\tau_{x}` wind stress values, formatted in the same manner. 0532 The units are Nm\ :sup:`--2`. Although :math:`\tau_{x}` is only a function of :math:`y` in this experiment, 0533 this file must still define a complete 2-D map in order d67096e55c Jeff*0534 to be compatible with the standard code for loading forcing fields 94151a9b18 Jeff*0535 in MITgcm. The matlab program :filelink:`verification/tutorial_barotropic_gyre/input/gendata.m` ce0d9af5ea Jeff*0536 was used to generate this wind stress file (alternatively, see python equivalent 0537 :filelink:`gendata.py <verification/tutorial_barotropic_gyre/input/gendata.py>`). 0538 To run the barotropic jet variation of this tutorial example (see :numref:`baro_jet_solution`), 0539 you will in fact need to run one of these 0540 programs to generate the file ``input/windx_siny.bin``. 94151a9b18 Jeff*0541 0542 .. _baro_gyre_build_run: 0543 0544 Building and running the model 0545 ------------------------------ 0546 0547 To configure and compile the code (following the procedure described in :numref:`building_quickstart`): 0548 0549 :: 0550 0551 cd build 0552 ../../../tools/genmake2 -mods ../code -of my_platform_optionFile 0553 make depend 0554 make 0555 cd .. 0556 0557 To run the model (following the procedure in :numref:`run_the_model`): 0558 0559 :: 0560 0561 cd run 0562 ln -s ../input/* . 0563 ln -s ../build/mitgcmuv . 0564 ./mitgcmuv > output.txt 0565 d67096e55c Jeff*0566 .. _barotropic_gyre_std_out: 94151a9b18 Jeff*0567 0568 Standard output 0569 ~~~~~~~~~~~~~~~ 0570** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 572.
0571 Your run’s standard output file should be similar to :filelink:`verification/tutorial_barotropic_gyre/results/output.txt`. 0572 The standard output is essentially a log file of the model run. The following information is included (in rough order): 0573 0574 - startup information including MITgcm checkpoint release number and other execution environment information, 0575 and a list of activated packages (including all default packages, as well as optional packages). 0576 0577 - the text from all ``data.*`` and other critical files (in our example here, 0578 :filelink:`eedata <verification/tutorial_barotropic_gyre/input/eedata>`, 0579 :filelink:`SIZE.h <verification/tutorial_barotropic_gyre/code/SIZE.h>`, 0580 :filelink:`data <verification/tutorial_barotropic_gyre/input/data>`, 0581 and :filelink:`data.pkg <verification/tutorial_barotropic_gyre/input/data.pkg>`). 0582 0583 - information about the grid and bathymetry, including dumps of all grid variables (only if Cartesian or spherical polar coordinates used, as is the case here). 0584 0585 - all runtime parameter choices used by the model, including all model defaults as well as user-specified parameters. 0586 0587 - monitor statistics at regular intervals (as specified by parameter 0588 :varlink:`monitorFreq` in :filelink:`data <verification/tutorial_barotropic_gyre/input/data>`. See :numref:`pkg_monitor`). 0589 0590 - output from the 2-D conjugate gradient solver. More specifically, statistics from the right-hand side of the elliptic 0591 equation -- for our linear free-surface, see eq. :eq:`elliptic-backward-free-surface` -- are dumped for every model time step. If the model solution 0592 blows up, these statistics will increase to infinity, so one can see exactly when the problem occurred (i.e., to aid in debugging). Additional 0593 solver variables, such as number of iterations and residual, are included with the monitor statistics. 0594 0595 - a summary of end-of-run execution information, including user-, wall- and system-time elapsed during execution, 0596 and tile communication statistics. d67096e55c Jeff*0597 These statistics are provided for the overall run, and also broken down by time spent in various subroutines. 94151a9b18 Jeff*0598 0599 Different setups using non-standard packages and/or different parameter choices will include 0600 additional or different output as part of the standard output. It is also possible to select more or less output 0601 by changing the parameter :varlink:`debugLevel` in :filelink:`data <verification/tutorial_barotropic_gyre/input/data>`; see (missing doc for pkg debug). 0602 0603 ``STDERR.0000`` - if errors (or warnings) occurred during the run, helpful warning and/or error message(s) would appear in this file. 0604 0605 .. _other_output: 0606 0607 Other output files 0608 ~~~~~~~~~~~~~~~~~~ 0609 0610 In addition to raw binary data files with ``.data`` extension, each binary file has a corresponding ``.meta`` file. These plain-text files include d67096e55c Jeff*0611 information about the array size, precision (i.e., ``float32`` or ``float64``), and if relevant, time information and/or 94151a9b18 Jeff*0612 a list of these fields included in the binary file. The ``.meta`` files are used by MITgcm :filelink:`utils` when binary data are read. 0613 0614 The following output files are generated: 0615 0616 **Grid Data**: see :numref:`spatial_discret_dyn_eq` for definitions and description of the `Arakawa C-grid <https://en.wikipedia.org/wiki/Arakawa_grids>`_ d67096e55c Jeff*0617 staggering of model variables. 94151a9b18 Jeff*0618 0619 - ``XC``, ``YC`` - grid cell center point locations 0620 - ``XG``, ``YG`` - locations of grid cell vertices 0621 - ``RC``, ``RF`` - vertical cell center and cell faces positions 0622 - ``DXC``, ``DYC`` - grid cell center point separations (:numref:`hgrid-abcd` b) 0623 - ``DXG``, ``DYG`` - separation of grid cell vertices (:numref:`hgrid-abcd` a) 0624 - ``DRC``, ``DRF`` - separation of vertical cell centers and faces, respectively** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 626.
0625 - ``RAC``, ``RAS``, ``RAW``, ``RAZ`` - areas of the grid “tracer cells”, “southern cells”,** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 627.
0626 “western cells” and “vorticity cells”, respectively (:numref:`hgrid-abcd`)** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 628.
0627 - ``hFacC``, ``hFacS``, ``hFacW`` - fractions of the grid cell in the vertical which are “open” as defined 0628 in the center and on the southern and western boundaries, respectively. 0629 These variables effectively contain the configuration bathymetric (or topographic) information. 0630 - ``Depth`` - bathymetry depths 0631 d67096e55c Jeff*0632 All these files contain 2-D(:math:`x,y`) data except ``RC``, ``RF``, ``DRC``, ``DRF``, which are 1-D(:math:`z`), 94151a9b18 Jeff*0633 and ``hFacC``, ``hFacS``, ``hFacW``, which contain 3D(:math:`x,y,z`) data. Units for the grid files depends on one's choice of model grid; 0634 here, they are all in given in meters (or :math:`\text{m}^2` for areas). 0635 0636 .. _tut_barotropic_tilenaming: 0637 0638 All the 2-D grid data files contain ``.001.001`` in their filename, e.g., ``DXC.001.001.data`` -- this is the tile number in ``.XXX.YYY`` format. 0639 Here, we have just a single tile in both x and y, so both tile numbers are ``001``. 0640 Using multiple tiles, the default is that the local tile grid information 0641 would be output separately for each tile (as an example, see the baroclinic gyre tutorial, 0642 which is set up using multiple tiles), producing multiple files for each 2-D grid variable. 0643 0644 **State Variable Snapshot Data**: 0645 0646 ``Eta.0000000000.001.001.data, Eta.0000000000.001.001.meta`` - this is 0647 a binary data snapshot of model dynamic variable 0648 :varlink:`etaN` (the free-surface height) and its meta file, respectively. 0649 Note the tile number is included in the filename, as is the iteration number ``0000000000``, which is simply the time step** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 651.
0650 (the iteration number here is referred to as the “suffix” in 0651 MITgcm parlance; there are options to change this suffix to something other than iteration number). 0652 In other words, this is a dump of the free-surface height from the initialized state, 0653 iteration 0; if you load up this data file, 0654 you will see it is all zeroes. More interesting is the free-surface 0655 height after some time steps have occurred. Snapshots are written according 0656 to our parameter choice :varlink:`dumpFreq`, here set to 15,552,000 seconds, which is every 12960 time steps. 0657 We will examine the model solutions in :numref:`barotropic_gyre_solution`. 0658 The free-surface height is a 2-D(:math:`x,y`) field. 0659 0660 Snapshot files exist for other prognostic model variables, in particular 0661 filenames starting with ``U`` (:varlink:`uVel`), 0662 ``V`` (:varlink:`uVel`), ``T`` (:varlink:`theta`), and ``S`` (:varlink:`salt`); 0663 given our setup, these latter two fields 0664 remain uniform in space and time, thus not very interesting until we 0665 explore a baroclinic gyre setup in tutorial_baroclinic_gyre. 0666 These are all 3-D(:math:`x,y,z`) fields. The format for the file names is similar 0667 to the free-surface height files. Also dumped are snapshots 0668 of diagnosed vertical velocity ``W`` (:varlink:`wVel`) (note that in non-hydrostatic 0669 simulations, ``W`` is a fully prognostic model variable). 0670 0671 **Checkpoint Files**: 0672 0673 The following pickup files are generated: 0674 0675 - ``pickup.0000025920.001.001.data``, ``pickup.0000025920.001.001.meta``, etc. - written at frequency set by :varlink:`pChkptFreq` 0676 - ``pickup.ckptA.001.001.data``, ``pickup.ckptA.001.001.meta``, ``pickup.ckptB.001.001.data``, 0677 ``pickup.ckptB.001.001.meta`` - written at frequency set by :varlink:`ChkptFreq` 0678 0679 **Other Model Output Data**: Model output related to reference density and hydrostatic pressure, in files ``Rhoref``, ``PHrefC``, ``PHrefF``, ``PH``, and ``PHL``, 0680 is discussed in depth :ref:`here <phi_hyd_discussion>` in tutorial :ref:`tutorial_baroclinic_gyre` (as these data are not terribly interesting in this single-layer setup). 0681 0682 .. _barotropic_gyre_solution: 0683 0684 Model Solution 0685 -------------- 0686 0687 After running the model for 77,760 time steps (3.0 years), the solution is near equilibrium. 0688 Given an approximate timescale of one month for barotropic Rossby waves 0689 to cross our model domain, one might expect the solution to require several years to achieve an equilibrium state. 0690 The model solution of free-surface 0691 height :math:`\eta` (proportional to streamfunction) at :math:`t=` 3.0 years is shown in :numref:`barotropic_nl_soln`. 0692 For further details on this solution, particularly examining the effect of the non-linear terms with increasing Reynolds number, 0693 the reader is referred to Pedlosky (1987) :cite:`pedlosky:87` section 5.11. 0694 0695 .. figure:: figs/full_solution.* 0696 :width: 80% 0697 :align: center 0698 :alt: barotropic gyre full solution 0699 :name: barotropic_nl_soln 0700 0701 MITgcm solution to the barotropic gyre example after :math:`t=` 3.0 years of model integration. Free surface height is shown in meters. 0702 0703 Using matlab for example, visualizing output using the :filelink:`utils/matlab/rdmds.m` utility to load the 0704 binary data in ``Eta.0000077760.001.001.data`` is as simple as: 0705 0706 :: 0707 0708 addpath ../../../utils/matlab/ ce0d9af5ea Jeff*0709 XC=rdmds('XC'); 0710 YC=rdmds('YC'); 0711 Eta=rdmds('Eta', 77760); 0712 contourf(XC/1000, YC/1000, Eta, [-.04:.01:.04]) 0713 colorbar 0714 colormap((flipud(hot))) 0715 set(gca, 'XLim', [0 1200]) 0716 set(gca, 'YLim', [0 1200]) 94151a9b18 Jeff*0717 ce0d9af5ea Jeff*0718 or using python (you will need to install the MITgcmutils package, see :numref:`MITgcmutils`): 94151a9b18 Jeff*0719 0720 :: 0721 7621b5d564 Oliv*0722 from MITgcmutils import mds ce0d9af5ea Jeff*0723 import numpy as np 94151a9b18 Jeff*0724 import matplotlib.pyplot as plt ce0d9af5ea Jeff*0725 XC = mds.rdmds('XC') 0726 YC = mds.rdmds('YC') 94151a9b18 Jeff*0727 Eta = mds.rdmds('Eta', 77760) ce0d9af5ea Jeff*0728 plt.contourf(XC/1000, YC/1000, Eta, np.linspace(-0.02, 0.05,8), cmap='hot_r') 0729 plt.colorbar() 0730 plt.show() 0731 0732 (for a more involved example with detailed explanations how to read in model output, 0733 perform calculations using these data, and make plots, see tutorial :ref:`Baroclinic Ocean Gyre <baroclinic_gyre_solution>`) 94151a9b18 Jeff*0734** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 736.
0735 Let’s simplify the example by considering the linear problem where we neglect the advection of momentum terms. 0736 In other words, replace :math:`\frac{Du}{Dt}` and :math:`\frac{Dv}{Dt}` with 0737 :math:`\frac{\partial u}{\partial t}` and :math:`\frac{\partial v}{\partial t}`, respectively, 0738 in in :eq:`baro_model_eq_u` and :eq:`baro_model_eq_v`. 0739 To do so, we uncomment (i.e., remove the leading ``#``) in the 0740 line ``# momAdvection=.FALSE.,`` in file ``data`` and re-run the model. Any existing output files will be overwritten. 0741 0742 For the linearized equations, the Munk layer (equilibrium) analytical solution is given by: 0743 d67096e55c Jeff*0744 .. math:: 0bad585a21 Navi*0745 \eta(x,y) = \frac{\tau_o}{\rho_c g H} \frac{f}{\beta} \left(1 - \frac{x}{L_x}\right) \pi \sin\left(\pi \frac{y}{L_y}\right) 0746 \left[1 - e^{-x/(2\delta_m)} \left(\cos\frac{\sqrt{3}x}{2\delta_m} + \frac{1}{\sqrt{3}} \sin\frac{\sqrt{3}x}{2\delta_m} \right) \right] 94151a9b18 Jeff*0747 0bad585a21 Navi*0748 where :math:`\delta_m = (A_{h} / \beta)^{\frac{1}{3}}`. :numref:`lin_anal_soln` 94151a9b18 Jeff*0749 displays the MITgcm output after switching off momentum advection vs. 0750 the analytical solution to the linearized equations. Success! 0751 0752 .. figure:: figs/lin_anal_soln.* 0753 :width: 100% 0754 :align: center 0755 :alt: barotropic gyre linearized solution 0756 :name: lin_anal_soln 0757 0758 Comparison of free surface height for the near-equilibrium MITgcm solution (:math:`t=` 3.0 years) with momentum advection switched off (left) and the analytical equilibrium solution to the linearized equation (right). 0759** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 761.
0760 Finally, let’s examine one additional simulation where we change the cosine profile of wind stress forcing to a sine profile. d67096e55c Jeff*0761 First, run the matlab script :filelink:`verification/tutorial_barotropic_gyre/input/gendata.m` to generate the alternate sine 94151a9b18 Jeff*0762 profile wind stress, and place a copy in your run directory. Then, 0763 in file :filelink:`data <verification/tutorial_barotropic_gyre/input/data>`,** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 765.
0764 replace the line ``zonalWindFile='windx_cosy.bin’,`` with ``zonalWindFile='windx_siny.bin’,``. 0765 0766 .. figure:: figs/baro_jet_solution.* 0767 :width: 80% 0768 :align: center 0769 :alt: barotropic jet linearized solution 0770 :name: baro_jet_solution 0771 0772 MITgcm equilibrium solution to the barotropic setup with alternate sine profile of wind stress forcing, producing a barotropic jet. 0773** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 775.
0774 The free surface solution given this forcing is shown in :numref:`baro_jet_solution`. Two “half gyres” are separated by a strong jet.** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030.
0775 We’ll look more at the solution to this “barotropic jet” setup in later tutorial examples.
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated from https://github.com/darwinproject/darwin3 by the 2.3.7-MITgcm-0.1 LXR engine. The LXR team |
|