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
47
48#ifndef GLOBALS_H
49#define GLOBALS_H
50
51EXTERN TFile Finp, // Input file
52 Fout, // Output file
53 Frpt, // Report file
54 Fclimate, // Climate file
55 Frain, // Rainfall file
56 Frunoff, // Runoff file
57 Frdii, // RDII inflow file
58 FhotstartInput, // Hot start input file
59 *FhotstartOutputs, // Hot start output files
60 Finflows, // Inflows routing file
61 Foutflows; // Outflows routing file
62
63EXTERN long Nperiods, // Number of reporting periods
64 TotalStepCount, // Total routing steps used
65 ReportStepCount, // Reporting routing steps used
66 NonConvergeCount; // Number of non-converging steps
67
68EXTERN char Msg[MAXMSG + 1], // Text of output message
69 ErrorMsg[MAXMSG + 1], // Text of error message
70 Title[MAXTITLE][MAXMSG + 1], // Project title
71 TempDir[MAXFNAME + 1], // Temporary file directory
72 InpDir[MAXFNAME + 1]; // Input file directory
73
74EXTERN TRptFlags RptFlags; // Reporting options
75
76EXTERN int Nobjects[MAX_OBJ_TYPES], // Number of each object type
77 Nnodes[MAX_NODE_TYPES], // Number of each node sub-type
78 Nlinks[MAX_LINK_TYPES], // Number of each link sub-type
79 UnitSystem, // Unit system
80 FlowUnits, // Flow units
81 InfilModel, // Infiltration method
82 RouteModel, // Flow routing method
83 ForceMainEqn, // Flow equation for force mains
84 LinkOffsets, // Link offset convention
85 SurchargeMethod, // EXTRAN or SLOT method
86 ZeroOutfallBackflowQual, // Outfall backflow enters clean
87 AllowPonding, // Allow water to pond at nodes
88 InertDamping, // Degree of inertial damping
89 NormalFlowLtd, // Normal flow limited
90 SlopeWeighting, // Use slope weighting
91 Compatibility, // SWMM 5/3/4 compatibility
92 SkipSteadyState, // Skip over steady state periods
93 IgnoreRainfall, // Ignore rainfall/runoff
94 IgnoreRDII, // Ignore RDII
95 IgnoreSnowmelt, // Ignore snowmelt
96 IgnoreGwater, // Ignore groundwater
97 IgnoreRouting, // Ignore flow routing
98 IgnoreQuality, // Ignore water quality
99 ErrorCode, // Error code number
100 Warnings, // Number of warning messages
101 WetStep, // Runoff wet time step (sec)
102 DryStep, // Runoff dry time step (sec)
103 ReportStep, // Reporting time step (sec)
104 RuleStep, // Rule evaluation time step (sec)
105 SweepStart, // Day of year when sweeping starts
106 SweepEnd, // Day of year when sweeping ends
107 MaxTrials, // Max. trials for DW routing
108 NumThreads, // Number of parallel threads used
109 NumEvents; // Number of detailed events
110
111EXTERN double RouteStep, // Routing time step (sec)
112 MinRouteStep, // Minimum variable time step (sec)
113 LengtheningStep, // Time step for lengthening (sec)
114 StartDryDays, // Antecedent dry days
115 CourantFactor, // Courant time step factor
116 MinSurfArea, // Minimum nodal surface area
117 MinSlope, // Minimum conduit slope
118 RunoffError, // Runoff continuity error
119 GwaterError, // Groundwater continuity error
120 FlowError, // Flow routing error
121 QualError, // Quality routing error
122 HeadTol, // DW routing head tolerance (ft)
123 SysFlowTol, // Tolerance for steady system flow
124 LatFlowTol, // Tolerance for steady nodal inflow
125 CrownCutoff; // Fractional pipe crown cutoff
126
127EXTERN DateTime StartDate, // Starting date
128 StartTime, // Starting time
129 StartDateTime, // Starting Date+Time
130 EndDate, // Ending date
131 EndTime, // Ending time
132 EndDateTime, // Ending Date+Time
133 ReportStartDate, // Report start date
134 ReportStartTime, // Report start time
135 ReportStart; // Report start Date+Time
136
137EXTERN double ReportTime, // Current reporting time (msec)
138 OldRunoffTime, // Previous runoff time (msec)
139 NewRunoffTime, // Current runoff time (msec)
140 OldRoutingTime, // Previous routing time (msec)
141 NewRoutingTime, // Current routing time (msec)
142 TotalDuration, // Simulation duration (msec)
143 ElapsedTime; // Current elapsed time (days)
144
145EXTERN TTemp Temp; // Temperature data
146EXTERN TEvap Evap; // Evaporation data
147EXTERN TWind Wind; // Wind speed data
148EXTERN TSnow Snow; // Snow melt data
149EXTERN TAdjust Adjust; // Climate adjustments
150
151EXTERN TSnowmelt* Snowmelt; // Array of snow melt objects
152EXTERN TGage* Gage; // Array of rain gages
153EXTERN TSubcatch* Subcatch; // Array of subcatchments
154EXTERN TAquifer* Aquifer; // Array of groundwater aquifers
155EXTERN TUnitHyd* UnitHyd; // Array of unit hydrographs
156EXTERN TNode* Node; // Array of nodes
157EXTERN TOutfall* Outfall; // Array of outfall nodes
158EXTERN TDivider* Divider; // Array of divider nodes
159EXTERN TStorage* Storage; // Array of storage nodes
160EXTERN TLink* Link; // Array of links
161EXTERN TConduit* Conduit; // Array of conduit links
162EXTERN TPump* Pump; // Array of pump links
163EXTERN TOrifice* Orifice; // Array of orifice links
164EXTERN TWeir* Weir; // Array of weir links
165EXTERN TOutlet* Outlet; // Array of outlet device links
166EXTERN TPollut* Pollut; // Array of pollutants
167EXTERN TLanduse* Landuse; // Array of landuses
168EXTERN TPattern* Pattern; // Array of time patterns
169EXTERN TTable* Curve; // Array of curve tables
170EXTERN TTable* Tseries; // Array of time series tables
171EXTERN TTransect* Transect; // Array of transect data
172EXTERN TStreet* Street; // Array of defined Street cross-sections
173EXTERN TShape* Shape; // Array of custom conduit shapes
174EXTERN TEvent* Event; // Array of routing events
175
176// Process-global warning callback. When set (via swmm_setWarningCallback), the
177// engine invokes it for each warning in addition to writing the .rpt line, so a
178// host can stream warnings live. Raw function-pointer type (not the public
179// typedef) to avoid include-order coupling; the types are compatible.
180EXTERN void (*WarningCallback)(const char* message, void* userData);
181EXTERN void* WarningCallbackData; // Opaque user data for the callback
182
183#endif //GLOBALS_H
double DateTime
Type for storing date and time values.
Definition datetime.h:34
EXTERN double CourantFactor
Definition globals.h:115
EXTERN double NewRoutingTime
Definition globals.h:141
EXTERN int IgnoreRDII
Definition globals.h:94
EXTERN double GwaterError
Definition globals.h:119
EXTERN int DryStep
Definition globals.h:102
EXTERN int Nnodes[MAX_NODE_TYPES]
Definition globals.h:77
EXTERN TStorage * Storage
Definition globals.h:159
EXTERN TSubcatch * Subcatch
Definition globals.h:153
EXTERN DateTime ReportStart
Definition globals.h:135
EXTERN TAdjust Adjust
Definition globals.h:149
EXTERN TPump * Pump
Definition globals.h:162
EXTERN TSnow Snow
Definition globals.h:148
EXTERN int IgnoreRainfall
Definition globals.h:93
EXTERN char Msg[MAXMSG+1]
Definition globals.h:68
EXTERN int InertDamping
Definition globals.h:88
EXTERN double RunoffError
Definition globals.h:118
EXTERN double LatFlowTol
Definition globals.h:124
EXTERN int ForceMainEqn
Definition globals.h:83
EXTERN double OldRoutingTime
Definition globals.h:140
EXTERN double FlowError
Definition globals.h:120
EXTERN int IgnoreGwater
Definition globals.h:96
EXTERN int Nlinks[MAX_LINK_TYPES]
Definition globals.h:78
EXTERN long NonConvergeCount
Definition globals.h:66
EXTERN int Nobjects[MAX_OBJ_TYPES]
Definition globals.h:76
EXTERN TFile * FhotstartOutputs
Definition globals.h:59
EXTERN double MinSlope
Definition globals.h:117
EXTERN int WetStep
Definition globals.h:101
EXTERN TFile Finflows
Definition globals.h:60
EXTERN int IgnoreQuality
Definition globals.h:98
EXTERN TFile Frdii
Definition globals.h:57
EXTERN double OldRunoffTime
Definition globals.h:138
EXTERN TFile FhotstartInput
Definition globals.h:58
EXTERN int FlowUnits
Definition globals.h:80
EXTERN double SysFlowTol
Definition globals.h:123
EXTERN double MinRouteStep
Definition globals.h:112
EXTERN TEvap Evap
Definition globals.h:146
EXTERN TFile Finp
Definition globals.h:51
EXTERN int InfilModel
Definition globals.h:81
EXTERN int IgnoreSnowmelt
Definition globals.h:95
EXTERN int MaxTrials
Definition globals.h:107
EXTERN TPollut * Pollut
Definition globals.h:166
EXTERN double CrownCutoff
Definition globals.h:125
EXTERN TWeir * Weir
Definition globals.h:164
EXTERN int Warnings
Definition globals.h:100
EXTERN int RouteModel
Definition globals.h:82
EXTERN DateTime StartDate
Definition globals.h:127
EXTERN DateTime EndTime
Definition globals.h:131
EXTERN double ElapsedTime
Definition globals.h:143
EXTERN TOrifice * Orifice
Definition globals.h:163
EXTERN TOutfall * Outfall
Definition globals.h:157
EXTERN TDivider * Divider
Definition globals.h:158
EXTERN TShape * Shape
Definition globals.h:173
EXTERN int SkipSteadyState
Definition globals.h:92
EXTERN TGage * Gage
Definition globals.h:152
EXTERN TFile Fclimate
Definition globals.h:54
EXTERN int RuleStep
Definition globals.h:104
EXTERN char TempDir[MAXFNAME+1]
Definition globals.h:71
EXTERN double QualError
Definition globals.h:121
EXTERN TFile Frunoff
Definition globals.h:56
EXTERN int ErrorCode
Definition globals.h:99
EXTERN TOutlet * Outlet
Definition globals.h:165
EXTERN int NormalFlowLtd
Definition globals.h:89
EXTERN DateTime EndDate
Definition globals.h:130
EXTERN long Nperiods
Definition globals.h:63
EXTERN long TotalStepCount
Definition globals.h:64
EXTERN int SweepEnd
Definition globals.h:106
EXTERN char InpDir[MAXFNAME+1]
Definition globals.h:72
EXTERN double ReportTime
Definition globals.h:137
EXTERN TSnowmelt * Snowmelt
Definition globals.h:151
EXTERN TNode * Node
Definition globals.h:156
EXTERN int SurchargeMethod
Definition globals.h:85
EXTERN DateTime StartDateTime
Definition globals.h:129
EXTERN TFile Fout
Definition globals.h:52
EXTERN int SweepStart
Definition globals.h:105
EXTERN TRptFlags RptFlags
Definition globals.h:74
EXTERN int AllowPonding
Definition globals.h:87
EXTERN double TotalDuration
Definition globals.h:142
EXTERN DateTime ReportStartTime
Definition globals.h:134
EXTERN int ZeroOutfallBackflowQual
Definition globals.h:86
EXTERN int LinkOffsets
Definition globals.h:84
EXTERN TFile Frain
Definition globals.h:55
EXTERN DateTime ReportStartDate
Definition globals.h:133
EXTERN double NewRunoffTime
Definition globals.h:139
EXTERN TTemp Temp
Definition globals.h:145
EXTERN TAquifer * Aquifer
Definition globals.h:154
EXTERN TEvent * Event
Definition globals.h:174
EXTERN int ReportStep
Definition globals.h:103
EXTERN TStreet * Street
Definition globals.h:172
EXTERN TLanduse * Landuse
Definition globals.h:167
EXTERN DateTime StartTime
Definition globals.h:128
EXTERN DateTime EndDateTime
Definition globals.h:132
EXTERN double MinSurfArea
Definition globals.h:116
EXTERN TPattern * Pattern
Definition globals.h:168
EXTERN TTransect * Transect
Definition globals.h:171
EXTERN long ReportStepCount
Definition globals.h:65
EXTERN int Compatibility
Definition globals.h:91
EXTERN double StartDryDays
Definition globals.h:114
EXTERN TLink * Link
Definition globals.h:160
EXTERN char ErrorMsg[MAXMSG+1]
Definition globals.h:69
EXTERN int SlopeWeighting
Definition globals.h:90
EXTERN int NumEvents
Definition globals.h:109
EXTERN double LengtheningStep
Definition globals.h:113
EXTERN double HeadTol
Definition globals.h:122
EXTERN TTable * Tseries
Definition globals.h:170
EXTERN TConduit * Conduit
Definition globals.h:161
EXTERN TWind Wind
Definition globals.h:147
EXTERN TTable * Curve
Definition globals.h:169
EXTERN double RouteStep
Definition globals.h:111
EXTERN int IgnoreRouting
Definition globals.h:97
EXTERN void * WarningCallbackData
Definition globals.h:181
EXTERN int NumThreads
Definition globals.h:108
EXTERN TUnitHyd * UnitHyd
Definition globals.h:155
EXTERN TFile Foutflows
Definition globals.h:61
EXTERN char Title[MAXTITLE][MAXMSG+1]
Definition globals.h:70
EXTERN TFile Frpt
Definition globals.h:53
EXTERN void(* WarningCallback)(const char *message, void *userData)
Definition globals.h:180
EXTERN int UnitSystem
Definition globals.h:79
#define MAX_NODE_TYPES
Maximum number of node types.
Definition enums.h:102
#define MAX_LINK_TYPES
Maximum number of link types.
Definition enums.h:123
@ MAX_OBJ_TYPES
Maximum number of object types.
Definition enums.h:95
#define MAXTITLE
Maximum number of title lines.
Definition consts.h:64
#define MAXMSG
Maximum number of characters in a message.
Definition consts.h:70
#define MAXFNAME
Maximum number of characters in a file name.
Definition consts.h:82
#define EXTERN
Definition headers.h:26
Definition objects.h:221
Definition objects.h:242
Definition objects.h:703
Definition objects.h:564
Definition objects.h:205
Definition objects.h:234
Definition objects.h:87
Definition objects.h:126
Definition objects.h:824
Definition objects.h:490
Definition objects.h:740
Definition objects.h:533
Definition objects.h:775
Definition objects.h:423
Definition objects.h:785
Definition objects.h:727
Definition objects.h:836
Definition objects.h:640
Definition objects.h:192
Definition objects.h:307
Definition objects.h:547
Definition objects.h:621
Definition objects.h:375
Definition objects.h:108
Definition objects.h:162
Definition objects.h:600
Definition objects.h:467
Definition objects.h:756
Definition objects.h:181