diff --git a/build/Xcode/epanet/epanet.xcodeproj/sam.mode1v3 b/build/Xcode/epanet/epanet.xcodeproj/sam.mode1v3
index 9ebf88e..06aa7dd 100644
--- a/build/Xcode/epanet/epanet.xcodeproj/sam.mode1v3
+++ b/build/Xcode/epanet/epanet.xcodeproj/sam.mode1v3
@@ -266,6 +266,8 @@
PBXSmartGroupTreeModuleOutlineStateExpansionKey
08FB7794FE84155DC02AAC07
+ 22322FA8106836A000641384
+ 08FB7795FE84155DC02AAC07
1C37FBAC04509CD000000102
1C37FAAC04509CD000000102
1C37FABC05509CD000000102
@@ -273,12 +275,13 @@
PBXSmartGroupTreeModuleOutlineStateSelectionKey
- 6
+ 25
4
+ 0
PBXSmartGroupTreeModuleOutlineStateVisibleRectKey
- {{0, 0}, {186, 572}}
+ {{0, 0}, {186, 809}}
PBXTopSmartGroupGIDs
@@ -290,14 +293,14 @@
GeometryConfiguration
Frame
- {{0, 0}, {203, 590}}
+ {{0, 0}, {203, 827}}
GroupTreeTableConfiguration
MainColumn
186
RubberWindowFrame
- 250 115 946 631 0 0 1280 778
+ 10 102 1241 868 0 0 1280 1002
Module
PBXSmartGroupTreeModule
@@ -315,7 +318,7 @@
PBXProjectModuleGUID
1CE0B20306471E060097A5F4
PBXProjectModuleLabel
- text.h
+ vars.h
PBXSplitModuleInNavigatorKey
Split0
@@ -323,17 +326,40 @@
PBXProjectModuleGUID
1CE0B20406471E060097A5F4
PBXProjectModuleLabel
- text.h
+ vars.h
_historyCapacity
0
bookmark
- 2232300F10683CF100641384
+ 22F948F711D1071600B08E7D
history
- 22322FBF106837F600641384
- 22322FC0106837F600641384
- 22322FC1106837F600641384
- 22322FF710683C8E00641384
+ 22D84C7E106845A4006D3DEE
+ 22CA5CC610977F26002D87B6
+ 2288D7DF112E28D600D8B4B4
+ 222BA1391180BE890071A4C7
+ 222BA13B1180BE890071A4C7
+ 22B1773E1199DED400A8EEC2
+ 2270671A119B4A0C00BA4EF4
+ 2270671C119B4A0C00BA4EF4
+ 2211345511C189B0006B6918
+ 223C3E2511C42F5800F60805
+ 223C3E2711C42F5800F60805
+ 223C3E2A11C42F5800F60805
+ 223C3E2E11C42F5800F60805
+ 226EC74811C6739B004BCBE1
+ 226EC80A11C6E506004BCBE1
+ 226EC80B11C6E506004BCBE1
+ 226EC80C11C6E506004BCBE1
+ 222BA21211C81765009CF8E3
+ 222BA21311C81765009CF8E3
+ 222BA21411C81765009CF8E3
+ 222BA21611C81765009CF8E3
+ 22E3206311CA77B3008E8CBD
+ 2299285511CFCEB10055BF95
+ 2299285611CFCEB10055BF95
+ 2299285711CFCEB10055BF95
+ 2299285811CFCEB10055BF95
+ 2299285911CFCEB10055BF95
SplitCount
@@ -345,14 +371,14 @@
GeometryConfiguration
Frame
- {{0, 0}, {738, 391}}
+ {{0, 0}, {1033, 730}}
RubberWindowFrame
- 250 115 946 631 0 0 1280 778
+ 10 102 1241 868 0 0 1280 1002
Module
PBXNavigatorGroup
Proportion
- 391pt
+ 730pt
ContentConfiguration
@@ -365,18 +391,18 @@
GeometryConfiguration
Frame
- {{0, 396}, {738, 194}}
+ {{0, 735}, {1033, 92}}
RubberWindowFrame
- 250 115 946 631 0 0 1280 778
+ 10 102 1241 868 0 0 1280 1002
Module
XCDetailModule
Proportion
- 194pt
+ 92pt
Proportion
- 738pt
+ 1033pt
Name
@@ -391,9 +417,9 @@
TableOfContents
- 2232300310683CAF00641384
+ 22F948F811D1071600B08E7D
1CE0B1FE06471DED0097A5F4
- 2232300410683CAF00641384
+ 22F948F911D1071600B08E7D
1CE0B20306471E060097A5F4
1CE0B20506471E060097A5F4
@@ -531,15 +557,11 @@
5
WindowOrderList
- 2232300D10683CAF00641384
- 2232300E10683CAF00641384
22322F6E1068349B00641384
/Users/sam/Documents/School/ENGCVS/EPANET/BASE/trunk/build/Xcode/epanet/epanet.xcodeproj
- 1CD10A99069EF8BA00B06720
- 1C78EAAD065D492600B07095
WindowString
- 250 115 946 631 0 0 1280 778
+ 10 102 1241 868 0 0 1280 1002
WindowToolsV3
@@ -569,7 +591,7 @@
Frame
{{0, 0}, {792, 306}}
RubberWindowFrame
- 265 112 792 588 0 0 1280 778
+ 266 654 792 588 0 0 1280 1002
Module
PBXNavigatorGroup
@@ -593,7 +615,7 @@
Frame
{{0, 311}, {792, 236}}
RubberWindowFrame
- 265 112 792 588 0 0 1280 778
+ 266 654 792 588 0 0 1280 1002
Module
PBXBuildResultsModule
@@ -616,7 +638,7 @@
TableOfContents
22322F6E1068349B00641384
- 2232300510683CAF00641384
+ 22F948FA11D1071600B08E7D
1CD0528F0623707200166675
XCMainBuildResultsModuleGUID
@@ -625,7 +647,7 @@
WindowContentMinSize
486 300
WindowString
- 265 112 792 588 0 0 1280 778
+ 266 654 792 588 0 0 1280 1002
WindowToolGUID
22322F6E1068349B00641384
WindowToolIsVisible
@@ -738,13 +760,13 @@
TableOfContents
1CD10A99069EF8BA00B06720
- 2232300610683CAF00641384
+ 22DBCD8111A1DB99009F85D6
1C162984064C10D400B95A72
- 2232300710683CAF00641384
- 2232300810683CAF00641384
- 2232300910683CAF00641384
- 2232300A10683CAF00641384
- 2232300B10683CAF00641384
+ 22DBCD8211A1DB99009F85D6
+ 22DBCD8311A1DB99009F85D6
+ 22DBCD8411A1DB99009F85D6
+ 22DBCD8511A1DB99009F85D6
+ 22DBCD8611A1DB99009F85D6
ToolbarConfiguration
xcode.toolbar.config.debugV3
@@ -753,11 +775,15 @@
WindowToolGUID
1CD10A99069EF8BA00B06720
WindowToolIsVisible
-
+
+ FirstTimeWindowDisplayed
+
Identifier
windowTool.find
+ IsVertical
+
Layout
@@ -767,44 +793,34 @@
Dock
+ BecomeActive
+
ContentConfiguration
PBXProjectModuleGUID
1CDD528C0622207200134675
PBXProjectModuleLabel
- <No Editor>
- PBXSplitModuleInNavigatorKey
-
- Split0
-
- PBXProjectModuleGUID
- 1CD0528D0623707200166675
-
- SplitCount
- 1
-
+ smatrix.c
StatusBarVisibility
- 1
+
GeometryConfiguration
Frame
- {{0, 0}, {781, 167}}
+ {{0, 0}, {1112, 493}}
RubberWindowFrame
- 62 385 781 470 0 0 1440 878
+ 122 224 1112 778 0 0 1280 1002
Module
PBXNavigatorGroup
Proportion
- 781pt
+ 1112pt
Proportion
- 50%
+ 493pt
- BecomeActive
- 1
ContentConfiguration
PBXProjectModuleGUID
@@ -815,18 +831,18 @@
GeometryConfiguration
Frame
- {{8, 0}, {773, 254}}
+ {{0, 498}, {1112, 239}}
RubberWindowFrame
- 62 385 781 470 0 0 1440 878
+ 122 224 1112 778 0 0 1280 1002
Module
PBXProjectFindModule
Proportion
- 50%
+ 239pt
Proportion
- 428pt
+ 737pt
Name
@@ -836,23 +852,21 @@
PBXProjectFindModule
StatusbarIsVisible
- 1
+
TableOfContents
1C530D57069F1CE1000CFCEE
- 1C530D58069F1CE1000CFCEE
- 1C530D59069F1CE1000CFCEE
+ 22E3205E11CA762B008E8CBD
+ 22E3205F11CA762B008E8CBD
1CDD528C0622207200134675
- 1C530D5A069F1CE1000CFCEE
- 1CE0B1FE06471DED0097A5F4
1CD0528E0623707200166675
WindowString
- 62 385 781 470 0 0 1440 878
+ 122 224 1112 778 0 0 1280 1002
WindowToolGUID
1C530D57069F1CE1000CFCEE
WindowToolIsVisible
- 0
+
Identifier
@@ -908,7 +922,7 @@
TableOfContents
1C78EAAD065D492600B07095
- 2232300C10683CAF00641384
+ 22DBCD7E11A1DB8C009F85D6
1C78EAAC065D492600B07095
ToolbarConfiguration
@@ -918,7 +932,7 @@
WindowToolGUID
1C78EAAD065D492600B07095
WindowToolIsVisible
-
+
Identifier
diff --git a/build/Xcode/epanet/epanet.xcodeproj/sam.pbxuser b/build/Xcode/epanet/epanet.xcodeproj/sam.pbxuser
index c0f3458..35de73c 100644
--- a/build/Xcode/epanet/epanet.xcodeproj/sam.pbxuser
+++ b/build/Xcode/epanet/epanet.xcodeproj/sam.pbxuser
@@ -1,12 +1,15 @@
// !$*UTF8*$!
{
08FB7793FE84155DC02AAC07 /* Project object */ = {
+ activeArchitecturePreference = x86_64;
activeBuildConfigurationName = Debug;
activeExecutable = 22322F67106833BB00641384 /* runepanet */;
- activeTarget = 22322F65106833BB00641384 /* runepanet */;
+ activeTarget = D2AAC0620554660B00DB518D /* epanet */;
addToTargets = (
D2AAC0620554660B00DB518D /* epanet */,
);
+ breakpoints = (
+ );
codeSenseManager = 22322F62106833AB00641384 /* Code sense */;
executables = (
22322F67106833BB00641384 /* runepanet */,
@@ -31,7 +34,7 @@
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
- 499,
+ 794,
20,
48,
43,
@@ -48,12 +51,36 @@
PBXFileDataSource_Target_ColumnID,
);
};
+ PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 20,
+ 475,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_SCM_ColumnID,
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
- 459,
+ 736,
60,
20,
48,
@@ -70,15 +97,38 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 275266721;
- PBXWorkspaceStateSaveDate = 275266721;
+ PBXPerProjectTemplateStateSaveDate = 298910365;
+ PBXWorkspaceStateSaveDate = 298910365;
};
perUserProjectItems = {
- 22322FBF106837F600641384 /* PBXTextBookmark */ = 22322FBF106837F600641384 /* PBXTextBookmark */;
- 22322FC0106837F600641384 /* PBXTextBookmark */ = 22322FC0106837F600641384 /* PBXTextBookmark */;
- 22322FC1106837F600641384 /* PBXTextBookmark */ = 22322FC1106837F600641384 /* PBXTextBookmark */;
- 22322FF710683C8E00641384 /* PBXTextBookmark */ = 22322FF710683C8E00641384 /* PBXTextBookmark */;
- 2232300F10683CF100641384 /* PBXTextBookmark */ = 2232300F10683CF100641384 /* PBXTextBookmark */;
+ 2211345511C189B0006B6918 /* PBXTextBookmark */ = 2211345511C189B0006B6918 /* PBXTextBookmark */;
+ 222BA1391180BE890071A4C7 /* PBXTextBookmark */ = 222BA1391180BE890071A4C7 /* PBXTextBookmark */;
+ 222BA13B1180BE890071A4C7 /* PBXTextBookmark */ = 222BA13B1180BE890071A4C7 /* PBXTextBookmark */;
+ 222BA21211C81765009CF8E3 /* PBXTextBookmark */ = 222BA21211C81765009CF8E3 /* PBXTextBookmark */;
+ 222BA21311C81765009CF8E3 /* PBXTextBookmark */ = 222BA21311C81765009CF8E3 /* PBXTextBookmark */;
+ 222BA21411C81765009CF8E3 /* PBXTextBookmark */ = 222BA21411C81765009CF8E3 /* PBXTextBookmark */;
+ 222BA21611C81765009CF8E3 /* PBXTextBookmark */ = 222BA21611C81765009CF8E3 /* PBXTextBookmark */;
+ 223C3E2511C42F5800F60805 /* PBXTextBookmark */ = 223C3E2511C42F5800F60805 /* PBXTextBookmark */;
+ 223C3E2711C42F5800F60805 /* PBXTextBookmark */ = 223C3E2711C42F5800F60805 /* PBXTextBookmark */;
+ 223C3E2A11C42F5800F60805 /* PBXTextBookmark */ = 223C3E2A11C42F5800F60805 /* PBXTextBookmark */;
+ 223C3E2E11C42F5800F60805 /* PBXTextBookmark */ = 223C3E2E11C42F5800F60805 /* PBXTextBookmark */;
+ 226EC74811C6739B004BCBE1 /* PBXTextBookmark */ = 226EC74811C6739B004BCBE1 /* PBXTextBookmark */;
+ 226EC80A11C6E506004BCBE1 /* PBXTextBookmark */ = 226EC80A11C6E506004BCBE1 /* PBXTextBookmark */;
+ 226EC80B11C6E506004BCBE1 /* PBXTextBookmark */ = 226EC80B11C6E506004BCBE1 /* PBXTextBookmark */;
+ 226EC80C11C6E506004BCBE1 /* PBXTextBookmark */ = 226EC80C11C6E506004BCBE1 /* PBXTextBookmark */;
+ 2270671A119B4A0C00BA4EF4 /* PBXTextBookmark */ = 2270671A119B4A0C00BA4EF4 /* PBXTextBookmark */;
+ 2270671C119B4A0C00BA4EF4 /* PBXTextBookmark */ = 2270671C119B4A0C00BA4EF4 /* PBXTextBookmark */;
+ 2288D7DF112E28D600D8B4B4 /* PBXTextBookmark */ = 2288D7DF112E28D600D8B4B4 /* PBXTextBookmark */;
+ 2299285511CFCEB10055BF95 /* PBXTextBookmark */ = 2299285511CFCEB10055BF95 /* PBXTextBookmark */;
+ 2299285611CFCEB10055BF95 /* PBXTextBookmark */ = 2299285611CFCEB10055BF95 /* PBXTextBookmark */;
+ 2299285711CFCEB10055BF95 /* PBXTextBookmark */ = 2299285711CFCEB10055BF95 /* PBXTextBookmark */;
+ 2299285811CFCEB10055BF95 /* PBXTextBookmark */ = 2299285811CFCEB10055BF95 /* PBXTextBookmark */;
+ 2299285911CFCEB10055BF95 /* PBXTextBookmark */ = 2299285911CFCEB10055BF95 /* PBXTextBookmark */;
+ 22B1773E1199DED400A8EEC2 /* PBXTextBookmark */ = 22B1773E1199DED400A8EEC2 /* PBXTextBookmark */;
+ 22CA5CC610977F26002D87B6 /* PBXTextBookmark */ = 22CA5CC610977F26002D87B6 /* PBXTextBookmark */;
+ 22D84C7E106845A4006D3DEE /* PBXTextBookmark */ = 22D84C7E106845A4006D3DEE /* PBXTextBookmark */;
+ 22E3206311CA77B3008E8CBD /* PBXTextBookmark */ = 22E3206311CA77B3008E8CBD /* PBXTextBookmark */;
+ 22F948F711D1071600B08E7D /* PBXTextBookmark */ = 22F948F711D1071600B08E7D /* PBXTextBookmark */;
};
sourceControlManager = 22322F61106833AB00641384 /* Source Control */;
userBuildSettings = {
@@ -86,13 +136,90 @@
SYMROOT = ./;
};
};
+ 2211345511C189B0006B6918 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F761068369500641384 /* inpfile.c */;
+ name = "inpfile.c: 68";
+ rLen = 7;
+ rLoc = 2196;
+ rType = 0;
+ vrLen = 1107;
+ vrLoc = 1498;
+ };
+ 222BA1391180BE890071A4C7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F741068369500641384 /* hash.h */;
+ name = "hash.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 399;
+ vrLoc = 0;
+ };
+ 222BA13B1180BE890071A4C7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F7B1068369500641384 /* mempool.h */;
+ name = "mempool.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 430;
+ vrLoc = 0;
+ };
+ 222BA21211C81765009CF8E3 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F791068369500641384 /* input3.c */;
+ name = "input3.c: 106";
+ rLen = 4;
+ rLoc = 2779;
+ rType = 0;
+ vrLen = 1300;
+ vrLoc = 2147;
+ };
+ 222BA21311C81765009CF8E3 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F7A1068369500641384 /* mempool.c */;
+ name = "mempool.c: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 1096;
+ vrLoc = 0;
+ };
+ 222BA21411C81765009CF8E3 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F801068369500641384 /* smatrix.c */;
+ name = "smatrix.c: 611";
+ rLen = 0;
+ rLoc = 21459;
+ rType = 0;
+ vrLen = 1842;
+ vrLoc = 0;
+ };
+ 222BA21611C81765009CF8E3 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 222BA21711C81765009CF8E3 /* _string.h */;
+ name = "_string.h: 72";
+ rLen = 37;
+ rLoc = 2275;
+ rType = 0;
+ vrLen = 1280;
+ vrLoc = 1720;
+ };
+ 222BA21711C81765009CF8E3 /* _string.h */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = _string.h;
+ path = /Developer/SDKs/MacOSX10.6.sdk/usr/include/secure/_string.h;
+ sourceTree = "";
+ };
22322F61106833AB00641384 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
- "" = "";
+ ../../.. = EPANET;
};
};
};
@@ -117,7 +244,7 @@
output.txt,
);
autoAttachOnCrash = 1;
- breakpointsEnabled = 0;
+ breakpointsEnabled = 1;
configStateDict = {
};
customDataFormattersEnabled = 1;
@@ -140,45 +267,289 @@
sourceDirectories = (
);
};
+ 22322F701068369500641384 /* enumstxt.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {995, 2040}}";
+ sepNavSelRange = "{3567, 0}";
+ sepNavVisRange = "{0, 1397}";
+ };
+ };
22322F711068369500641384 /* epanet.c */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {677, 41093}}";
- sepNavSelRange = "{4518, 0}";
- sepNavVisRange = "{4146, 744}";
+ sepNavIntBoundsRect = "{{0, 0}, {972, 47730}}";
+ sepNavSelRange = "{15379, 7}";
+ sepNavVisRange = "{14683, 1414}";
+ };
+ };
+ 22322F721068369500641384 /* funcs.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {995, 4275}}";
+ sepNavSelRange = "{872, 0}";
+ sepNavVisRange = "{5560, 2692}";
+ };
+ };
+ 22322F731068369500641384 /* hash.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1051, 1575}}";
+ sepNavSelRange = "{1537, 0}";
+ sepNavVisRange = "{642, 897}";
+ };
+ };
+ 22322F741068369500641384 /* hash.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {938, 572}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 399}";
+ };
+ };
+ 22322F751068369500641384 /* hydraul.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {972, 37245}}";
+ sepNavSelRange = "{4586, 0}";
+ sepNavVisRange = "{5973, 1560}";
+ };
+ };
+ 22322F761068369500641384 /* inpfile.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1051, 8640}}";
+ sepNavSelRange = "{15692, 9}";
+ sepNavVisRange = "{15087, 1806}";
+ };
+ };
+ 22322F771068369500641384 /* input1.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1051, 9615}}";
+ sepNavSelRange = "{18142, 0}";
+ sepNavVisRange = "{17691, 1069}";
+ };
+ };
+ 22322F781068369500641384 /* input2.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {995, 14790}}";
+ sepNavSelRange = "{23238, 0}";
+ sepNavVisRange = "{22319, 1198}";
+ };
+ };
+ 22322F791068369500641384 /* input3.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {995, 27885}}";
+ sepNavSelRange = "{2779, 4}";
+ sepNavVisRange = "{2147, 1300}";
+ sepNavWindowFrame = "{{-1265, 18}, {1132, 777}}";
+ };
+ };
+ 22322F7A1068369500641384 /* mempool.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {995, 2940}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 1096}";
+ };
+ };
+ 22322F7B1068369500641384 /* mempool.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {938, 572}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 430}";
+ };
+ };
+ 22322F7C1068369500641384 /* output.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1051, 10560}}";
+ sepNavSelRange = "{8225, 4}";
+ sepNavVisRange = "{7697, 1013}";
+ };
+ };
+ 22322F7D1068369500641384 /* quality.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1051, 24450}}";
+ sepNavSelRange = "{11965, 5}";
+ sepNavVisRange = "{11499, 566}";
+ };
+ };
+ 22322F7E1068369500641384 /* report.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {995, 18405}}";
+ sepNavSelRange = "{5967, 0}";
+ sepNavVisRange = "{5202, 970}";
+ };
+ };
+ 22322F7F1068369500641384 /* rules.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {995, 14370}}";
+ sepNavSelRange = "{23361, 0}";
+ sepNavVisRange = "{24196, 785}";
+ };
+ };
+ 22322F801068369500641384 /* smatrix.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1051, 11130}}";
+ sepNavSelRange = "{20601, 0}";
+ sepNavVisRange = "{23146, 875}";
};
};
22322F811068369500641384 /* text.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {677, 7241}}";
- sepNavSelRange = "{4559, 0}";
- sepNavVisRange = "{4292, 735}";
+ sepNavIntBoundsRect = "{{0, 0}, {995, 8640}}";
+ sepNavSelRange = "{6274, 0}";
+ sepNavVisRange = "{5427, 1242}";
+ };
+ };
+ 22322F821068369500641384 /* toolkit.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {972, 3435}}";
+ sepNavSelRange = "{3752, 0}";
+ sepNavVisRange = "{5086, 1781}";
+ };
+ };
+ 22322F831068369500641384 /* types.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {995, 7005}}";
+ sepNavSelRange = "{2790, 6}";
+ sepNavVisRange = "{1413, 1592}";
+ };
+ };
+ 22322F841068369500641384 /* vars.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {972, 2985}}";
+ sepNavSelRange = "{12342, 0}";
+ sepNavVisRange = "{10638, 2670}";
};
};
22322FA9106836B000641384 /* epanet2.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {519, 3068}}";
- sepNavSelRange = "{0, 0}";
- sepNavVisRange = "{0, 398}";
+ sepNavIntBoundsRect = "{{0, 0}, {972, 3600}}";
+ sepNavSelRange = "{1888, 0}";
+ sepNavVisRange = "{215, 1260}";
};
};
22322FAD106836D900641384 /* malloc.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {519, 245}}";
+ sepNavIntBoundsRect = "{{0, 0}, {972, 700}}";
sepNavSelRange = "{156, 0}";
sepNavVisRange = "{0, 156}";
};
};
- 22322FBF106837F600641384 /* PBXTextBookmark */ = {
+ 223C3E2511C42F5800F60805 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 22322FA9106836B000641384 /* epanet2.h */;
- name = "epanet2.h: 1";
+ fRef = 22322F7F1068369500641384 /* rules.c */;
+ name = "rules.c: 815";
+ rLen = 0;
+ rLoc = 23361;
+ rType = 0;
+ vrLen = 785;
+ vrLoc = 24196;
+ };
+ 223C3E2711C42F5800F60805 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F811068369500641384 /* text.h */;
+ name = "text.h: 214";
+ rLen = 0;
+ rLoc = 6274;
+ rType = 0;
+ vrLen = 1242;
+ vrLoc = 5427;
+ };
+ 223C3E2A11C42F5800F60805 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F7E1068369500641384 /* report.c */;
+ name = "report.c: 191";
+ rLen = 0;
+ rLoc = 5967;
+ rType = 0;
+ vrLen = 970;
+ vrLoc = 5202;
+ };
+ 223C3E2E11C42F5800F60805 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F701068369500641384 /* enumstxt.h */;
+ name = "enumstxt.h: 107";
+ rLen = 0;
+ rLoc = 3567;
+ rType = 0;
+ vrLen = 1397;
+ vrLoc = 0;
+ };
+ 226EC74811C6739B004BCBE1 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F721068369500641384 /* funcs.h */;
+ name = "funcs.h: 22";
+ rLen = 0;
+ rLoc = 872;
+ rType = 0;
+ vrLen = 2692;
+ vrLoc = 5560;
+ };
+ 226EC80A11C6E506004BCBE1 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F831068369500641384 /* types.h */;
+ name = "types.h: 70";
+ rLen = 6;
+ rLoc = 2790;
+ rType = 0;
+ vrLen = 1592;
+ vrLoc = 1413;
+ };
+ 226EC80B11C6E506004BCBE1 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F771068369500641384 /* input1.c */;
+ name = "input1.c: 331";
+ rLen = 0;
+ rLoc = 12979;
+ rType = 0;
+ vrLen = 1036;
+ vrLoc = 12535;
+ };
+ 226EC80C11C6E506004BCBE1 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F781068369500641384 /* input2.c */;
+ name = "input2.c: 786";
+ rLen = 0;
+ rLoc = 23238;
+ rType = 0;
+ vrLen = 1198;
+ vrLoc = 22319;
+ };
+ 2270671A119B4A0C00BA4EF4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F731068369500641384 /* hash.c */;
+ name = "hash.c: 1";
rLen = 0;
rLoc = 0;
rType = 0;
- vrLen = 398;
+ vrLen = 1200;
vrLoc = 0;
};
- 22322FC0106837F600641384 /* PBXTextBookmark */ = {
+ 2270671C119B4A0C00BA4EF4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F7C1068369500641384 /* output.c */;
+ name = "output.c: 347";
+ rLen = 0;
+ rLoc = 12203;
+ rType = 0;
+ vrLen = 1509;
+ vrLoc = 11269;
+ };
+ 2288D7DF112E28D600D8B4B4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F7D1068369500641384 /* quality.c */;
+ name = "quality.c: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 1836;
+ vrLoc = 0;
+ };
+ 2299285511CFCEB10055BF95 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F751068369500641384 /* hydraul.c */;
+ name = "hydraul.c: 132";
+ rLen = 0;
+ rLoc = 4586;
+ rType = 0;
+ vrLen = 1560;
+ vrLoc = 5973;
+ };
+ 2299285611CFCEB10055BF95 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 22322FAD106836D900641384 /* malloc.h */;
name = "malloc.h: 10";
@@ -188,35 +559,106 @@
vrLen = 156;
vrLoc = 0;
};
- 22322FC1106837F600641384 /* PBXTextBookmark */ = {
+ 2299285711CFCEB10055BF95 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322FA9106836B000641384 /* epanet2.h */;
+ name = "epanet2.h: 74";
+ rLen = 0;
+ rLoc = 1888;
+ rType = 0;
+ vrLen = 1260;
+ vrLoc = 215;
+ };
+ 2299285811CFCEB10055BF95 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F821068369500641384 /* toolkit.h */;
+ name = "toolkit.h: 138";
+ rLen = 0;
+ rLoc = 3752;
+ rType = 0;
+ vrLen = 1781;
+ vrLoc = 5086;
+ };
+ 2299285911CFCEB10055BF95 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22322F841068369500641384 /* vars.h */;
+ name = "vars.h: 179";
+ rLen = 0;
+ rLoc = 12342;
+ rType = 0;
+ vrLen = 2595;
+ vrLoc = 10713;
+ };
+ 22B1773E1199DED400A8EEC2 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22B1773F1199DED400A8EEC2 /* example1.cpp */;
+ name = "example1.cpp: 60";
+ rLen = 0;
+ rLoc = 1769;
+ rType = 0;
+ vrLen = 1478;
+ vrLoc = 0;
+ };
+ 22B1773F1199DED400A8EEC2 /* example1.cpp */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ name = example1.cpp;
+ path = /Users/sam/Downloads/v1.00beta/example1.cpp;
+ sourceTree = "";
+ };
+ 22CA5CC610977F26002D87B6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22D84C86106845FF006D3DEE /* project.pbxproj */;
+ name = "project.pbxproj: 416";
+ rLen = 0;
+ rLoc = 21302;
+ rType = 0;
+ vrLen = 1814;
+ vrLoc = 0;
+ };
+ 22D84C7E106845A4006D3DEE /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 22D84C7F106845A4006D3DEE /* sam.pbxuser */;
+ name = "sam.pbxuser: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 909;
+ vrLoc = 0;
+ };
+ 22D84C7F106845A4006D3DEE /* sam.pbxuser */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = text;
+ name = sam.pbxuser;
+ path = /Users/sam/Documents/School/ENGCVS/EPANET/BASE/trunk/build/Xcode/epanet/epanet.xcodeproj/sam.pbxuser;
+ sourceTree = "";
+ };
+ 22D84C86106845FF006D3DEE /* project.pbxproj */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = text.pbxproject;
+ name = project.pbxproj;
+ path = /Users/sam/Documents/School/ENGCVS/EPANET/BASE/trunk/build/Xcode/epanet/epanet.xcodeproj/project.pbxproj;
+ sourceTree = "";
+ };
+ 22E3206311CA77B3008E8CBD /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 22322F711068369500641384 /* epanet.c */;
- name = "epanet.c: 135";
- rLen = 0;
- rLoc = 4518;
+ name = "epanet.c: 500";
+ rLen = 7;
+ rLoc = 15379;
rType = 0;
- vrLen = 744;
- vrLoc = 4146;
+ vrLen = 1414;
+ vrLoc = 14683;
};
- 22322FF710683C8E00641384 /* PBXTextBookmark */ = {
+ 22F948F711D1071600B08E7D /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 22322F811068369500641384 /* text.h */;
- name = "text.h: 157";
+ fRef = 22322F841068369500641384 /* vars.h */;
+ name = "vars.h: 179";
rLen = 0;
- rLoc = 4559;
+ rLoc = 12342;
rType = 0;
- vrLen = 771;
- vrLoc = 4354;
- };
- 2232300F10683CF100641384 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 22322F811068369500641384 /* text.h */;
- name = "text.h: 157";
- rLen = 0;
- rLoc = 4559;
- rType = 0;
- vrLen = 735;
- vrLoc = 4292;
+ vrLen = 2670;
+ vrLoc = 10638;
};
D2AAC0620554660B00DB518D /* epanet */ = {
activeExec = 0;
diff --git a/include/epanet2.h b/include/epanet2.h
index 4cbb348..c22c856 100755
--- a/include/epanet2.h
+++ b/include/epanet2.h
@@ -1,10 +1,10 @@
/*
-** EPANET2.H
-**
-** C/C++ header file for EPANET Programmers Toolkit
-**
-** Last updated on 2/14/08 (2.00.12)
-*/
+ ** EPANET2.H
+ **
+ ** C/C++ header file for EPANET Programmers Toolkit
+ **
+ ** Last updated on 2/14/08 (2.00.12)
+ */
#ifndef EPANET2_H
#define EPANET2_H
@@ -37,6 +37,8 @@
#define EN_MIXFRACTION 22
#define EN_TANK_KBULK 23
+#define EN_TANKVOLUME 24 /* SH added 4.2010 */
+
#define EN_DIAMETER 0 /* Link parameters */
#define EN_LENGTH 1
#define EN_ROUGHNESS 2
@@ -62,6 +64,8 @@
#define EN_RULESTEP 7
#define EN_STATISTIC 8
#define EN_PERIODS 9
+#define EN_HTIME 10
+#define EN_HALTFLAG 11 /* sh 4.2010 */
#define EN_NODECOUNT 0 /* Component counts */
#define EN_TANKCOUNT 1
@@ -136,94 +140,94 @@
#undef WINDOWS
#ifdef _WIN32
- #define WINDOWS
+#define WINDOWS
#endif
#ifdef __WIN32__
- #define WINDOWS
+#define WINDOWS
#endif
// --- define DLLEXPORT
#ifdef WINDOWS
- #ifdef __cplusplus
- #define DLLEXPORT extern "C" __declspec(dllexport) __stdcall
- #else
- #define DLLEXPORT __declspec(dllexport) __stdcall
- #endif
+#ifdef __cplusplus
+#define DLLEXPORT extern "C" __declspec(dllexport) __stdcall
#else
- #ifdef __cplusplus
- #define DLLEXPORT extern "C"
- #else
- #define DLLEXPORT
- #endif
+#define DLLEXPORT __declspec(dllexport) __stdcall
+#endif
+#else
+#ifdef __cplusplus
+#define DLLEXPORT extern "C"
+#else
+#define DLLEXPORT
+#endif
#endif
// --- declare the EPANET toolkit functions
- int DLLEXPORT ENepanet(char *, char *, char *, void (*) (char *));
- int DLLEXPORT ENopen(char *, char *, char *);
- int DLLEXPORT ENsaveinpfile(char *);
- int DLLEXPORT ENclose(void);
+int DLLEXPORT ENepanet(char *, char *, char *, void (*) (char *));
+int DLLEXPORT ENopen(char *, char *, char *);
+int DLLEXPORT ENsaveinpfile(char *);
+int DLLEXPORT ENclose(void);
- int DLLEXPORT ENsolveH(void);
- int DLLEXPORT ENsaveH(void);
- int DLLEXPORT ENopenH(void);
- int DLLEXPORT ENinitH(int);
- int DLLEXPORT ENrunH(long *);
- int DLLEXPORT ENnextH(long *);
- int DLLEXPORT ENcloseH(void);
- int DLLEXPORT ENsavehydfile(char *);
- int DLLEXPORT ENusehydfile(char *);
+int DLLEXPORT ENsolveH(void);
+int DLLEXPORT ENsaveH(void);
+int DLLEXPORT ENopenH(void);
+int DLLEXPORT ENinitH(int);
+int DLLEXPORT ENrunH(long *);
+int DLLEXPORT ENnextH(long *);
+int DLLEXPORT ENcloseH(void);
+int DLLEXPORT ENsavehydfile(char *);
+int DLLEXPORT ENusehydfile(char *);
- int DLLEXPORT ENsolveQ(void);
- int DLLEXPORT ENopenQ(void);
- int DLLEXPORT ENinitQ(int);
- int DLLEXPORT ENrunQ(long *);
- int DLLEXPORT ENnextQ(long *);
- int DLLEXPORT ENstepQ(long *);
- int DLLEXPORT ENcloseQ(void);
+int DLLEXPORT ENsolveQ(void);
+int DLLEXPORT ENopenQ(void);
+int DLLEXPORT ENinitQ(int);
+int DLLEXPORT ENrunQ(long *);
+int DLLEXPORT ENnextQ(long *);
+int DLLEXPORT ENstepQ(long *);
+int DLLEXPORT ENcloseQ(void);
- int DLLEXPORT ENwriteline(char *);
- int DLLEXPORT ENreport(void);
- int DLLEXPORT ENresetreport(void);
- int DLLEXPORT ENsetreport(char *);
+int DLLEXPORT ENwriteline(char *);
+int DLLEXPORT ENreport(void);
+int DLLEXPORT ENresetreport(void);
+int DLLEXPORT ENsetreport(char *);
- int DLLEXPORT ENgetcontrol(int, int *, int *, float *,
- int *, float *);
- int DLLEXPORT ENgetcount(int, int *);
- int DLLEXPORT ENgetoption(int, float *);
- int DLLEXPORT ENgettimeparam(int, long *);
- int DLLEXPORT ENgetflowunits(int *);
- int DLLEXPORT ENgetpatternindex(char *, int *);
- int DLLEXPORT ENgetpatternid(int, char *);
- int DLLEXPORT ENgetpatternlen(int, int *);
- int DLLEXPORT ENgetpatternvalue(int, int, float *);
- int DLLEXPORT ENgetqualtype(int *, int *);
- int DLLEXPORT ENgeterror(int, char *, int);
+int DLLEXPORT ENgetcontrol(int, int *, int *, float *,
+ int *, float *);
+int DLLEXPORT ENgetcount(int, int *);
+int DLLEXPORT ENgetoption(int, float *);
+int DLLEXPORT ENgettimeparam(int, long *);
+int DLLEXPORT ENgetflowunits(int *);
+int DLLEXPORT ENgetpatternindex(char *, int *);
+int DLLEXPORT ENgetpatternid(int, char *);
+int DLLEXPORT ENgetpatternlen(int, int *);
+int DLLEXPORT ENgetpatternvalue(int, int, double *);
+int DLLEXPORT ENgetqualtype(int *, int *);
+int DLLEXPORT ENgeterror(int, char *, int);
- int DLLEXPORT ENgetnodeindex(char *, int *);
- int DLLEXPORT ENgetnodeid(int, char *);
- int DLLEXPORT ENgetnodetype(int, int *);
- int DLLEXPORT ENgetnodevalue(int, int, float *);
+int DLLEXPORT ENgetnodeindex(char *, int *);
+int DLLEXPORT ENgetnodeid(int, char *);
+int DLLEXPORT ENgetnodetype(int, int *);
+int DLLEXPORT ENgetnodevalue(int, int, double *);
- int DLLEXPORT ENgetlinkindex(char *, int *);
- int DLLEXPORT ENgetlinkid(int, char *);
- int DLLEXPORT ENgetlinktype(int, int *);
- int DLLEXPORT ENgetlinknodes(int, int *, int *);
- int DLLEXPORT ENgetlinkvalue(int, int, float *);
+int DLLEXPORT ENgetlinkindex(char *, int *);
+int DLLEXPORT ENgetlinkid(int, char *);
+int DLLEXPORT ENgetlinktype(int, int *);
+int DLLEXPORT ENgetlinknodes(int, int *, int *);
+int DLLEXPORT ENgetlinkvalue(int, int, double *);
- int DLLEXPORT ENgetversion(int *);
+int DLLEXPORT ENgetversion(int *);
- int DLLEXPORT ENsetcontrol(int, int, int, float, int, float);
- int DLLEXPORT ENsetnodevalue(int, int, float);
- int DLLEXPORT ENsetlinkvalue(int, int, float);
- int DLLEXPORT ENaddpattern(char *);
- int DLLEXPORT ENsetpattern(int, float *, int);
- int DLLEXPORT ENsetpatternvalue(int, int, float);
- int DLLEXPORT ENsettimeparam(int, long);
- int DLLEXPORT ENsetoption(int, float);
- int DLLEXPORT ENsetstatusreport(int);
- int DLLEXPORT ENsetqualtype(int, char *, char *, char *);
+int DLLEXPORT ENsetcontrol(int, int, int, float, int, float);
+int DLLEXPORT ENsetnodevalue(int, int, double);
+int DLLEXPORT ENsetlinkvalue(int, int, double);
+int DLLEXPORT ENaddpattern(char *);
+int DLLEXPORT ENsetpattern(int, float *, int);
+int DLLEXPORT ENsetpatternvalue(int, int, float);
+int DLLEXPORT ENsettimeparam(int, long);
+int DLLEXPORT ENsetoption(int, float);
+int DLLEXPORT ENsetstatusreport(int);
+int DLLEXPORT ENsetqualtype(int, char *, char *, char *);
#endif
diff --git a/src/epanet.c b/src/epanet.c
index b38a5f6..be7a2cb 100755
--- a/src/epanet.c
+++ b/src/epanet.c
@@ -1074,6 +1074,8 @@ int DLLEXPORT ENgetoption(int code, float *value)
break;
case EN_DEMANDMULT: v = Dmult;
break;
+ case EN_HALTFLAG: v = checkHaltFlag(); /* sh - 4.2010 */
+ break; /* sh - 4.2010 */
default: return(251);
}
*value = (float)v;
@@ -1186,7 +1188,7 @@ int DLLEXPORT ENgetpatternlen(int index, int *len)
}
-int DLLEXPORT ENgetpatternvalue(int index, int period, float *value)
+int DLLEXPORT ENgetpatternvalue(int index, int period, double *value)
/*----------------------------------------------------------------
** Input: index = index of time pattern
** period = pattern time period
@@ -1200,7 +1202,7 @@ int DLLEXPORT ENgetpatternvalue(int index, int period, float *value)
if (!Openflag) return(102);
if (index < 1 || index > Npats) return(205);
if (period < 1 || period > Pattern[index].Length) return(251);
- *value = (float)Pattern[index].F[period-1];
+ *value = Pattern[index].F[period-1];
return(0);
}
@@ -1314,7 +1316,7 @@ int DLLEXPORT ENgetnodetype(int index, int *code)
}
-int DLLEXPORT ENgetnodevalue(int index, int code, float *value)
+int DLLEXPORT ENgetnodevalue(int index, int code, double *value)
/*----------------------------------------------------------------
** Input: index = node index
** code = node parameter code (see TOOLKIT.H)
@@ -1330,6 +1332,15 @@ int DLLEXPORT ENgetnodevalue(int index, int code, float *value)
/* Check for valid arguments */
*value = 0.0f;
+
+ // added ability to get system-wide demand // SH added 4.2010
+ if (index == 0) {
+ v = Dsystem;
+ v *= Ucf[FLOW];
+ *value = v;
+ return(0);
+ }
+
if (!Openflag) return(102);
if (index <= 0 || index > Nnodes) return(203);
@@ -1475,9 +1486,17 @@ int DLLEXPORT ENgetnodevalue(int index, int code, float *value)
/*** New parameter additions ends here. ***/ //(2.00.12 - LR)
+ /*** SH addition: retreive tank volume ***/
+ case EN_TANKVOLUME:
+ if (index <= Njuncs) return(251);
+ v = Tank[index-Njuncs].V0;
+ break;
+
+
+
default: return(251);
}
- *value = (float)v;
+ *value = v;
return(0);
}
@@ -1562,7 +1581,7 @@ int DLLEXPORT ENgetlinknodes(int index, int *node1, int *node2)
}
-int DLLEXPORT ENgetlinkvalue(int index, int code, float *value)
+int DLLEXPORT ENgetlinkvalue(int index, int code, double *value)
/*------------------------------------------------------------------
** Input: index = link index
** code = link parameter code (see TOOLKIT.H)
@@ -1696,7 +1715,7 @@ int DLLEXPORT ENgetlinkvalue(int index, int code, float *value)
default: return(251);
}
- *value = (float)v;
+ *value = v;
return(0);
}
@@ -1797,7 +1816,7 @@ int DLLEXPORT ENsetcontrol(int cindex, int ctype, int lindex,
}
-int DLLEXPORT ENsetnodevalue(int index, int code, float v)
+int DLLEXPORT ENsetnodevalue(int index, int code, double v)
/*----------------------------------------------------------------
** Input: index = node index
** code = node parameter code (see TOOLKIT.H)
@@ -1847,11 +1866,22 @@ int DLLEXPORT ENsetnodevalue(int index, int code, float v)
j = ROUND(value);
if (j < 0 || j > Npats) return(205);
if (index <= Njuncs)
- {
- for (demand = Node[index].D; demand != NULL; demand = demand ->next)
- {
- if (demand->next == NULL) demand->Pat = j;
- }
+ {
+ if (j == 0) { // SH 3.2010
+ // we are re-setting the pattern assignment if we set pattern index to 0. // SH 3.2010
+ demand = Node[index].D; // SH 3.2010
+ demand->next = NULL; // SH 3.2010
+ demand->Pat = 0; // SH 3.2010
+ } // SH 3.2010
+ else { // SH 3.2010
+ for (demand = Node[index].D; demand != NULL; demand = demand ->next)
+ {
+ if (demand->next == NULL) demand->Pat = j;
+ }
+ } // SH 3.2010
+
+
+
}
else Tank[index-Njuncs].Pat = j;
break;
@@ -2006,7 +2036,7 @@ int DLLEXPORT ENsetnodevalue(int index, int code, float v)
}
-int DLLEXPORT ENsetlinkvalue(int index, int code, float v)
+int DLLEXPORT ENsetlinkvalue(int index, int code, double v)
/*----------------------------------------------------------------
** Input: index = link index
** code = link parameter code (see TOOLKIT.H)
@@ -2252,7 +2282,7 @@ int DLLEXPORT ENsettimeparam(int code, long value)
*/
{
if (!Openflag) return(102);
- if (OpenHflag || OpenQflag) return(109);
+ //if (OpenHflag || OpenQflag) return(109);
if (value < 0) return(202);
switch(code)
{
@@ -2289,13 +2319,15 @@ int DLLEXPORT ENsettimeparam(int code, long value)
case EN_STATISTIC: if (value > RANGE) return(202);
Tstatflag = (char)value;
break;
+ case EN_HTIME: Htime = value;
+ break;
default: return(251);
}
return(0);
}
-int DLLEXPORT ENsetoption(int code, float v)
+int DLLEXPORT ENsetoption(int code, double v)
/*----------------------------------------------------------------
** Input: code = option code (see TOOLKIT.H)
** v = option value
@@ -2332,6 +2364,9 @@ int DLLEXPORT ENsetoption(int code, float v)
break;
case EN_DEMANDMULT: if (value <= 0.0) return(202);
Dmult = value;
+ break;
+ case EN_HALTFLAG: if (value < 0.0) return(202);
+ setHaltFlag((int)value);
break;
default: return(251);
}
diff --git a/src/hydraul.c b/src/hydraul.c
index de553df..d194f05 100755
--- a/src/hydraul.c
+++ b/src/hydraul.c
@@ -82,6 +82,13 @@ double RelaxFactor; /
/* Function to find flow coeffs. through open/closed valves */ //(2.00.11 - LR)
void valvecoeff(int k); //(2.00.11 - LR)
+int checkHaltFlag() {
+ return Haltflag;
+}
+int setHaltFlag(int value) {
+ Haltflag = value;
+ return 0;
+}
int openhyd()
/*
@@ -786,7 +793,8 @@ void controltimestep(long *tstep)
long t,t1,t2;
for (i=1; i<=Ncontrols; i++)
- {
+ {
+ if (Control[i].Link == 0) continue;
t = 0;
if ( (n = Control[i].Node) > 0) /* Node control: */
{
diff --git a/src/toolkit.h b/src/toolkit.h
index da036d7..844d3e2 100755
--- a/src/toolkit.h
+++ b/src/toolkit.h
@@ -59,6 +59,8 @@ AUTHOR: L. Rossman
#define EN_MIXFRACTION 22
#define EN_TANK_KBULK 23
+#define EN_TANKVOLUME 24 /* SH added 4.2010 */
+
#define EN_DIAMETER 0 /* Link parameters */
#define EN_LENGTH 1
#define EN_ROUGHNESS 2
@@ -84,6 +86,8 @@ AUTHOR: L. Rossman
#define EN_RULESTEP 7
#define EN_STATISTIC 8
#define EN_PERIODS 9
+#define EN_HTIME 10
+#define EN_HALTFLAG 11 /* sh 4.2010 */
#define EN_NODECOUNT 0 /* Component counts */
#define EN_TANKCOUNT 1
@@ -194,31 +198,31 @@ AUTHOR: L. Rossman
int DLLEXPORT ENgetpatternindex(char *, int *);
int DLLEXPORT ENgetpatternid(int, char *);
int DLLEXPORT ENgetpatternlen(int, int *);
- int DLLEXPORT ENgetpatternvalue(int, int, float *);
+ int DLLEXPORT ENgetpatternvalue(int, int, double *);
int DLLEXPORT ENgetqualtype(int *, int *);
int DLLEXPORT ENgeterror(int, char *, int);
int DLLEXPORT ENgetnodeindex(char *, int *);
int DLLEXPORT ENgetnodeid(int, char *);
int DLLEXPORT ENgetnodetype(int, int *);
- int DLLEXPORT ENgetnodevalue(int, int, float *);
+ int DLLEXPORT ENgetnodevalue(int, int, double *);
int DLLEXPORT ENgetlinkindex(char *, int *);
int DLLEXPORT ENgetlinkid(int, char *);
int DLLEXPORT ENgetlinktype(int, int *);
int DLLEXPORT ENgetlinknodes(int, int *, int *);
- int DLLEXPORT ENgetlinkvalue(int, int, float *);
+ int DLLEXPORT ENgetlinkvalue(int, int, double *);
int DLLEXPORT ENgetversion(int *);
int DLLEXPORT ENsetcontrol(int, int, int, float, int, float);
- int DLLEXPORT ENsetnodevalue(int, int, float);
- int DLLEXPORT ENsetlinkvalue(int, int, float);
+ int DLLEXPORT ENsetnodevalue(int, int, double);
+ int DLLEXPORT ENsetlinkvalue(int, int, double);
int DLLEXPORT ENaddpattern(char *);
int DLLEXPORT ENsetpattern(int, float *, int);
int DLLEXPORT ENsetpatternvalue(int, int, float);
int DLLEXPORT ENsettimeparam(int, long);
- int DLLEXPORT ENsetoption(int, float);
+ int DLLEXPORT ENsetoption(int, double);
int DLLEXPORT ENsetstatusreport(int);
int DLLEXPORT ENsetqualtype(int, char *, char *, char *);