A reservoir's (*Res*) storage
in the first month (*m*) of the
simulation is specified as data (see Supply
and Resources\River\Reservoir\Storage).

*BeginMonthStorage**Res,m** = InitialStorage**Res* for m = 1

Thereafter, it begins each month with the storage from the end of the previous month.

*BeginMonthStorage**Res,m** = EndMonthStorage**Res,m-1* for m > 1

This beginning storage level is adjusted for evaporation. Since the evaporation rate is specified as a change in elevation (see Supply and Resources\River\Reservoir\Physical\Net Evaporation), the storage level must be converted from a volume to an elevation. This is done by a simple linear interpretation between adjacent points on the volume-elevation curve (specified as data--see Supply and Resources\River\Reservoir\Physical\Volume Elevation Curve).

*BeginMonthElevation**Res** = VolumeToElevation( BeginMonthStorage**Res** )*

The elevation is reduced by the evaporation rate.

*AdjustedBeginMonthElevation**Res** = BeginMonthElevation**Res**
- EvaporationRate**Res*

Then the adjusted elevation is converted back to a volume.

*AdjustedBeginMonthStorage**Res** = ElevationToVolume( AdjustedBeginMonthElevation**Res** )*

A reservoir's operating rules determine how much water is available
in a given month for release, to satisfy demand, instream flow and hydropower
requirements, and for flood control. These rules operate on the available
resource for the month. This "storage level for operation" is
the adjusted amount at the beginning of the month, plus inflow from upstream,
and demand site (*DS*) and treatment
plant (*TP*) return flows that
come in at that point.

*StorageForOperation**Res** = AdjustedBeginMonthStorage**Res**
+ UpstreamInflow**Res** + DSReturnFlow**DS,Res **+
TPReturnFlow**TP,Res*

The amount available to be released from the reservoir is the full amount in the conservation and flood control zones and a fraction of the amount in the buffer zone (the buffer coefficient fraction is entered as data--see Supply and Resources\River\Reservoir\Operation). Each of these zones is given in terms of volume (i.e. not elevation). The water in the inactive zone is not available for release.

*StorageAvailableForRelease**Res** = FloodControlAndConservationZoneStorage**Res** + BufferCoefficient**Res**
x BufferZoneStorage**Res*

All of the water in the flood control and conservation zones is available for release, and equals the amount above Top Of Buffer (TOB and other reservoir zones levels are entered as data--see Supply and Resources\River\Reservoir\Operation),

*FloodControlAndConservationZoneStorage**Res** = StorageForOperation**Res**
- TopOfBuffer**Res*

or zero if the level is below Top Of Buffer.

*FloodControlAndConservationZoneStorage**Res** = 0*

Buffer zone storage equals the total volume of the buffer zone if the level is above Top Of Buffer,

*BufferZoneStorage**Res** = TopOfBufferZone**Res**
- TopOfInactiveZone**Res*

or the amount above Top Of Inactive if the level is below Top of Buffer,

*BufferZoneStorage**Res** = StorageForOperation**Res**
- TopOfInactiveZone**Res*

or zero if the level is below Top Of Inactive.

*BufferZoneStorage**Res** = 0*

WEAP will release only as much of the storage available for release as is needed to satisfy demand, instream flow and hydropower requirements, in the context of releases from other reservoirs and withdrawals from rivers and other sources. (As much as possible, the releases from multiple reservoirs with the same reservoir filling priority are adjusted so that each will have the same fraction of their conservation zone filled. For example, the conservation zone in a downstream reservoir will not be drained while an upstream reservoir remains full. Instead, each reservoir's conservation zone would be drained halfway. If, however, you would like to drain reservoir A before reservoir B, set reservoir A's priority lower than B's priority.)

*Outflow**Res** = DownstreamOutflow**Res**
+ TransLinkInflow**Res,DS*

where

*Outflow**Res* * StorageAvailableForRelease**Res*

In addition, WEAP will not release more from the reservoir than its maximum hydraulic outflow (if this data value is set).

*Outflow**Res*
* MaximumHydraulicOutflow**Res*

However, this constraint is not binding if the reservoir is completely full. In this case, it can overtop the reservoir with no maximum flow constraint.

The storage at the end of the month is the storage for operation minus the outflow.

*EndMonthStorage**Res** = StorageForOperation**Res**
- Outflow**Res*

The change in storage is the difference between the storage at the beginning and the end of the month. This is an increase if the ending storage is larger than the beginning, a decrease if the reverse is true.

IncreaseInStorageRes = EndMonthStorageRes - BeginMonthStorageRes

Also see the Linear Program (LP) Formulation for Reservoirs.