Tuesday, January 4, 2011

How to add a volume variable to SWMM 5

Subject:  How to add a volume variable to SWMM 5

The purpose of this email is to explain how to add another print variable to the DOS version of SWMM 5 so that it can saved in a table in the text output file (after you recompile the modified C code).  The changes have no impact on the SWMM 5 GUI or the SWMM 5 DLL engine.

It is relatively simple five step procedure:

Step 1:  Add a new variable LINK_VOLUME at the end of the link variables in enums.h This is much easier if you just add a report variable that already is part of the link or node structure in objects.h  Your only restriction is that is should be added before the water quality variables.
 // increase by 1 the value of Max  Results in enums.h 
enum LinkResultType {
      LINK_FLOW,              // flow rate
      LINK_DEPTH,             // flow depth
      LINK_VELOCITY,          // flow velocity
      LINK_FROUDE,            // Froude number
      LINK_CAPACITY,          // ratio of depth to full depth
LINK_VOLUME, // current volume of the conduit - august 2007
      LINK_QUAL};             // concentration of each pollutant
Step 2:  Add the report index for LINK_VOLUME to procedure output_open in ouput.c

fwrite(&k, sizeof(int), 1, Fout.file);
for (j=0; j<nPolluts; j++)

Step 3: Save the link new volume to the binary output file in procedure link_get_results in link.c.  The new volume of the link has already been saved in the already existing variable newVolume in the Link Structure.

x[LINK_CAPACITY] = (float)c;
LINK_VOLUME]   = (float)Link[j].newVolume;

Step 4. Modify report.c to include the new report variable in procedure report_links

fprintf(Frpt.file, "\n  %11s %8s  %9.3f %9.3f %9.3f %9.1f %9.1f",                          theDate, theTime, LinkResults[LINK_FLOW], LinkResults[LINK_VELOCITY], LinkResults[LINK_DEPTH]  LinkResults[LINK_CAPACITY]* 100.0,
Step 5.  Modify procedure report_LinkHeader in report.c to show the new variable volume:

"\n                             Flow  Velocity     Depth   Percent   

1 comment:

Robert Dickinson said...


InfoSWMM Version Numbers and the version of Arc Map they use and which EPA SWMM5 Engine is used for Each InfoSWMM Version

 InfoSWMM Version Numbers  InfoSWMM Version 14.7  Update 3 for Arc Map 10 to 10.8 and Windows 7/8/8.1/10 - EPA SWMM 5.1.014   4/12/2020   ...