FAO/UNESCO Water Balance of Africa

Reservoir Water Balance Model for the Souss Basin

Prepared by
Kwabena Asante, David R. Maidment, Maggie Ye Ruan and Seann M. Reed
Center for Research in Water Resources
University of Texas at Austin

Table of Contents

Goals of the Exercise

Computer and Data Requirements

This exercise was developed on ArcView 3.0 with the Spatial Analyst extension. ArcView is developed by the Environmental Systems Research Institute (ESRI), Redlands, California.

The following files are required for this exercise. They are located in the directory \rivers\ex3\gisfiles\ on the CD-ROM.

Introduction to Souss Basin

The Souss Basin has an area of approximately 20,000 sq. Kilometers and is located at the Southern end of the Atlas Mountains in Morocco. The arid climate in this basin makes managing its water resources a critical issue. Water from the basin is used to irrigated agriculture, especially citrus fruit production. Recent droughts and falling aquifer levels have emphasized the need for better water resource planning methods. There are three major reservoirs located along the Souss River which play a major role in regulating flow in the basin. The reservoir at Aoulouz is mainly used for regulating flow into the aquifer recharge zone. Releases are made periodically to allow time for water to seep into the underlying aquifer. Some releases are also made for agricultural purposes. The reservoir at Dhkila is used for water supply and irrigation. Releases for these uses are made through a canal located at the side of the reservoir. Located just upstream, the reservoir at Abdel Moumen was constructed to minimize spills from Dhkila by storing excess flow during high flow periods. The map based GIS models developed in this study enable various options of reservoir locations and withdrawals to be studied. The aim of this study is provide a tool for systematically analyzing water management scenarios.


1. Setting Up Surface Water Simulation Files .

The files required for this exercise are in the directory rivers\ex3\gisfiles\ on the CD-ROM. Make a new directory, say soussdam, where you will store your files and open a MS-DOS command prompt. Copy the files from the CD into the workspace by typing the following commands at the DOS command prompt. (Substitute your CD drive for D in the command if the CD drive on your computer is not D).

xcopy D:\rivers\ex3\gisfiles C:\soussdam\gisfiles /e

where the D drive is the directory containing the CD-ROM and C drive is the drive containing the newly created soussdam directory. Copying files in this manner ensures that the permissions on the files are changed from the Read Only (automatically assigned to files on the CD-ROM) to Read-Write. If the file manager or the copy command is used to copy these files, the permissions on the individual files must be changed to allow Write access.

Startup ArcView 3 and open the project, soussdam.apr, from the soussdam directory. Add the four coverages sobasin, soriver, bigdams.shp and rainst to View1. Be sure to add sobasin both as a polygon and an arc coverage. Click on the little boxes in the view legend to make them the themes visible.

Click on Tables from the Project window and select Add. Hold the shift key down to select and add the data files (mrn9192, aouldmrg.dbf, abdmdmrg.dbf, dkildmrg.dbf, aouldmop.dbf, abdmdmop.dbf, dkildmop.dbf and bigdams.dbf) to the project. The tables windows automatically become active. Close them for now as they are not required immediately.

The coverages used in this exercise have already been preprocessed and calibrated. We must however perform a modified preprocessing run to create the output files required by the surface water simulation model. See exercise 1 for full instructions on how to preprocess and calibrate coverages using the model.

Begin running the modified preprocessing by selecting MdfyFtab (pre 1) from the SfwModel menu of the View Tool Bar.

Select soriver when prompted to select a river theme.

The watershed polygon theme is sobasin.

The watershed boundary line coverage is also sobasin.

Since the coverages have already been preprocessed, no new fields will be added to the feature attribute tables. Click OK to continue.

Notice that the names of the river and watershed coverages have been modified to soriver.shp, sobasin.ply and sobasin.lin, respectively. Before we start creating the tables required for running the model, the program needs to be informed of the names of coverages to be used by the model. This is done by pressing the button to reset the control list. A list of the objects in the control list is presented. Click OK to continue. Select option 1 when prompted for reset instructions.

The dialog that follows requires you to identify the river and basin coverages as above. Confirm the input coverages by clicking OK each time.

The number of time steps to be included in each run of the simulation model is determined when setting up the model. This ensures that the appropriate number of records are added to the output files created by the model. All subsequent simulation operations must be performed with this number of records. For this example, we will be running the model for two years using monthly data. Hence each of our data files should have 24 records. When prompted for the initial and end time steps, enter 1,24.

You will then be prompted with a dialog that enables you to save the options you have just selected to a control file. A default control filename "sfdbfs.ctl" is provided. Input the directory you created earlier (soussdam). Click OK again when presented with the new control list. The program uses the control list to determine what output file need to created. We can now create these files, by selecting Crtmtb (pre-6) from the SFwModel in the View Menu Bar.

Click OK again when presented with the list of time series tables to be created. Again, you will be prompted for the directory in which the new files will be stored. Confirm the file directory by clicking OK as before. When prompted for the number of records to be added to the time series tables, enter 24.

Now, sit back and wait patiently as the program begins to create all the required output files in which it stores the results of model computations. When this process is complete, a list of the files that have been created is displayed along with a the number or records added to them.

Click OK.

The program also requires additional shapefiles and tables for non simulation processes. Select MkFVtbls (pre-7) from under the SFwModel in the View Menu Bar to create these files.

Again, you will be asked to confirm the directory to write the new files to. Select the initially created directory (soussdam) as before. A list of the files created will be displayed on completion.

Click OK to continue.

Notice that two new coverages, dams.shp and flowchk.shp, have been added to the list of themes in the View. Click on the little boxes in the view legend to make the themes visible. The new coverages do not contain any records yet. The program has merely created a mold for storing dams and flow check points that may subsequently be added to the model.

The setup of a new 24-record, surface water simulation is now complete. You can confirm that the model is properly setup by running a trial simulation. Select SFlowSim from under the SFwModel menu.

Simply click OK when presented with the list of inputs. We will review the inputs in more detail later on. The model begins to run, highlighting the arcs as it goes.

When the trial simulation is complete, choose the No option to avoid selecting the flow path.

2. Computing Surplus Flow

Each time a new period of record is to be simulated, the surplus computation program, CMPSURP.PRE, must be run. The program takes the rainfall from the rain stations and interpolates it to the centroid of the watershed polygons using an inverse distance weighting scheme. The amount of rainfall that would potentially become available as runoff is determined as surplus in cubic meters per second. This surplus is computed by applying a percentage to the total rainfall and multiplying it by the area of the subwatershed polygon.
Select the program by clicking on the tool followed by a click in the View.

Select No if this is not the script you want to run. A new input window appears with a list of all the available scripts.

Scroll down the list and select CMPSURP.PRE from the list of scripts and click OK.

A dialog is initiated to specify the rainfall time series file, mrn9192.dbf

the rain station theme, rainst

the watershed polygon theme,sobasin.ply

the watershed key field, Grid-code

and the rain station key field, rainid.

The program computes the surplus rainfall to the centroid of the watershed polygons.

When this is done, an output window comes up to inform you that the computation is complete. Click OK. The results of this surplus computation are written to the psurp.dbf file.

3. Inserting Dams into the Model

The model can simulate the effects of dams and flow diversions on the river flow. The model can also interpolate the flow rate to any user defined point (called a flow check point) on a river arc. For reservoir planning purposes, we will only be simulating the effects of dams. The dams in the coverage bigdams.shp are not recognized by the model; they are simply used as a guide to mark the location of the existing reservoirs in the basin. Dams inserted using the program tools are stored in the dams.shp coverage. There are two ways of inserting dams into the model. The first approach is to select Insert Dam from the Dams menu of the View Menu Bar.

A little crosshair cursor appears. A dam can now be inserted on any river segment by simply clicking on the arc at the location.

The second approach which can also be used to insert flow diversion objects and flow check points involves using the icon. Before using this tool zoom in closer to the location for the new dam using the icon. When you are ready to insert the dam, click on the from the View Tool Bar to begin.

Select option 2 when prompted for the type of object to the added. You will also be prompted for whether to start a new set of objects or append to the existing set. If you select YES (start a new set), all existing dams will be deleted. Select NO if you want to add a new dam to the existing set. For the initial run of the model, select YES to start a new set.

Now, click on the location, in the View, where you want to insert the dam.

Whichever of the two dam creation approaches you use, you will be presented with an input table with a list of parameters. The input parameters are attributes of the reservoir which can be obtained from the agency operating the reservoirs. In the Souss basin study, this information was obtained from the Direction Generale de L'Hydraulique (DGH) which is responsible for water resource development in Morocco.

The 'Damid' and 'Damname' are used to link the data in the dams.dbf table to the dam object in the model. The fields 'Area' and 'Capacity' refer to the maximum surface area and storage of the reservoir, respectively. 'Upst' and 'Deadst' refer to the live and dead storage respectively. 'Evt' stands for the estimated monthly evaporation. The default value can be used for this parameter since monthly evaporation data is provided later on in the model. 'Pdam' and 'Ndam' stand for the damid of the previous and next dam on the same river arc (within the same watershed), respectively. 'Storage0' and 'Area0' stand for the initial storage and surface area of the reservoir, respectively.

Practice using both dam creation tools by inserting dams at various locations in the model. You may use the default values of most parameters but remember to change the value of Pdam and Ndam to the damid of dams located along the same arc (enter zero if no other dam on the same arc). A dam(id).dbf file is also created for each dam that is inserted into the model. This file contains the input for each time step. It also serves as the output file for reservoir simulation results There are also two ways of removing dams from the model. The first approach involves using the tool to highlight the dams to be removed. Make sure the dams.shp coverage is active in the view legend. Now, select Remove Dam from the Dams menu of the View Menu Bar.

A series of prompts will come up for you to confirm the removal of the dam and the associated data files. Click YES each time to confirm the removal. After removing the dams with this tool, click on the dams.shp in the view legend to make it visible again. Dams can also be removed using the icon. To do this, click the icon and select option 2 as before. When prompted on whether to start a new set or append to an existing set, select YES (new set). This will erase all the existing dam object sets. To avoid adding a new set of dams, simply click on the menu bar to select another tool.

Now, that you are well acquainted with the tools for inserting and removing dams, start a new set and insert the three dams in the Souss basin into the model. Label the dams in bigdams.shp by selecting Auto-label from the Theme menu of the View Menu bar. Label the theme by Name. The dam names are now displayed in the View. Zoom in and place dams on the locations marked by the dam in bigdam.shp. The reservoirs at Aoulouz, Abdel Moumen and Dhkila will be assigned the identification numbers(damid) 1,2 and 3 respectively. These damids must be maintained throughout the model to ensure that indexed data is matched correctly. Enter the following values for the respective dams.
For the reservoir at Aoulouz:

For the reservoir at Abdel Moumen:

For the reservoir at Dhkila:

4. Setting Up Reservoir Regulation Data

The relationship between reservoir storage, surface area and head is usually determined when the reservoir is created. This relationship is often expressed in the form of reservoir regulation charts or equations. Regulation data for the three dams in the Souss basin have been extracted and stored in the form of tables. These tables are aouldmrg.dbf, abdmdmrg.dbf and dkildmrg.dbf for Aoulouz, Abdel Moumen and Dhkila, respectively. Each of these tables contains a key field, a volume field, an area field and an elevation field. The actual field names in the various tables have been labeled differently for illustration purposes. The table below contains examples of some of the field names commonly encountered.


    Sample Field Names

    Key Field

    Record , Number

    Elevation field

    Elevation , Level , Head

    Area Field

    Area , SArea , Surface_area

    Volume Field

    Storage , Volume

A sample reservoir regulation table is shown below.

The Set Reservoir Fields utility takes the inputs from these tables and creates new reservoir regulation tables which conform to the naming convention used in the simulation model.

It requires the user to select the dam to be processed (start with the dam at Aoulouz, dam 1)

and the table containing the regulation data for the selected dam.

The user is then prompted for an index field

followed by the elevation field,

surface area field

and finally the volume field.

A new reservoir regulation table dmrg1.dbf is created and added to the project.

Repeat this process to create regulation files dmrg2.dbf and dmrg3.dbf for the reservoirs at Abdel Moumen and Dhkila, respectively. Note that the field names in the input files, abdmdmrg.dbf and dkildmrg.dbf, are not the same as those in the previous example.

5. Setting Up Reservoir Operation Data

The reservoir simulation model is able to account for monthly variations in demand, losses and releases. Inflows are generated by the surface water simulation and do not have to be provided by as inputs. Other variables such as releases, withdrawals and losses can be entered by editing the dam tables directly. Mean monthly reservoir operation data for the three reservoir in the Souss basin are provided in separate tables. The operation data for the reservoirs at Aoulouz, Abdel Moumen and Dhkila are stored in aouldmop.dbf, abdmdmop.dbf and dkildmop.dbf respectively. The table below shows the reservoir operation data for the dam at Aoulouz.

Because of variations in the purposes served by the reservoirs, the fields in the operation tables obtained from the agency operating the dams are often different. The data in these tables must be read into the standard reservoir operation tables (dam1.dbf, dam2.dbf and dam3.dbf) created by the model. The key point to understand in setting up the operation data is that while there is only one class of inflows (Inflow) to the reservoirs, there are three classes of outputs. The three classes of outflows include withdrawals, losses and releases. Withdrawals are flows that are diverted from the reservoir for other uses and do not return to the river channel. Flows to meet irrigation and water supply needs fall in this category. Releases are outflows from the reservoir which return to the river channel and subsequently become available for use downstream of the reservoir. Spills, minimum flow releases and, in the case of Aoulouz, releases to the downstream aquifer fall in this category.

Losses are reservoir outflows that are neither diverted for other uses nor released back into the channel. Evaporation and leakage fall into this category. Total withdrawals are represented in the model by the Withdraw field of the dam(id).dbf table. Releases can be entered directly into the Release field of the dam(id).dbf file. If there are multiple withdrawals or releases, the Compute Outputs utility program from the Dams menu in the View Menu bar may be used for summing up the components and updating the values in dam(id).dbf. Losses are represented by the Leakage and Netevap (net evaporation in m) fields in the same table. The dam fields from which inputs are read by during simulation include two natural processes, leakage and evaporation ("Leakage and NetEvap"), and two controlled processes, withdrawal and release ("Withdraw and Release"). Hence subsequent runs of the model to examine reservoir management options should involve alterations to the two controlled processes only.

It is important to determine which class of output you are dealing with before entering the values into the model. Before setting up the dams, open the three reservoir operation tables (aouldmop.dbf, abdmdmop.dbf and dkildmop.dbf). Classify the outputs in terms of releases, withdrawal and losses. After you have finished classifying the outputs click here for a list of the equivalent fields in the dam(id).dbf tables.

Notice that there are two release fields for the reservoirs 1 and 2, and two withdrawals for reservoir 3. (Multiple losses do not pose a problem since leakage and evaporation are common to all reservoirs and are handled separately in the dam(id).dbf tables). For these multiple input cases, the Compute Outputs utility under the Dams menu of the View Menu bar can be used to compute the total month flows. These flows are stored in the release(id).dbf and demand(id).dbf files which are created at run time.

Setting up the reservoir operation data for all three files takes a while. The instructions below will take you through the steps for setting up dam1.dbf. Operation tables for dams 2 and 3 have been set up and will be added to the project later on. Start the set up by computing the net monthly release for dam1.dbf. Select Compute Outputs from the Dams menu.

Select dam 1 from the list provided. For dam 1, there are two types of releases to summed up. Select option 1, compute release when prompted for the class of output to be computed.

Select aouldmop.dbf as the source file

and aquifer as the source field.

Choose release1 as the target field.

The monthly aquifer releases are now updated in the temporary table for storing release data for dam 1, release1.dbf. You will now be prompted on whether you want to update more fields. Select Yes and enter values from the release field of aouldmop.dbf into the release2 field of the target table. Again, the values will be updated in release1.dbf. Now, select No to stop entering more values. The net monthly release will be computed and stored in the total field of release1.dbf. A prompt will then come for you to determine if you would like to enter the net release values into the dam1.dbf. Select Yes and the values will be updated in the dam1.dbf.

The withdrawal, leakage and evaporation can be entered directly into the dam1.dbf tables. To begin entering the month values directly into the tables, select the Update Values utility under the Dams menu of the View Menu Bar.

The user is asked to select the dam to be updated (dam 1) and the source table (aouldmop.dbf). Another prompt comes up which will allow you select a source field followed by a target field in dam1.dbf. Input the following source and target fields:

    Source Field

    Target Field







The program allows you to update any of the fields in dam1.dbf (including the already updated release field). After each update, you will be prompted on whether to update more fields. Continue to select Yes until all three input fields in dam1.dbf have been set up. The fields in dam2.dbf and dam3.dbf can similarly be altered from the associated tables (abdmdmrg.dbf and dkildmrg.dbf). However, preprocessed tables have been prepared and stored in the setdams directory. After setting up dam1.dbf, delete dam2.dbf and dam3.dbf from the project and add the preset tables with the same filenames from the ex3/gisfiles/setdams directory.

6. Initializing Reservoir Storage

It may sometimes be necessary to run the simulation model under a different set of initial conditions other than those specified during the creation of the model. To vary the initial reservoir storage, select 'Initialize Storage' from under the Dams menu of the View Menu Bar.

You will be prompted to select the dam to initialize.

Then an input screen will come up for you to enter the initial storage.

If you enter a storage and click OK the initial storage will be updated in dams.dbf. For the first run of the model, we will use the initial storage we set up when creating the model, hence click cancel to avoid changing the initial storage.

7. Running the Simulation

The reservoir runs within the surface water simulation. Hence to simulate the operation of the reservoirs, select SFlowSim from under SFlwModel in the View Menu Bar. A multiple input form containing the model control parameters comes up. Check the initial and final time steps (IniTmStep and EndTmStep) to ensure the period being simulated corresponds to the number of records in the output tables, in this case 24. The default values of the other parameters may be used to run the model unless it is desired otherwise. A description of the various input parameters is provided below. The value following the equal sign in the description of each parameter indicates the program default.

The surface water model begins to simulate flow in the basin. This process generates the inputs for the reservoir simulation model. Since the reservoir simulation runs with the surface water simulation, there is no indication on the screen that the reservoir is being simulated. Following is an outline the process that takes place.

8. Viewing Simulation Results

After running the simulation, open up the dam files dam1.dbf, dam2.dbf and dam3.dbf to view the results on a monthly scale. The names and descriptions of the fields in these tables are given below.

TIME The simulation time step, beginning with 1 none
INFLOW Total reservoir inflow in a given month m3
LEAKAGE Total loss by infiltration in a given month m3
NETEVAP Net evaporation m
SURFAREA Surface area of the reservoir at the end of the month m2
EVAPLOSS Water lost through evaporation during the month m3
SPILL Water released as excess, usually as spillway overflow m3
DEFICIT Portion of the target withdrawal not met during the month m3
WITHDRAW Reservoir outflow that does not return to the river m3
RELEASE Reservoir outflow going into the river channel m3
STORAGE Total volume of water in the reservoir at the end of the month m3
HEAD Water surface elevation at the end of the month m3

You can also generate a summary of the results by selecting Simulation Summary from the Dams menu of the View Tool Bar.

The fields in this table include the following:



Damid the dam identification number
Totalmon the number of months simulated
Deficitmon the number of months in which deficits were recorded
Spillmon the number of months in which spills were recorded
TotalInflow net inflow generated during the simulation period
TotalDeficit net deficit for the simulation period
TotalSpill net surplus inflow released as spill
Evap% the percentage of total inflow lost through evaporation
Leak% the percentage of total inflow seeping out of the reservoir
Release% the percentage of total inflow released back into the river channel
Withdraw% the percentage of total inflow that is diverted for other uses
ChngStor% the change in reservoir storage as a percentage of the initial storage

OK, you're done!!!

These materials may be used for study, research, and education, but please credit the authors and the Center for Research in Water Resources, The University of Texas at Austin. All commercial rights reserved. Copyright 1997 Center for Research in Water Resources.