skip to main content
Return Flow Salt
Following are the user-selectable methods in the Return Flow Salt category. These methods are used to specify how the Return Flow Salt Mass should be calculated. In other words, how much salt is picked up in the return flow from the diversion site.
* None
This is the default method in this category. It does no calculations and instantiates no slots. It is the only available method for the No Structure Agg Diversion Site. Each water user element behaves independently, but each automatically uses the Propagate Salt method.
* Lumped Salt
This method models additional salt added to a lumped Agg Diversion Site. This is the only available method for the lumped Agg Diversion Site when using the Propagate Salt method. It is one of four available methods for the Well Mixed Salt method.
Slots Specific to This Method
 Diversion Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Diversion
I/O: Input, set by a rule, or propagated via a link
 Diversion Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass associated with the Total Diversion
I/O: Output only
 Salt Loading
Type: Series Slot
Units: Mass
Description: The additional salt that is to be added to the return flow.
I/O: Input or set by a rule. If not specified, no additional salt is added.
 Return Flow Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass associated with the Total Return Flow
I/O: Output only: solved by dispatch and user methods
 Return Flow Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Return Flow
I/O: Output only: solved by dispatch and user methods
Method Details  
If Salt Loading is valid:
(3.1)    
Otherwise:
(3.2)    
Return Flow Salt Concentration is computed from the Return Flow Salt Mass and Return Flow volume.
* Sequential Salt
This method models salt on a sequential Agg Diversion Site. This is the only available method for the sequential Agg Diversion Site using Propagate Salt. It does not do any calculations but instantiates slots that can be linked to upstream or downstream objects.
Slots Specific to This Method
 Diversion Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Diversion
I/O: Input, set by a rule, or propagated via a link
 Total Unused Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration of the Total Unused Water
I/O: Output only
 Total Unused Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass of the Total Unused Water
I/O: Output only
* Variable Salt Pickup
This method is available for Well Mixed Salt on a Lumped Agg Diversion Site. It executes the selected method in the Salt Pickup category: either Salt Pickup Concentration or Salt Pickup Mass. No other calculations are performed.
Slots Specific to This Method
 Diversion Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Diversion
I/O: Input, set by a rule, or propagated via a link
 Diversion Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass associated with the Total Diversion
I/O: Output only
 Return Flow Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass associated with the Total Return Flow
I/O: Output only: solved by dispatch and user methods
 Return Flow Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Return Flow
I/O: Output only: solved by dispatch and user methods
 Return Flow Salinity Pickup Conc
Type: Series Slot
Units: Concentration
Description: The additional salinity that is to be added to the return flow.
I/O: Optional input.
Type: Not Linkable
* Distributed Annual Salt Loading
This method is available for Well Mixed Salt on a Lumped Agg Diversion Site. This method is typically used on a one-month timestep to distribute annual salt loads.
Slots Specific to This Method
 Diversion Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Diversion
I/O: Input, set by a rule, or propagated via a link
 Diversion Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass associated with the Total Diversion
I/O: Output only
 Return Flow Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass associated with the Total Return Flow
I/O: Output only: solved by dispatch and user methods
 Return Flow Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Return Flow
I/O: Output only: solved by dispatch and user methods
 Percent of Annual Demand
Type: Table Slot
Units: Decimal
Description: A 12X1 table of the monthly fraction of annual diversion demand
I/O: Required Input: This slot requires a percentage for each of the 12 months to calculate the equivalent annual shortage.
 Percent of Annual Mass
Type: Table Slot
Units: Decimal
Description: A 12X1 table of the monthly fraction of annual salt mass
I/O: This slot requires a percentage for each of the 12 months to calculate the monthly non-shortage salt mass.
 Return Flow Salinity Pickup Conc
Type: Series Slot
Units: Concentration
Description: The additional salinity that is to be added to the return flow.
I/O: Optional input. If Return Flow Salinity Pickup Mass is input, this slot cannot be input
 Return Flow Salinity Pickup Mass
Type: Series Slot
Units: Mass
Description: The additional salinity that is to be added to the return flow.
I/O: Optional input. If Return Flow Salinity Pickup Conc is input, this slot cannot be input
Method Details 
The Distributed Annual Salt Loading method calculates the annual mass and monthly non-shortage return flow salt mass.
First, the method determines whether the return flow pickup salinity is specified as a concentration or a mass by looking at the input status of the two slots.
• Return Flow Salinity Pickup Conc
• Return Flow Salinity Pickup Mass
One or the other must be input and it must be input for the entire run. If neither is input or both are input, an error will occur.
The variable annual salt mass for the current year is calculated in January by summing each month’s Return Flow Salinity Pickup Mass or each month’s Return Flow Salinity Pickup Conc times the computed Return Flow Volume.
A monthly Non Shortage Salt Mass is calculated each month by multiplying the annual salt mass by the percentage for that month specified in the Percent of Annual Mass table. The monthly value is stored as a local variable, nonShortRFSaltMass, during execution of the method.
The method then converts Total Return Flow, and Total Diversion from a flow to a volume.
Next, the local variable concentrated is computed as follows:
(3.3)    
Note:  If Total Return Flow Vol is zero, concentrated is set to zero.
(3.4)    
The method then gets the Return Flow slot from the reach to which this Total Return Flow slot is linked. If Total Return Flow is not linked to a Reach, an error will be issues and the run will be aborted. On this reach, the method gets the Outflow and the minimum value from the Outflow. If Total Return Flow is zero and the reach’s outflow is less than the minimum value, Return Flow Salt Mass and Distributed Salinity Pickup Mass are equal to zero and the method exits.
Otherwise, if the Total Diversion Requested or Total Depletion Requested is less than or equal to zero or Total Diversion equals Total Diversion Requested, there is no shortage and Return Flow Salt Mass is set equal to the following:
(3.5)    
And Distributed Salinity Pickup Mass is equal to nonShortRFSaltMass.
Otherwise, the method computes the percent short, as follows:
(3.6)    
If the % Short is greater than 75%, Return Flow Salt Mass is set equal to concentrated times Total Return Flow Volume, and Distributed Salinity Pickup Mass is zero. Else, if the Percent of Annual Demand for the given month is zero, the equivalentAnnualShortage is zero. Otherwise, the equivalentAnnualShortage is computed by dividing the percent of shortage in a month’s diversion by Percent of Annual Demand (from the table) for the current month.
Finally, the Return Flow Salt Mass is set equal to the following:
(3.7)    
    Distributed Salinity Pickup Mass is equal to the following:
(3.8)    
* Variable Salt Pickup with Debt
This method is available for Well Mixed Salt on a Lumped Agg Diversion Site. This method calculates Return Flow Salt Mass and Return Flow Salt Concentration based on a salt debt policy if it applies. This can be used to simulate Water Quality Improvement Projects (WQIPs). This method determines if there is sufficient salt in the river to satisfy the WQIP. If not, the amount of salt removal is set equal to the amount available. The Salt Debt slot is used to track the deficiency and the method will attempt to repay the debt in subsequent timesteps.
Slots Specific to This Method
 Diversion Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Diversion
I/O: Input, set by a rule, or propagated via a link
 Diversion Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass associated with the Total Diversion
I/O: Output only
 Return Flow Salt Mass
Type: Series Slot
Units: Mass
Description: Salt mass associated with the Total Return Flow
I/O: Output only: solved by dispatch and user methods
 Return Flow Salt Concentration
Type: Series Slot
Units: Concentration
Description: Salt concentration associated with the Total Return Flow
I/O: Output only: solved by dispatch and user methods
 Salt Debt
Type: Series Slot
Units: Mass
Description: The debt (of mass) associated with the return flow salt
I/O: Output only, initial value is a required input
 Return Flow Salinity Pickup
Type: Series Slot
Units: Concentration
Description: The additional salinity that is to be added to the return flow.
I/O: Output only
Method Details 
If the Total Return Flow is zero, the Return Flow Salt Concentration, Return Flow Salt Mass and Salt Debt are set to zero and the method is exited.
The method then converts Total Return Flow, Total Diversion, Total Diversion Requested, and Total Depletion Requested from a flow to a volume (TotalReturnFlowVol, TotalDiversionVol, TotalDiversionRequestedVol, and TotalDepletionRequesetedVol).
Next, the local variable concentrated is computed as follows:
(3.9)    
Then, the method initializes the Return Flow Salt Concentration slot to be equal to concentrated. Set the current timestep’s Salt Debt equal to the previous timestep’s value. Calculate the local variables unshortReturnFlowVol and massRequested:
(3.10)    
(3.11)    
The method then gets the Return Flow slot from the reach to which this Total Return Flow is linked. If Total Return Flow is not linked to a Reach, an error will be issued and the run will be aborted. On this reach, the method gets the Inflow volume (reachInflowVol) and the minimum value from the slot Outflow Salt Concentration (reachOutSaltMin).
If the Diversion Salt Concentration is less than the reachOutSaltMin, then set Salt Debt equal to the previous timestep’s value plus the massRequested. If the new WaterQualitySaltDebt is less than zero, reset it to zero. Then go to Equation 3.18 or Equation 3.19 and finish the method.
Otherwise, the Diversion Salt Concentration is greater than or equal to reachOutSaltMin, the river has some of the salt that the WQIP needs, determine if is all or not. First calculate the estimated outflow volume (estOutVol), as follows:
(3.12)    
Compute the mass than can be returned (massThatCanBe) as follows:
(3.13)    
If massThatCanBe is greater than massRequested, the river can meet all of the WQIP and any excess can be used to repay the debt. If Salt Debt is positive, set Return Flow Salt Concentration equal to Return Flow Salinity Pickup and go to Equation 3.18 or Equation 3.19. Otherwise, Salt Debt is set to:
(3.14)    
(3.15)    
Else, massThatCanBe is less than or equal to massRequested, so meet part of the request and increases the debt.
(3.16)    
(3.17)    
IF concentrated is greater than zero, then
(3.18)    
ELSE
(3.19)    
Finally, set the salt mass as follows:
(3.20)    
Revised: 07/09/2023