Runoff Surface Suggestions for Future #SWMM5 's and #SWMM6

Runoff Surface Suggestions for Future #SWMM5 's and #SWMM6

As almost everyone knows about SWMM runoff surfaces there are three (non snowmelt) related surfaces in SWMM 1 to SWMM 5:

1. Impervious with depression storage, evaporation and no infiltration
2. Pervious with depression storage, evaporation, infiltration, with infiltration connecting to groundwater,
3. Impervious without depression storage, no infiltration, evaporation.  This was used to simulate fast runoff from gutters and roofs in the original SWMM 1.

SWMM4 and SWMM5 added pervious to impervious routing, impervious to pervious and Subcatchment to Subcatchment routing.  SWMM5 has further enhanced this feature by adding Low Impact Development (LID) for both pervious and impervious surfaces.

Newer versions of SWMM should expand the number of runoff surfaces from 3 to 10 and make each Surface have a flag for depression storage, flag for evaporation, flag for infiltration, a flag for groundwater, a flag for RDII, a flag fo…

#SWMM 5 LID 185 message

Here are the soil layer rules for LID’s in SWMM5....  If any of these are wrong you will get an Error 185 message
Soil Porosity > Field Capacity > Wilting Point
    //... check soil layer parameters     if ( LidProcs[j].soil.thickness >= 0.0; 0.0 )     {         if ( LidProcs[j].soil.porosity      <= 0.0          ||   LidProcs[j].soil.fieldCap      >= LidProcs[j].soil.porosity         ||   LidProcs[j].soil.wiltPoint    >= LidProcs[j].soil.fieldCap         ||   LidProcs[j].soil.kSat            <= 0.0         ||   LidProcs[j].soil.kSlope       <= 0.0 )

EPA is happy to announce the publication of Volume II of the #SWMM Reference Manual (Hydraulics)

Hello Everyone (from the @CHI SWMM List Server),

EPA is happy to announce the publication of Volume II of the SWMM Reference Manual (Hydraulics).  It can be viewed and downloaded from the EPA SWMM web page:

This completes the full set of reference manuals for SWMM 5 that also includes Volume I (Hydrology) and Volume III (Water Quality and LID).  We hope that these manuals allow SWMM users to gain a better understanding of the computational methods and techniques used by the program.

These volumes were completed by Dr. Lewis A. Rossman, EPA Emeritus.  In his extraordinary career, he has written three remarkable EPA public domain programs:  SWMM, the National Stormwater Calculator ( which is based on SWMM),  and EPANET (   Since 2010, SWMM and EPANET have been downloaded at least 215,000 and 370,000 times a…

Suggestions for LIDs, SuDs, WSuDs in #SWMM5 #SWMM

There should be a way to specify pollutant removal for each LID. Here are other suggestions for LIDs, SuDs, WSuDs in SWMM5: 1.  Removal equations for BMP's as in EPA / Tetra Tech Sustain, 2.  An extra field to indicate whether a LID was in the impervious area or pervious area.  As i have documented for years in my twitter feed, LID's can be anywhere and of any size.  This extra field would be a way to better automate the calculation of NON LID area in the SWMM5 engine, 3.  The percent capture of impervious area should be both the way it is now and by LID unit.  For example, 0.1 percent of the impervious area goes to one rain garden.  This would help optimizers such as Innovyze Sustain.4.  SWMM 5 should have more than 3 to 4 runoff surfaces.  The 4th is for snowmelt.  This will help to have different soil characteristics per runoff pervious area. It would really help to have more than two types of impervious surface and one pervious runoff surface. 5. It would also be good to h…

This is how node interface files works in #SWMM5, Caveats and Tips

The routine readNewIfaceValues reads a line interface flows in SWMM5.  It is a string parser, finds tokens and creates dates, times and flows from the tokens.  It is important to have the correct format for your line else the tokens will not be correctly converted to integers and doubles. Further, it is important to have more than one date/time for each node as the SWMM5 engine interpolates the flow values for each node during the simulation.  One time value or time values out of the simulation date/times will result in no flows.
void readNewIfaceValues() // //  Input:   none //  Output:  none //  Purpose: reads data from inflows interface file for next date. // { int    i, j; char*  s; int    yr = 0, mon = 0, day = 0,                 hr = 0, min = 0, sec = 0;   // year, month, day, hour, minute, second char   line[MAXLINE+1];            // line from interface file
// --- read a line for each interface node     NewIfaceDate = NO_DATE; for (i=0; i<NumIfaceNodes; i++)     { if ( feof(Finf…

A Visual Studio Compiler for #SWMM5 Note

A Visual Studio Compiler for #SWMM5 note.  If you have many many copies of the SWMM5 code on your PC you can rename the Visual Studio project files from the default SWMM5 names to a more meaningful version name (Figure 2) and using the DLL Properties/General/Output file change the SWMM5.DLL creation directory (Figure 1). 

#SWMM5 - Delphi Pascal unit that imports a SWMM project's data from a formatted text file

unit Uimport;

{                    Unit:    Uimport.pas                           }
{                    Project: EPA SWMM                              }
{                    Version: 5.1                                   }
{                    Date:    12/02/13    (5.1.001)                 }
{                             04/04/14    (5.1.003)                 }
{                             04/14/14    (5.1.004)                 }
{                             09/15/14    (5.1.007)                 }
{                             03/19/15    (5.1.008)                 }
{                             08/05/15    (5.1.010)                 }
{                             08/01/16    (5.1.011)                 }
{                    Author:  L. Rossman                            }
{                                                                   }
{   Delphi Pascal unit that imports a SWMM project's data from a    }