Merge pull request #667 from OpenWaterAnalytics/dev-fix-tanktimestep
Fixes possible integer overflow
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
Authors: see AUTHORS
|
Authors: see AUTHORS
|
||||||
Copyright: see AUTHORS
|
Copyright: see AUTHORS
|
||||||
License: see LICENSE
|
License: see LICENSE
|
||||||
Last Updated: 02/03/2020
|
Last Updated: 03/19/2022
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -668,7 +668,7 @@ int tanktimestep(Project *pr, long *tstep)
|
|||||||
Hydraul *hyd = &pr->hydraul;
|
Hydraul *hyd = &pr->hydraul;
|
||||||
|
|
||||||
int i, n, tankIdx = 0;
|
int i, n, tankIdx = 0;
|
||||||
double h, q, v;
|
double h, q, v, xt;
|
||||||
long t;
|
long t;
|
||||||
Stank *tank;
|
Stank *tank;
|
||||||
|
|
||||||
@@ -691,7 +691,9 @@ int tanktimestep(Project *pr, long *tstep)
|
|||||||
else continue;
|
else continue;
|
||||||
|
|
||||||
// Find time to fill/drain tank
|
// Find time to fill/drain tank
|
||||||
t = (long)ROUND(v / q);
|
xt = v / q;
|
||||||
|
if (ABS(xt) > *tstep + 1) continue;
|
||||||
|
t = (long)ROUND(xt);
|
||||||
if (t > 0 && t < *tstep)
|
if (t > 0 && t < *tstep)
|
||||||
{
|
{
|
||||||
*tstep = t;
|
*tstep = t;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Description: parses network data from a line of an EPANET input file
|
|||||||
Authors: see AUTHORS
|
Authors: see AUTHORS
|
||||||
Copyright: see AUTHORS
|
Copyright: see AUTHORS
|
||||||
License: see LICENSE
|
License: see LICENSE
|
||||||
Last Updated: 11/29/2019
|
Last Updated: 03/20/2022
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -2159,6 +2159,7 @@ void changestatus(Network *net, int j, StatusType status, double y)
|
|||||||
if (y == 0.0) status = CLOSED;
|
if (y == 0.0) status = CLOSED;
|
||||||
}
|
}
|
||||||
else if (status == OPEN) link->Kc = 1.0;
|
else if (status == OPEN) link->Kc = 1.0;
|
||||||
|
else if (status == CLOSED) link->Kc = 0.0;
|
||||||
link->Status = status;
|
link->Status = status;
|
||||||
}
|
}
|
||||||
else if (link->Type >= PRV)
|
else if (link->Type >= PRV)
|
||||||
|
|||||||
Reference in New Issue
Block a user