Welcome to MITgcm’s user manual
- 1. Overview
- 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.4. Appendix ATMOSPHERE
- 1.5. Appendix OCEAN
- 1.6. Appendix OPERATORS
- 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.11. Spatial discretization of the dynamical equations
- 2.12. Continuity and horizontal pressure gradient term
- 2.13. Hydrostatic balance
- 2.14. Flux-form momentum equations
- 2.15. Vector invariant momentum equations
- 2.16. Tracer equations
- 2.17. Advection schemes
- 2.18. Shapiro Filter
- 2.19. Nonlinear Viscosities for Large Eddy Simulation
- 3. Getting Started with MITgcm
- 3.1. Where to find information
- 3.2. Obtaining the code
- 3.3. Updating the code
- 3.4. Model and directory structure
- 3.5. Building the model
- 3.6. Running the model
- 3.7. Customizing the Model Configuration - Code Parameters and Compilation Options
- 3.8. Customizing the Model Configuration - Runtime Parameters
- 3.8.1. Parameters: Configuration, Computational Domain, Geometry, and Time-Discretization
- 3.8.2. Parameters: Main Algorithmic Parameters
- 3.8.3. Parameters: Equation of State
- 3.8.4. Parameters: Momentum Equations
- 3.8.5. Parameters: Tracer Equations
- 3.8.6. Parameters: Model Forcing
- 3.8.7. Parameters: Simulation Controls
- 3.8.8. Parameters Used In Optional Packages
- 3.8.9. Execution Environment Parameters
- 3.9. MITgcm Input Data File Format
- 4. MITgcm Tutorial Example Experiments
- 4.1. Barotropic Ocean Gyre
- 4.2. Baroclinic Ocean Gyre
- 4.3. Southern Ocean Reentrant Channel Example
- 4.4. Ocean Gyre Advection Schemes
- 4.5. Global Ocean Simulation
- 4.6. Global Ocean Simulation in Pressure Coordinates
- 4.7. Held-Suarez Atmosphere
- 4.8. Deep Convection
- 4.9. Gravity Plume On a Continental Slope
- 4.10. Biogeochemistry Simulation
- 4.11. Global Ocean State Estimation
- 4.12. Adjoint Sensitivity Analysis for Tracer Injection
- 4.13. Offline Experiments
- 4.14. Rotating Tank
- 4.15. Additional Example Experiments: Forward Model Setups
- 4.16. Additional Example Experiments: Adjoint Model Setups
- 5. Contributing to the MITgcm
- 6. Software Architecture
- 7. Automatic Differentiation
- 7.1. Some basic algebra
- 7.2. TLM and ADM generation in general
- 7.3. The gradient check package
- 7.4. Adjoint dump & restart – divided adjoint (DIVA)
- 7.5. Adjoint code generation using OpenAD
- 7.6. Adjoint code generation using Tapenade
- 7.6.1. Introduction
- 7.6.2. Downloading and installing Tapenade
- 7.6.3. Prerequisites for Linux or Mac OS
- 7.6.4. Steps for Mac OS
- 7.6.5. Steps for Linux
- 7.6.6. Prerequisites for Windows
- 7.6.7. Steps for Windows
- 7.6.8. Prerequisites for Tapenade setup
- 7.6.9. Building MITgcm TLM with Tapenade
- 7.6.10. Building MITgcm adjoint with Tapenade
- 8. Packages I - Physical Parameterizations
- 8.1. Overview
- 8.2. Packages Related to Hydrodynamical Kernel
- 8.3. General purpose numerical infrastructure packages
- 8.4. Ocean Packages
- 8.4.1. GMREDI: Gent-McWilliams/Redi Eddy Parameterization
- 8.4.2. KPP: Nonlocal K-Profile Parameterization for Vertical Mixing
- 8.4.3. GGL90: a TKE vertical mixing scheme
- 8.4.4. OPPS: Ocean Penetrative Plume Scheme
- 8.4.5. KL10: Vertical Mixing Due to Breaking Internal Waves
- 8.4.6. BULK_FORCE: Bulk Formula Package
- 8.4.7. EXF: The external forcing package
- 8.4.8. CAL: The calendar package
- 8.5. Atmosphere Packages
- 8.6. Ice and Sea Ice Packages
- 8.7. Biogeochemistry Packages
- 9. Packages II - Diagnostics and I/O
- 9.1. pkg/diagnostics – A Flexible Infrastructure
- 9.2. Fortran Native I/O: pkg/mdsio and pkg/rw
- 9.3. NetCDF I/O: pkg/mnc
- 9.4. Monitor: Simulation State Monitoring Toolkit
- 9.5. Grid Generation
- 9.6. Pre– and Post–Processing Scripts and Utilities
- 9.7. Potential Vorticity Matlab Toolbox
- 9.8. pkg/flt – Simulation of float / parcel displacements
- 10. Ocean State Estimation Packages
- 10.1. ECCO: model-data comparisons using gridded data sets
- 10.2. PROFILES: model-data comparisons at observed locations
- 10.3. CTRL: Model Parameter Adjustment Capability
- 10.4. SMOOTH: Smoothing And Covariance Model
- 10.5. The line search optimisation algorithm
- 10.6. Test Cases For Estimation Package Capabilities
- 11. Utilities
- 12. Related Projects and Highlighted Papers
- 12.1. Projects Related to MITgcm
- 12.1.1. Estimating the Circulation and Climate of the Ocean (ECCO)
- 12.1.2. Gcmfaces: Gridded Earth Variables In Matlab And Octave
- 12.1.3. MITprof: In-Situ Ocean Data In Matlab And Octave
- 12.1.4. OceanParcels - Lagrangian Particle Tracker
- 12.1.5. Southern Ocean State Estimation (SOSE)
- 12.1.6. Xgcm: General Circulation Model Postprocessing with xarray
- 12.1.7. Xmitgcm
- 12.2. Highlighted Papers
- 12.1. Projects Related to MITgcm
- 13. References