OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
globals.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// globals.h
3//
4// Project: EPA SWMM5
5// Version: 5.2
6// Date: 11/01/21 (Build 5.2.0)
7// Author: L. Rossman
8//
9// Global Variables
10//
11// Update History
12// ==============
13// Build 5.1.004:
14// - Ignore RDII option added.
15// Build 5.1.007:
16// - Monthly climate variable adjustments added.
17// Build 5.1.008:
18// - Number of parallel threads for dynamic wave routing added.
19// - Minimum dynamic wave routing variable time step added.
20// Build 5.1.011:
21// - Changed WarningCode to Warnings (# warnings issued)
22// - Added error message text as a variable.
23// - Added elapsed simulation time (in decimal days) variable.
24// - Added variables associated with detailed routing events.
25// Build 5.1.012:
26// - InSteadyState variable made local to routing_execute in routing.c.
27// Build 5.1.013:
28// - CrownCutoff and RuleStep added as analysis option variables.
29// Build 5.1.015:
30// - Fixes bug in summary statistics when Report Start date > Start Date.
31// Build 5.2.0:
32// - Support for relative file names added.
33// - Support for writing multiple output hotstart files for given times
34// Build 5.3.0:
35// - Implemented option to save multiple hotstart files at different times
36//-----------------------------------------------------------------------------
37
38#ifndef GLOBALS_H
39#define GLOBALS_H
40
41
43 Finp, // Input file
44 Fout, // Output file
45 Frpt, // Report file
46 Fclimate, // Climate file
47 Frain, // Rainfall file
48 Frunoff, // Runoff file
49 Frdii, // RDII inflow file
50 FhotstartInput, // Hot start input file
51 *FhotstartOutputs, // Hot start output files
52 Finflows, // Inflows routing file
53 Foutflows; // Outflows routing file
54
55EXTERN long
56 Nperiods, // Number of reporting periods
57 TotalStepCount, // Total routing steps used
58 ReportStepCount, // Reporting routing steps used
59 NonConvergeCount; // Number of non-converging steps
60
61EXTERN char
62 Msg[MAXMSG+1], // Text of output message
63 ErrorMsg[MAXMSG+1], // Text of error message
64 Title[MAXTITLE][MAXMSG+1],// Project title
65 TempDir[MAXFNAME+1], // Temporary file directory
66 InpDir[MAXFNAME+1]; // Input file directory
67
69 RptFlags; // Reporting options
70
71EXTERN int
72 Nobjects[MAX_OBJ_TYPES], // Number of each object type
73 Nnodes[MAX_NODE_TYPES], // Number of each node sub-type
74 Nlinks[MAX_LINK_TYPES], // Number of each link sub-type
75 UnitSystem, // Unit system
76 FlowUnits, // Flow units
77 InfilModel, // Infiltration method
78 RouteModel, // Flow routing method
79 ForceMainEqn, // Flow equation for force mains
80 LinkOffsets, // Link offset convention
81 SurchargeMethod, // EXTRAN or SLOT method
82 ZeroOutfallBackflowQual, // Outfall backflow enters clean
83 AllowPonding, // Allow water to pond at nodes
84 InertDamping, // Degree of inertial damping
85 NormalFlowLtd, // Normal flow limited
86 SlopeWeighting, // Use slope weighting
87 Compatibility, // SWMM 5/3/4 compatibility
88 SkipSteadyState, // Skip over steady state periods
89 IgnoreRainfall, // Ignore rainfall/runoff
90 IgnoreRDII, // Ignore RDII
91 IgnoreSnowmelt, // Ignore snowmelt
92 IgnoreGwater, // Ignore groundwater
93 IgnoreRouting, // Ignore flow routing
94 IgnoreQuality, // Ignore water quality
95 ErrorCode, // Error code number
96 Warnings, // Number of warning messages
97 WetStep, // Runoff wet time step (sec)
98 DryStep, // Runoff dry time step (sec)
99 ReportStep, // Reporting time step (sec)
100 RuleStep, // Rule evaluation time step (sec)
101 SweepStart, // Day of year when sweeping starts
102 SweepEnd, // Day of year when sweeping ends
103 MaxTrials, // Max. trials for DW routing
104 NumThreads, // Number of parallel threads used
105 NumEvents; // Number of detailed events
106
107EXTERN double
108 RouteStep, // Routing time step (sec)
109 MinRouteStep, // Minimum variable time step (sec)
110 LengtheningStep, // Time step for lengthening (sec)
111 StartDryDays, // Antecedent dry days
112 CourantFactor, // Courant time step factor
113 MinSurfArea, // Minimum nodal surface area
114 MinSlope, // Minimum conduit slope
115 RunoffError, // Runoff continuity error
116 GwaterError, // Groundwater continuity error
117 FlowError, // Flow routing error
118 QualError, // Quality routing error
119 HeadTol, // DW routing head tolerance (ft)
120 SysFlowTol, // Tolerance for steady system flow
121 LatFlowTol, // Tolerance for steady nodal inflow
122 CrownCutoff; // Fractional pipe crown cutoff
123
125 StartDate, // Starting date
126 StartTime, // Starting time
127 StartDateTime, // Starting Date+Time
128 EndDate, // Ending date
129 EndTime, // Ending time
130 EndDateTime, // Ending Date+Time
131 ReportStartDate, // Report start date
132 ReportStartTime, // Report start time
133 ReportStart; // Report start Date+Time
134
135EXTERN double
136 ReportTime, // Current reporting time (msec)
137 OldRunoffTime, // Previous runoff time (msec)
138 NewRunoffTime, // Current runoff time (msec)
139 OldRoutingTime, // Previous routing time (msec)
140 NewRoutingTime, // Current routing time (msec)
141 TotalDuration, // Simulation duration (msec)
142 ElapsedTime; // Current elapsed time (days)
143
144EXTERN TTemp Temp; // Temperature data
145EXTERN TEvap Evap; // Evaporation data
146EXTERN TWind Wind; // Wind speed data
147EXTERN TSnow Snow; // Snow melt data
148EXTERN TAdjust Adjust; // Climate adjustments
149
150EXTERN TSnowmelt* Snowmelt; // Array of snow melt objects
151EXTERN TGage* Gage; // Array of rain gages
152EXTERN TSubcatch* Subcatch; // Array of subcatchments
153EXTERN TAquifer* Aquifer; // Array of groundwater aquifers
154EXTERN TUnitHyd* UnitHyd; // Array of unit hydrographs
155EXTERN TNode* Node; // Array of nodes
156EXTERN TOutfall* Outfall; // Array of outfall nodes
157EXTERN TDivider* Divider; // Array of divider nodes
158EXTERN TStorage* Storage; // Array of storage nodes
159EXTERN TLink* Link; // Array of links
160EXTERN TConduit* Conduit; // Array of conduit links
161EXTERN TPump* Pump; // Array of pump links
162EXTERN TOrifice* Orifice; // Array of orifice links
163EXTERN TWeir* Weir; // Array of weir links
164EXTERN TOutlet* Outlet; // Array of outlet device links
165EXTERN TPollut* Pollut; // Array of pollutants
166EXTERN TLanduse* Landuse; // Array of landuses
167EXTERN TPattern* Pattern; // Array of time patterns
168EXTERN TTable* Curve; // Array of curve tables
169EXTERN TTable* Tseries; // Array of time series tables
170EXTERN TTransect* Transect; // Array of transect data
171EXTERN TStreet* Street; // Array of defined Street cross-sections
172EXTERN TShape* Shape; // Array of custom conduit shapes
173EXTERN TEvent* Event; // Array of routing events
174
175// Process-global warning callback. When set (via swmm_setWarningCallback), the
176// engine invokes it for each warning in addition to writing the .rpt line, so a
177// host can stream warnings live. Raw function-pointer type (not the public
178// typedef) to avoid include-order coupling; the types are compatible.
179EXTERN void (*WarningCallback)(const char *message, void *userData);
180EXTERN void* WarningCallbackData; // Opaque user data for the callback
181
182
183#endif //GLOBALS_H
double DateTime
Type for storing date and time values.
Definition datetime.h:29
EXTERN double CourantFactor
Definition globals.h:112
EXTERN double NewRoutingTime
Definition globals.h:140
EXTERN int IgnoreRDII
Definition globals.h:90
EXTERN double GwaterError
Definition globals.h:116
EXTERN int DryStep
Definition globals.h:98
EXTERN int Nnodes[MAX_NODE_TYPES]
Definition globals.h:73
EXTERN TStorage * Storage
Definition globals.h:158
EXTERN TSubcatch * Subcatch
Definition globals.h:152
EXTERN DateTime ReportStart
Definition globals.h:133
EXTERN TAdjust Adjust
Definition globals.h:148
EXTERN TPump * Pump
Definition globals.h:161
EXTERN TSnow Snow
Definition globals.h:147
EXTERN int IgnoreRainfall
Definition globals.h:89
EXTERN char Msg[MAXMSG+1]
Definition globals.h:62
EXTERN int InertDamping
Definition globals.h:84
EXTERN double RunoffError
Definition globals.h:115
EXTERN double LatFlowTol
Definition globals.h:121
EXTERN int ForceMainEqn
Definition globals.h:79
EXTERN double OldRoutingTime
Definition globals.h:139
EXTERN double FlowError
Definition globals.h:117
EXTERN int IgnoreGwater
Definition globals.h:92
EXTERN int Nlinks[MAX_LINK_TYPES]
Definition globals.h:74
EXTERN long NonConvergeCount
Definition globals.h:59
EXTERN int Nobjects[MAX_OBJ_TYPES]
Definition globals.h:72
EXTERN TFile * FhotstartOutputs
Definition globals.h:51
EXTERN double MinSlope
Definition globals.h:114
EXTERN int WetStep
Definition globals.h:97
EXTERN TFile Finflows
Definition globals.h:52
EXTERN int IgnoreQuality
Definition globals.h:94
EXTERN TFile Frdii
Definition globals.h:49
EXTERN double OldRunoffTime
Definition globals.h:137
EXTERN TFile FhotstartInput
Definition globals.h:50
EXTERN int FlowUnits
Definition globals.h:76
EXTERN double SysFlowTol
Definition globals.h:120
EXTERN double MinRouteStep
Definition globals.h:109
EXTERN TEvap Evap
Definition globals.h:145
EXTERN TFile Finp
Definition globals.h:43
EXTERN int InfilModel
Definition globals.h:77
EXTERN int IgnoreSnowmelt
Definition globals.h:91
EXTERN int MaxTrials
Definition globals.h:103
EXTERN TPollut * Pollut
Definition globals.h:165
EXTERN double CrownCutoff
Definition globals.h:122
EXTERN TWeir * Weir
Definition globals.h:163
EXTERN int Warnings
Definition globals.h:96
EXTERN int RouteModel
Definition globals.h:78
EXTERN DateTime StartDate
Definition globals.h:125
EXTERN DateTime EndTime
Definition globals.h:129
EXTERN double ElapsedTime
Definition globals.h:142
EXTERN TOrifice * Orifice
Definition globals.h:162
EXTERN TOutfall * Outfall
Definition globals.h:156
EXTERN TDivider * Divider
Definition globals.h:157
EXTERN TShape * Shape
Definition globals.h:172
EXTERN int SkipSteadyState
Definition globals.h:88
EXTERN TGage * Gage
Definition globals.h:151
EXTERN TFile Fclimate
Definition globals.h:46
EXTERN int RuleStep
Definition globals.h:100
EXTERN char TempDir[MAXFNAME+1]
Definition globals.h:65
EXTERN double QualError
Definition globals.h:118
EXTERN TFile Frunoff
Definition globals.h:48
EXTERN int ErrorCode
Definition globals.h:95
EXTERN TOutlet * Outlet
Definition globals.h:164
EXTERN int NormalFlowLtd
Definition globals.h:85
EXTERN DateTime EndDate
Definition globals.h:128
EXTERN long Nperiods
Definition globals.h:56
EXTERN long TotalStepCount
Definition globals.h:57
EXTERN int SweepEnd
Definition globals.h:102
EXTERN char InpDir[MAXFNAME+1]
Definition globals.h:66
EXTERN double ReportTime
Definition globals.h:136
EXTERN TSnowmelt * Snowmelt
Definition globals.h:150
EXTERN TNode * Node
Definition globals.h:155
EXTERN int SurchargeMethod
Definition globals.h:81
EXTERN DateTime StartDateTime
Definition globals.h:127
EXTERN TFile Fout
Definition globals.h:44
EXTERN int SweepStart
Definition globals.h:101
EXTERN TRptFlags RptFlags
Definition globals.h:69
EXTERN int AllowPonding
Definition globals.h:83
EXTERN double TotalDuration
Definition globals.h:141
EXTERN DateTime ReportStartTime
Definition globals.h:132
EXTERN int ZeroOutfallBackflowQual
Definition globals.h:82
EXTERN int LinkOffsets
Definition globals.h:80
EXTERN TFile Frain
Definition globals.h:47
EXTERN DateTime ReportStartDate
Definition globals.h:131
EXTERN double NewRunoffTime
Definition globals.h:138
EXTERN TTemp Temp
Definition globals.h:144
EXTERN TAquifer * Aquifer
Definition globals.h:153
EXTERN TEvent * Event
Definition globals.h:173
EXTERN int ReportStep
Definition globals.h:99
EXTERN TStreet * Street
Definition globals.h:171
EXTERN TLanduse * Landuse
Definition globals.h:166
EXTERN DateTime StartTime
Definition globals.h:126
EXTERN DateTime EndDateTime
Definition globals.h:130
EXTERN double MinSurfArea
Definition globals.h:113
EXTERN TPattern * Pattern
Definition globals.h:167
EXTERN TTransect * Transect
Definition globals.h:170
EXTERN long ReportStepCount
Definition globals.h:58
EXTERN int Compatibility
Definition globals.h:87
EXTERN double StartDryDays
Definition globals.h:111
EXTERN TLink * Link
Definition globals.h:159
EXTERN char ErrorMsg[MAXMSG+1]
Definition globals.h:63
EXTERN int SlopeWeighting
Definition globals.h:86
EXTERN int NumEvents
Definition globals.h:105
EXTERN double LengtheningStep
Definition globals.h:110
EXTERN double HeadTol
Definition globals.h:119
EXTERN TTable * Tseries
Definition globals.h:169
EXTERN TConduit * Conduit
Definition globals.h:160
EXTERN TWind Wind
Definition globals.h:146
EXTERN TTable * Curve
Definition globals.h:168
EXTERN double RouteStep
Definition globals.h:108
EXTERN int IgnoreRouting
Definition globals.h:93
EXTERN void * WarningCallbackData
Definition globals.h:180
EXTERN int NumThreads
Definition globals.h:104
EXTERN TUnitHyd * UnitHyd
Definition globals.h:154
EXTERN TFile Foutflows
Definition globals.h:53
EXTERN char Title[MAXTITLE][MAXMSG+1]
Definition globals.h:64
EXTERN TFile Frpt
Definition globals.h:45
EXTERN void(* WarningCallback)(const char *message, void *userData)
Definition globals.h:179
EXTERN int UnitSystem
Definition globals.h:75
#define MAX_NODE_TYPES
Maximum number of node types.
Definition enums.h:98
#define MAX_LINK_TYPES
Maximum number of link types.
Definition enums.h:120
@ MAX_OBJ_TYPES
Maximum number of object types.
Definition enums.h:91
#define MAXTITLE
Maximum number of title lines.
Definition consts.h:58
#define MAXMSG
Maximum number of characters in a message.
Definition consts.h:64
#define MAXFNAME
Maximum number of characters in a file name.
Definition consts.h:76
#define EXTERN
Definition headers.h:15
Definition objects.h:225
Definition objects.h:248
Definition objects.h:731
Definition objects.h:586
Definition objects.h:208
Definition objects.h:239
Definition objects.h:83
Definition objects.h:125
Definition objects.h:861
Definition objects.h:510
Definition objects.h:771
Definition objects.h:553
Definition objects.h:808
Definition objects.h:437
Definition objects.h:819
Definition objects.h:756
Definition objects.h:874
Definition objects.h:666
Definition objects.h:194
Definition objects.h:316
Definition objects.h:568
Definition objects.h:646
Definition objects.h:388
Definition objects.h:106
Definition objects.h:162
Definition objects.h:624
Definition objects.h:485
Definition objects.h:788
Definition objects.h:182