@@ -99,49 +99,7 @@ int openproject(Project *pr, const char *inpFile, const char *rptFile,
9999 errmsg (pr , errcode );
100100
101101 // Fix curve types
102- Network * net = & pr -> network ;
103-
104- // Pump curves
105- for (int i = 1 ; i <= net -> Npumps ; i ++ )
106- {
107- Spump * pump = & net -> Pump [i ];
108-
109- int j ;
110- if ((j = pump -> Hcurve ) > 0 ) {
111- net -> Curve [j ].Type = PUMP_CURVE ;
112- }
113- if ((j = pump -> Ecurve ) > 0 ) {
114- net -> Curve [j ].Type = EFFIC_CURVE ;
115- }
116- }
117-
118- // Tank volume curves
119- for (int i = 1 ; i <= net -> Ntanks ; i ++ ) {
120- Stank * tank = & net -> Tank [i ];
121-
122- int j ;
123- if ((j = tank -> Vcurve ) > 0 ) {
124- net -> Curve [j ].Type = VOLUME_CURVE ;
125- }
126- }
127-
128- // Valve curves
129- for (int i = 1 ; i <= net -> Nvalves ; i ++ ) {
130- Svalve * valve = & net -> Valve [i ];
131- Slink * link = & net -> Link [valve -> Link ];
132-
133- int j ;
134- if (link -> Type == PCV ) {
135- if ((j = valve -> Curve ) > 0 ) {
136- net -> Curve [j ].Type = VALVE_CURVE ;
137- }
138- }
139- else if (link -> Type == GPV ){
140- if ((j = valve -> Curve ) > 0 ) {
141- net -> Curve [j ].Type = HLOSS_CURVE ;
142- }
143- }
144- }
102+ assigncurvetypes (& pr -> network );
145103
146104 return errcode ;
147105}
@@ -1147,6 +1105,58 @@ int findcurve(Network *network, const char *id)
11471105 return 0 ;
11481106}
11491107
1108+ void assigncurvetypes (Network * network )
1109+ /*----------------------------------------------------------------
1110+ ** Input: none
1111+ ** Output: none
1112+ ** Returns: none
1113+ ** Purpose: assign correct curve type to all curves
1114+ **----------------------------------------------------------------
1115+ */
1116+ {
1117+ // Pump curves
1118+ for (int i = 1 ; i <= network -> Npumps ; i ++ )
1119+ {
1120+ Spump * pump = & network -> Pump [i ];
1121+
1122+ int j ;
1123+ if ((j = pump -> Hcurve ) > 0 ) {
1124+ network -> Curve [j ].Type = PUMP_CURVE ;
1125+ }
1126+ if ((j = pump -> Ecurve ) > 0 ) {
1127+ network -> Curve [j ].Type = EFFIC_CURVE ;
1128+ }
1129+ }
1130+
1131+ // Tank volume curves
1132+ for (int i = 1 ; i <= network -> Ntanks ; i ++ ) {
1133+ Stank * tank = & network -> Tank [i ];
1134+
1135+ int j ;
1136+ if ((j = tank -> Vcurve ) > 0 ) {
1137+ network -> Curve [j ].Type = VOLUME_CURVE ;
1138+ }
1139+ }
1140+
1141+ // Valve curves
1142+ for (int i = 1 ; i <= network -> Nvalves ; i ++ ) {
1143+ Svalve * valve = & network -> Valve [i ];
1144+ Slink * link = & network -> Link [valve -> Link ];
1145+
1146+ int j ;
1147+ if (link -> Type == PCV ) {
1148+ if ((j = valve -> Curve ) > 0 ) {
1149+ network -> Curve [j ].Type = VALVE_CURVE ;
1150+ }
1151+ }
1152+ else if (link -> Type == GPV ){
1153+ if ((j = valve -> Curve ) > 0 ) {
1154+ network -> Curve [j ].Type = HLOSS_CURVE ;
1155+ }
1156+ }
1157+ }
1158+ }
1159+
11501160void adjustpattern (int * pat , int index )
11511161/*----------------------------------------------------------------
11521162** Local function that modifies a reference to a deleted time pattern
0 commit comments