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);
}
Example #2
0
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);
}
Example #3
0
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)
}