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
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 char paramsSet[12][3];// TRUE if UH params assigned to month
495} TUnitHyd;
496
497//-----------------
498// TREATMENT OBJECT
499//-----------------
500typedef struct
501{
502 int treatType; // treatment equation type: REMOVAL/CONCEN
503 MathExpr* equation; // treatment eqn. as tokenized math terms
504} TTreatment;
505
506//------------
507// NODE OBJECT
508//------------
509typedef struct
510{
511 char* ID; // node ID
512 int type; // node type code
513 int subIndex; // index of node's sub-category
514 int rptFlag; // reporting flag
515 double invertElev; // invert elevation (ft)
516 double initDepth; // initial storage level (ft)
517 double fullDepth; // dist. from invert to surface (ft)
518 double surDepth; // added depth under surcharge (ft)
519 double pondedArea; // area filled by ponded water (ft2)
520 TExtInflow* extInflow; // pointer to external inflow data
521 TDwfInflow* dwfInflow; // pointer to dry weather flow inflow data
522 TRdiiInflow* rdiiInflow; // pointer to RDII inflow data
523 TTreatment* treatment; // array of treatment data
524 //-----------------------------
525 int degree; // number of outflow links
526 int inlet; // is an inlet BYPASS or CAPTURE node
527 char updated; // true if state has been updated
528 double crownElev; // top of highest flowing closed conduit (ft)
529 double inflow; // total inflow (cfs)
530 double outflow; // total outflow (cfs)
531 double losses; // evap + exfiltration loss (ft3)
532 double oldVolume; // previous volume (ft3)
533 double newVolume; // current volume (ft3)
534 double fullVolume; // max. storage available (ft3)
535 double overflow; // overflow rate (cfs)
536 double oldDepth; // previous water depth (ft)
537 double newDepth; // current water depth (ft)
538 double oldLatFlow; // previous lateral inflow (cfs)
539 double newLatFlow; // current lateral inflow (cfs)
540 double* oldQual; // previous quality state
541 double* newQual; // current quality state
542 double* apiExtQualMassFlux; // pollutant mass flux from swmm_setValue function (mass/sec)
543 double oldFlowInflow; // previous flow inflow
544 double oldNetInflow; // previous net inflow
545 double qualInflow; // inflow seen for quality routing (cfs)
546 double apiExtInflow; // inflow from swmm_setValue function (cfs)
547} TNode;
548
549//---------------
550// OUTFALL OBJECT
551//---------------
552typedef struct
553{
554 int type; // outfall type code
555 char hasFlapGate; // true if contains flap gate
556 double fixedStage; // fixed outfall stage (ft)
557 int tideCurve; // index of tidal stage curve
558 int stageSeries; // index of outfall stage time series
559 int routeTo; // subcatchment index routed onto
560 double vRouted; // flow volume routed (ft3)
561 double* wRouted; // pollutant load routed (mass)
562} TOutfall;
563
564//--------------------
565// STORAGE UNIT OBJECT
566//--------------------
567typedef struct
568{
569 double fEvap; // fraction of evaporation realized
570 double a0; // surface area at zero height (ft2)
571 double a1; // coeff. of area v. height curve
572 double a2; // coeff. of area v. height curve
573 int aCurve; // index of tabulated area v. height curve
574 int shape; // type of shape from StorageType enum
575 TExfil* exfil; // ptr. to exfiltration object
576 //-----------------------------
577 double hrt; // hydraulic residence time (sec)
578 double evapLoss; // evaporation loss (ft3)
579 double exfilLoss; // exfiltration loss (ft3)
580} TStorage;
581
582//--------------------
583// FLOW DIVIDER OBJECT
584//--------------------
585typedef struct
586{
587 int link; // index of link with diverted flow
588 int type; // divider type code
589 double qMin; // minimum inflow for diversion (cfs)
590 double qMax; // flow when weir is full (cfs)
591 double dhMax; // height of weir (ft)
592 double cWeir; // weir discharge coeff.
593 int flowCurve; // index of inflow v. diverted flow curve
594} TDivider;
595
596//-----------------------------
597// CROSS SECTION DATA STRUCTURE
598//-----------------------------
599typedef struct
600{
601 int type; // type code of cross section shape
602 int culvertCode; // type of culvert (if any)
603 int transect; // index of transect/shape (if applicable)
604 double yFull; // depth when full (ft)
605 double wMax; // width at widest point (ft)
606 double ywMax; // depth at widest point (ft)
607 double aFull; // area when full (ft2)
608 double rFull; // hyd. radius when full (ft)
609 double sFull; // section factor when full (ft^4/3)
610 double sMax; // section factor at max. flow (ft^4/3)
611
612 // These variables have different meanings depending on section shape
613 double yBot; // depth of bottom section
614 double aBot; // area of bottom section
615 double sBot; // slope of bottom section
616 double rBot; // radius of bottom section
617} TXsect;
618
619//--------------------------------------
620// CROSS SECTION TRANSECT DATA STRUCTURE
621//--------------------------------------
622#define N_TRANSECT_TBL 51 // size of transect geometry tables
623typedef struct
624{
625 char* ID; // section ID
626 double yFull; // depth when full (ft)
627 double aFull; // area when full (ft2)
628 double rFull; // hyd. radius when full (ft)
629 double wMax; // width at widest point (ft)
630 double ywMax; // depth at max width (ft)
631 double sMax; // section factor at max. flow (ft^4/3)
632 double aMax; // area at max. flow (ft2)
633 double lengthFactor; // floodplain / channel length
634 //--------------------------------------
635 double roughness; // Manning's n
636 double areaTbl[N_TRANSECT_TBL]; // table of area v. depth
637 double hradTbl[N_TRANSECT_TBL]; // table of hyd. radius v. depth
638 double widthTbl[N_TRANSECT_TBL]; // table of top width v. depth
639 int nTbl; // size of geometry tables
640} TTransect;
641
642//-------------------------------
643// STREET CROSS SECTION STRUCTURE
644//-------------------------------
645typedef struct
646{
647 char* ID; // name of street section
648 int sides; // 1 or 2 sided street
649 double slope; // cross slope (Sx)
650 double width; // distance from curb to crown (ft) (Tmax)
651 double curbHeight; // curb height incl. depression (ft) (Hc)
652 double gutterDepression; // gutter depression (ft) (a)
653 double gutterWidth; // gutter width (ft) (W)
654 double roughness; // street's Manning n
655 double backSlope;
656 double backWidth;
658 TTransect transect; // street's transect
659} TStreet;
660
661//-------------------------------------
662// CUSTOM CROSS SECTION SHAPE STRUCTURE
663//-------------------------------------
664#define N_SHAPE_TBL 51 // size of shape geometry tables
665typedef struct
666{
667 int curve; // index of shape curve
668 int nTbl; // size of geometry tables
669 double aFull; // area when full
670 double rFull; // hyd. radius when full
671 double wMax; // max. width
672 double sMax; // max. section factor
673 double aMax; // area at max. section factor
674 double areaTbl[N_SHAPE_TBL]; // table of area v. depth
675 double hradTbl[N_SHAPE_TBL]; // table of hyd. radius v. depth
676 double widthTbl[N_SHAPE_TBL]; // table of top width v. depth
677} TShape;
678
679//------------
680// LINK OBJECT
681//------------
682typedef struct
683{
684 char* ID; // link ID
685 int type; // link type code
686 int subIndex; // index of link's sub-category
687 int rptFlag; // reporting flag
688 int node1; // start node index
689 int node2; // end node index
690 double offset1; // ht. above start node invert (ft)
691 double offset2; // ht. above end node invert (ft)
692 TXsect xsect; // cross section data
693 double q0; // initial flow (cfs)
694 double qLimit; // constraint on max. flow (cfs)
695 double cLossInlet; // inlet loss coeff.
696 double cLossOutlet; // outlet loss coeff.
697 double cLossAvg; // avg. loss coeff.
698 double seepRate; // seepage rate (ft/sec)
699 int hasFlapGate; // true if flap gate present
700 TInlet *inlet; // pointer to a street inlet object
701 //-----------------------------
702 double oldFlow; // previous flow rate (cfs)
703 double newFlow; // current flow rate (cfs)
704 double oldDepth; // previous flow depth (ft)
705 double newDepth; // current flow depth (ft)
706 double oldVolume; // previous flow volume (ft3)
707 double newVolume; // current flow volume (ft3)
708 double surfArea1; // upstream surface area (ft2)
709 double surfArea2; // downstream surface area (ft2)
710 double qFull; // flow when full (cfs)
711 double setting; // current control setting
712 double targetSetting; // target control setting
713 double timeLastSet; // time when setting was last changed
714 double froude; // Froude number
715 double* oldQual; // previous quality state
716 double* newQual; // current quality state
717 double* totalLoad; // total quality mass loading
718 int flowClass; // flow classification
719 double dqdh; // change in flow w.r.t. head (ft2/sec)
720 signed char direction; // flow direction flag
721 char bypassed; // bypass dynwave calc. flag
722 char normalFlow; // normal flow limited flag
723 char inletControl; // culvert inlet control flag
724 double* apiExtQualMassFlux; // pollutant mass flux from swmm_setValue function (mass/sec)
725} TLink;
726
727//---------------
728// CONDUIT OBJECT
729//---------------
730typedef struct
731{
732 double length; // conduit length (ft)
733 double roughness; // Manning's n
734 char barrels; // number of barrels
735 //-----------------------------
736 double modLength; // modified conduit length (ft)
737 double roughFactor; // roughness factor for DW routing
738 double slope; // slope
739 double beta; // discharge factor
740 double qMax; // max. flow (cfs)
741 double a1, a2; // upstream & downstream areas (ft2)
742 double q1, q2; // upstream & downstream flows per barrel (cfs)
743 double q1Old, q2Old; // previous values of q1 & q2 (cfs)
744 double evapLossRate; // evaporation rate (cfs)
745 double seepLossRate; // seepage rate (cfs)
746 char capacityLimited; // capacity limited flag
747 char superCritical; // super-critical flow flag
748 char hasLosses; // local losses flag
749 char fullState; // determines if either or both ends full
750} TConduit;
751
752//------------
753// PUMP OBJECT
754//------------
755typedef struct
756{
757 int type; // pump type
758 int pumpCurve; // pump curve table index
759 double initSetting; // initial speed setting
760 double yOn; // startup depth (ft)
761 double yOff; // shutoff depth (ft)
762 double xMin; // minimum pt. on pump curve
763 double xMax; // maximum pt. on pump curve
764} TPump;
765
766
767//---------------
768// ORIFICE OBJECT
769//---------------
770typedef struct
771{
772 int type; // orifice type code
773 int shape; // orifice shape code
774 double cDisch; // discharge coeff.
775 double orate; // time to open/close (sec)
776 //-----------------------------
777 double cOrif; // coeff. for orifice flow (ft^2.5/sec)
778 double hCrit; // inlet depth where weir flow begins (ft)
779 double cWeir; // coeff. for weir flow (cfs)
780 double length; // equivalent length (ft)
781 double surfArea; // equivalent surface area (ft2)
782} TOrifice;
783
784//------------
785// WEIR OBJECT
786//------------
787typedef struct
788{
789 int type; // weir type code
790 double cDisch1; // discharge coeff.
791 double cDisch2; // discharge coeff. for ends
792 double endCon; // end contractions
793 int canSurcharge; // true if weir can surcharge
794 double roadWidth; // width for ROADWAY weir
795 int roadSurface; // road surface material
796 int cdCurve; // discharge coeff. curve index
797 //-----------------------------
798 double cSurcharge; // orifice coeff. for surcharge
799 double length; // equivalent length (ft)
800 double slope; // slope for Vnotch & Trapezoidal weirs
801 double surfArea; // equivalent surface area (ft2)
802} TWeir;
803
804//---------------------
805// OUTLET DEVICE OBJECT
806//---------------------
807typedef struct
808{
809 double qCoeff; // discharge coeff.
810 double qExpon; // discharge exponent
811 int qCurve; // index of discharge rating curve
812 int curveType; // rating curve type
813} TOutlet;
814
815//-----------------
816// POLLUTANT OBJECT
817//-----------------
818typedef struct
819{
820 char* ID; // Pollutant ID
821 int units; // units
822 double mcf; // mass conversion factor
823 double dwfConcen; // dry weather sanitary flow concen.
824 double pptConcen; // precip. concen.
825 double gwConcen; // groundwater concen.
826 double rdiiConcen; // RDII concen.
827 double initConcen; // initial concen. in conveyance network
828 double kDecay; // decay constant (1/sec)
829 int coPollut; // co-pollutant index
830 double coFraction; // co-pollutant fraction
831 int snowOnly; // TRUE if buildup occurs only under snow
832} TPollut;
833
834//------------------------
835// BUILDUP FUNCTION OBJECT
836//------------------------
837typedef struct
838{
839 int normalizer; // normalizer code (area or curb length)
840 int funcType; // buildup function type code
841 double coeff[3]; // coeffs. of buildup function
842 double maxDays; // time to reach max. buildup (days)
843} TBuildup;
844
845//------------------------
846// WASHOFF FUNCTION OBJECT
847//------------------------
848typedef struct
849{
850 int funcType; // washoff function type code
851 double coeff; // function coeff.
852 double expon; // function exponent
853 double sweepEffic; // street sweeping fractional removal
854 double bmpEffic; // best mgt. practice fractional removal
855} TWashoff;
856
857//---------------
858// LANDUSE OBJECT
859//---------------
860typedef struct
861{
862 char* ID; // landuse name
863 double sweepInterval; // street sweeping interval (days)
864 double sweepRemoval; // fraction of buildup available for sweeping
865 double sweepDays0; // days since last sweeping at start
866 TBuildup* buildupFunc; // array of buildup functions for pollutants
867 TWashoff* washoffFunc; // array of washoff functions for pollutants
868} TLanduse;
869
870//--------------------------
871// REPORTING FLAGS STRUCTURE
872//--------------------------
873typedef struct
874{
875 char disabled; // TRUE if reporting is disabled
876 char input; // TRUE if input summary included
877 char subcatchments; // TRUE if subcatchment results reported
878 char nodes; // TRUE if node results reported
879 char links; // TRUE if link results reported
880 char continuity; // TRUE if continuity errors reported
881 char flowStats; // TRUE if routing link flow stats. reported
882 char controls; // TRUE if control actions reported
883 char averages; // TRUE if report step averaged results used
884 int linesPerPage; // number of lines printed per page
885} TRptFlags;
886
887//-------------------------------
888// CUMULATIVE RUNOFF TOTALS
889//-------------------------------
890typedef struct
891{ // All volume totals are in ft3.
892 double rainfall; // rainfall volume
893 double evap; // evaporation loss
894 double infil; // infiltration loss
895 double runoff; // runoff volume
896 double drains; // LID drains
897 double runon; // runon from outfalls
898 double initStorage; // inital surface storage
899 double finalStorage; // final surface storage
900 double initSnowCover; // initial snow cover
901 double finalSnowCover; // final snow cover
902 double snowRemoved; // snow removal
903 double pctError; // continuity error (%)
905
906//--------------------------
907// CUMULATIVE LOADING TOTALS
908//--------------------------
909typedef struct
910{ // All loading totals are in lbs.
911 double initLoad; // initial loading
912 double buildup; // loading added from buildup
913 double deposition; // loading added from wet deposition
914 double sweeping; // loading removed by street sweeping
915 double bmpRemoval; // loading removed by BMPs
916 double infil; // loading removed by infiltration
917 double runoff; // loading removed by runoff
918 double finalLoad; // final loading
919 double pctError; // continuity error (%)
921
922//------------------------------
923// CUMULATIVE GROUNDWATER TOTALS
924//------------------------------
925typedef struct
926{ // All GW flux totals are in feet.
927 double infil; // surface infiltration
928 double upperEvap; // upper zone evaporation loss
929 double lowerEvap; // lower zone evaporation loss
930 double lowerPerc; // percolation out of lower zone
931 double gwater; // groundwater flow
932 double initStorage; // initial groundwater storage
933 double finalStorage; // final groundwater storage
934 double pctError; // continuity error (%)
936
937//----------------------------
938// CUMULATIVE ROUTING TOTALS
939//----------------------------
940typedef struct
941{ // All routing totals are in ft3.
942 double dwInflow; // dry weather inflow
943 double wwInflow; // wet weather inflow
944 double gwInflow; // groundwater inflow
945 double iiInflow; // RDII inflow
946 double exInflow; // direct inflow
947 double flooding; // internal flooding
948 double outflow; // external outflow
949 double evapLoss; // evaporation loss
950 double seepLoss; // seepage loss
951 double reacted; // reaction losses
952 double initStorage; // initial storage volume
953 double finalStorage; // final storage volume
954 double pctError; // continuity error
956
957//---------------------
958// TIME STEP STATISTICS
959//---------------------
960#define TIMELEVELS 6
961typedef struct
962{
963 double minTimeStep; // min. routing time step taken (sec)
964 double maxTimeStep; // max. routing time step taken (sec)
965 double routingTime; // sum of routing time steps taken (sec)
966 int timeStepCount; // number of routing time steps
967 double trialsCount; // total routing trials used
968 double steadyStateTime; // total time in steady state (sec)
969 double timeStepIntervals[TIMELEVELS]; // time step intervals (sec)
970 int timeStepCounts[TIMELEVELS]; // count of steps in interval
972
973//--------------------
974// RAINFALL STATISTICS
975//--------------------
984
985//------------------------
986// SUBCATCHMENT STATISTICS
987//------------------------
988typedef struct
989{
990 double precip;
991 double runon;
992 double evap;
993 double infil;
994 double runoff;
995 double maxFlow;
999
1000//----------------
1001// NODE STATISTICS
1002//----------------
1022
1023//-------------------
1024// STORAGE STATISTICS
1025//-------------------
1026typedef struct
1027{
1028 double initVol;
1029 double avgVol;
1030 double maxVol;
1031 double maxFlow;
1036
1037//-------------------
1038// OUTFALL STATISTICS
1039//-------------------
1040typedef struct
1041{
1042 double avgFlow;
1043 double maxFlow;
1044 double* totalLoad;
1047
1048//----------------
1049// PUMP STATISTICS
1050//----------------
1051typedef struct
1052{
1053 double utilized;
1054 double minFlow;
1055 double avgFlow;
1056 double maxFlow;
1057 double volume;
1058 double energy;
1063} TPumpStats;
1064
1065//----------------
1066// LINK STATISTICS
1067//----------------
1087
1088//-------------------------
1089// MAXIMUM VALUE STATISTICS
1090//-------------------------
1091typedef struct
1092{
1093 int objType; // either NODE or LINK
1094 int index; // node or link index
1095 double value; // value of node or link statistic
1096} TMaxStats;
1097
1098//------------------
1099// REPORT FIELD INFO
1100//------------------
1101typedef struct
1102{
1103 char Name[80]; // name of reported variable
1104 char Units[80]; // units of reported variable
1105 char Enabled; // TRUE if appears in report table
1106 int Precision; // number of decimal places when reported
1107} TRptField;
1108
1109
1110//-----------------
1111// FILE INFORMATION
1112//-----------------
1113typedef struct
1114{
1116
1117} Project;
1118
1119
1120#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:664
struct DwfInflow TDwfInflow
Definition objects.h:470
#define N_TRANSECT_TBL
Definition objects.h:622
struct ExtInflow TExtInflow
Definition objects.h:458
#define TIMELEVELS
Definition objects.h:960
#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:1114
int index
Definition objects.h:1115
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:838
int normalizer
Definition objects.h:839
double maxDays
Definition objects.h:842
double coeff[3]
Definition objects.h:841
int funcType
Definition objects.h:840
Definition objects.h:731
char capacityLimited
Definition objects.h:746
char barrels
Definition objects.h:734
char hasLosses
Definition objects.h:748
double q1
Definition objects.h:742
double seepLossRate
Definition objects.h:745
double q2Old
Definition objects.h:743
double a1
Definition objects.h:741
double evapLossRate
Definition objects.h:744
double roughness
Definition objects.h:733
double q1Old
Definition objects.h:743
double a2
Definition objects.h:741
double roughFactor
Definition objects.h:737
double slope
Definition objects.h:738
double modLength
Definition objects.h:736
double qMax
Definition objects.h:740
double beta
Definition objects.h:739
double q2
Definition objects.h:742
char superCritical
Definition objects.h:747
char fullState
Definition objects.h:749
double length
Definition objects.h:732
Definition objects.h:586
int link
Definition objects.h:587
int flowCurve
Definition objects.h:593
int type
Definition objects.h:588
double dhMax
Definition objects.h:591
double qMax
Definition objects.h:590
double qMin
Definition objects.h:589
double cWeir
Definition objects.h:592
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:926
double gwater
Definition objects.h:931
double upperEvap
Definition objects.h:928
double lowerPerc
Definition objects.h:930
double finalStorage
Definition objects.h:933
double pctError
Definition objects.h:934
double lowerEvap
Definition objects.h:929
double infil
Definition objects.h:927
double initStorage
Definition objects.h:932
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:861
double sweepRemoval
Definition objects.h:864
TWashoff * washoffFunc
Definition objects.h:867
TBuildup * buildupFunc
Definition objects.h:866
double sweepDays0
Definition objects.h:865
double sweepInterval
Definition objects.h:863
char * ID
Definition objects.h:862
Definition objects.h:910
double pctError
Definition objects.h:919
double infil
Definition objects.h:916
double sweeping
Definition objects.h:914
double bmpRemoval
Definition objects.h:915
double finalLoad
Definition objects.h:918
double initLoad
Definition objects.h:911
double deposition
Definition objects.h:913
double buildup
Definition objects.h:912
double runoff
Definition objects.h:917
Definition objects.h:1092
int index
Definition objects.h:1094
int objType
Definition objects.h:1093
double value
Definition objects.h:1095
Definition objects.h:510
double crownElev
Definition objects.h:528
double fullVolume
Definition objects.h:534
double outflow
Definition objects.h:530
TTreatment * treatment
Definition objects.h:523
TRdiiInflow * rdiiInflow
Definition objects.h:522
double losses
Definition objects.h:531
int rptFlag
Definition objects.h:514
int subIndex
Definition objects.h:513
double * newQual
Definition objects.h:541
int degree
Definition objects.h:525
double oldLatFlow
Definition objects.h:538
double * oldQual
Definition objects.h:540
double inflow
Definition objects.h:529
double newLatFlow
Definition objects.h:539
double pondedArea
Definition objects.h:519
double qualInflow
Definition objects.h:545
int type
Definition objects.h:512
double newVolume
Definition objects.h:533
double initDepth
Definition objects.h:516
double fullDepth
Definition objects.h:517
double invertElev
Definition objects.h:515
TExtInflow * extInflow
Definition objects.h:520
double oldDepth
Definition objects.h:536
double surDepth
Definition objects.h:518
double apiExtInflow
Definition objects.h:546
double oldFlowInflow
Definition objects.h:543
double oldVolume
Definition objects.h:532
char updated
Definition objects.h:527
double * apiExtQualMassFlux
Definition objects.h:542
double overflow
Definition objects.h:535
char * ID
Definition objects.h:511
int inlet
Definition objects.h:526
TDwfInflow * dwfInflow
Definition objects.h:521
double newDepth
Definition objects.h:537
double oldNetInflow
Definition objects.h:544
Definition objects.h:1004
double totLatFlow
Definition objects.h:1013
DateTime maxDepthDate
Definition objects.h:1007
double maxLatFlow
Definition objects.h:1014
double maxDepth
Definition objects.h:1006
int nonConvergedCount
Definition objects.h:1018
DateTime maxInflowDate
Definition objects.h:1019
double avgDepth
Definition objects.h:1005
DateTime maxOverflowDate
Definition objects.h:1020
double maxInflow
Definition objects.h:1015
double timeCourantCritical
Definition objects.h:1012
double maxRptDepth
Definition objects.h:1008
double timeFlooded
Definition objects.h:1010
double maxPondedVol
Definition objects.h:1017
double maxOverflow
Definition objects.h:1016
double timeSurcharged
Definition objects.h:1011
double volFlooded
Definition objects.h:1009
Definition objects.h:771
double length
Definition objects.h:780
double surfArea
Definition objects.h:781
double orate
Definition objects.h:775
double cOrif
Definition objects.h:777
int type
Definition objects.h:772
double cDisch
Definition objects.h:774
int shape
Definition objects.h:773
double hCrit
Definition objects.h:778
double cWeir
Definition objects.h:779
Definition objects.h:553
int stageSeries
Definition objects.h:558
int type
Definition objects.h:554
double vRouted
Definition objects.h:560
double * wRouted
Definition objects.h:561
int tideCurve
Definition objects.h:557
double fixedStage
Definition objects.h:556
char hasFlapGate
Definition objects.h:555
int routeTo
Definition objects.h:559
Definition objects.h:1041
double * totalLoad
Definition objects.h:1044
double avgFlow
Definition objects.h:1042
double maxFlow
Definition objects.h:1043
int totalPeriods
Definition objects.h:1045
Definition objects.h:808
double qExpon
Definition objects.h:810
double qCoeff
Definition objects.h:809
int curveType
Definition objects.h:812
int qCurve
Definition objects.h:811
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:819
double coFraction
Definition objects.h:830
int coPollut
Definition objects.h:829
int snowOnly
Definition objects.h:831
double mcf
Definition objects.h:822
double rdiiConcen
Definition objects.h:826
double gwConcen
Definition objects.h:825
double pptConcen
Definition objects.h:824
double dwfConcen
Definition objects.h:823
double initConcen
Definition objects.h:827
double kDecay
Definition objects.h:828
int units
Definition objects.h:821
char * ID
Definition objects.h:820
Definition objects.h:756
double yOn
Definition objects.h:760
double yOff
Definition objects.h:761
double xMax
Definition objects.h:763
int type
Definition objects.h:757
double xMin
Definition objects.h:762
double initSetting
Definition objects.h:759
int pumpCurve
Definition objects.h:758
Definition objects.h:1052
double avgFlow
Definition objects.h:1055
int totalPeriods
Definition objects.h:1062
int startUps
Definition objects.h:1061
double utilized
Definition objects.h:1053
double offCurveLow
Definition objects.h:1059
double minFlow
Definition objects.h:1054
double maxFlow
Definition objects.h:1056
double volume
Definition objects.h:1057
double offCurveHigh
Definition objects.h:1060
double energy
Definition objects.h:1058
Definition objects.h:977
long periodsMissing
Definition objects.h:981
DateTime startDate
Definition objects.h:978
DateTime endDate
Definition objects.h:979
long periodsRain
Definition objects.h:980
long periodsMalfunc
Definition objects.h:982
Definition objects.h:476
int unitHyd
Definition objects.h:477
double area
Definition objects.h:478
Definition objects.h:941
double wwInflow
Definition objects.h:943
double flooding
Definition objects.h:947
double exInflow
Definition objects.h:946
double seepLoss
Definition objects.h:950
double dwInflow
Definition objects.h:942
double gwInflow
Definition objects.h:944
double pctError
Definition objects.h:954
double finalStorage
Definition objects.h:953
double reacted
Definition objects.h:951
double outflow
Definition objects.h:948
double evapLoss
Definition objects.h:949
double initStorage
Definition objects.h:952
double iiInflow
Definition objects.h:945
Definition objects.h:1102
char Name[80]
Definition objects.h:1103
int Precision
Definition objects.h:1106
char Units[80]
Definition objects.h:1104
char Enabled
Definition objects.h:1105
Definition objects.h:874
char controls
Definition objects.h:882
char flowStats
Definition objects.h:881
char continuity
Definition objects.h:880
int linesPerPage
Definition objects.h:884
char input
Definition objects.h:876
char subcatchments
Definition objects.h:877
char disabled
Definition objects.h:875
char averages
Definition objects.h:883
char nodes
Definition objects.h:878
char links
Definition objects.h:879
Definition objects.h:891
double infil
Definition objects.h:894
double rainfall
Definition objects.h:892
double finalStorage
Definition objects.h:899
double initStorage
Definition objects.h:898
double pctError
Definition objects.h:903
double drains
Definition objects.h:896
double runon
Definition objects.h:897
double evap
Definition objects.h:893
double snowRemoved
Definition objects.h:902
double finalSnowCover
Definition objects.h:901
double initSnowCover
Definition objects.h:900
double runoff
Definition objects.h:895
Definition objects.h:666
double sMax
Definition objects.h:672
double areaTbl[N_SHAPE_TBL]
Definition objects.h:674
double aFull
Definition objects.h:669
double wMax
Definition objects.h:671
int nTbl
Definition objects.h:668
double aMax
Definition objects.h:673
double widthTbl[N_SHAPE_TBL]
Definition objects.h:676
double hradTbl[N_SHAPE_TBL]
Definition objects.h:675
int curve
Definition objects.h:667
double rFull
Definition objects.h:670
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:568
double a1
Definition objects.h:571
double exfilLoss
Definition objects.h:579
TExfil * exfil
Definition objects.h:575
double a2
Definition objects.h:572
int aCurve
Definition objects.h:573
double evapLoss
Definition objects.h:578
double fEvap
Definition objects.h:569
double hrt
Definition objects.h:577
int shape
Definition objects.h:574
double a0
Definition objects.h:570
Definition objects.h:1027
double maxVol
Definition objects.h:1030
double avgVol
Definition objects.h:1029
DateTime maxVolDate
Definition objects.h:1034
double exfilLosses
Definition objects.h:1033
double initVol
Definition objects.h:1028
double maxFlow
Definition objects.h:1031
double evapLosses
Definition objects.h:1032
Definition objects.h:646
double gutterWidth
Definition objects.h:653
double curbHeight
Definition objects.h:651
double backWidth
Definition objects.h:656
TTransect transect
Definition objects.h:658
double backRoughness
Definition objects.h:657
double width
Definition objects.h:650
double roughness
Definition objects.h:654
double backSlope
Definition objects.h:655
double slope
Definition objects.h:649
int sides
Definition objects.h:648
char * ID
Definition objects.h:647
double gutterDepression
Definition objects.h:652
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:989
double infil
Definition objects.h:993
double evap
Definition objects.h:992
double pervRunoff
Definition objects.h:997
double runoff
Definition objects.h:994
double maxFlow
Definition objects.h:995
double precip
Definition objects.h:990
double runon
Definition objects.h:991
double impervRunoff
Definition objects.h:996
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:962
int timeStepCounts[TIMELEVELS]
Definition objects.h:970
double minTimeStep
Definition objects.h:963
double routingTime
Definition objects.h:965
double maxTimeStep
Definition objects.h:964
double timeStepIntervals[TIMELEVELS]
Definition objects.h:969
double trialsCount
Definition objects.h:967
int timeStepCount
Definition objects.h:966
double steadyStateTime
Definition objects.h:968
Definition objects.h:624
double wMax
Definition objects.h:629
char * ID
Definition objects.h:625
double rFull
Definition objects.h:628
double hradTbl[N_TRANSECT_TBL]
Definition objects.h:637
double aFull
Definition objects.h:627
double widthTbl[N_TRANSECT_TBL]
Definition objects.h:638
double ywMax
Definition objects.h:630
double yFull
Definition objects.h:626
double areaTbl[N_TRANSECT_TBL]
Definition objects.h:636
int nTbl
Definition objects.h:639
double lengthFactor
Definition objects.h:633
double roughness
Definition objects.h:635
double sMax
Definition objects.h:631
double aMax
Definition objects.h:632
Definition objects.h:501
int treatType
Definition objects.h:502
MathExpr * equation
Definition objects.h:503
Definition objects.h:485
int rainGage
Definition objects.h:487
char paramsSet[12][3]
Definition objects.h:494
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:849
double bmpEffic
Definition objects.h:854
double expon
Definition objects.h:852
double sweepEffic
Definition objects.h:853
int funcType
Definition objects.h:850
double coeff
Definition objects.h:851
Definition objects.h:788
double cDisch1
Definition objects.h:790
int roadSurface
Definition objects.h:795
double length
Definition objects.h:799
int cdCurve
Definition objects.h:796
double surfArea
Definition objects.h:801
double cDisch2
Definition objects.h:791
double cSurcharge
Definition objects.h:798
int canSurcharge
Definition objects.h:793
double slope
Definition objects.h:800
double endCon
Definition objects.h:792
int type
Definition objects.h:789
double roadWidth
Definition objects.h:794
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:600
double aBot
Definition objects.h:614
double wMax
Definition objects.h:605
double sMax
Definition objects.h:610
int culvertCode
Definition objects.h:602
double yFull
Definition objects.h:604
double sFull
Definition objects.h:609
double yBot
Definition objects.h:613
double sBot
Definition objects.h:615
double rBot
Definition objects.h:616
int type
Definition objects.h:601
int transect
Definition objects.h:603
double ywMax
Definition objects.h:606
double aFull
Definition objects.h:607
double rFull
Definition objects.h:608
Definition objects.h:95
struct TableEntry * next
Definition objects.h:98
double x
Definition objects.h:96
double y
Definition objects.h:97