SWMM5 Runoff Computation Call Graph
Cash-Karp RK5 Adaptive Solver — odesolve.c
SWMM5 solves each surface's depth ODE with a 5th-order Runge-Kutta (Cash-Karp variant). Six stages k₁…k₆ are evaluated per step. The difference between 5th and 4th order solutions gives a truncation error estimate for adaptive step-size control.
Interactive RK5 Single-Step Explorer
🌧️ Design Storm
🧮 Live RK5 Stages — Current Time Step (all 3 surfaces)
Hyetograph & Total Hydrograph
Three-Surface Outflow Breakdown
Surface Water Depths (d₁, d₂, d₃)
Infiltration & RK5 Sub-Steps
🔬 RK5 4th vs 5th Order Solutions & Error (A3 Pervious)
💧 Water Balance Summary
📋 Subcatchment Runoff Summary (SWMM5 RPT Format)
📂 Compare with SWMM5 RPT File
Export the .INP above, run it in EPA SWMM5, then drop the .RPT file here to compare results side-by-side.
📊 Drop SWMM5 .OUT File — Real Time Series Overlay
The .OUT binary contains every reported time step from your SWMM5 run — node depths, link flows, subcatchment runoff. Drop the file and the app overlays the real engine's hydrograph on the in-browser RK5 simulation.
🔗 Running SWMM Hydrology in ICM InfoWorks
InfoWorks ICM can run EPA SWMM runoff natively within an InfoWorks network. The same three-surface nonlinear reservoir model — impervious without depression storage, impervious with depression storage, and pervious with infiltration — is available as a routing model type called "SWMM" in the ICM Runoff Surface editor. This page maps every SWMM5 parameter to its ICM InfoWorks equivalent.
Step-by-Step: Setting Up SWMM Runoff in ICM InfoWorks
Create 3 Runoff Surfaces
In the Runoff Surface editor, create three surfaces:
• Imperv_noDS — Fixed runoff (coeff=1.0), Routing=SWMM
• Imperv_wDS — Fixed runoff (coeff=1.0), Routing=SWMM
• Pervious — Horton or Green-Ampt volume model, Routing=SWMM
Set Manning's n in the Runoff routing value field for each.
Create a Land Use
In the Land Use editor, create a land use that references all three runoff surfaces. Set the area percentages for each surface to match your SWMM5 subcatchment's %Imperv and %Zero-Imperv splits.
Assign to Subcatchments
In the Subcatchment editor, assign the Land Use to each subcatchment. Set the total area, slope, and subcatchment width. The width applies to all three surfaces in ICM (same as SWMM5).
Set Infiltration
On the pervious Runoff Surface, set the infiltration parameters:
• Horton: f₀ (max rate), f∞ (min rate), k (decay)
• Green-Ampt: Ψ (suction head), Ks (conductivity), Δθ (deficit)
Set initial conditions in the Rainfall Event editor.
Configure Rainfall Event
Add a Rainfall Event with the appropriate profile. Set initial conditions for Horton moisture store or Green-Ampt moisture deficit. Match the subcatchment Rainfall Profile name to the event profile name.
Run Simulation
Create a Run with the rainfall event. ICM will use the SWMM nonlinear reservoir + Manning's overland flow equation (the same RK5 ODE solver) for each of the three surfaces on every subcatchment.
📋 Complete Parameter Mapping: SWMM5 ↔ ICM InfoWorks
EPA SWMM5 (subcatch.c)
ICM InfoWorks
Subcatchment-Level Parameters
| Parameter | SWMM5 INP Field | ICM InfoWorks Field | Editor Location |
|---|---|---|---|
| Total Area | [SUBCATCHMENTS] → Area | total_area | Subcatchment |
| Outlet Node | [SUBCATCHMENTS] → OutID | node_id | Subcatchment |
| % Impervious | [SUBCATCHMENTS] → %Imperv | Runoff Surface area % | Land Use → surfaces |
| Characteristic Width | [SUBCATCHMENTS] → Width | width (on subcatchment) | Subcatchment |
| Slope | [SUBCATCHMENTS] → %Slope | slope | Subcatchment |
| Rain Gage | [SUBCATCHMENTS] → Rain Gage | rainfall_profile | Subcatchment |
Surface A1: Impervious WITHOUT Depression Storage
| Parameter | SWMM5 INP Field | ICM InfoWorks Field | Editor Location |
|---|---|---|---|
| Manning's n | [SUBAREAS] → N-Imperv | runoff_routing_value | Runoff Surface |
| Depression Storage | — (d_s = 0 always) | initial_loss_value = 0 | Runoff Surface |
| % of Impervious | [SUBAREAS] → %Zero-Imperv | area % in Land Use | Land Use |
| Volume Model | Fixed 100% runoff | runoff_volume_type = Fixed, coeff = 1.0 | Runoff Surface |
| Routing Model | Nonlinear reservoir | routing_model = SWMM | Runoff Surface |
Surface A2: Impervious WITH Depression Storage
| Parameter | SWMM5 INP Field | ICM InfoWorks Field | Editor Location |
|---|---|---|---|
| Manning's n | [SUBAREAS] → N-Imperv | runoff_routing_value | Runoff Surface |
| Depression Storage | [SUBAREAS] → S-Imperv | initial_loss_value | Runoff Surface |
| Initial Loss Type | Depth-based | initial_loss_type = Absolute | Runoff Surface |
| Volume Model | Fixed 100% runoff | runoff_volume_type = Fixed, coeff = 1.0 | Runoff Surface |
| Routing Model | Nonlinear reservoir | routing_model = SWMM | Runoff Surface |
Surface A3: Pervious
| Parameter | SWMM5 INP Field | ICM InfoWorks Field | Editor Location |
|---|---|---|---|
| Manning's n | [SUBAREAS] → N-Perv | runoff_routing_value | Runoff Surface |
| Depression Storage | [SUBAREAS] → S-Perv | initial_loss_value | Runoff Surface |
| Volume Model | Horton / Green-Ampt | runoff_volume_type = Horton / Green-Ampt | Runoff Surface |
| Routing Model | Nonlinear reservoir | routing_model = SWMM | Runoff Surface |
Horton Infiltration Parameters (Pervious Surface Only)
| Parameter | SWMM5 INP Field | ICM InfoWorks Field | Editor Location |
|---|---|---|---|
| Max Infil Rate (f₀) | [INFILTRATION] → MaxRate | horton_max_rate | Runoff Surface |
| Min Infil Rate (f∞) | [INFILTRATION] → MinRate | horton_min_rate | Runoff Surface |
| Decay Constant (k) | [INFILTRATION] → Decay | horton_decay | Runoff Surface |
| Drying Time | [INFILTRATION] → DryTime | horton_drying_time | Runoff Surface |
| Initial Moisture Store | [INFILTRATION] → MaxInfil | Set in Rainfall Event → Initial Conditions | Rainfall Event |
Green-Ampt Infiltration Parameters (Pervious Surface Only)
| Parameter | SWMM5 INP Field | ICM InfoWorks Field | Editor Location |
|---|---|---|---|
| Suction Head (Ψ) | [INFILTRATION] → Suction | green_ampt_suction | Runoff Surface |
| Conductivity (Ks) | [INFILTRATION] → Ksat | green_ampt_conductivity | Runoff Surface |
| Initial Deficit (Δθ) | [INFILTRATION] → IMD | Set in Rainfall Event → Initial Conditions | Rainfall Event |