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