Model:ENCflow

From CSDMS


ENCflow


Metadata

Also known as
Model type Single
Model part of larger framework
Note on status model
Date note status model
Incorporated models or components:
Spatial dimensions 2D
Spatial extent Regional-Scale, Landscape-Scale, Watershed-Scale, Reach-Scale, Patch-Scale
Model domain Terrestrial, Hydrology, Coastal, Cryosphere
One-line model description Multi-process 2-D shallow-water model on an eight-neighbor connected raster grid for floods, runoff, groundwater, sediment, snow/ice and landscape evolution
Extended model description ENCflow is a Fortran program that solves the two-dimensional shallow water equations on an original eight-neighborhood connected collocated raster grid (ENC grid; Tada, 2026, Hydrological Research Letters, doi:10.3178/hrl.25-00052). Flow along all eight directions, including the diagonals, suppresses the grid-direction-dependent spurious depressions and flow blockages of four-neighbor rasters.

Around this hydraulic core, many surface-water processes can be computed simultaneously on the same grid and in the same time evolution: river flooding with subgrid channels, levee breach and hydraulic structures; storm surge and tsunami from generation to run-up, with an optional one-layer non-hydrostatic correction; rainfall-runoff with interception, evapotranspiration, Green-Ampt infiltration and two-layer groundwater; fresh/salt two-layer seawater intrusion; urban pluvial flooding with a sewer conduit continuum; bed-load and suspended-load morphodynamics, meandering, hillslope erosion, slope failure and debris flow; driftwood and building debris; volcanic mass flows and lava flows; water quality; snow, frozen ground and glaciers; and long-term landscape evolution.

Each process is enabled simply by providing its input file. A process that is not enabled costs no memory and no CPU time and needs no parameter file. ENCflow is therefore both a self-contained model and, through its BMI 2.0 interface, a small component that another model can call to supply a process it lacks; its minimal configuration is a fast 2-D flood model.

The code uses only the Fortran language standard, OpenMP and MPI, with zero external libraries. The same source runs on a laptop and on a supercomputer, and results are bit-identical regardless of the number of MPI ranks under matched build conditions. The optional BMI adapter passes the CSDMS bmi-tester for a single grid, for nested grids and for feature-dependent variables, and comes with a numpy-only Python wrapper and a step-by-step tutorial. About 70 verification cases separate regression against reference results from checks against analytical solutions and conservation laws, and run in continuous integration.

ENCflow deliberately stays depth-averaged, constant-density and two-dimensional; wind waves, density stratification, deep groundwater and individual sewer pipes are left to specialist models.

Keywords:

Shallow water equations, flooding, inundation, overland flow, rainfall-runoff, groundwater, sediment transport, landscape evolution, Tsunami, debris flow, lava flow, glacier, water quality, ,

Name Tsuyoshi Tada
Type of contact Model developer
Institute / Organization Department of Civil and Environmental Engineering, National Defense Academy of Japan
Postal address 1 1-10-20 Hashirimizu
Postal address 2
Town / City Yokosuka
Postal code 239-8686
State
Country Japan
Email address tadadaze@gmail.com
Phone
Fax


Name So Kazama
Type of contact Model developer
Institute / Organization Department of Civil Engineering, Graduate School of Engineering at Tohoku University
Postal address 1 6-6-06 Aoba, Aramaki, Aoba-ku
Postal address 2
Town / City Sendai
Postal code 980-8579
State
Country Japan
Email address so.kazama.d3@tohoku.ac.jp
Phone
Fax


Supported platforms
Unix, Linux, Mac OS, Windows
Other platform
Programming language

Fortran90, Python

Other program language
Code optimized Multiple Processors
Multiple processors implemented Distributed memory, Shared memory
Nr of distributed processors
Nr of shared processors
Start year development 2025
Does model development still take place? Yes
If above answer is no, provide end year model development
Code development status Active
When did you indicate the 'code development status'? 2026
Model availability As code, As teaching tool
Source code availability
(Or provide future intension)
Through web repository
Source web address https://github.com/ENCflow/ENCflow
Source csdms web address
Program license type Apache public license
Program license type other
Memory requirements Scales with the number of grid cells and the processes enabled; processes that are not enabled allocate no memory. The example cases run in well under 1 GB of RAM on a laptop; large domains can be distributed across nodes with MPI.
Typical run time Seconds to minutes for the test and tutorial cases on a laptop (e.g. a storm on a 200 m-grid catchment in 20-30 s on 4 cores; a 200 km tsunami propagation in 8 s hydrostatic, 22 s non-hydrostatic). Hours or longer for long-term landscape-evolution experiments. Runtime scales with OpenMP threads and MPI ranks.


Describe input parameters One Fortran namelist parameter file (grid size and spacing, time step, end time, output intervals, numerical options) plus one input file per enabled process. Minimal input: the parameter file and a ground-elevation raster. Optional rasters and time series include Manning roughness, domain/channel/sea masks, initial depth or water level, uniform or distributed rainfall, inflow hydrographs and tide/sea-level series at boundaries, hydraulic structure specifications, soil and groundwater properties, land use, snow and glacier settings, sediment properties, prescribed bed motion (e.g. coseismic displacement), and pollutant loads. A process is enabled only by providing its file.
Input format ASCII, Binary
Other input format Fortran namelist (parameters); whitespace-separated matrix text, ESRI BIL with .hdr, and GeoTIFF (uncompressed, LZW, Deflate) for rasters; CSV and plain text for time series
Describe output parameters Raster snapshots at user-defined intervals and over the whole run: water depth, water level, velocity components and magnitude, unit-width discharge, cumulative discharge, and maxima of depth, speed and discharge; for enabled processes also ground elevation and landform change, soil thickness, groundwater storage, snow water equivalent, ice and lava thickness, suspended sediment, solute concentration, driftwood and building debris, slope safety factor and Soil Water Index. Time series at user-defined points and transects (depth, level, discharge, concentrations) as CSV, and a run log of storage, maximum depth and Courant number. Restart files allow continuation of a run.
Output format ASCII, Binary
Other output format Matrix text, ESRI BIL with .hdr, and GeoTIFF (selectable, also in combination); CSV for point and transect records; VTK via the bundled converter utils/out2vtk
Pre-processing software needed? Yes
Describe pre-processing software Real-terrain cases need rasters prepared in any GIS or Python (DEM, masks, roughness). Bundled Fortran utilities (utils/) handle common steps: catchment area, depression removal along rivers, river and sea/land corrections, land-use masks, coseismic displacement from fault parameters (Okada), and transect preparation. Test cases and tutorials ship with ready-to-run inputs.
Post-processing software needed? No
Describe post-processing software
Visualization software needed? Yes
If above answer is yes ESRI, Matlab
Other visualization software gnuplot, ParaView


Describe processes represented by the model Surface water: 2-D depth-averaged shallow-water flow (dynamic, diffusive or kinematic wave) with wetting and drying, subgrid river channels, levees and levee breach, and hydraulic structures (pumps, gates, culverts, diversions, dams and reservoirs). Coast: tide and sea-level forcing, storm surge, tsunami generation by prescribed bed motion (coseismic displacement, submarine and subaerial landslides), propagation and run-up, with an optional one-layer non-hydrostatic correction for dispersive waves; multi-level grid nesting. Catchment hydrology: rainfall, canopy interception, evapotranspiration, Green-Ampt infiltration, two-layer groundwater (soil and weathered bedrock) with lateral Darcy flow, wells, fresh/salt two-layer seawater intrusion, and an urban sewer network represented as a conduit continuum. Sediment and landscape: bedload and suspended load with Exner bed evolution, bend effects, bank erosion and meandering, hillslope creep and erosion, slope failure, debris flow and lahars, rockfall, karst dissolution, weathering and uplift for long-term landscape evolution, and wave-driven longshore drift. Other: driftwood and building debris, lava flow and solidification, water quality and pollutant transport, snow accumulation and melt, frozen ground, snow avalanches, and glaciers. Each process is optional and coupled in the same time evolution on the same grid.
Describe key physical parameters and equations Core: depth-averaged continuity and momentum equations of the shallow water equations on the eight-neighborhood connected collocated (ENC) grid (Tada, 2026, Hydrol. Res. Lett., doi:10.3178/hrl.25-00052), with Manning friction, momentum-conservative MUSCL advection, optional eddy-viscosity diffusion and building drag, solved explicitly with an adaptive Runge-Kutta step. Key parameters: Manning's n, grid spacing, time step. Optional modules: one-layer non-hydrostatic pressure correction solved by conjugate gradients; Green-Ampt infiltration; Darcy flow in two groundwater layers; sharp-interface fresh/salt layers; bedload by Ashida-Michiue or Meyer-Peter & Mueller with the Exner equation and Engelund-type secondary-flow correction; linear-diffusion soil creep (Culling); debris-flow resistance laws of Coulomb, Egashira, Takahashi-Nakagawa and Voellmy type with Takahashi or Egashira-Ashida erosion/deposition; Bingham rheology for lava; degree-day snowmelt with a temperature lapse rate; shallow ice approximation (Glen n = 3) with basal sliding for glaciers; advection, decay, settling, buildup-washoff and two-phase partitioning for water quality. Sources of each model and default value are cited in the users guide; simplifications of our own are labelled as such.
Describe length scale and resolution constraints Uniform raster grid in projected coordinates (no spherical coordinates); domains from about 100 m to a few hundred km. Typical cell sizes range from about 1 m (hillslope and badland experiments) through 5-200 m (rivers, deltas, catchments) to about 1 km (ocean-scale tsunami propagation). The model is depth-averaged and two-dimensional: vertical structure is abstracted, features narrower than a cell are represented through subgrid channels, porosity and building parameters, and the non-hydrostatic correction is needed only where the cell size or wavelength approaches the water depth. Memory and run time scale with the number of active cells; a domain mask limits computation to the area of interest, and MPI distributes large grids across nodes.
Describe time scale and resolution constraints Fixed base time step chosen by the user, limited by the Courant condition (typically 0.01 s to a few tens of seconds depending on cell size and water depth); the run log reports the maximum Courant number to guide the choice. Slower processes (groundwater, rainfall updates, tide updates, landform change) can be updated at their own longer intervals. Event simulations cover minutes to days. Long-term landform experiments use a morphological acceleration factor and repeated representative hydrology to reach decades to millennia.
Describe any numerical limitations and issues Explicit time integration: the time step must satisfy the Courant condition, so very fine grids or deep water require small steps. Depth-averaged, constant-density formulation: no wind waves, density stratification, 3-D flow, deep confined aquifers or individual sewer pipes. Results are bit-identical regardless of the number of MPI ranks under matched build conditions, except that the non-hydrostatic solver is reproducible only with a single OpenMP thread, and runs through the BMI shared library may differ from standalone runs in the last bits. Known case-specific issues are listed in the release notes of each version.


Describe available calibration data sets No field-observation calibration data sets are distributed. The model is designed to run with parameters given directly (e.g. Manning's n, soil and groundwater properties), with literature-based defaults for most process parameters; calibration against site data is left to the user. The BMI interface supports external calibration loops, e.g. updating Manning's n by set_value between runs or during a run.
Upload calibration data sets if available:
Describe available test data sets About 70 verification cases in test/ (https://github.com/ENCflow/ENCflow/blob/main/test/README.en.md), each with input data, a run script and documentation. They separate two kinds of checks: automatic regression against committed reference results, and self-judging scripts that compare with analytical solutions or conservation laws, for example the Stoker dam break, Manning uniform flow in straight and bent channels, standing-wave dispersion, solitary waves on a shelf, Gaussian-hill creep, Voellmy steady flow, analytical drawdown by a pumping well, and mass conservation of groundwater, sediment and solutes. Overland-flow benchmarks on planes and V-shaped catchments with reference values are in examples/benchmark. A real catchment (Chichibu, Japan; elevation from the GSI Digital Elevation Model and channel mask from a published stream-order data set) is provided with the tutorials. Continuous integration runs the regression cases in serial and with MPI on 1, 2 and 4 ranks, under a debug build with runtime checks, and through the BMI interface with the CSDMS bmi-tester.
Upload test data sets if available:
Describe ideal data for testing High-resolution DEMs with observed flood extents and maximum depths, discharge hydrographs at several points along a river, tide and tsunami gauge records with run-up surveys, laboratory flume data for dam breaks, bores and dispersive waves, groundwater level records, repeated topographic surveys of channel and hillslope change, and snow water equivalent records. Data sets combining several processes in one event (e.g. rainfall, runoff, sediment and inundation together) are especially valuable, because coupled processes are the focus of the model.


Do you have current or future plans for collaborating with other researchers? Yes. ENCflow is developed jointly by the Hydraulic Engineering Laboratory, National Defense Academy of Japan, and the Hydro-Environmental System Laboratory, Tohoku University. We welcome coupling with other BMI models: ENCflow can serve as a local inundation engine for large-scale hydrology models, as a hydraulic and sediment component for landscape-evolution models such as Landlab, or as a small component that supplies a single missing process, since processes that are not enabled cost no memory or CPU and need no parameter file. Questions, use cases and coupling proposals are welcome on GitHub Discussions.
Is there a manual available? Yes
Upload manual if available:
Model website if any https://github.com/ENCflow/ENCflow
Model forum / discussion board GitHub Discussions (questions and consultations): https://github.com/ENCflow/ENCflow/discussions

GitHub Issues (bug reports and feature requests): https://github.com/ENCflow/ENCflow/issues

Comments BMI 2.0 compliant: the optional Fortran adapter in bmi/ passes the CSDMS bmi-tester for a single grid, for nested grids and for feature-dependent variables, and is checked nightly in CI; a numpy-only Python wrapper is included. Not yet packaged for PyMT (babelizer). Version registered: ENCflow v3.0.0 (2026-10-25), version DOI 10.5281/zenodo.23635011; concept DOI for all versions 10.5281/zenodo.22042847. Please cite the software version used together with the article on the underlying ENC grid scheme (Tada, 2026, Hydrological Research Letters 20(2), 113-118, doi:10.3178/hrl.25-00052); a model description paper of ENCflow as a whole has not been published yet. Getting started: docs/en/install.md and test/wave; BMI from Python: tutorials/bmi/en/README.md; BMI specification and limits: bmi/README.en.md. Japanese is the master language of the documentation; user-facing documents, tutorials and examples have English mirrors whose review status is checked in CI.


This part will be filled out by CSDMS staff

OpenMI compliant Not yet"Not yet" is not in the list (Yes, No but planned, No but possible, No not possible) of allowed values for the "Code openmi compliant or not" property.
BMI compliant Not yet"Not yet" is not in the list (Yes, No but planned, No but possible, No not possible) of allowed values for the "BMICompliant" property.
WMT component Not yet"Not yet" is not in the list (Yes, In progress, No but possible, No not possible) of allowed values for the "Code CMT compliant or not" property.
PyMT component Not yet"Not yet" is not in the list (Yes, In progress, No but possible, No not possible) of allowed values for the "Code PyMT compliant or not" property.
Is this a data component No
Can be coupled with:
Model info



Introduction

History

References






Issues

Help

Input Files

Output Files