Quick Links
About Release1
Install: Getting started
Downloading
Building the code
Running the code
Tutorials
Barotropic gyre
Baroclinic gyre
Global ocean
Open ocean convection
Gravity plume
Held-Saurez atmosphere
Documentation
Continuous formulation
Numerical discretization
Vector invariant equations
2.16 Linear advection schemes> Linear advection Schemes
2.17 Non-linear advection schemes> Non-linear advection Schemes
About
Installation
Tutorials
Documentation
1.1 Introduction
1.3 Continuous equations in `r' coordinates
2. Discretization and Algorithm
4. Software Architecture
5. Automatic Differentiation
6. Physical Parameterization and Packages
7. Diagnostics and tools
8. Interface with ECCO
Browse Code
 
PDF file (9Mb)
PS file (7Mb)
Next:
1. Overview of MITgcm
Up:
MITGCM USER MANUAL
Previous:
MITGCM USER MANUAL
Contents
1. Overview of MITgcm
1.1 Introduction
1.2 Illustrations of the model in action
1.2.1 Global atmosphere: `Held-Suarez' benchmark
1.2.2 Ocean gyres
1.2.3 Global ocean circulation
1.2.4 Convection and mixing over topography
1.2.5 Boundary forced internal waves
1.2.6 Parameter sensitivity using the adjoint of MITgcm
1.2.7 Global state estimation of the ocean
1.2.8 Ocean biogeochemical cycles
1.2.9 Simulations of laboratory experiments
1.3 Continuous equations in `r' coordinates
1.3.1 Kinematic Boundary conditions
1.3.2 Atmosphere
1.3.3 Ocean
1.3.4 Hydrostatic, Quasi-hydrostatic, Quasi-nonhydrostatic and Non-hydrostatic forms
1.3.5 Solution strategy
1.3.6 Finding the pressure field
1.3.7 Forcing/dissipation
1.3.8 Vector invariant form
1.3.9 Adjoint
1.4 Appendix ATMOSPHERE
1.4.1 Hydrostatic Primitive Equations for the Atmosphere in pressure coordinates
1.5 Appendix OCEAN
1.5.1 Equations of motion for the ocean
1.6 Appendix:OPERATORS
1.6.1 Coordinate systems
2. Discretization and Algorithm
2.1 Notation
2.2 Time-stepping
2.3 Pressure method with rigid-lid
2.4 Pressure method with implicit linear free-surface
2.5 Explicit time-stepping: Adams-Bashforth
2.6 Implicit time-stepping: backward method
2.7 Synchronous time-stepping: variables co-located in time
2.8 Staggered baroclinic time-stepping
2.9 Non-hydrostatic formulation
2.10 Variants on the Free Surface
2.10.1 Crank-Nicolson barotropic time stepping
2.10.2 Non-linear free-surface
2.11 Spatial discretization of the dynamical equations
2.11.1 The finite volume method: finite volumes versus finite difference
2.11.2 C grid staggering of variables
2.11.3 Grid initialization and data
2.11.4 Horizontal grid
2.11.5 Vertical grid
2.11.6 Topography: partially filled cells
2.12 Continuity and horizontal pressure gradient terms
2.13 Hydrostatic balance
2.14 Flux-form momentum equations
2.14.1 Advection of momentum
2.14.2 Coriolis terms
2.14.3 Curvature metric terms
2.14.4 Non-hydrostatic metric terms
2.14.5 Lateral dissipation
2.14.6 Vertical dissipation
2.14.7 Derivation of discrete energy conservation
2.14.8 Mom Diagnostics
2.15 Vector invariant momentum equations
2.15.1 Relative vorticity
2.15.2 Kinetic energy
2.15.3 Coriolis terms
2.15.4 Shear terms
2.15.5 Gradient of Bernoulli function
2.15.6 Horizontal divergence
2.15.7 Horizontal dissipation
2.15.8 Vertical dissipation
2.16 Tracer equations
2.16.1 Time-stepping of tracers: ABII
2.17 Linear advection schemes
2.17.1 Centered second order advection-diffusion
2.17.2 Third order upwind bias advection
2.17.3 Centered fourth order advection
2.17.4 First order upwind advection
2.18 Non-linear advection schemes
2.18.1 Second order flux limiters
2.18.2 Third order direct space time
2.18.3 Third order direct space time with flux limiting
2.18.4 Multi-dimensional advection
2.19 Comparison of advection schemes
2.20 Shapiro Filter
2.20.1 SHAP Diagnostics
2.21 Nonlinear Viscosities for Large Eddy Simulation
2.21.1 Eddy Viscosity
2.21.2 Mercator, Nondimensional Equations
3. Getting started with MITgcm
3.1 Where to find information
3.2 Obtaining the code
3.2.1 Method 1 - Checkout from CVS
3.2.2 Method 2 - Tar file download
3.3 Model and directory structure
3.4 Building the code
3.4.1 Building/compiling the code elsewhere
3.4.2 Using genmake2
3.4.3 Building with MPI
3.5 Running the model in prognostic mode
3.5.1 Output files
3.5.2 Looking at the output
3.6 Doing it yourself: customizing the model configuration
3.6.1 Parameters: Computational domain, geometry and time-discretization
3.6.2 Parameters: Equation of state
3.6.3 Parameters: Momentum equations
3.6.4 Parameters: Tracer equations
3.6.5 Parameters: Simulation controls
3.7 Testing
3.7.1 Using testreport
3.7.2 Automated testing
3.8 Example experiments
3.8.1 Full list of model examples
3.8.2 Directory structure of model examples
3.9 Barotropic Ocean Gyre In Cartesian Coordinates
3.9.1 Equations Solved
3.9.2 Discrete Numerical Configuration
3.9.3 Code Configuration
3.10 Four Layer Baroclinic Ocean Gyre In Spherical Coordinates
3.10.1 Overview
3.10.2 Equations solved
3.10.3 Discrete Numerical Configuration
3.10.4 Code Configuration
3.10.5 Running The Example
3.11 Ocean Gyre Advection Schemes
3.11.1 Advection and tracer transport
3.11.2 Introducing a tracer into the flow
3.11.3 Selecting an advection scheme
3.11.4 Comparison of different advection schemes
3.11.5 Code and Parameters files for this tutorial
3.12 Global Ocean Simulation at Resolution
3.12.1 Overview
3.12.2 Discrete Numerical Configuration
3.12.3 Experiment Configuration
3.13 Global Ocean Simulation at Resolution in Pressure Coordinates
3.13.1 Overview
3.13.2 Discrete Numerical Configuration
3.13.3 Experiment Configuration
3.14 Held-Suarez atmospheric simulation on cube-sphere grid with 32 square cube faces.
3.14.1 Overview
3.14.2 Forcing
3.14.3 Set-up description
3.14.4 Experiment Configuration
3.15 Surface Driven Convection
3.15.1 Overview
3.15.2 Equations solved
3.15.3 Discrete numerical configuration
3.15.4 Numerical stability criteria and other considerations
3.15.5 Experiment configuration
3.15.6 Running the example
3.16 Gravity Plume On a Continental Slope
3.16.1 Configuration
3.16.2 Binary input data
3.16.3 Code configuration
3.16.4 Model parameters
3.16.5 Build and run the model
3.17 Biogeochemistry Tutorial
3.17.1 Overview
3.17.2 Equations Solved
3.17.3 Code configuration
3.17.4 Running the example
3.18 Global Ocean State Estimation at Resolution
3.18.1 Overview
3.18.2 Implementation of the control variable and the cost function
3.18.3 Code Configuration
3.18.4 Compiling
3.18.5 Running the estimation
3.19 Sensitivity of Air-Sea Exchange to Tracer Injection Site
3.19.1 Overview of the experiment
3.19.2 Code configuration
3.19.3 Compiling the model and its adjoint
3.20 Offline Experiments
3.20.1 Overview
3.20.2 Time-stepping of tracers
3.20.3 Code Configuration
3.20.4 Running The Example
3.20.5 A more complicated example
3.21 A Rotating Tank in Cylindrical Coordinates
3.21.1 Overview
3.21.2 Equations Solved
3.21.3 Discrete Numerical Configuration
3.21.4 Code Configuration
4. Software Architecture
4.1 Overall architectural goals
4.2 WRAPPER
4.2.1 Target hardware
4.2.2 Supporting hardware neutrality
4.2.3 WRAPPER machine model
4.2.4 Machine model parallelism
4.2.5 Communication mechanisms
4.2.6 Shared memory communication
4.2.7 Distributed memory communication
4.2.8 Communication primitives
4.2.9 Memory architecture
4.2.10 Summary
4.3 Using the WRAPPER
4.3.1 Specifying a domain decomposition
4.3.2 Starting the code
4.3.3 Controlling communication
4.4 MITgcm execution under WRAPPER
4.4.1 Annotated call tree for MITgcm and WRAPPER
4.4.2 Measuring and Characterizing Performance
4.4.3 Estimating Resource Requirements
5. Automatic Differentiation
5.1 Some basic algebra
5.1.1 Forward or direct sensitivity
5.1.2 Reverse or adjoint sensitivity
5.1.3 Storing vs. recomputation in reverse mode
5.2 TLM and ADM generation in general
5.2.1 General setup
5.2.2 Building the AD code using TAF
5.2.3 The AD build process in detail
5.2.4 The cost function (dependent variable)
5.2.5 The control variables (independent variables)
5.3 The gradient check package
5.3.1 Code description
5.3.2 Code configuration
5.4 Adjoint dump & restart - divided adjoint (DIVA)
5.4.1 Introduction
5.4.2 Recipe 1: single processor
5.4.3 Recipe 2: multi processor (MPI)
5.5 Adjoint code generation using OpenAD
5.5.1 Introduction
5.5.2 Downloading and installing OpenAD
5.5.3 Building MITgcm adjoint with OpenAD
6. Physical Parameterizations - Packages I
6.1 Using MITgcm Packages
6.1.1 Package Inclusion/Exclusion
6.1.2 Package Activation
6.1.3 Package Coding Standards
6.2 Packages Related to Hydrodynamical Kernel
6.2.1 Generic Advection/Diffusion
6.2.2 Shapiro Filter
6.2.3 FFT Filtering Code
6.2.4 exch2: Extended Cubed Sphere Topology
6.2.5 Gridalt - Alternate Grid Package
6.3 General purpose numerical infrastructure packages
6.3.1 OBCS: Open boundary conditions for regional modeling
6.3.2 RBCS Package
6.3.3 PTRACERS Package
6.4 Ocean Packages
6.4.1 GMREDI: Gent-McWilliams/Redi SGS Eddy Parameterization
6.4.2 KPP: Nonlocal K-Profile Parameterization for Vertical Mixing
6.4.3 GGL90: a TKE vertical mixing scheme
6.4.4 OPPS: Ocean Penetrative Plume Scheme
6.4.5 KL10: Vertical Mixing Due to Breaking Internal Waves
6.4.6 BULK_FORCE: Bulk Formula Package
6.4.7 EXF: The external forcing package
6.4.8 CAL: The calendar package
6.5 Atmosphere Packages
6.5.1 Atmospheric Intermediate Physics: AIM
6.5.2 Land package
6.5.3 Fizhi: High-end Atmospheric Physics
6.6 Sea Ice Packages
6.6.1 THSICE: The Thermodynamic Sea Ice Package
6.6.2 SEAICE Package
6.6.3 SHELFICE Package
6.6.4 STREAMICE Package
6.7 Packages Related to Coupled Model
6.7.1 Coupling interface for Atmospheric Intermediate code
6.7.2 Coupler for mapping between Atmosphere and ocean
6.7.3 Toolkit for building couplers
6.8 Biogeochemistry Packages
6.8.1 GCHEM Package
6.8.2 DIC Package
7. Diagnostics and I/O - Packages II, and Post-Processing Utilities
7.1 Diagnostics-A Flexible Infrastructure
7.1.1 Introduction
7.1.2 Equations
7.1.3 Key Subroutines and Parameters
7.1.4 Usage Notes
7.1.5 Dos and Donts
7.1.6 Diagnostics Reference
7.2 NetCDF I/O: MNC
7.2.1 Using MNC
7.2.2 MNC Troubleshooting
7.2.3 MNC Internals
7.3 Fortran Native I/O: MDSIO and RW
7.3.1 MDSIO
7.3.2 RW Basic binary I/O utilities
7.4 Monitor: Simulation state monitoring toolkit
7.4.1 Introduction
7.4.2 Using Monitor
7.5 Grid Generation
7.5.1 Using SPGrid
7.5.2 Example Grids
7.6 Pre- and Post-Processing Scripts and Utilities
7.6.1 Utilities supplied with the model
7.6.2 Pre-processing software
7.7 Potential vorticity Matlab Toolbox
7.7.1 Introduction
7.7.2 Equations
7.7.3 Key routines
7.7.4 Technical details
7.7.5 Notes on the flux form of the PV equation and vertical PV fluxes
8. Ocean State Estimation Packages
8.1 ECCO: model-data comparisons using gridded data sets
8.1.1 Generic Cost Function
8.1.2 Generic Integral Function
8.1.3 Custom Cost Functions
8.1.4 Key Routines
8.1.5 Compile Options
8.2 PROFILES: model-data comparisons at observed locations
8.3 CTRL: Model Parameter Adjustment Capability
8.4 SMOOTH: Smoothing And Covariance Model
8.5 The line search optimisation algorithm
8.5.1 General features
8.5.2 The online vs. offline version
8.5.3 Number of iterations vs. number of simulations
9. Under development
9.1 Other Time-stepping Options
9.1.1 Adams-Bashforth III
9.1.2 Time-extrapolation of tracer (rather than tendency)
10. Previous Applications of MITgcm
Bibliography
mitgcm-support@mitgcm.org
Copyright © 2006 Massachusetts Institute of Technology
Last update 2018-01-23