Back to home page

MITgcm

 
 

    


Warning, /doc/algorithm/c-grid.rst is written in an unsupported language. File is not indexed.

view on githubraw file Latest commit 4f2617d4 on 2018-02-08 20:33:46 UTC
4f2617d475 Jeff*0001 C grid staggering of variables
                0002 ------------------------------
                0003 
                0004 The basic algorithm employed for stepping forward the momentum equations
                0005 is based on retaining non-divergence of the flow at all times. This is
                0006 most naturally done if the components of flow are staggered in space in
                0007 the form of an Arakawa C grid (Arakawa and Lamb, 1977 :cite:`arakawa:77`).
                0008 
                0009 :numref:`cgrid3d` shows the components of flow
                0010 (:math:`u`,\ :math:`v`,\ :math:`w`) staggered in space such that the
                0011 zonal component falls on the interface between continuity cells in the
                0012 zonal direction. Similarly for the meridional and vertical directions.
                0013 The continuity cell is synonymous with tracer cells (they are one and
                0014 the same).
                0015 
                0016   .. figure:: figs/cgrid3d.*
                0017     :width: 40%
                0018     :align: center
                0019     :alt: cgrid3d
                0020     :name: cgrid3d
                0021 
                0022     Three dimensional staggering of velocity components. This facilitates the natural discretization of the continuity and tracer equations.
                0023 
                0024 Grid initialization and data
                0025 ----------------------------
                0026 
                0027 Initialization of grid data is controlled by subroutine :filelink:`INI_GRID <model/src/ini_grid.F>`
                0028 which in calls :filelink:`INI_VERTICAL_GRID <model/src/ini_vertical_grid.F>` to initialize the vertical grid,
                0029 and then either of :filelink:`INI_CARTESIAN_GRID <model/src/ini_cartesian_grid.F>`,
                0030 :filelink:`INI_SPHERICAL_POLAR_GRID <model/src/ini_spherical_polar_grid.F>`
                0031 or :filelink:`INI_CURVILINEAR_GRID <model/src/ini_curvilinear_grid.F>` to initialize the horizontal grid for
                0032 cartesian, spherical-polar or curvilinear coordinates respectively.
                0033 
                0034 The reciprocals of all grid quantities are pre-calculated and this is
                0035 done in subroutine :filelink:`INI_MASKS_ETC <model/src/ini_masks_etc.F>` which is called later by subroutine
                0036 :filelink:`INITIALISE_FIXED <model/src/initialise_fixed.F>`.
                0037 
                0038 All grid descriptors are global arrays and stored in common blocks in
                0039 :filelink:`GRID.h <model/inc/GRID.h>` and a generally declared as ``_RS``.
                0040