void removeStorageLosses(double tStep) // // Input: tStep = routing time step (sec) // Output: none // Purpose: adds flow rate lost from all storage nodes due to evaporation // & seepage in current time step to overall mass balance totals. // { int i; double evapLoss = 0.0, exfilLoss = 0.0; // --- check each storage node for ( i = 0; i < Nobjects[NODE]; i++ ) { if (Node[i].type == STORAGE) { // --- update total system storage losses evapLoss += Storage[Node[i].subIndex].evapLoss; exfilLoss += Storage[Node[i].subIndex].exfilLoss; } } // --- add loss rates (ft3/sec) to time step's mass balance massbal_addNodeLosses(evapLoss/tStep, exfilLoss/tStep); }
void removeStorageLosses() // // Input: routingStep = routing time step (sec) // Output: none // Purpose: adds mass lost from storage nodes to evaporation & infiltration // over current time step to overall mass balance. // { int i, j, p; double vRatio; double losses = 0.0; // --- check each storage node for ( i = 0; i < Nobjects[NODE]; i++ ) { if (Node[i].type == STORAGE) { // --- update total system storage losses losses += Storage[Node[i].subIndex].losses; // --- adjust storage concentrations for any evaporation loss if ( Nobjects[POLLUT] > 0 && Node[i].newVolume > FUDGE ) { j = Node[i].subIndex; vRatio = 1.0 + (Storage[j].evapLoss / Node[i].newVolume); for ( p = 0; p < Nobjects[POLLUT]; p++ ) { Node[i].newQual[p] *= vRatio; } } } } massbal_addNodeLosses(losses); }
void removeStorageLosses(double tStep) // // Input: tStep = routing time step (sec) // Output: none // Purpose: adds rate of mass lost from all storage nodes due to evaporation // & infiltration in current time step to overall mass balance. // { int i, j, p; double evapLoss = 0.0, infilLoss = 0.0; //(5.1.007) double vRatio; // --- check each storage node for ( i = 0; i < Nobjects[NODE]; i++ ) { if (Node[i].type == STORAGE) { // --- update total system storage losses evapLoss += Storage[Node[i].subIndex].evapLoss; infilLoss += Storage[Node[i].subIndex].exfilLoss; //(5.1.007) // --- adjust storage concentrations for any evaporation loss if ( Nobjects[POLLUT] > 0 && Node[i].newVolume > FUDGE ) { j = Node[i].subIndex; vRatio = 1.0 + (Storage[j].evapLoss / Node[i].newVolume); for ( p = 0; p < Nobjects[POLLUT]; p++ ) { Node[i].newQual[p] *= vRatio; } } } } // --- add loss rates (ft3/sec) to time step's mass balance massbal_addNodeLosses(evapLoss/tStep, infilLoss/tStep); //(5.1.007) }