SWMM  5.2.0
Documentation
Loading...
Searching...
No Matches
objects.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// objects.h
3//
4// Project: EPA SWMM5
5// Version: 5.2
6// Date: 11/01/21 (Build 5.2.0)
7// Author: L. Rossman
8// M. Tryby (EPA)
9// R. Dickinson (CDM)
10//
11// Definitions of data structures.
12//
13// Most SWMM 5 "objects" are represented as C data structures.
14//
15// The units shown next to each structure's properties are SWMM's
16// internal units and may be different than the units required
17// for the property as it appears in the input file.
18//
19// In many structure definitions, a blank line separates the set of
20// input properties from the set of computed output properties.
21//
22// Update History
23// ==============
24// Build 5.1.007:
25// - Data structure for monthly adjustments of temperature, evaporation,
26// and rainfall added.
27// - User-supplied equation for deep GW flow added to subcatchment object.
28// - Exfiltration added to storage node object.
29// - Surcharge option added to weir object.
30// Build 5.1.008:
31// - Route to subcatchment option added to Outfall data structure.
32// - Hydraulic conductivity added to monthly adjustments data structure.
33// - Total LID drain flow and outfall runon added to Runoff Totals.
34// - Groundwater statistics object added.
35// - Maximum depth for reporting times added to node statistics object.
36// Build 5.1.010:
37// - Additional fields added to Weir object to support ROADWAY_WEIR type.
38// - New field added to Link object to record when its setting was changed.
39// - q1Old and q2Old of Link object restored.
40// Build 5.1.011:
41// - Description of oldFlow & newFlow for TGroundwater object modified.
42// - Weir shape parameter deprecated.
43// - Added definition of a hydraulic event time period (TEvent).
44// Build 5.1.013:
45// - New member 'averages' added to the TRptFlags structure.
46// - Adjustment patterns added to TSubcatch structure.
47// - Members impervRunoff and pervRunoff added to TSubcatchStats structure.
48// - Member cdCurve (weir coeff. curve) added to TWeir structure.
49// Build 5.1.015:
50// - Support added for multiple infiltration methods within a project.
51// - Support added for grouped freqency table of routing time steps.
52// Build 5.2.0:
53// - Support added for Street and Inlet objects.
54// - Support added for analytical storage shapes.
55// - Support added for reporting most frequent non-converging links.
56// - Support added for tracking a gage's prior n-hour rainfall total.
57// - Removed extIfaceInflow member from ExtInflow struct.
58// - Refactored TRptFlags struct.
59// Build 5.3.0:
60// - Modified TFile to support specification of time for saving hotstart files.
61// - Adding support for API provided pollutant fluxes and inflows.
62//-----------------------------------------------------------------------------
63
64#ifndef OBJECTS_H
65#define OBJECTS_H
66
67#include <stdio.h>
68#include "consts.h"
69#include "enums.h"
70#include "datetime.h"
71#include "mathexpr.h"
72#include "inlet.h"
73#include "infil.h"
74#include "exfil.h"
75
76//-----------------
77// FILE INFORMATION
78//-----------------
79typedef struct
80{
81 char name[MAXFNAME+1]; // file name
82 char mode; // NO_FILE, SCRATCH, USE, or SAVE
83 char state; // current state (OPENED, CLOSED)
84 FILE* file; // FILE structure pointer
85 double saveDateTime; // Simulation time at which to save file. Used for hotstart files.
86} TFile;
87
88//-----------------------------------------
89// LINKED LIST ENTRY FOR TABLES/TIME SERIES
90//-----------------------------------------
92{
93 double x;
94 double y;
96};
97typedef struct TableEntry TTableEntry;
98
99//-------------------------
100// CURVE/TIME SERIES OBJECT
101//-------------------------
102typedef struct
103{
104 char* ID; // Table/time series ID
105 int curveType; // type of curve tabulated
106 int refersTo; // reference to some other object
107 double dxMin; // smallest x-value interval
108 double lastDate; // last input date for time series
109 double x1, x2; // current bracket on x-values
110 double y1, y2; // current bracket on y-values
111 TTableEntry* firstEntry; // first data point
112 TTableEntry* lastEntry; // last data point
113 TTableEntry* thisEntry; // current data point
114 TFile file; // external data file
115} TTable;
116
117//-----------------
118// RAIN GAGE OBJECT
119//-----------------
120#define MAXPASTRAIN 48
121typedef struct
122{
123 char* ID; // raingage name
124 int dataSource; // data from time series or file
125 int tSeries; // rainfall data time series index
126 char fname[MAXFNAME+1]; // name of rainfall data file
127 char staID[MAXMSG+1]; // station number
128 DateTime startFileDate; // starting date of data read from file
129 DateTime endFileDate; // ending date of data read from file
130 int rainType; // intensity, volume, cumulative
131 int rainInterval; // recording time interval (seconds)
132 int rainUnits; // rain depth units (US or SI)
133 double snowFactor; // snow catch deficiency correction
134 //-----------------------------
135 long startFilePos; // starting byte position in Rain file
136 long endFilePos; // ending byte position in Rain file
137 long currentFilePos; // current byte position in Rain file
138 double rainAccum; // cumulative rainfall
139 double unitsFactor; // units conversion factor (to inches or mm)
140 DateTime startDate; // start date of current rainfall
141 DateTime endDate; // end date of current rainfall
142 DateTime nextDate; // next date with recorded rainfall
143 double rainfall; // current rainfall (in/hr or mm/hr)
144 double nextRainfall; // next rainfall (in/hr or mm/hr)
145 double apiRainfall; // rainfall from API function (in/hr or mm/hr)
146 double reportRainfall; // rainfall value used for reported results
147 double pastRain[MAXPASTRAIN+1]; // previous hourly rain volume (in or mm)
148 int pastInterval; // seconds since pastRain last updated
149 int coGage; // index of gage with same rain timeseries
150 int isUsed; // TRUE if gage used by any subcatchment
151 int isCurrent; // TRUE if gage's rainfall is current
152} TGage;
153
154//-------------------
155// TEMPERATURE OBJECT
156//-------------------
157typedef struct
158{
159 int dataSource; // data from time series or file
160 int tSeries; // temperature data time series index
161 DateTime fileStartDate; // starting date of data read from file
162 double elev; // elev. of study area (ft)
163 double anglat; // latitude (degrees)
164 double dtlong; // longitude correction (hours)
165 //-----------------------------
166 double ta; // air temperature (deg F)
167 double tmax; // previous day's max. temp. (deg F)
168 double ea; // saturation vapor pressure (in Hg)
169 double gamma; // psychrometric constant
170 double tanAnglat; // tangent of latitude angle
171} TTemp;
172
173//-----------------
174// WINDSPEED OBJECT
175//-----------------
176typedef struct
177{
178 int type; // monthly or file data
179 double aws[12]; // monthly avg. wind speed (mph)
180 //-----------------------------
181 double ws; // wind speed (mph)
182} TWind;
183
184//------------
185// SNOW OBJECT
186//------------
187typedef struct
188{
189 double snotmp; // temp. dividing rain from snow (deg F)
190 double tipm; // antecedent temp. index parameter
191 double rnm; // ratio of neg. melt to melt coeff.
192 double adc[2][10]; // areal depletion curves
193 //-----------------------------
194 double season; // snowmelt season
195 double removed; // total snow plowed out of system (ft3)
196} TSnow;
197
198//-------------------
199// EVAPORATION OBJECT
200//-------------------
201typedef struct
202{
203 int type; // type of evaporation data
204 int tSeries; // time series index
205 double monthlyEvap[12]; // monthly evaporation values
206 double panCoeff[12]; // monthly pan coeff. values
207 int recoveryPattern; // soil recovery factor pattern
208 int dryOnly; // true if evaporation only in dry periods
209 //----------------------------
210 double rate; // current evaporation rate (ft/sec)
211 double recoveryFactor; // current soil recovery factor
212} TEvap;
213
214//-------------------
215// ADJUSTMENTS OBJECT
216//-------------------
217typedef struct
218{
219 double temp[12]; // monthly temperature adjustments (deg F)
220 double evap[12]; // monthly evaporation adjustments (ft/s)
221 double rain[12]; // monthly rainfall adjustment multipliers
222 double hydcon[12]; // hyd. conductivity adjustment multipliers
223 //----------------------------
224 double rainFactor; // current rainfall adjustment multiplier
225 double hydconFactor; // current conductivity multiplier
226} TAdjust;
227
228//-------------
229// EVENT OBJECT
230//-------------
231typedef struct
232{
233 DateTime start; // event start date
234 DateTime end; // event end date
235} TEvent;
236
237//-------------------
238// AQUIFER OBJECT
239//-------------------
240typedef struct
241{
242 char* ID; // aquifer name
243 double porosity; // soil porosity
244 double wiltingPoint; // soil wilting point
245 double fieldCapacity; // soil field capacity
246 double conductivity; // soil hyd. conductivity (ft/sec)
247 double conductSlope; // slope of conductivity v. moisture curve
248 double tensionSlope; // slope of tension v. moisture curve
249 double upperEvapFrac; // evaporation available in upper zone
250 double lowerEvapDepth; // evap depth existing in lower zone (ft)
251 double lowerLossCoeff; // coeff. for losses to deep GW (ft/sec)
252 double bottomElev; // elevation of bottom of aquifer (ft)
253 double waterTableElev; // initial water table elevation (ft)
254 double upperMoisture; // initial moisture content of unsat. zone
255 int upperEvapPat; // monthly upper evap. adjustment factors
256} TAquifer;
257
258//-----------------------
259// GROUNDWATER STATISTICS
260//-----------------------
261typedef struct
262{
263 double infil; // total infiltration (ft)
264 double evap; // total evaporation (ft)
265 double latFlow; // total lateral outflow (ft)
266 double deepFlow; // total flow to deep aquifer (ft)
267 double avgUpperMoist; // avg. upper zone moisture
268 double finalUpperMoist; // final upper zone moisture
269 double avgWaterTable; // avg. water table height (ft)
270 double finalWaterTable; // final water table height (ft)
271 double maxFlow; // max. lateral outflow (cfs)
273
274//------------------------
275// GROUNDWATER OBJECT
276//------------------------
277typedef struct
278{
279 int aquifer; // index of associated gw aquifer
280 int node; // index of node receiving gw flow
281 double surfElev; // elevation of ground surface (ft)
282 double a1, b1; // ground water outflow coeff. & exponent
283 double a2, b2; // surface water outflow coeff. & exponent
284 double a3; // surf./ground water interaction coeff.
285 double fixedDepth; // fixed surface water water depth (ft)
286 double nodeElev; // elevation of receiving node invert (ft)
287 double bottomElev; // bottom elevation of lower GW zone (ft)
288 double waterTableElev; // initial water table elevation (ft)
289 double upperMoisture; // initial moisture content of unsat. zone
290 //----------------------------
291 double theta; // upper zone moisture content
292 double lowerDepth; // depth of saturated zone (ft)
293 double oldFlow; // gw outflow from previous time period (fps)
294 double newFlow; // gw outflow from current time period (fps)
295 double evapLoss; // evaporation loss rate (ft/sec)
296 double maxInfilVol; // max. infil. upper zone can accept (ft)
297 TGWaterStats stats; // gw statistics
299
300//----------------
301// SNOWMELT OBJECT
302//----------------
303// Snowmelt objects contain parameters that describe the melting
304// process of snow packs on 3 different types of surfaces:
305// 1 - plowable impervious area
306// 2 - non-plowable impervious area
307// 3 - pervious area
308typedef struct
309{
310 char* ID; // snowmelt parameter set name
311 double snn; // fraction of impervious area plowable
312 double si[3]; // snow depth for 100% cover
313 double dhmin[3]; // min. melt coeff. for each surface (ft/sec-F)
314 double dhmax[3]; // max. melt coeff. for each surface (ft/sec-F)
315 double tbase[3]; // base temp. for melting (F)
316 double fwfrac[3]; // free water capacity / snow depth
317 double wsnow[3]; // initial snow depth on each surface (ft)
318 double fwnow[3]; // initial free water in snow pack (ft)
319 double weplow; // depth at which plowing begins (ft)
320 double sfrac[5]; // fractions moved to other areas by plowing
321 int toSubcatch; // index of subcatch receiving plowed snow
322 //-----------------------------
323 double dhm[3]; // melt coeff. for each surface (ft/sec-F)
324} TSnowmelt;
325
326//----------------
327// SNOWPACK OBJECT
328//----------------
329// Snowpack objects describe the state of the snow melt process on each
330// of 3 types of snow surfaces.
331typedef struct
332{
333 int snowmeltIndex; // index of snow melt parameter set
334 double fArea[3]; // fraction of total area of each surface
335 double wsnow[3]; // depth of snow pack (ft)
336 double fw[3]; // depth of free water in snow pack (ft)
337 double coldc[3]; // cold content of snow pack
338 double ati[3]; // antecedent temperature index (deg F)
339 double sba[3]; // initial ASC of linear ADC
340 double awe[3]; // initial AWESI of linear ADC
341 double sbws[3]; // final AWESI of linear ADC
342 double imelt[3]; // immediate melt (ft)
343} TSnowpack;
344
345//---------------
346// SUBAREA OBJECT
347//---------------
348// An array of 3 subarea objects is associated with each subcatchment object.
349// They describe the runoff process on 3 types of surfaces:
350// 1 - impervious with no depression storage
351// 2 - impervious with depression storage
352// 3 - pervious
353typedef struct
354{
355 int routeTo; // code indicating where outflow is sent
356 double fOutlet; // fraction of outflow to outlet
357 double N; // Manning's n
358 double fArea; // fraction of total area
359 double dStore; // depression storage (ft)
360 //-----------------------------
361 double alpha; // overland flow factor
362 double inflow; // inflow rate (ft/sec)
363 double runoff; // runoff rate (ft/sec)
364 double depth; // depth of surface runoff (ft)
365} TSubarea;
366
367//-------------------------
368// LAND AREA LANDUSE FACTOR
369//-------------------------
370typedef struct
371{
372 double fraction; // fraction of land area with land use
373 double* buildup; // array of buildups for each pollutant
374 DateTime lastSwept; // date/time of last street sweeping
376
377//--------------------
378// SUBCATCHMENT OBJECT
379//--------------------
380typedef struct
381{
382 char* ID; // subcatchment name
383 int rptFlag; // reporting flag
384 int gage; // raingage index
385 int outNode; // outlet node index
386 int outSubcatch; // outlet subcatchment index
387 int infilModel; // infiltration method index
388 int infil; // infiltration object index
389 TSubarea subArea[3]; // sub-area data
390 double width; // overland flow width (ft)
391 double area; // area (ft2)
392 double fracImperv; // fraction impervious
393 double slope; // slope (ft/ft)
394 double curbLength; // total curb length (ft)
395 double* initBuildup; // initial pollutant buildup (mass or count/ft2)
396 double* apiExtBuildup; // build up flux from API (mass or count/ft2)
397 TLandFactor* landFactor; // array of land use factors
398 TGroundwater* groundwater; // associated groundwater data
399 MathExpr* gwLatFlowExpr; // user-supplied lateral outflow expression
400 MathExpr* gwDeepFlowExpr; // user-supplied deep percolation expression
401 TSnowpack* snowpack; // associated snow pack data
402 int nPervPattern; // pervious N pattern index
403 int dStorePattern; // depression storage pattern index
404 int infilPattern; // infiltration rate pattern index
405 //-----------------------------
406 double lidArea; // area devoted to LIDs (ft2)
407 double rainfall; // current rainfall (ft/sec)
408 double apiRainfall; // api provided rainfall (ft/sec)
409 double apiSnowfall; // api provided snowfall (ft/sec)
410 double evapLoss; // current evap losses (ft/sec)
411 double infilLoss; // current infil losses (ft/sec)
412 double runon; // runon from other subcatchments (cfs)
413 double oldRunoff; // previous runoff (cfs)
414 double newRunoff; // current runoff (cfs)
415 double oldSnowDepth; // previous snow depth (ft)
416 double newSnowDepth; // current snow depth (ft)
417 double* oldQual; // previous runoff quality (mass/L)
418 double* newQual; // current runoff quality (mass/L)
419 double* pondedQual; // ponded surface water quality (mass)
420 double* totalLoad; // total washoff load (lbs or kg)
421} TSubcatch;
422
423//-----------------------
424// TIME PATTERN DATA
425//-----------------------
426typedef struct
427{
428 char* ID; // time pattern name
429 int type; // time pattern type code
430 int count; // number of factors
431 double factor[24]; // time pattern factors
432} TPattern;
433
434//------------------------------
435// DIRECT EXTERNAL INFLOW OBJECT
436//------------------------------
438{
439 int param; // pollutant index (flow = -1)
440 int type; // CONCEN or MASS
441 int tSeries; // index of inflow time series
442 int basePat; // baseline time pattern
443 double cFactor; // units conversion factor for mass inflow
444 double baseline; // constant baseline value
445 double sFactor; // time series scaling factor
446 struct ExtInflow* next; // pointer to next inflow data object
447};
448typedef struct ExtInflow TExtInflow;
449
450//-------------------------------
451// DRY WEATHER FLOW INFLOW OBJECT
452//-------------------------------
454{
455 int param; // pollutant index (flow = -1)
456 double avgValue; // average value (cfs or concen.)
457 int patterns[4]; // monthly, daily, hourly, weekend time patterns
458 struct DwfInflow* next; // pointer to next inflow data object
459};
460typedef struct DwfInflow TDwfInflow;
461
462//-------------------
463// RDII INFLOW OBJECT
464//-------------------
465typedef struct
466{
467 int unitHyd; // index of unit hydrograph
468 double area; // area of sewershed (ft2)
470
471//-----------------------------
472// UNIT HYDROGRAPH GROUP OBJECT
473//-----------------------------
474typedef struct
475{
476 char* ID; // name of the unit hydrograph object
477 int rainGage; // index of rain gage
478 double iaMax[12][3]; // max. initial abstraction (IA) (in or mm)
479 double iaRecov[12][3]; // IA recovery rate (in/day or mm/day)
480 double iaInit[12][3]; // starting IA (in or mm)
481 double r[12][3]; // fraction of rainfall becoming I&I
482 long tBase[12][3]; // time base of each UH in each month (sec)
483 long tPeak[12][3]; // time to peak of each UH in each month (sec)
484} TUnitHyd;
485
486//-----------------
487// TREATMENT OBJECT
488//-----------------
489typedef struct
490{
491 int treatType; // treatment equation type: REMOVAL/CONCEN
492 MathExpr* equation; // treatment eqn. as tokenized math terms
493} TTreatment;
494
495//------------
496// NODE OBJECT
497//------------
498typedef struct
499{
500 char* ID; // node ID
501 int type; // node type code
502 int subIndex; // index of node's sub-category
503 int rptFlag; // reporting flag
504 double invertElev; // invert elevation (ft)
505 double initDepth; // initial storage level (ft)
506 double fullDepth; // dist. from invert to surface (ft)
507 double surDepth; // added depth under surcharge (ft)
508 double pondedArea; // area filled by ponded water (ft2)
509 TExtInflow* extInflow; // pointer to external inflow data
510 TDwfInflow* dwfInflow; // pointer to dry weather flow inflow data
511 TRdiiInflow* rdiiInflow; // pointer to RDII inflow data
512 TTreatment* treatment; // array of treatment data
513 //-----------------------------
514 int degree; // number of outflow links
515 int inlet; // is an inlet BYPASS or CAPTURE node
516 char updated; // true if state has been updated
517 double crownElev; // top of highest flowing closed conduit (ft)
518 double inflow; // total inflow (cfs)
519 double outflow; // total outflow (cfs)
520 double losses; // evap + exfiltration loss (ft3)
521 double oldVolume; // previous volume (ft3)
522 double newVolume; // current volume (ft3)
523 double fullVolume; // max. storage available (ft3)
524 double overflow; // overflow rate (cfs)
525 double oldDepth; // previous water depth (ft)
526 double newDepth; // current water depth (ft)
527 double oldLatFlow; // previous lateral inflow (cfs)
528 double newLatFlow; // current lateral inflow (cfs)
529 double* oldQual; // previous quality state
530 double* newQual; // current quality state
531 double* apiExtQualMassFlux; // pollutant mass flux from swmm_setValue function (mass/sec)
532 double oldFlowInflow; // previous flow inflow
533 double oldNetInflow; // previous net inflow
534 double qualInflow; // inflow seen for quality routing (cfs)
535 double apiExtInflow; // inflow from swmm_setValue function (cfs)
536} TNode;
537
538//---------------
539// OUTFALL OBJECT
540//---------------
541typedef struct
542{
543 int type; // outfall type code
544 char hasFlapGate; // true if contains flap gate
545 double fixedStage; // fixed outfall stage (ft)
546 int tideCurve; // index of tidal stage curve
547 int stageSeries; // index of outfall stage time series
548 int routeTo; // subcatchment index routed onto
549 double vRouted; // flow volume routed (ft3)
550 double* wRouted; // pollutant load routed (mass)
551} TOutfall;
552
553//--------------------
554// STORAGE UNIT OBJECT
555//--------------------
556typedef struct
557{
558 double fEvap; // fraction of evaporation realized
559 double a0; // surface area at zero height (ft2)
560 double a1; // coeff. of area v. height curve
561 double a2; // coeff. of area v. height curve
562 int aCurve; // index of tabulated area v. height curve
563 int shape; // type of shape from StorageType enum
564 TExfil* exfil; // ptr. to exfiltration object
565 //-----------------------------
566 double hrt; // hydraulic residence time (sec)
567 double evapLoss; // evaporation loss (ft3)
568 double exfilLoss; // exfiltration loss (ft3)
569} TStorage;
570
571//--------------------
572// FLOW DIVIDER OBJECT
573//--------------------
574typedef struct
575{
576 int link; // index of link with diverted flow
577 int type; // divider type code
578 double qMin; // minimum inflow for diversion (cfs)
579 double qMax; // flow when weir is full (cfs)
580 double dhMax; // height of weir (ft)
581 double cWeir; // weir discharge coeff.
582 int flowCurve; // index of inflow v. diverted flow curve
583} TDivider;
584
585//-----------------------------
586// CROSS SECTION DATA STRUCTURE
587//-----------------------------
588typedef struct
589{
590 int type; // type code of cross section shape
591 int culvertCode; // type of culvert (if any)
592 int transect; // index of transect/shape (if applicable)
593 double yFull; // depth when full (ft)
594 double wMax; // width at widest point (ft)
595 double ywMax; // depth at widest point (ft)
596 double aFull; // area when full (ft2)
597 double rFull; // hyd. radius when full (ft)
598 double sFull; // section factor when full (ft^4/3)
599 double sMax; // section factor at max. flow (ft^4/3)
600
601 // These variables have different meanings depending on section shape
602 double yBot; // depth of bottom section
603 double aBot; // area of bottom section
604 double sBot; // slope of bottom section
605 double rBot; // radius of bottom section
606} TXsect;
607
608//--------------------------------------
609// CROSS SECTION TRANSECT DATA STRUCTURE
610//--------------------------------------
611#define N_TRANSECT_TBL 51 // size of transect geometry tables
612typedef struct
613{
614 char* ID; // section ID
615 double yFull; // depth when full (ft)
616 double aFull; // area when full (ft2)
617 double rFull; // hyd. radius when full (ft)
618 double wMax; // width at widest point (ft)
619 double ywMax; // depth at max width (ft)
620 double sMax; // section factor at max. flow (ft^4/3)
621 double aMax; // area at max. flow (ft2)
622 double lengthFactor; // floodplain / channel length
623 //--------------------------------------
624 double roughness; // Manning's n
625 double areaTbl[N_TRANSECT_TBL]; // table of area v. depth
626 double hradTbl[N_TRANSECT_TBL]; // table of hyd. radius v. depth
627 double widthTbl[N_TRANSECT_TBL]; // table of top width v. depth
628 int nTbl; // size of geometry tables
629} TTransect;
630
631//-------------------------------
632// STREET CROSS SECTION STRUCTURE
633//-------------------------------
634typedef struct
635{
636 char* ID; // name of street section
637 int sides; // 1 or 2 sided street
638 double slope; // cross slope (Sx)
639 double width; // distance from curb to crown (ft) (Tmax)
640 double curbHeight; // curb height incl. depression (ft) (Hc)
641 double gutterDepression; // gutter depression (ft) (a)
642 double gutterWidth; // gutter width (ft) (W)
643 double roughness; // street's Manning n
644 double backSlope;
645 double backWidth;
647 TTransect transect; // street's transect
648} TStreet;
649
650//-------------------------------------
651// CUSTOM CROSS SECTION SHAPE STRUCTURE
652//-------------------------------------
653#define N_SHAPE_TBL 51 // size of shape geometry tables
654typedef struct
655{
656 int curve; // index of shape curve
657 int nTbl; // size of geometry tables
658 double aFull; // area when full
659 double rFull; // hyd. radius when full
660 double wMax; // max. width
661 double sMax; // max. section factor
662 double aMax; // area at max. section factor
663 double areaTbl[N_SHAPE_TBL]; // table of area v. depth
664 double hradTbl[N_SHAPE_TBL]; // table of hyd. radius v. depth
665 double widthTbl[N_SHAPE_TBL]; // table of top width v. depth
666} TShape;
667
668//------------
669// LINK OBJECT
670//------------
671typedef struct
672{
673 char* ID; // link ID
674 int type; // link type code
675 int subIndex; // index of link's sub-category
676 int rptFlag; // reporting flag
677 int node1; // start node index
678 int node2; // end node index
679 double offset1; // ht. above start node invert (ft)
680 double offset2; // ht. above end node invert (ft)
681 TXsect xsect; // cross section data
682 double q0; // initial flow (cfs)
683 double qLimit; // constraint on max. flow (cfs)
684 double cLossInlet; // inlet loss coeff.
685 double cLossOutlet; // outlet loss coeff.
686 double cLossAvg; // avg. loss coeff.
687 double seepRate; // seepage rate (ft/sec)
688 int hasFlapGate; // true if flap gate present
689 TInlet *inlet; // pointer to a street inlet object
690 //-----------------------------
691 double oldFlow; // previous flow rate (cfs)
692 double newFlow; // current flow rate (cfs)
693 double oldDepth; // previous flow depth (ft)
694 double newDepth; // current flow depth (ft)
695 double oldVolume; // previous flow volume (ft3)
696 double newVolume; // current flow volume (ft3)
697 double surfArea1; // upstream surface area (ft2)
698 double surfArea2; // downstream surface area (ft2)
699 double qFull; // flow when full (cfs)
700 double setting; // current control setting
701 double targetSetting; // target control setting
702 double timeLastSet; // time when setting was last changed
703 double froude; // Froude number
704 double* oldQual; // previous quality state
705 double* newQual; // current quality state
706 double* totalLoad; // total quality mass loading
707 int flowClass; // flow classification
708 double dqdh; // change in flow w.r.t. head (ft2/sec)
709 signed char direction; // flow direction flag
710 char bypassed; // bypass dynwave calc. flag
711 char normalFlow; // normal flow limited flag
712 char inletControl; // culvert inlet control flag
713 double* apiExtQualMassFlux; // pollutant mass flux from swmm_setValue function (mass/sec)
714} TLink;
715
716//---------------
717// CONDUIT OBJECT
718//---------------
719typedef struct
720{
721 double length; // conduit length (ft)
722 double roughness; // Manning's n
723 char barrels; // number of barrels
724 //-----------------------------
725 double modLength; // modified conduit length (ft)
726 double roughFactor; // roughness factor for DW routing
727 double slope; // slope
728 double beta; // discharge factor
729 double qMax; // max. flow (cfs)
730 double a1, a2; // upstream & downstream areas (ft2)
731 double q1, q2; // upstream & downstream flows per barrel (cfs)
732 double q1Old, q2Old; // previous values of q1 & q2 (cfs)
733 double evapLossRate; // evaporation rate (cfs)
734 double seepLossRate; // seepage rate (cfs)
735 char capacityLimited; // capacity limited flag
736 char superCritical; // super-critical flow flag
737 char hasLosses; // local losses flag
738 char fullState; // determines if either or both ends full
739} TConduit;
740
741//------------
742// PUMP OBJECT
743//------------
744typedef struct
745{
746 int type; // pump type
747 int pumpCurve; // pump curve table index
748 double initSetting; // initial speed setting
749 double yOn; // startup depth (ft)
750 double yOff; // shutoff depth (ft)
751 double xMin; // minimum pt. on pump curve
752 double xMax; // maximum pt. on pump curve
753} TPump;
754
755
756//---------------
757// ORIFICE OBJECT
758//---------------
759typedef struct
760{
761 int type; // orifice type code
762 int shape; // orifice shape code
763 double cDisch; // discharge coeff.
764 double orate; // time to open/close (sec)
765 //-----------------------------
766 double cOrif; // coeff. for orifice flow (ft^2.5/sec)
767 double hCrit; // inlet depth where weir flow begins (ft)
768 double cWeir; // coeff. for weir flow (cfs)
769 double length; // equivalent length (ft)
770 double surfArea; // equivalent surface area (ft2)
771} TOrifice;
772
773//------------
774// WEIR OBJECT
775//------------
776typedef struct
777{
778 int type; // weir type code
779 double cDisch1; // discharge coeff.
780 double cDisch2; // discharge coeff. for ends
781 double endCon; // end contractions
782 int canSurcharge; // true if weir can surcharge
783 double roadWidth; // width for ROADWAY weir
784 int roadSurface; // road surface material
785 int cdCurve; // discharge coeff. curve index
786 //-----------------------------
787 double cSurcharge; // orifice coeff. for surcharge
788 double length; // equivalent length (ft)
789 double slope; // slope for Vnotch & Trapezoidal weirs
790 double surfArea; // equivalent surface area (ft2)
791} TWeir;
792
793//---------------------
794// OUTLET DEVICE OBJECT
795//---------------------
796typedef struct
797{
798 double qCoeff; // discharge coeff.
799 double qExpon; // discharge exponent
800 int qCurve; // index of discharge rating curve
801 int curveType; // rating curve type
802} TOutlet;
803
804//-----------------
805// POLLUTANT OBJECT
806//-----------------
807typedef struct
808{
809 char* ID; // Pollutant ID
810 int units; // units
811 double mcf; // mass conversion factor
812 double dwfConcen; // dry weather sanitary flow concen.
813 double pptConcen; // precip. concen.
814 double gwConcen; // groundwater concen.
815 double rdiiConcen; // RDII concen.
816 double initConcen; // initial concen. in conveyance network
817 double kDecay; // decay constant (1/sec)
818 int coPollut; // co-pollutant index
819 double coFraction; // co-pollutant fraction
820 int snowOnly; // TRUE if buildup occurs only under snow
821} TPollut;
822
823//------------------------
824// BUILDUP FUNCTION OBJECT
825//------------------------
826typedef struct
827{
828 int normalizer; // normalizer code (area or curb length)
829 int funcType; // buildup function type code
830 double coeff[3]; // coeffs. of buildup function
831 double maxDays; // time to reach max. buildup (days)
832} TBuildup;
833
834//------------------------
835// WASHOFF FUNCTION OBJECT
836//------------------------
837typedef struct
838{
839 int funcType; // washoff function type code
840 double coeff; // function coeff.
841 double expon; // function exponent
842 double sweepEffic; // street sweeping fractional removal
843 double bmpEffic; // best mgt. practice fractional removal
844} TWashoff;
845
846//---------------
847// LANDUSE OBJECT
848//---------------
849typedef struct
850{
851 char* ID; // landuse name
852 double sweepInterval; // street sweeping interval (days)
853 double sweepRemoval; // fraction of buildup available for sweeping
854 double sweepDays0; // days since last sweeping at start
855 TBuildup* buildupFunc; // array of buildup functions for pollutants
856 TWashoff* washoffFunc; // array of washoff functions for pollutants
857} TLanduse;
858
859//--------------------------
860// REPORTING FLAGS STRUCTURE
861//--------------------------
862typedef struct
863{
864 char disabled; // TRUE if reporting is disabled
865 char input; // TRUE if input summary included
866 char subcatchments; // TRUE if subcatchment results reported
867 char nodes; // TRUE if node results reported
868 char links; // TRUE if link results reported
869 char continuity; // TRUE if continuity errors reported
870 char flowStats; // TRUE if routing link flow stats. reported
871 char controls; // TRUE if control actions reported
872 char averages; // TRUE if report step averaged results used
873 int linesPerPage; // number of lines printed per page
874} TRptFlags;
875
876//-------------------------------
877// CUMULATIVE RUNOFF TOTALS
878//-------------------------------
879typedef struct
880{ // All volume totals are in ft3.
881 double rainfall; // rainfall volume
882 double evap; // evaporation loss
883 double infil; // infiltration loss
884 double runoff; // runoff volume
885 double drains; // LID drains
886 double runon; // runon from outfalls
887 double initStorage; // inital surface storage
888 double finalStorage; // final surface storage
889 double initSnowCover; // initial snow cover
890 double finalSnowCover; // final snow cover
891 double snowRemoved; // snow removal
892 double pctError; // continuity error (%)
894
895//--------------------------
896// CUMULATIVE LOADING TOTALS
897//--------------------------
898typedef struct
899{ // All loading totals are in lbs.
900 double initLoad; // initial loading
901 double buildup; // loading added from buildup
902 double deposition; // loading added from wet deposition
903 double sweeping; // loading removed by street sweeping
904 double bmpRemoval; // loading removed by BMPs
905 double infil; // loading removed by infiltration
906 double runoff; // loading removed by runoff
907 double finalLoad; // final loading
908 double pctError; // continuity error (%)
910
911//------------------------------
912// CUMULATIVE GROUNDWATER TOTALS
913//------------------------------
914typedef struct
915{ // All GW flux totals are in feet.
916 double infil; // surface infiltration
917 double upperEvap; // upper zone evaporation loss
918 double lowerEvap; // lower zone evaporation loss
919 double lowerPerc; // percolation out of lower zone
920 double gwater; // groundwater flow
921 double initStorage; // initial groundwater storage
922 double finalStorage; // final groundwater storage
923 double pctError; // continuity error (%)
925
926//----------------------------
927// CUMULATIVE ROUTING TOTALS
928//----------------------------
929typedef struct
930{ // All routing totals are in ft3.
931 double dwInflow; // dry weather inflow
932 double wwInflow; // wet weather inflow
933 double gwInflow; // groundwater inflow
934 double iiInflow; // RDII inflow
935 double exInflow; // direct inflow
936 double flooding; // internal flooding
937 double outflow; // external outflow
938 double evapLoss; // evaporation loss
939 double seepLoss; // seepage loss
940 double reacted; // reaction losses
941 double initStorage; // initial storage volume
942 double finalStorage; // final storage volume
943 double pctError; // continuity error
945
946//---------------------
947// TIME STEP STATISTICS
948//---------------------
949#define TIMELEVELS 6
950typedef struct
951{
952 double minTimeStep; // min. routing time step taken (sec)
953 double maxTimeStep; // max. routing time step taken (sec)
954 double routingTime; // sum of routing time steps taken (sec)
955 int timeStepCount; // number of routing time steps
956 double trialsCount; // total routing trials used
957 double steadyStateTime; // total time in steady state (sec)
958 double timeStepIntervals[TIMELEVELS]; // time step intervals (sec)
959 int timeStepCounts[TIMELEVELS]; // count of steps in interval
961
962//--------------------
963// RAINFALL STATISTICS
964//--------------------
973
974//------------------------
975// SUBCATCHMENT STATISTICS
976//------------------------
977typedef struct
978{
979 double precip;
980 double runon;
981 double evap;
982 double infil;
983 double runoff;
984 double maxFlow;
988
989//----------------
990// NODE STATISTICS
991//----------------
1011
1012//-------------------
1013// STORAGE STATISTICS
1014//-------------------
1015typedef struct
1016{
1017 double initVol;
1018 double avgVol;
1019 double maxVol;
1020 double maxFlow;
1025
1026//-------------------
1027// OUTFALL STATISTICS
1028//-------------------
1029typedef struct
1030{
1031 double avgFlow;
1032 double maxFlow;
1033 double* totalLoad;
1036
1037//----------------
1038// PUMP STATISTICS
1039//----------------
1040typedef struct
1041{
1042 double utilized;
1043 double minFlow;
1044 double avgFlow;
1045 double maxFlow;
1046 double volume;
1047 double energy;
1052} TPumpStats;
1053
1054//----------------
1055// LINK STATISTICS
1056//----------------
1076
1077//-------------------------
1078// MAXIMUM VALUE STATISTICS
1079//-------------------------
1080typedef struct
1081{
1082 int objType; // either NODE or LINK
1083 int index; // node or link index
1084 double value; // value of node or link statistic
1085} TMaxStats;
1086
1087//------------------
1088// REPORT FIELD INFO
1089//------------------
1090typedef struct
1091{
1092 char Name[80]; // name of reported variable
1093 char Units[80]; // units of reported variable
1094 char Enabled; // TRUE if appears in report table
1095 int Precision; // number of decimal places when reported
1096} TRptField;
1097
1098#endif //OBJECTS_H
Header file for SWMM constants.
Header file for date and time functions.
double DateTime
Type for storing date and time values.
Definition datetime.h:29
Header file for enumerated constants.
Exfiltration object header file.
@ MAX_FLOW_CLASSES
Number of distinct flow classes.
Definition enums.h:473
#define MAXMSG
Maximum number of characters in a message.
Definition consts.h:64
#define MAXFNAME
Maximum number of characters in a file name.
Definition consts.h:76
#define N_SHAPE_TBL
Definition objects.h:653
#define N_TRANSECT_TBL
Definition objects.h:611
#define TIMELEVELS
Definition objects.h:949
#define MAXPASTRAIN
Definition objects.h:120
Definition objects.h:454
double avgValue
Definition objects.h:456
int patterns[4]
Definition objects.h:457
int param
Definition objects.h:455
struct DwfInflow * next
Definition objects.h:458
Definition mathexpr.h:17
Definition objects.h:438
double cFactor
Definition objects.h:443
int tSeries
Definition objects.h:441
struct ExtInflow * next
Definition objects.h:446
double sFactor
Definition objects.h:445
int basePat
Definition objects.h:442
int type
Definition objects.h:440
double baseline
Definition objects.h:444
int param
Definition objects.h:439
Definition objects.h:218
double hydconFactor
Definition objects.h:225
double rainFactor
Definition objects.h:224
Definition objects.h:241
double bottomElev
Definition objects.h:252
double wiltingPoint
Definition objects.h:244
double lowerLossCoeff
Definition objects.h:251
double conductivity
Definition objects.h:246
double lowerEvapDepth
Definition objects.h:250
double upperEvapFrac
Definition objects.h:249
int upperEvapPat
Definition objects.h:255
double waterTableElev
Definition objects.h:253
double upperMoisture
Definition objects.h:254
double conductSlope
Definition objects.h:247
double tensionSlope
Definition objects.h:248
char * ID
Definition objects.h:242
double porosity
Definition objects.h:243
double fieldCapacity
Definition objects.h:245
Definition objects.h:827
int normalizer
Definition objects.h:828
double maxDays
Definition objects.h:831
int funcType
Definition objects.h:829
Definition objects.h:720
char capacityLimited
Definition objects.h:735
char barrels
Definition objects.h:723
char hasLosses
Definition objects.h:737
double q1
Definition objects.h:731
double seepLossRate
Definition objects.h:734
double a1
Definition objects.h:730
double evapLossRate
Definition objects.h:733
double roughness
Definition objects.h:722
double q1Old
Definition objects.h:732
double roughFactor
Definition objects.h:726
double slope
Definition objects.h:727
double modLength
Definition objects.h:725
double qMax
Definition objects.h:729
double beta
Definition objects.h:728
char superCritical
Definition objects.h:736
char fullState
Definition objects.h:738
double length
Definition objects.h:721
Definition objects.h:575
int link
Definition objects.h:576
int flowCurve
Definition objects.h:582
int type
Definition objects.h:577
double dhMax
Definition objects.h:580
double qMax
Definition objects.h:579
double qMin
Definition objects.h:578
double cWeir
Definition objects.h:581
Definition objects.h:202
int type
Definition objects.h:203
double rate
Definition objects.h:210
int recoveryPattern
Definition objects.h:207
int tSeries
Definition objects.h:204
double recoveryFactor
Definition objects.h:211
int dryOnly
Definition objects.h:208
Definition objects.h:232
DateTime end
Definition objects.h:234
DateTime start
Definition objects.h:233
Exfiltration object.
Definition exfil.h:31
Definition objects.h:80
char mode
Definition objects.h:82
char state
Definition objects.h:83
double saveDateTime
Definition objects.h:85
FILE * file
Definition objects.h:84
Definition objects.h:262
double latFlow
Definition objects.h:265
double finalWaterTable
Definition objects.h:270
double avgUpperMoist
Definition objects.h:267
double evap
Definition objects.h:264
double deepFlow
Definition objects.h:266
double maxFlow
Definition objects.h:271
double finalUpperMoist
Definition objects.h:268
double infil
Definition objects.h:263
double avgWaterTable
Definition objects.h:269
Definition objects.h:122
double nextRainfall
Definition objects.h:144
long endFilePos
Definition objects.h:136
DateTime startDate
Definition objects.h:140
DateTime endFileDate
Definition objects.h:129
int isCurrent
Definition objects.h:151
long currentFilePos
Definition objects.h:137
int dataSource
Definition objects.h:124
int isUsed
Definition objects.h:150
int tSeries
Definition objects.h:125
double rainfall
Definition objects.h:143
long startFilePos
Definition objects.h:135
char * ID
Definition objects.h:123
double rainAccum
Definition objects.h:138
double unitsFactor
Definition objects.h:139
int rainType
Definition objects.h:130
int rainInterval
Definition objects.h:131
int rainUnits
Definition objects.h:132
DateTime endDate
Definition objects.h:141
int coGage
Definition objects.h:149
double snowFactor
Definition objects.h:133
DateTime nextDate
Definition objects.h:142
DateTime startFileDate
Definition objects.h:128
double apiRainfall
Definition objects.h:145
int pastInterval
Definition objects.h:148
double reportRainfall
Definition objects.h:146
Definition objects.h:278
int node
Definition objects.h:280
double newFlow
Definition objects.h:294
int aquifer
Definition objects.h:279
double oldFlow
Definition objects.h:293
double bottomElev
Definition objects.h:287
double upperMoisture
Definition objects.h:289
double a1
Definition objects.h:282
double nodeElev
Definition objects.h:286
double fixedDepth
Definition objects.h:285
double theta
Definition objects.h:291
double evapLoss
Definition objects.h:295
double a2
Definition objects.h:283
double maxInfilVol
Definition objects.h:296
TGWaterStats stats
Definition objects.h:297
double a3
Definition objects.h:284
double lowerDepth
Definition objects.h:292
double waterTableElev
Definition objects.h:288
double surfElev
Definition objects.h:281
Definition objects.h:915
double gwater
Definition objects.h:920
double upperEvap
Definition objects.h:917
double lowerPerc
Definition objects.h:919
double finalStorage
Definition objects.h:922
double pctError
Definition objects.h:923
double lowerEvap
Definition objects.h:918
double infil
Definition objects.h:916
double initStorage
Definition objects.h:921
Definition inlet.c:91
Definition objects.h:371
DateTime lastSwept
Definition objects.h:374
double * buildup
Definition objects.h:373
double fraction
Definition objects.h:372
Definition objects.h:850
double sweepRemoval
Definition objects.h:853
TWashoff * washoffFunc
Definition objects.h:856
TBuildup * buildupFunc
Definition objects.h:855
double sweepDays0
Definition objects.h:854
double sweepInterval
Definition objects.h:852
char * ID
Definition objects.h:851
Definition objects.h:899
double pctError
Definition objects.h:908
double infil
Definition objects.h:905
double sweeping
Definition objects.h:903
double bmpRemoval
Definition objects.h:904
double finalLoad
Definition objects.h:907
double initLoad
Definition objects.h:900
double deposition
Definition objects.h:902
double buildup
Definition objects.h:901
double runoff
Definition objects.h:906
Definition objects.h:1081
int index
Definition objects.h:1083
int objType
Definition objects.h:1082
double value
Definition objects.h:1084
Definition objects.h:499
double crownElev
Definition objects.h:517
double fullVolume
Definition objects.h:523
double outflow
Definition objects.h:519
TTreatment * treatment
Definition objects.h:512
TRdiiInflow * rdiiInflow
Definition objects.h:511
double losses
Definition objects.h:520
int rptFlag
Definition objects.h:503
int subIndex
Definition objects.h:502
double * newQual
Definition objects.h:530
int degree
Definition objects.h:514
double oldLatFlow
Definition objects.h:527
double * oldQual
Definition objects.h:529
double inflow
Definition objects.h:518
double newLatFlow
Definition objects.h:528
double pondedArea
Definition objects.h:508
double qualInflow
Definition objects.h:534
int type
Definition objects.h:501
double newVolume
Definition objects.h:522
double initDepth
Definition objects.h:505
double fullDepth
Definition objects.h:506
double invertElev
Definition objects.h:504
TExtInflow * extInflow
Definition objects.h:509
double oldDepth
Definition objects.h:525
double surDepth
Definition objects.h:507
double apiExtInflow
Definition objects.h:535
double oldFlowInflow
Definition objects.h:532
double oldVolume
Definition objects.h:521
char updated
Definition objects.h:516
double * apiExtQualMassFlux
Definition objects.h:531
double overflow
Definition objects.h:524
char * ID
Definition objects.h:500
int inlet
Definition objects.h:515
TDwfInflow * dwfInflow
Definition objects.h:510
double newDepth
Definition objects.h:526
double oldNetInflow
Definition objects.h:533
Definition objects.h:993
double totLatFlow
Definition objects.h:1002
DateTime maxDepthDate
Definition objects.h:996
double maxLatFlow
Definition objects.h:1003
double maxDepth
Definition objects.h:995
int nonConvergedCount
Definition objects.h:1007
DateTime maxInflowDate
Definition objects.h:1008
double avgDepth
Definition objects.h:994
DateTime maxOverflowDate
Definition objects.h:1009
double maxInflow
Definition objects.h:1004
double timeCourantCritical
Definition objects.h:1001
double maxRptDepth
Definition objects.h:997
double timeFlooded
Definition objects.h:999
double maxPondedVol
Definition objects.h:1006
double maxOverflow
Definition objects.h:1005
double timeSurcharged
Definition objects.h:1000
double volFlooded
Definition objects.h:998
Definition objects.h:760
double length
Definition objects.h:769
double surfArea
Definition objects.h:770
double orate
Definition objects.h:764
double cOrif
Definition objects.h:766
int type
Definition objects.h:761
double cDisch
Definition objects.h:763
int shape
Definition objects.h:762
double hCrit
Definition objects.h:767
double cWeir
Definition objects.h:768
Definition objects.h:542
int stageSeries
Definition objects.h:547
int type
Definition objects.h:543
double vRouted
Definition objects.h:549
double * wRouted
Definition objects.h:550
int tideCurve
Definition objects.h:546
double fixedStage
Definition objects.h:545
char hasFlapGate
Definition objects.h:544
int routeTo
Definition objects.h:548
Definition objects.h:1030
double * totalLoad
Definition objects.h:1033
double avgFlow
Definition objects.h:1031
double maxFlow
Definition objects.h:1032
int totalPeriods
Definition objects.h:1034
Definition objects.h:797
double qExpon
Definition objects.h:799
double qCoeff
Definition objects.h:798
int curveType
Definition objects.h:801
int qCurve
Definition objects.h:800
Definition objects.h:427
char * ID
Definition objects.h:428
int count
Definition objects.h:430
int type
Definition objects.h:429
Definition objects.h:808
double coFraction
Definition objects.h:819
int coPollut
Definition objects.h:818
int snowOnly
Definition objects.h:820
double mcf
Definition objects.h:811
double rdiiConcen
Definition objects.h:815
double gwConcen
Definition objects.h:814
double pptConcen
Definition objects.h:813
double dwfConcen
Definition objects.h:812
double initConcen
Definition objects.h:816
double kDecay
Definition objects.h:817
int units
Definition objects.h:810
char * ID
Definition objects.h:809
Definition objects.h:745
double yOn
Definition objects.h:749
double yOff
Definition objects.h:750
double xMax
Definition objects.h:752
int type
Definition objects.h:746
double xMin
Definition objects.h:751
double initSetting
Definition objects.h:748
int pumpCurve
Definition objects.h:747
Definition objects.h:1041
double avgFlow
Definition objects.h:1044
int totalPeriods
Definition objects.h:1051
int startUps
Definition objects.h:1050
double utilized
Definition objects.h:1042
double offCurveLow
Definition objects.h:1048
double minFlow
Definition objects.h:1043
double maxFlow
Definition objects.h:1045
double volume
Definition objects.h:1046
double offCurveHigh
Definition objects.h:1049
double energy
Definition objects.h:1047
Definition objects.h:966
long periodsMissing
Definition objects.h:970
DateTime startDate
Definition objects.h:967
DateTime endDate
Definition objects.h:968
long periodsRain
Definition objects.h:969
long periodsMalfunc
Definition objects.h:971
Definition objects.h:466
int unitHyd
Definition objects.h:467
double area
Definition objects.h:468
Definition objects.h:930
double wwInflow
Definition objects.h:932
double flooding
Definition objects.h:936
double exInflow
Definition objects.h:935
double seepLoss
Definition objects.h:939
double dwInflow
Definition objects.h:931
double gwInflow
Definition objects.h:933
double pctError
Definition objects.h:943
double finalStorage
Definition objects.h:942
double reacted
Definition objects.h:940
double outflow
Definition objects.h:937
double evapLoss
Definition objects.h:938
double initStorage
Definition objects.h:941
double iiInflow
Definition objects.h:934
Definition objects.h:1091
int Precision
Definition objects.h:1095
char Enabled
Definition objects.h:1094
Definition objects.h:863
char controls
Definition objects.h:871
char flowStats
Definition objects.h:870
char continuity
Definition objects.h:869
int linesPerPage
Definition objects.h:873
char input
Definition objects.h:865
char subcatchments
Definition objects.h:866
char disabled
Definition objects.h:864
char averages
Definition objects.h:872
char nodes
Definition objects.h:867
char links
Definition objects.h:868
Definition objects.h:880
double infil
Definition objects.h:883
double rainfall
Definition objects.h:881
double finalStorage
Definition objects.h:888
double initStorage
Definition objects.h:887
double pctError
Definition objects.h:892
double drains
Definition objects.h:885
double runon
Definition objects.h:886
double evap
Definition objects.h:882
double snowRemoved
Definition objects.h:891
double finalSnowCover
Definition objects.h:890
double initSnowCover
Definition objects.h:889
double runoff
Definition objects.h:884
Definition objects.h:655
double sMax
Definition objects.h:661
double aFull
Definition objects.h:658
double wMax
Definition objects.h:660
int nTbl
Definition objects.h:657
double aMax
Definition objects.h:662
int curve
Definition objects.h:656
double rFull
Definition objects.h:659
Definition objects.h:188
double removed
Definition objects.h:195
double tipm
Definition objects.h:190
double snotmp
Definition objects.h:189
double season
Definition objects.h:194
double rnm
Definition objects.h:191
Definition objects.h:309
double snn
Definition objects.h:311
double weplow
Definition objects.h:319
char * ID
Definition objects.h:310
int toSubcatch
Definition objects.h:321
Definition objects.h:332
int snowmeltIndex
Definition objects.h:333
Definition objects.h:557
double a1
Definition objects.h:560
double exfilLoss
Definition objects.h:568
TExfil * exfil
Definition objects.h:564
double a2
Definition objects.h:561
int aCurve
Definition objects.h:562
double evapLoss
Definition objects.h:567
double fEvap
Definition objects.h:558
double hrt
Definition objects.h:566
int shape
Definition objects.h:563
double a0
Definition objects.h:559
Definition objects.h:1016
double maxVol
Definition objects.h:1019
double avgVol
Definition objects.h:1018
DateTime maxVolDate
Definition objects.h:1023
double exfilLosses
Definition objects.h:1022
double initVol
Definition objects.h:1017
double maxFlow
Definition objects.h:1020
double evapLosses
Definition objects.h:1021
Definition objects.h:635
double gutterWidth
Definition objects.h:642
double curbHeight
Definition objects.h:640
double backWidth
Definition objects.h:645
TTransect transect
Definition objects.h:647
double backRoughness
Definition objects.h:646
double width
Definition objects.h:639
double roughness
Definition objects.h:643
double backSlope
Definition objects.h:644
double slope
Definition objects.h:638
int sides
Definition objects.h:637
char * ID
Definition objects.h:636
double gutterDepression
Definition objects.h:641
Definition objects.h:354
double N
Definition objects.h:357
double dStore
Definition objects.h:359
double depth
Definition objects.h:364
double fOutlet
Definition objects.h:356
double inflow
Definition objects.h:362
double alpha
Definition objects.h:361
double runoff
Definition objects.h:363
double fArea
Definition objects.h:358
int routeTo
Definition objects.h:355
Definition objects.h:381
TSnowpack * snowpack
Definition objects.h:401
int infilModel
Definition objects.h:387
double * pondedQual
Definition objects.h:419
int rptFlag
Definition objects.h:383
double newSnowDepth
Definition objects.h:416
double rainfall
Definition objects.h:407
double apiRainfall
Definition objects.h:408
double runon
Definition objects.h:412
double slope
Definition objects.h:393
TGroundwater * groundwater
Definition objects.h:398
int outNode
Definition objects.h:385
int dStorePattern
Definition objects.h:403
double * apiExtBuildup
Definition objects.h:396
double width
Definition objects.h:390
double * initBuildup
Definition objects.h:395
double infilLoss
Definition objects.h:411
double * newQual
Definition objects.h:418
double apiSnowfall
Definition objects.h:409
double lidArea
Definition objects.h:406
double oldSnowDepth
Definition objects.h:415
TLandFactor * landFactor
Definition objects.h:397
double newRunoff
Definition objects.h:414
double * oldQual
Definition objects.h:417
int infil
Definition objects.h:388
MathExpr * gwDeepFlowExpr
Definition objects.h:400
int nPervPattern
Definition objects.h:402
double oldRunoff
Definition objects.h:413
double evapLoss
Definition objects.h:410
double curbLength
Definition objects.h:394
int outSubcatch
Definition objects.h:386
double fracImperv
Definition objects.h:392
char * ID
Definition objects.h:382
double * totalLoad
Definition objects.h:420
double area
Definition objects.h:391
MathExpr * gwLatFlowExpr
Definition objects.h:399
int gage
Definition objects.h:384
int infilPattern
Definition objects.h:404
Definition objects.h:978
double infil
Definition objects.h:982
double evap
Definition objects.h:981
double pervRunoff
Definition objects.h:986
double runoff
Definition objects.h:983
double maxFlow
Definition objects.h:984
double precip
Definition objects.h:979
double runon
Definition objects.h:980
double impervRunoff
Definition objects.h:985
Definition objects.h:103
double dxMin
Definition objects.h:107
TTableEntry * thisEntry
Definition objects.h:113
double y1
Definition objects.h:110
TFile file
Definition objects.h:114
int refersTo
Definition objects.h:106
double x1
Definition objects.h:109
int curveType
Definition objects.h:105
double lastDate
Definition objects.h:108
TTableEntry * firstEntry
Definition objects.h:111
char * ID
Definition objects.h:104
TTableEntry * lastEntry
Definition objects.h:112
Definition objects.h:158
double ea
Definition objects.h:168
int tSeries
Definition objects.h:160
double anglat
Definition objects.h:163
double tanAnglat
Definition objects.h:170
double elev
Definition objects.h:162
double ta
Definition objects.h:166
double dtlong
Definition objects.h:164
DateTime fileStartDate
Definition objects.h:161
double tmax
Definition objects.h:167
int dataSource
Definition objects.h:159
double gamma
Definition objects.h:169
Definition objects.h:951
double minTimeStep
Definition objects.h:952
double routingTime
Definition objects.h:954
double maxTimeStep
Definition objects.h:953
double trialsCount
Definition objects.h:956
int timeStepCount
Definition objects.h:955
double steadyStateTime
Definition objects.h:957
Definition objects.h:613
double wMax
Definition objects.h:618
char * ID
Definition objects.h:614
double rFull
Definition objects.h:617
double aFull
Definition objects.h:616
double ywMax
Definition objects.h:619
double yFull
Definition objects.h:615
int nTbl
Definition objects.h:628
double lengthFactor
Definition objects.h:622
double roughness
Definition objects.h:624
double sMax
Definition objects.h:620
double aMax
Definition objects.h:621
Definition objects.h:490
int treatType
Definition objects.h:491
MathExpr * equation
Definition objects.h:492
Definition objects.h:475
int rainGage
Definition objects.h:477
char * ID
Definition objects.h:476
Definition objects.h:838
double bmpEffic
Definition objects.h:843
double expon
Definition objects.h:841
double sweepEffic
Definition objects.h:842
int funcType
Definition objects.h:839
double coeff
Definition objects.h:840
Definition objects.h:777
double cDisch1
Definition objects.h:779
int roadSurface
Definition objects.h:784
double length
Definition objects.h:788
int cdCurve
Definition objects.h:785
double surfArea
Definition objects.h:790
double cDisch2
Definition objects.h:780
double cSurcharge
Definition objects.h:787
int canSurcharge
Definition objects.h:782
double slope
Definition objects.h:789
double endCon
Definition objects.h:781
int type
Definition objects.h:778
double roadWidth
Definition objects.h:783
Definition objects.h:177
int type
Definition objects.h:178
double ws
Definition objects.h:181
Definition objects.h:589
double aBot
Definition objects.h:603
double wMax
Definition objects.h:594
double sMax
Definition objects.h:599
int culvertCode
Definition objects.h:591
double yFull
Definition objects.h:593
double sFull
Definition objects.h:598
double yBot
Definition objects.h:602
double sBot
Definition objects.h:604
double rBot
Definition objects.h:605
int type
Definition objects.h:590
int transect
Definition objects.h:592
double ywMax
Definition objects.h:595
double aFull
Definition objects.h:596
double rFull
Definition objects.h:597
Definition objects.h:92
struct TableEntry * next
Definition objects.h:95
double x
Definition objects.h:93
double y
Definition objects.h:94