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