Cleaning up tests folder (#167)
This commit is contained in:
committed by
Sam Hatchett
parent
7bc041e77e
commit
d57b20e44d
@@ -1,188 +0,0 @@
|
||||
Attribute VB_Name = "basNetRes"
|
||||
Public Type typNetRes
|
||||
nNodes As Long
|
||||
nLinks As Long
|
||||
|
||||
NodesID() As String
|
||||
LinksID() As String
|
||||
|
||||
NodesDemand() As Single
|
||||
NodesHead() As Single
|
||||
NodesPressure() As Single
|
||||
NodesQuality() As Single
|
||||
|
||||
LinksFlow() As Single
|
||||
LinksHeadloss() As Single
|
||||
LinksQuality() As Single
|
||||
LinksSetting() As Single
|
||||
LinksStatus() As Single
|
||||
LinksVelocity() As Single
|
||||
|
||||
End Type
|
||||
Public Function ReadOutputFile(OutFile As String, NetRes As typNetRes)
|
||||
'---------------------------------------------------------------------------------------
|
||||
Dim i As Long, F As Long, r As Long, nRep As Long, j As Long
|
||||
Dim tmpArr() As Single
|
||||
Dim pos As Long, N As Long
|
||||
Dim tmpLong As Long, tmpSingle As Single
|
||||
Dim ReportingTimeStep As Long, ReportingStartTime As Long
|
||||
Dim SimulationDuration As Long
|
||||
Dim ProblemTitletLine As String * 80
|
||||
Dim NumberOfNodes As Long
|
||||
Dim NumberOfLinks As Long
|
||||
Dim NumberOfReservoirsAndTanks As Long
|
||||
Dim NumberOfPumps As Long
|
||||
Dim NumberOfValves As Long
|
||||
Dim WaterQualityOption As Long
|
||||
Dim FlowUnitsOption As Long, PressureUnitsOption As Long
|
||||
Dim NameOfFile As String * 260, tmpString32 As String * 32
|
||||
Dim ii As Long
|
||||
Dim WarningFlag As Long
|
||||
|
||||
With NetRes
|
||||
pos = 1: N = 0
|
||||
F = FreeFile
|
||||
Open OutFile For Binary As #F
|
||||
Get #F, pos, tmpLong: pos = pos + 4
|
||||
Get #F, pos, tmpLong: pos = pos + 4
|
||||
Get #F, pos, NumberOfNodes: pos = pos + 4
|
||||
Get #F, pos, NumberOfReservoirsAndTanks: pos = pos + 4
|
||||
Get #F, pos, NumberOfLinks: pos = pos + 4
|
||||
Get #F, pos, NumberOfPumps: pos = pos + 4
|
||||
Get #F, pos, NumberOfValves: pos = pos + 4
|
||||
Get #F, pos, WaterQualityOption: pos = pos + 4
|
||||
Get #F, pos, tmpLong: pos = pos + 4
|
||||
Get #F, pos, FlowUnitsOption: pos = pos + 4
|
||||
Get #F, pos, PressureUnitsOption: pos = pos + 4
|
||||
Get #F, pos, tmpLong: pos = pos + 4
|
||||
Get #F, pos, ReportingStartTime: pos = pos + 4
|
||||
Get #F, pos, ReportingTimeStep: pos = pos + 4
|
||||
Get #F, pos, SimulationDuration: pos = pos + 4
|
||||
Get #F, pos, ProblemTitletLine: pos = pos + 80
|
||||
Get #F, pos, ProblemTitletLine: pos = pos + 80
|
||||
Get #F, pos, ProblemTitletLine: pos = pos + 80
|
||||
Get #F, pos, NameOfFile: pos = pos + 260
|
||||
Get #F, pos, NameOfFile: pos = pos + 260
|
||||
Get #F, pos, tmpString32: pos = pos + 32
|
||||
Get #F, pos, tmpString32: pos = pos + 32
|
||||
.nNodes = NumberOfNodes
|
||||
.nLinks = NumberOfLinks
|
||||
ReDim .NodesID(.nNodes)
|
||||
For j = 1 To NumberOfNodes
|
||||
Get #F, pos, tmpString32: pos = pos + 32
|
||||
i = InStr(1, tmpString32, Chr(0))
|
||||
.NodesID(j) = Mid(tmpString32, 1, i - 1)
|
||||
Next j
|
||||
ReDim .LinksID(.nLinks)
|
||||
For j = 1 To NumberOfLinks
|
||||
Get #F, pos, tmpString32: pos = pos + 32
|
||||
i = InStr(1, tmpString32, Chr(0))
|
||||
.LinksID(j) = Mid(tmpString32, 1, i - 1)
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks * 3 'Index of Start Node of Each Link + Index of End Node of Each Link + Type Code of Each Link
|
||||
Get #F, pos, tmpLong: pos = pos + 4
|
||||
Next j
|
||||
For j = 1 To NumberOfReservoirsAndTanks 'Node Index of Each Tank
|
||||
Get #F, pos, tmpLong: pos = pos + 4
|
||||
Next j
|
||||
For j = 1 To NumberOfReservoirsAndTanks 'Cross-Sectional Area of Each Tank
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
Next j
|
||||
For j = 1 To NumberOfNodes 'Elevation of Each Node
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Length of Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Diameter of Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
Next j
|
||||
For j = 1 To NumberOfPumps 'Energy Use Section
|
||||
Get #F, pos, tmpLong: pos = pos + 4 'Pump Index in List of Links
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Pump Utilization (%)
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average Efficiency (%)
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average Kwatts/Million Gallons (/Meter3)
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average Kwatts
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Peak Kwatts
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average Cost Per Day
|
||||
Next j
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Overall Peak Energy Usage
|
||||
|
||||
'reporting
|
||||
nRep = SimulationDuration / ReportingTimeStep + 1
|
||||
ReDim tmpArr(nRep)
|
||||
ReDim .NodesDemand(.nNodes, nRep)
|
||||
ReDim .NodesHead(.nNodes, nRep)
|
||||
ReDim .NodesPressure(.nNodes, nRep)
|
||||
ReDim .NodesQuality(.nNodes, nRep)
|
||||
|
||||
ReDim .LinksFlow(.nLinks, nRep)
|
||||
ReDim .LinksHeadloss(.nLinks, nRep)
|
||||
ReDim .LinksQuality(.nLinks, nRep)
|
||||
ReDim .LinksSetting(.nLinks, nRep)
|
||||
ReDim .LinksStatus(.nLinks, nRep)
|
||||
ReDim .LinksVelocity(.nLinks, nRep)
|
||||
|
||||
For r = 1 To nRep
|
||||
For j = 1 To NumberOfNodes 'Demand at Each Node
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.NodesDemand(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfNodes 'Hydraulic Head at Each Node
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.NodesHead(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfNodes 'Pressure at Each Node
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.NodesPressure(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfNodes 'Water Quality at Each Node
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.NodesPressure(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Flow in Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.LinksFlow(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Velocity in Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.LinksVelocity(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Headloss per 1000 Units of Length for Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.LinksHeadloss(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Average Water Quality in Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.LinksQuality(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Status Code for Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.LinksStatus(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Setting for Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
.LinksSetting(j, r) = tmpSingle
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Reaction Rate for Each Link (mass/L/day)
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
Next j
|
||||
For j = 1 To NumberOfLinks 'Friction Factor for Each Link
|
||||
Get #F, pos, tmpSingle: pos = pos + 4
|
||||
Next j
|
||||
Next r
|
||||
|
||||
'Epilog Section
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average bulk reaction rate (mass/hr)
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average wall reaction rate (mass/hr)
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average tank reaction rate (mass/hr)
|
||||
Get #F, pos, tmpSingle: pos = pos + 4 'Average source inflow rate (mass/hr)
|
||||
Get #F, pos, tmpLong: pos = pos + 4 'Number of Reporting Periods
|
||||
Get #F, pos, WarningFlag: pos = pos + 4 'Warning Flag
|
||||
Get #F, pos, tmpLong: pos = pos + 4 'Magic Number ( = 516114521)
|
||||
|
||||
Close #F
|
||||
End With
|
||||
|
||||
End Function
|
||||
|
||||
Reference in New Issue
Block a user