MOHID Water Modelling System: Integrated Coastal and Estuarine Simulation for Water Quality Assessment
Overview
MOHID (MOdelo HIDrodinâmico) is an open-source, three-dimensional water modelling system developed at Instituto Superior Técnico (IST) in Lisbon, Portugal. Unlike many single-purpose ocean codes, MOHID integrates hydrodynamics, sediment transport, water quality, and oil-spill modules within a single, tightly coupled framework. This makes it particularly well-suited for estuarine and coastal engineers who need to assess nutrient cycling, dissolved oxygen dynamics, and contaminant fate in tidally driven systems—without stitching together disparate model codes.
This article focuses on MOHID's water quality module and its coupling to the hydrodynamic core, covering configuration best practices, key parameterizations, and validation strategies for operational assessments.
Architecture: The MOHID Module Stack
MOHID is organized as a hierarchy of Fortran 95 modules that share a common data structure called the Property object. Each module—hydrodynamics, turbulence, sediment, water quality—reads and writes to this shared object, enabling seamless two-way coupling without explicit inter-model file I/O.
The core modules relevant to water quality work are:
| Module | Function |
|---|---|
ModuleHydrodynamic |
3-D baroclinic flow, free-surface, tidal forcing |
ModuleTurbulence |
k-ε or Mellor-Yamada 2.5 closure |
ModuleWaterProperties |
Temperature, salinity, density |
ModuleWaterQuality |
Nutrients (N, P), DO, BOD, phytoplankton, zooplankton |
ModuleSedimentQuality |
Sediment-bound contaminants, diagenesis |
The water quality module implements a modified version of the CE-QUAL-W2 biogeochemical kinetics, extended to full 3-D. State variables include ammonium (NH₄⁺), nitrate (NO₃⁻), phosphate (PO₄³⁻), dissolved oxygen (DO), biochemical oxygen demand (BOD), chlorophyll-a, and two phytoplankton functional groups.
Setting Up a Water Quality Simulation

Grid and Bathymetry
MOHID uses a sigma-coordinate vertical grid (terrain-following) or a Cartesian z-level grid, selectable per domain. For estuaries with strong stratification and shallow tidal flats, sigma coordinates are preferred. Bathymetry is ingested via the Bathymetry keyword in the .dat configuration file:
BATHYMETRY_FILE : ./Bathymetry/estuary_bathy.hdf5
GRID_FILENAME : ./Grid/estuary_grid.hdf5
WATERPOINTS_NAME: WaterPoints3D
MOHID's native format is HDF5, and the ConvertToHDF5 utility handles conversion from ASCII, NetCDF, or ESRI raster sources.
Boundary Conditions
Tidal forcing at open boundaries is specified as a superposition of harmonic constituents (M2, S2, N2, K1, O1 at minimum). MOHID reads these from a TimeSerie file or directly from a regional model output via the MOHID nesting protocol—a one-way downscaling approach where the coarse-grid model writes boundary snapshots that the fine-grid model reads at runtime.
River inputs (freshwater discharge, nutrient loads) are applied as point sources using the DischargeFile keyword. Nutrient concentrations should be derived from gauged water quality data or regional monitoring databases such as the EU Water Framework Directive reporting datasets.
Water Quality Kinetics Configuration
The key kinetic parameters are set in WaterQuality.dat. Critical parameters for DO and nutrient dynamics include:
- Nitrification rate (
NITRIFICATION_RATE): typically 0.05–0.15 d⁻¹ at 20°C; apply Q₁₀ temperature correction - Reaeration coefficient (
REAERATION_COEF): use the O'Connor-Dobbins formula for tidal channels or specify a wind-speed-dependent formulation - Sediment oxygen demand (
SOD): spatially variable; derive from benthic chamber measurements or literature values for sediment type - Phytoplankton growth rate (
MAX_GROWTH_RATE): 1.5–3.0 d⁻¹ for temperate coastal species; light limitation via a Steele photoinhibition function
Temperature dependence follows an Arrhenius formulation throughout, so calibrating at a single temperature and applying the correction is generally sufficient for seasonal simulations.
Parallelization and Performance
MOHID supports MPI domain decomposition in the horizontal plane. For a typical estuarine domain (~50,000 wet cells, 20 sigma layers), a 32-core run completes a 30-day simulation in approximately 4–6 hours on a modern HPC cluster. The MPI_DECOMPOSITION block in the master .dat file controls the partition:
MPI_DECOMPOSITION_X : 8
MPI_DECOMPOSITION_Y : 4
Load balancing can be an issue when tidal flats wet and dry dynamically; the WETTING_DRYING module uses a minimum depth threshold (typically 0.05 m) to deactivate cells, which can create uneven processor loads. Profiling with gprof or Intel VTune is recommended before scaling beyond 64 cores.
Validation Workflow

A rigorous validation sequence for a water quality application should include:
- Hydrodynamic validation: Compare modelled tidal elevations and current velocities against tide gauge records and ADCP deployments. Target skill scores (Willmott d > 0.90 for elevation, d > 0.80 for velocity).
- Salinity/temperature validation: Assess stratification representation using CTD profiles; check halocline depth and vertical mixing intensity.
- Water quality validation: Compare modelled DO, chlorophyll-a, and nutrient concentrations against monitoring station data. Use normalized root-mean-square error (NRMSE < 30%) and bias metrics.
- Sensitivity analysis: Vary SOD (±50%), nitrification rate (±50%), and reaeration coefficient (±30%) to identify dominant uncertainty sources.
MOHID's built-in TimeSeries output module writes model results at monitoring station locations directly to ASCII files, simplifying comparison with observational data.
Practical Applications
MOHID has been applied extensively in:
- Ria de Aveiro (Portugal): Nutrient dynamics and eutrophication risk assessment under climate change scenarios
- Tagus Estuary: Oil spill trajectory forecasting and sensitivity to tidal phase
- Maputo Bay (Mozambique): Coastal water quality management for fisheries protection
- Minho/Miño Estuary (Spain-Portugal border): Cross-border water quality governance under the EU WFD
The model's open-source license (GPL) and active community forum at mohid.com make it accessible for research institutions and environmental consultancies alike.
Getting Started
- Source code: GitHub – MOHID-Numerics
- Documentation: MOHID Wiki
- Test cases: Distributed with the source; the
TagusandAveiroexamples are well-documented starting points - Community: MOHID Forum for configuration questions and validation benchmarks
For practitioners transitioning from EFDC or Delft3D-WAQ, MOHID's modular architecture and HDF5-based I/O will feel familiar, while the integrated Python post-processing library (mohid_toolbox) reduces the scripting overhead for routine analysis tasks.
MOHID is actively maintained by the MARETEC research group at IST Lisbon. The latest stable release as of 2026 is version 21.x, with ongoing development of GPU-accelerated turbulence closures and machine-learning-assisted parameter estimation.