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