* GMS file for Lower Corolado River Management for 5 year normal (average flow values for 25 year period)
* This file is a revised version of the GMS file developed by the LCRA project group
* in the fall 1995, CE385 D.
* define sets
SETS
L 5 lakes on LCR /L1*L5/
T time period 12 months in 1 year /T1*T60/
I four tributary inflows /I1*I4/;
* data input
SCALARS
TD water supply target for downstream {1000AF} /1033.1/
TA water supply target for Austin {1000AF} /296.00/
TI water supply target for irrigation {1000 AF} /500.00/;
PARAMETERS
K(L) storage capacity (active storage) of lake L in 1000 AF
/ L1 918.00
L2 17.54
L3 138.50
L4 8.76
L5 1170.00/
K0(L) minimum storage capacity of lake L in 1000 AF
/ L1 0.00
L2 17.54
L3 138.50
L4 8.76
L5 0.00/
ST0(L) initial storage of lake L in 1000 AF
/ L1 918.00
L2 17.54
L3 138.50
L4 8.76
L5 1170.00/
FA(T) percent of Austin's monthly demand used in period T
/ T1 .062,
T2 .062,
T3 .065,
T4 .077,
T5 .080,
T6 .095,
T7 .116,
T8 .122,
T9 .098,
T10 .083,
T11 .072,
T12 .068,
T13 .062,
T14 .062,
T15 .065,
T16 .077,
T17 .080,
T18 .095,
T19 .116,
T20 .122,
T21 .098,
T22 .083,
T23 .072,
T24 .068,
T25 .062,
T26 .062,
T27 .065,
T28 .077,
T29 .080,
T30 .095,
T31 .116,
T32 .122,
T33 .098,
T34 .083,
T35 .072,
T36 .068,
T37 .062,
T38 .062,
T39 .065,
T40 .077,
T41 .080,
T42 .095,
T43 .116,
T44 .122,
T45 .098,
T46 .083,
T47 .072,
T48 .068,
T49 .062,
T50 .062,
T51 .065,
T52 .077,
T53 .080,
T54 .095,
T55 .116,
T56 .122,
T57 .098,
T58 .083,
T59 .072,
T60 .068/
FI(T) percent of irrigation's monthly demand used in period T
/ T1 .000,
T2 .000,
T3 .031,
T4 .089,
T5 .184,
T6 .231,
T7 .149,
T8 .165,
T9 .136,
T10 .015,
T11 .000,
T12 .000,
T13 .000,
T14 .000,
T15 .031,
T16 .089,
T17 .184,
T18 .231,
T19 .149,
T20 .165,
T21 .136,
T22 .015,
T23 .000,
T24 .000,
T25 .000,
T26 .000,
T27 .031,
T28 .089,
T29 .184,
T30 .231,
T31 .149,
T32 .165,
T33 .136,
T34 .015,
T35 .000,
T36 .000,
T37 .000,
T38 .000,
T39 .031,
T40 .089,
T41 .184,
T42 .231,
T43 .149,
T44 .165,
T45 .136,
T46 .015,
T47 .000,
T48 .000,
T49 .000,
T50 .000,
T51 .031,
T52 .089,
T53 .184,
T54 .231,
T55 .149,
T56 .165,
T57 .136,
T58 .015,
T59 .000,
T60 .000/
FD(T) percent of downstream's monthly demand used in period T
/ T1 .043,
T2 .044,
T3 .125,
T4 .146,
T5 .157,
T6 .154,
T7 .104,
T8 .057,
T9 .038,
T10 .046,
T11 .043,
T12 .044,
T13 .043,
T14 .044,
T15 .125,
T16 .146,
T17 .157,
T18 .154,
T19 .104,
T20 .057,
T21 .038,
T22 .046,
T23 .043,
T24 .044,
T25 .043,
T26 .044,
T27 .125,
T28 .146,
T29 .157,
T30 .154,
T31 .104,
T32 .057,
T33 .038,
T34 .046,
T35 .043,
T36 .044,
T37 .043,
T38 .044,
T39 .125,
T40 .146,
T41 .157,
T42 .154,
T43 .104,
T44 .057,
T45 .038,
T46 .046,
T47 .043,
T48 .044,
T49 .043,
T50 .044,
T51 .125,
T52 .146,
T53 .157,
T54 .154,
T55 .104,
T56 .057,
T57 .038,
T58 .046,
T59 .043,
T60 .044/ ;
TABLE Q(T,I) monthly inflow into river nodes in period T in 1000 AF
I1 I2 I3 I4
T1 12553 13038 9884 3006
42149 26686 31403 8870
57391 37716 37907 11272
159486 70020 58150 34482
345273 65569 53727 8962
197135 25561 16727 102043
51562 15995 8116 21012
10990 15094 2118 5029
35985 17161 3646 1501
83719 47664 14956 2171
19769 13216 3422 19074
15819 10846 3344 23357
12366 9021 2791 6316
9019 7240 2424 13514
6315 6516 2289 15890
180905 40523 9172 71421
250215 25060 4883 17217
92304 11935 2953 9935
6693 3773 2900 11322
39942 32549 16991 1127
60246 33440 5639 2877
120981 36619 40412 6338
24527 30274 4280 2087
14355 12298 3267 1478
13282 10219 2694 2849
10985 7295 2085 1216
8032 8957 4413 1423
15993 8204 3263 8255
9632 7504 2144 5342
38359 80855 8481 3551
1806 19543 7092 9969
1403 3525 334 4022
20624 10185 1414 6695
25731 9882 778 5476
9141 7272 671 7612
7588 10060 1129 5303
41712 21257 2489 8117
43905 20918 2989 14566
48407 19450 6399 30732
13308 10441 2555 10793
222099 53011 67102 14520
48946 20075 7759 12334
8933 3947 1579 5435
12240 6062 60482 10532
25720 13702 13734 13866
27048 9120 5435 2199
9912 7398 4356 7499
23401 11709 18712 12096
47165 28078 20781 21327
56756 28106 18629 14203
68832 21182 40156 18363
91629 29516 36268 31114
28597 8696 11669 14921
41048 5143 5524 17201
73808 2707 3122 8928
12230 2668 2815 8603
14766 2579 19543 16141
7779 8315 11681 4295
10570 4102 3900 5007
10137 5012 5167 10438;
* declare variables
VARIABLES
R(T,L) release from lake L in period T {1000 AF}
ST(T,L) storage in lake L in period T {1000 AF}
RA(T) release to Austin in period T {1000 AF}
RI(T) release to irrigation in period T {1000 AF}
RD(T) release to downstream in period T {1000 AF}
objval obj value
RX(T) excess release (after satisfying Austin's demand) {1000 AF};
POSITIVE VARIABLES R,ST,RA,RI,RD,EL;
* define variable bounds
* lake capacity limit
ST.up(T,L) = K(L);
* minimun lake levels
ST.lo(T, L) = K0(L);
* water supply not over demand target
RA.up(T)=TA*FA(T);
RI.up(T)=TI*FI(T);
RD.up(T)=TD*FD(T);
* lower limits on demands
*RA.lo(T)=TA*FA(T);
*RI.lo(T)=0;
*RD.lo(T)=TD*FD(T);
* declare equations
EQUATIONS
OBJ objective function
INIT(L) Initial lake levels
BUCH(T) Lake Buchanan balance equation
INKS(T) Inks Lake balance equation
LBJ(T) Lake LBJ balance equation
MARBLE(T) Lake Marble Falls balance equation
TRAVIS(T) Lake Travis balance equation
CONST1(T) constraint on releases to Austin and Irrigation
CONST2(T) constraint on releases to Irrigation and Downstream;
* write equations
* objective function, minimizing water deficit for Austin use, Irrigation use,
* and Downstream use over all periods.
OBJ..objval =E= SUM(T, (TD*FD(T)-RD(T)) + (TA*FA(T) - RA(T) ) + (TI*FI(T) - RI(T) )) ;
* flow balances
INIT(L) .. ST("T1",L) =E= ST0(L);
BUCH(T) .. ST(T+1,"L1") =E=
ST(T,"L1") + Q(T,"I1") - R(T,"L1");
INKS(T) .. ST(T+1,"L2") =E=
ST(T,"L2") + R(T,"L1") - R(T,"L2");
LBJ(T) .. ST(T+1,"L3") =E=
ST(T,"L3") + Q(T,"I2") + R(T,"L2") - R(T,"L3");
MARBLE(T) .. ST(T+1,"L4") =E=
ST(T,"L4") + R(T,"L3") - R(T,"L4");
TRAVIS(T) .. ST(T+1,"L5") =E=
ST(T,"L5") + Q(T,"I3") + R(T,"L4") - R(T,"L5");
CONST1(T) .. R(T,"L1") + R(T,"L5") =E= RA(T) + RX(T);
CONST2(T) .. RX(T) + Q(T,"I4") =E= RI(T) + RD(T);
MODEL POWER /ALL/;
* set max iterations other than the default number
OPTION ITERLIM = 2000000;
SOLVE POWER USING LP MINIMIZING OBJVAL;
* output
file lcra /res.dat/
put lcra
put ' result report from LCRA model', put //
* write lake release in each period for each lake
put ' Lake release in each period for each lake ', put //
loop( T, put T.tl, put R.l(T, 'L1'), put R.l(T, 'L2'), put R.l(T, 'L3'), put R.l(T, 'L4'), put R.l(T, 'L5'), put /)
* write water supply to Austin in each period
put ' water supply to Austin ', put //
loop( T, put T.tl, put RA.l(T) put /)
*write water supply to irrigation in each period
put ' water supply to irrigation ', put //
loop( T, put T.tl, put RI.l(T) put /)
*write water supply to downstream in each period
put ' water supply to downstream ', put //
loop( T, put T.tl, put RD.l(T) put /)
* write lake storage in each period for each lake
put ' lake storage in each period for each lake' , put //
loop( T, put T.tl, put ST.l(T, 'L1'), put ST.l(T, 'L2'), put ST.l(T, 'L3'), put ST.l(T, 'L4'), put ST.l(T, 'L5'), put /)
put ' total water shortage', put objval.l;
* the end