iswnm.gms : Indus Surface Water Network Submodule

Description

This is the surface water network submodel of the integrated
Indus river basin model.


Reference

  • Duloy, J H, and O'Mara, G T, Issues of Efficiency and Interdependence in Water Resource Investments: Lessons from the Indus Basin of Pakistan. Tech. rep., The World Bank, 1984.

Large Model of Type : LP


Category : GAMS Model library


Main file : iswnm.gms

$title Indus Surface Water Network Submodule (ISWNM,SEQ=89)

$onText
This is the surface water network submodel of the integrated
Indus river basin model.


Duloy, J H, and O'Mara, G T, Issues of Efficiency and Interdependence
in Water Resource Investments: Lessons from the Indus Basin of Pakistan.
Tech. rep., The World Bank, 1984.

Kexwords: linear programming, water resources management, network problem,
          agricultural economics, water distribution
$offText

$sTitle Network Nodes and Arc Definition
Set
   n 'nodes of the Indus river system'
     / feroz-b    'ferozepur barrage                 - sutlej river'
       sulem-b    'sulemanki barrage                 - sutlej river'
       islam-b    'islam barrage                     - sutlej river'
       panjnad-b  'panjnad barrage                   - panjnad river'
       ravi-i     'ravi inflow at madhopur           - ravi river'
       mr-tail    'tail of marrala ravi link cannal  - ravi river'
       balloki-b  'balloki barrage                   - ravi river'
       sidhnai-b  'sidhani barrage                   - ravi river'
       tp-tail    'tail of taunsa panjnad link canal - jhelum+chenab'
       marala-b   'marrala barrage                   - chenab river'
       khanki-b   'khanki barrage                    - chenab river'
       qadira-b   'qadirabad barrage                 - chenab river'
       trimmu-b   'trimmu barrage                    - chenab river'
       mangla-r   'mangla reservoir                  - jehlum river'
       rasul-b    'rasul barrage                     - jhelum river'
       cj-tail    'tail of chasma jehlum link        - jehlum river'
       tarbela-r  'tarbela reservoir                 - indus river'
       amanda-h   'amandara head works               - swat river'
       munda-h    'munda head works                  - swat river'
       warsak-d   'warsak reservoir                  - kabul river'
       k-s-jct    'kabul and swat river jct          - kabul river'
       kabul-tail 'kabul river tail                  - indus river'
       kalabagh-r 'kalabagh reservoir                - indus river'
       chasma-r   'chasma reservoir                  - indus river'
       taunsa-b   'taunsa barrage                    - indus river'
       mithankot  'indus and panjnad river jct       - indus river'
       gudu-b     'gudu barrage                      - indus river'
       sukkur-b   'sukkur barrage                    - indus river'
       kotri-b    'kotri barrage                     - indus river'
       a-sea      'arabian sea'
       a1         'diversion point for uj uj link and r.p.c'
       a2         'div. for brbd link uc link and uc int.'
       a3         'div. for mr cross link'
       a4         'mr cross tail and brbd link'
       a5         'div. for cbd and ud canals'
       a6         'diversion to lcc feeder'
       a7         'div. for gugera and jhang canals'
       a8         'divesion point for maili+l pakpattan canals'
       a9         'smb link to l-bahawl canal'
       a10        'diversion point for lj'                            /
   c 'irrigation canals in the Indus river irrigation system'
     / ud         'upper dipalpur'
       cbd        'central bari doab canal'
       ray        'raya canal'
       uc         'upper chenab canal'
       mr         'marala ravi canal'
       sad        'sadiqia canal'
       foc        'fordwah canal'
       pak        'upper pakpattan+u-bahawal+qaim+u-mailsi canal'
       ld         'lower dipalpur canal'
       lbd        'lower bari doab canal'
       jha        'jhang canal (lcc)'
       gug        'gugera branch canal (lcc)'
       uj         'upper jehlum canal'
       lj         'lower jehlum canal'
       bah        'bahawal canal'
       mai        'lowwer mailsi+ lower pakpattan canal'
       sid        'sidhnai canal'
       hav        'haveli canal'
       ran        'rangpur canal'
       pan        'panjnad canal'
       abb        'abbasia canal'
       lsw        'lower swat canal'
       usw        'upper swat canal'
       war        'warsak canal'
       kab        'kabul river canal'
       tha        'thal canal'
       pah        'paharpur canal'
       muz        'muzffgarh canal'
       dgk        'dera ghazi khan canal'
       p+d        'pat plus desert canal'
       beg        'begari canal'
       gho        'ghotki canal'
       nw         'north west canal'
       ric        'rice canal'
       dad        'dadu canal'
       kw         'khairpur west canal'
       ke         'khairpur east canal'
       roh        'rohri canal'
       nar        'nara canal'
       kal        'kalri canal'
       lch        'lined channel'
       ful        'fuleli canal'
       pin        'pinyari canal'                                 /
   i 'system inflows'
     / swat       'swat river at chakdara'
       kabul      'kabul river at warsak'
       indus      'indus river at tarbela'
       haro       'haro river at gariall'
       soan       'soan river at dhok pathan'
       jehlum     'jehlum river at mangls'
       chenab     'chenab river at marrala'
       ravi       'ravi river below madhopur'
       sutlej     'sutlej river below ferozpur'                       /
   nc(n,c) 'node to canal map'
           / sulem-b.   (sad,foc,pak),     a8.         mai
             a9.         bah         ,     panjnad-b. (pan,abb)
             balloki-b. (lbd,ld)     ,     sidhnai-b.  sid
             marala-b.   mr          ,     a2.        (uc,ray)
             a5.        (cbd,ud)     ,     a7.        (jha,gug)
             trimmu-b.  (ran,hav)
             a1.         uj          ,     a10.        lj
             amanda-h.   usw         ,     munda-h.    lsw
             warsak-d.   war         ,     k-s-jct.    kab
             kalabagh-r. tha         ,     chasma-r.   pah
             taunsa-b.  (muz,dgk)    ,     gudu-b.    (p+d,beg,gho)
             sukkur-b.  (nw,ric,dad,kw,ke,roh,nar)
             kotri-b.   (kal,lch,ful,pin)                             /;

Alias (n,n1);

Set
   nn(n,n1) 'water flow system node to node'
*  sutlej ravi system
            / sulem-b.   (feroz-b,  balloki-b)
              islam-b.    sulem-b
              a9.        (a8,       islam-b)
              a8.         sidhnai-b
              panjnad-b. (tp-tail,  islam-b)
*  ravi chenab system
              ravi-i.     a3
              a3.         marala-b
              a4.        (a3,a2)
              a5.         a4
              a2.         marala-b
              balloki-b. (ravi-i,   a2,    a6)
              a6.         qadira-b
              a7.        (a6,       khanki-b)
              sidhnai-b. (trimmu-b, balloki-b)
*  chenab jehlum system
              khanki-b.  (a1,       marala-b)
              qadira-b.  (rasul-b,  khanki-b)
              trimmu-b.  (qadira-b, cj-tail)
              tp-tail.   (trimmu-b, sidhnai-b)
              a1.         mangla-r
              rasul-b.    mangla-r
              a10.       (rasul-b,  a1)
              cj-tail.   (rasul-b,  chasma-r)
*  kabul swat system
              munda-h.    amanda-h
              k-s-jct.   (munda-h,  warsak-d)
*  indus river
              kabul-tail.(k-s-jct,  tarbela-r)
              kalabagh-r. kabul-tail
              chasma-r.   kalabagh-r
              taunsa-b.   chasma-r
              mithankot. (panjnad-b,taunsa-b)
              gudu-b.     mithankot
              sukkur-b.   gudu-b
              kotri-b.    sukkur-b
              a-sea.      kotri-b                        /
   ni(n,i) 'node to rim station inflow map'
            / amanda-h.    swat    ,  warsak-d.    kabul,
              tarbela-r.   indus   ,  kabul-tail.  haro
              kalabagh-r.  soan    ,  mangla-r.    jehlum
              marala-b.    chenab  ,  ravi-i.      ravi
              feroz-b.     sutlej                         /
  e         / pex  'pan evaporation'
              hcx  'height of water in link canal from sea(feet)'
              hwr  'height of groundwater from sea (feet)'               /
   m       'months'  / jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec   /
   s       'seasons' / rabi,kharif  /
   sm(s,m) 'season to months mapping' / rabi.  (jan,feb,mar,oct,nov,dec)
                                        kharif.(apr,may,jun,jul,aug,sep) /
   nb(n);

nb(n)       = yes;
nb("a-sea") = no;

$sTitle Flow Capacities
Parameter
   ccap(c)    'canal capacity at the canal head (maf)'
              / ud    .131,   cbd   .163,   ray   .110,   uc    .506
                mr    .166,   sad   .332,   foc   .204,   pak   .478
                ld    .244,   lbd   .518,   jha   .410,   gug   .433
                uj    .345,   lj    .464,   bah   .346,   mai   .362
                sid   .268,   hav   .068,   ran   .176,   pan   .671
                abb   .080,   usw   .117,   lsw   .060,   war   .044
                kab   .027,   tha   .577,   pah   .037,   muz   .495
                dgk   .529,   p+d   .799,   beg  1.155,   gho   .648
                nw    .566,   ric   .829,   dad   .319,   kw    .157
                ke    .207,   roh   .981,   nar   .873,   kal   .546
                lch   .205,   ful   .894,   pin   .831               /
   ncap(n,n1) 'node to node transfer capacity   (maf)'
              / chasma-r.  cj-tail   1.307, taunsa-b.  tp-tail     .724
                mangla-r.  a1         .685,  a1.        a10        .199
                rasul-b.   a10        .328,  a1.        khanki-b   .422
                rasul-b.   qadira-b  1.232,
                marala-b.  a3         .985,  a3.        a4         .199
                a3.        ravi-i     .938,  marala-b.  a2         .995
                a2.        balloki-b  .698,  a2.        a4         .310
                a4.        a5         .310
                khanki-b.  a7         .499,  qadira-b.  a6        1.146
                a6.        a7         .270,  a6.        balloki-b  .808
                balloki-b. sulem-b   1.172,  trimmu-b.  sidhnai-b 1.03
                sidhnai-b. a8         .662,  a8.        a9         .640
                islam-b.   a9         .299                              /;

display n, c, nc, nn, ni;
display ccap, ncap;

$sTitle Loss Coefficient Calculations for Link Canals
*- following calculation are to compute loss coefficients coeffl(n1,n,m)
*  all the data needed for these calculations is given below except
*  link canal capacity is from above

Table madjust(n1,n,m) 'monthly adjustment factor for operational losses'
                       jan feb mar apr may jun jul aug sep oct nov dec
   chasma-r.cj-tail      4   4   4   4   5   6   6   6   5   4   4   4
   taunsa-b.tp-tail      4   4   4   4   5   6   6   6   5   4   4   4
   mangla-r.a1           4   4   4   4   5   6   6   6   5   4   4   4
   a1.khanki-b           4   4   4   4   5   6   6   6   5   4   4   4
   rasul-b.qadira-b      4   4   4   4   5   6   6   6   5   4   4   4
   marala-b.a3           4   4   4   4   5   6   6   6   5   4   4   4
   a3.ravi-i             4   4   4   4   5   6   6   6   5   4   4   4
   marala-b.a2           4   4   4   4   5   6   6   6   5   4   4   4
   a2.balloki-b          4   4   4   4   5   6   6   6   5   4   4   4
   a3.a4                 4   4   4   4   5   6   6   6   5   4   4   4
   a2.a4                 4   4   4   4   5   6   6   6   5   4   4   4
   a4.a5                 4   4   4   4   5   6   6   6   5   4   4   4
   khanki-b.a7           4   4   4   4   5   6   6   6   5   4   4   4
   qadira-b.a6           4   4   4   4   5   6   6   6   5   4   4   4
   a6.balloki-b          4   4   4   4   5   6   6   6   5   4   4   4
   a6.a7                 4   4   4   4   5   6   6   6   5   4   4   4
   balloki-b.sulem-b     4   4   4   4   5   6   6   6   5   4   4   4
   trimmu-b.sidhnai-b    4   4   4   4   5   6   6   6   5   4   4   4
   sidhnai-b.a8          2   2   2   2   3   3   3   3   3   2   2   2
   a8.a9                 2   2   2   2   3   3   3   3   3   2   2   2
   rasul-b.a10           4   4   4   4   5   6   6   6   5   4   4   4
   a1.a10                4   4   4   4   5   6   6   6   5   4   4   4;

Table linkpar(e,n1,n,m) 'evaporation(ft) height of canal and gw(ft)'
                            jan     feb     mar     apr     may     jun
   pex.chasma-r.cj-tail   0.260   0.331   0.517   0.760   1.057   1.143
   pex.taunsa-b.tp-tail   0.260   0.331   0.517   0.760   1.057   1.143
   pex.mangla-r.a1        0.240   0.306   0.531   0.752   0.973   1.018
   pex.a1.khanki-b        0.240   0.306   0.531   0.752   0.973   1.018
   pex.rasul-b.qadira-b   0.240   0.306   0.531   0.752   0.973   1.018
   pex.marala-b.a3        0.208   0.297   0.517   0.762   0.957   0.998
   pex.a3.ravi-i          0.208   0.297   0.517   0.762   0.957   0.998
   pex.marala-b.a2        0.208   0.297   0.517   0.762   0.957   0.998
   pex.a2.balloki-b       0.208   0.297   0.517   0.762   0.957   0.998
   pex.a3.a4              0.208   0.297   0.517   0.762   0.957   0.998
   pex.a2.a4              0.208   0.297   0.517   0.762   0.957   0.998
   pex.a4.a5              0.243   0.313   0.565   0.785   0.975   1.048
   pex.khanki-b.a7        0.208   0.297   0.517   0.762   0.957   0.998
   pex.qadira-b.a6        0.208   0.297   0.517   0.762   0.957   0.998
   pex.a6.balloki-b       0.208   0.297   0.517   0.762   0.957   0.998
   pex.a6.a7              0.208   0.297   0.517   0.762   0.957   0.998
   pex.balloki-b.sulem-b  0.243   0.313   0.565   0.785   0.975   1.048
   pex.trimmu-b.sidhnai-b 0.214   0.310   0.526   0.769   0.964   1.008
   pex.sidhnai-b.a8       0.260   0.331   0.583   0.813   1.002   1.051
   pex.a8.a9              0.260   0.331   0.583   0.813   1.002   1.051
   pex.rasul-b.a10        0.240   0.306   0.531   0.752   0.973   1.018
   pex.a1.a10             0.240   0.306   0.531   0.752   0.973   1.018

   hcx.chasma-r.cj-tail   648.32  650.13  650.60  651.31  651.73  652.01
   hcx.taunsa-b.tp-tail   409.40  410.55  410.85  411.29  411.56  411.73
   hcx.mangla-r.a1        630.16  630.54  630.41  630.93  631.85  631.94
   hcx.a1.khanki-b        630.16  630.54  630.41  630.93  631.85  631.94
   hcx.rasul-b.qadira-b   630.16  630.54  630.41  630.93  631.85  631.94
   hcx.marala-b.a3        669.05  669.07  669.34  670.22  671.23  672.12
   hcx.a3.ravi-i          669.05  669.07  669.34  670.22  671.23  672.12
   hcx.marala-b.a2        669.05  669.07  669.34  670.22  671.23  672.12
   hcx.a2.balloki-b       669.05  669.07  669.34  670.22  671.23  672.12
   hcx.a3.a4              669.05  669.07  669.34  670.22  671.23  672.12
   hcx.a2.a4              669.05  669.07  669.34  670.22  671.23  672.12
   hcx.a4.a5              628.69  629.09  628.92  629.72  631.18  631.95
   hcx.khanki-b.a7        669.05  669.07  669.34  670.22  671.23  672.12
   hcx.qadira-b.a6        669.05  669.07  669.34  670.22  671.23  672.12
   hcx.a6.balloki-b       669.05  669.07  669.34  670.22  671.23  672.12
   hcx.a6.a7              669.05  669.07  669.34  670.22  671.23  672.12
   hcx.balloki-b.sulem-b  628.69  629.09  628.92  629.72  631.18  631.95
   hcx.trimmu-b.sidhnai-b 540.08  540.94  541.66  541.67  541.95  542.23
   hcx.sidhnai-b.a8       454.64  455.00  455.55  455.68  456.00  456.57
   hcx.a8.a9              454.64  455.00  455.55  455.68  456.00  456.57
   hcx.rasul-b.a10        630.16  630.54  630.41  630.93  631.85  631.94
   hcx.a1.a10             630.16  630.54  630.41  630.93  631.85  631.94

   hwr.chasma-r.cj-tail   640.0   640.0   640.0   640.0   640.0   640.0
   hwr.taunsa-b.tp-tail   403.0   403.0   403.0   403.0   403.0   403.0
   hwr.mangla-r.a1        620.0   620.0   620.0   620.0   620.0   620.0
   hwr.a1.khanki-b        620.0   620.0   620.0   620.0   620.0   620.0
   hwr.rasul-b.qadira-b   620.0   620.0   620.0   620.0   620.0   620.0
   hwr.marala-b.a3        655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a3.ravi-i          655.0   655.0   655.0   655.0   655.0   655.0
   hwr.marala-b.a2        655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a2.balloki-b       655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a3.a4              655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a2.a4              655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a4.a5              613.0   613.0   613.0   613.0   613.0   613.0
   hwr.khanki-b.a7        655.0   655.0   655.0   655.0   655.0   655.0
   hwr.qadira-b.a6        655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a6.balloki-b       655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a6.a7              655.0   655.0   655.0   655.0   655.0   655.0
   hwr.balloki-b.sulem-b  613.0   613.0   613.0   613.0   613.0   613.0
   hwr.trimmu-b.sidhnai-b 523.0   523.0   523.0   523.0   523.0   523.0
   hwr.sidhnai-b.a8       435.0   435.0   435.0   435.0   435.0   435.0
   hwr.a8.a9              435.0   435.0   435.0   435.0   435.0   435.0
   hwr.rasul-b.a10        620.0   620.0   620.0   620.0   620.0   620.0
   hwr.a1.a10             620.0   620.0   620.0   620.0   620.0   620.0

   +                        jul     aug     sep     oct     nov     dec
   pex.chasma-r.cj-tail   1.057   0.899   0.721   0.631   0.402   0.245
   pex.taunsa-b.tp-tail   1.057   0.899   0.721   0.631   0.402   0.245
   pex.mangla-r.a1        0.894   0.793   0.717   0.583   0.354   0.232
   pex.a1.khanki-b        0.894   0.793   0.717   0.583   0.354   0.232
   pex.rasul-b.qadira-b   0.894   0.793   0.717   0.583   0.354   0.232
   pex.marala-b.a3        0.835   0.745   0.679   0.533   0.329   0.217
   pex.a3.ravi-i          0.835   0.745   0.679   0.533   0.329   0.217
   pex.marala-b.a2        0.835   0.745   0.679   0.533   0.329   0.217
   pex.a2.balloki-b       0.835   0.745   0.679   0.533   0.329   0.217
   pex.a3.a4              0.835   0.745   0.679   0.533   0.329   0.217
   pex.a2.a4              0.835   0.745   0.679   0.533   0.329   0.217
   pex.a4.a5              0.934   0.843   0.750   0.579   0.364   0.264
   pex.khanki-b.a7        0.835   0.745   0.679   0.533   0.329   0.217
   pex.qadira-b.a6        0.835   0.745   0.679   0.533   0.329   0.217
   pex.a6.balloki-b       0.835   0.745   0.679   0.533   0.329   0.217
   pex.a6.a7              0.835   0.745   0.679   0.533   0.329   0.217
   pex.balloki-b.sulem-b  0.934   0.843   0.750   0.579   0.364   0.264
   pex.trimmu-b.sidhnai-b 0.826   0.741   0.683   0.554   0.326   0.226
   pex.sidhnai-b.a8       0.952   0.898   0.762   0.604   0.385   0.273
   pex.a8.a9              0.952   0.898   0.762   0.604   0.385   0.273
   pex.rasul-b.a10        0.894   0.793   0.717   0.583   0.354   0.232
   pex.a1.a10             0.894   0.793   0.717   0.583   0.354   0.232

   hcx.chasma-r.cj-tail   652.33  651.92  651.79  652.06  651.75  649.83
   hcx.taunsa-b.tp-tail   411.94  411.67  411.59  411.76  411.57  410.36
   hcx.mangla-r.a1        632.27  632.12  632.02  631.25  630.76  630.69
   hcx.a1.khanki-b        632.27  632.12  632.02  631.25  630.76  630.69
   hcx.rasul-b.qadira-b   632.27  632.12  632.02  631.25  630.76  630.69
   hcx.marala-b.a3        671.97  671.95  671.74  669.81  668.93  668.80
   hcx.a3.ravi-i          671.97  671.95  671.74  669.81  668.93  668.80
   hcx.marala-b.a2        671.97  671.95  671.74  669.81  668.93  668.80
   hcx.a2.balloki-b       671.97  671.95  671.74  669.81  668.93  668.80
   hcx.a3.a4              671.97  671.95  671.74  669.81  668.93  668.80
   hcx.a2.a4              671.97  671.95  671.74  669.81  668.93  668.80
   hcx.a4.a5              632.10  631.88  631.92  630.60  628.97  628.69
   hcx.khanki-b.a7        671.97  671.95  671.74  669.81  668.93  668.80
   hcx.qadira-b.a6        671.97  671.95  671.74  669.81  668.93  668.80
   hcx.a6.balloki-b       671.97  671.95  671.74  669.81  668.93  668.80
   hcx.a6.a7              671.97  671.95  671.74  669.81  668.93  668.80
   hcx.balloki-b.sulem-b  632.10  631.88  631.92  630.60  628.97  628.69
   hcx.trimmu-b.sidhnai-b 542.01  541.75  542.06  541.88  541.61  541.23
   hcx.sidhnai-b.a8       457.19  457.13  457.07  456.22  455.45  454.81
   hcx.a8.a9              457.19  457.13  457.07  456.22  455.45  454.81
   hcx.rasul-b.a10        632.27  632.12  632.02  631.25  630.76  630.69
   hcx.a1.a10             632.27  632.12  632.02  631.25  630.76  630.69

   hwr.chasma-r.cj-tail   640.0   640.0   640.0   640.0   640.0   640.0
   hwr.taunsa-b.tp-tail   403.0   403.0   403.0   403.0   403.0   403.0
   hwr.mangla-r.a1        620.0   620.0   620.0   620.0   620.0   620.0
   hwr.a1.khanki-b        620.0   620.0   620.0   620.0   620.0   620.0
   hwr.rasul-b.qadira-b   620.0   620.0   620.0   620.0   620.0   620.0
   hwr.marala-b.a3        655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a3.ravi-i          655.0   655.0   655.0   655.0   655.0   655.0
   hwr.marala-b.a2        655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a2.balloki-b       655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a3.a4              655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a2.a4              655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a4.a5              613.0   613.0   613.0   613.0   613.0   613.0
   hwr.khanki-b.a7        655.0   655.0   655.0   655.0   655.0   655.0
   hwr.qadira-b.a6        655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a6.balloki-b       655.0   655.0   655.0   655.0   655.0   655.0
   hwr.a6.a7              655.0   655.0   655.0   655.0   655.0   655.0
   hwr.balloki-b.sulem-b  613.0   613.0   613.0   613.0   613.0   613.0
   hwr.trimmu-b.sidhnai-b 523.0   523.0   523.0   523.0   523.0   523.0
   hwr.sidhnai-b.a8       435.0   435.0   435.0   435.0   435.0   435.0
   hwr.a8.a9              435.0   435.0   435.0   435.0   435.0   435.0
   hwr.rasul-b.a10        620.0   620.0   620.0   620.0   620.0   620.0
   hwr.a1.a10             620.0   620.0   620.0   620.0   620.0   620.0;

Set e1 /length, width /;

Table lw(n1,n,e1) 'length(miles) and width( feet) of link canals'
                       length     width
   chasma-r.cj-tail        56       362
   taunsa-b.tp-tail        39       190
   mangla-r.a1             44       180
   a1.khanki-b             36       120
   rasul-b.qadira-b        27       350
   marala-b.a3             56.8     250
   a3.ravi-i                4       250
   marala-b.a2             23       250
   a2.balloki-b            68       150
   a3.a4                    4        50
   a2.a4                   35.2      90
   a4.a5                   75.6      90
   khanki-b.a7             41.6     120
   qadira-b.a6             14       320
   a6.balloki-b            55       160
   a6.a7                   18        90
   balloki-b.sulem-b       47       325
   trimmu-b.sidhnai-b      41       253
   sidhnai-b.a8            39       140
   a8.a9                   26        90
   rasul-b.a10             12       100
   a1.a10                  15        50;

Parameter
   caf    'conversion factor from cfs to acre feet per month'
   cmft   'conversion from mile-feet to acre-feet'
   per    'permeability in cfs per square feet'
   philc  'seepage proportionality contant'
   coeffl 'node to node transfer efficiency for link canals';

*  note : canal mile = 5000 feet
caf  = 3600*24*30/43560;
cmft = 5000/43560;
per  = 2e-5;

Set g / 1*6 /;

Table func(*,g) 'function of canal width'
            1     2      3      4       5       6
   input    0    10     30    100     300     500
   output   0   .36    .67    .90    1.30    1.90;

Parameter
   step 'grid point for function'
   ftn  'function value'
   ftna 'interpolated function output'
   ftni 'function input'
   ftno 'function output';

ftni(g) = func("input",g);
ftno(g) = func("output",g);

step(n1,n,g) = (ftni(g) <= lw(n1,n,"width")) and (ftni(g+1) > lw(n1,n,"width"));
ftna(n1,n,g) = (ftno(g) + (lw(n1,n,"width") - ftni(g))*(ftno(g+1) - ftno(g))/(ftni(g+1) - ftni(g)))$step(n1,n,g);
ftn(n1,n)    = sum(g, ftna(n1,n,g));
philc(n1,n)  = lw(n1,n,"length")*5000*ftn(n1,n)*per*caf;

coeffl(n1,n,m)$(ncap(n1,n) <> 0) = 1 - (  lw(n1,n,"length")*lw(n1,n,"width")*cmft
                                       *  linkpar("pex",n1,n,m) + philc(n1,n)*madjust(n1,n,m)
                                       * (linkpar("hcx",n1,n,m) - linkpar("hwr",n1,n,m)))
                                       /  ncap(n1,n)/1000000;

display coeffl;
* link canal loss calculations finished

$sTitle Runoff and Seepage
Table seepage(n1,n,m) 'seepage from river reaches(000 acre feet)'
                           jan     feb     mar     apr     may     jun
   sukkur-b.kotri-b        2.0
   gudu-b.sukkur-b       -11.0   -10.5     2.0     2.0
   taunsa-b.mithankot     -6.3    -7.5     3.2     1.6
   tp-tail.panjnad-b     -14.3   -16.6     0.8     0.4
   kalabagh-r.chasma-r   -39.8   -36.0     0.2     0.2
   chasma-r.taunsa-b    -154.2  -159.0     3.8     0.8
   sidhnai-b.tp-tail     -16.5   -17.4
   trimmu-b.tp-tail               -0.6
   panjnad-b.mithankot     1.0     1.0     1.0     1.0
   islam-b.panjnad-b
   sulem-b.islam-b      -127.0  -127.0
   balloki-b.sidhnai-b  -120.0  -120.0
   ravi-i.balloki-b
   qadira-b.trimmu-b      -1.5    -2.2    -0.4    -0.9    -0.9     1.1
   khanki-b.qadira-b      -1.2    -1.2            -0.4    -0.4     1.2
   marala-b.khanki-b               3.0            -1.0    -1.0     3.0
   rasul-b.cj-tail                -0.9    -0.4    -0.4    -0.4    -0.4
   cj-tail.trimmu-b               -0.1    -0.2    -0.2    -0.2    -0.2
   mangla-r.rasul-b       -0.3    -0.3            -0.1    -0.1     0.3
   amanda-h.munda-h      -54.0   -54.0
   munda-h.k-s-jct       -41.0   -41.0
   warsak-d.k-s-jct      -18.0   -18.0
   k-s-jct.kabul-tail     -7.0    -7.0

   +                       jul     aug     sep     oct     nov     dec
   sukkur-b.kotri-b                9.0     3.0    16.0     7.0     1.0
   gudu-b.sukkur-b                 8.0    14.0    18.0    -8.0    -9.0
   taunsa-b.mithankot     -0.6     3.2    13.8    24.4    -2.8    -5.3
   tp-tail.panjnad-b      -1.4     0.8     0.3     5.6   -16.2   -16.4
   kalabagh-r.chasma-r             0.1     2.2     3.2   -35.0   -35.6
   chasma-r.taunsa-b               2.9    10.8    16.8  -154.0  -157.4
   sidhnai-b.tp-tail      -1.8                           -16.5   -16.5
   trimmu-b.tp-tail       -1.2
   panjnad-b.mithankot             2.0     4.0     7.0     4.0     2.0
   islam-b.panjnad-b               8.0
   sulem-b.islam-b                12.0                  -127.0  -127.0
   balloki-b.sidhnai-b             5.0                  -120.0  -120.0
   ravi-i.balloki-b                5.0
   qadira-b.trimmu-b      -6.1     1.0     6.1     5.1            -0.7
   khanki-b.qadira-b      -3.7     0.8     0.4     0.8    -0.6    -0.6
   marala-b.khanki-b      -9.0     2.0     5.0     2.0
   rasul-b.cj-tail        -0.9             1.3     4.7     0.9
   cj-tail.trimmu-b       -0.4             0.6     2.2     0.4
   mangla-r.rasul-b       -0.9     0.2     1.0     2.0    -1.5    -1.5
   amanda-h.munda-h                                      -54.0   -54.0
   munda-h.k-s-jct                                       -41.0   -41.0
   warsak-d.k-s-jct                                      -18.0   -18.0
   k-s-jct.kabul-tail                                     -7.0    -7.0;

Table runoff(n,m) 'rainfall runoff to nodes (000 af)'
                   jan     feb     mar     apr     may     jun
   chasma-r        4.2     4.5     5.1     3.5     2.6     5.4
   taunsa-b       22.8    28.4    36.5    25.8    17.5    30.4
   gudu-b          9.1    10.4    11.0     7.4     6.5    10.6
   rasul-b         2.2     2.2     2.3     1.6     1.3     2.8
   trimmu-b       36.5    36.2    36.5    26.0    22.5    53.9
   panjnad-b      10.6    12.3    14.7     9.9     8.4    14.0
   khanki-b        6.5     6.2     6.0     4.2     3.8     9.3
   qadira-b        6.5     6.2     6.0     4.2     3.8     9.3
   balloki-b      23.3    21.5    20.5    14.6    14.0    35.9
   sidhnai-b      15.7    16.1    16.4    12.2    11.5    26.5
   sulem-b         8.9     6.0     7.7     5.5     5.2    13.7
   islam-b        13.7    13.5    13.9     9.6     8.4    20.0
   tp-tail         9.0     9.5     9.4     6.7     7.5    13.4
   cj-tail        22.7    22.4    24.2    16.6    13.2    28.3
   kabul-tail     30.7    32.7    52.1    37.6    16.4     6.6

   +               jul     aug     sep     oct     nov     dec
   chasma-r       19.3    19.5     7.0      .8      .7     1.8
   taunsa-b      111.6   102.0    34.6     5.1     5.5    11.4
   gudu-b         55.5    52.3     9.3     1.0     3.1     5.8
   rasul-b         9.8    10.4     3.7      .4      .3      .9
   trimmu-b      170.4   191.0    71.4     7.2     5.1    15.5
   panjnad-b      86.4    70.2    12.8     1.6     3.7     6.2
   khanki-b       29.9    33.5    12.6     1.2      .8     2.6
   qadira-b       29.9    33.5    12.6     1.2      .8     2.6
   balloki-b     113.0   126.9    48.3     4.6     3.1     9.8
   sidhnai-b      94.4    95.5    34.1     3.4     3.5     8.4
   sulem-b        52.1    47.3    17.8     1.9     2.6     4.2
   islam-b        93.4    80.7    24.2     2.5     3.2     6.6
   tp-tail        49.1    48.6    16.9     2.0     1.5     5.4
   cj-tail       100.7   105.3    38.0     4.4     3.2     9.1
   kabul-tail     26.9    43.3    17.3     4.9     6.6    14.3;

$sTitle Rim Station Inflows and Tributories
Table inflow(i,m) 'system inflows measured atthe rim stations (maf)'
                    jan     feb     mar     apr     may     jun
   swat           0.081   0.078   0.124   0.329   0.588   0.760
   kabul          0.395   0.297   0.297   0.862   2.171   3.038
   indus          0.979   0.954   1.183   1.618   2.716   8.227
   haro           0.021   0.023   0.033   0.030   0.016   0.041
   soan           0.020   0.025   0.035   0.027   0.012   0.032
   jehlum         0.450   0.543   1.213   2.037   2.921   3.990
   chenab         0.419   0.607   1.096   1.732   2.049   2.813
   ravi            .131    .129    .168    .069    .057    .149
   sutlej          .0      .021    .111    .190    .360    .375

   +                jul     aug     sep     oct     nov     dec
   swat           0.908   0.850   0.518   0.226   0.128   0.103
   kabul          2.928   2.413   1.576   0.820   0.524   0.458
   indus         13.540  13.039   9.306   4.518   1.837   1.206
   haro           0.089   0.142   0.128   0.058   0.027   0.020
   soan           0.164   0.404   0.293   0.033   0.013   0.016
   jehlum         4.039   2.898   1.938   1.255   0.782   0.620
   chenab         4.610   5.286   3.492   1.284   0.400   0.343
   ravi            .526   2.051   1.994    .510    .214    .154
   sutlej          .340   1.535   2.63    1.348    .028    .0  ;

Table trib(n1,n,m) 'tributory inflows (maf)'
                           jan     feb     mar     apr     may     jun
   marala-b.khanki-b     0.007   0.006   0.007   0.050   0.141   0.731
   mangla-r.rasul-b                              0.120   0.180   0.150
   balloki-b.sidhnai-b   0.005   0.007   0.006           0.001   0.009
   amanda-h.munda-h      0.115   0.105   0.249   0.278   0.418   0.596
   munda-h.k-s-jct       0.004   0.003   0.009   0.014   0.011   0.006
   warsak-d.k-s-jct      0.032   0.029   0.059   0.113   0.093   0.054
   tarbela-r.kalabagh-r  0.064   0.077   0.121   0.073   0.067   0.079

   +                       jul     aug     sep     oct     nov     dec
   marala-b.khanki-b     0.691   0.859   0.409   0.017   0.007   0.008
   mangla-r.rasul-b      0.170   0.320   0.210   0.060
   balloki-b.sidhnai-b   0.096   0.206   0.040   0.002   0.003   0.009
   amanda-h.munda-h      0.687   0.247   0.103   0.105   0.114   0.232
   munda-h.k-s-jct       0.007   0.006   0.006   0.004   0.004   0.004
   warsak-d.k-s-jct      0.063   0.051   0.046   0.036   0.032   0.033
   tarbela-r.kalabagh-r  0.379   0.740   0.190   0.080   0.045   0.069;


$sTitle Reservoir Chracteristics
Parameter
    rcap(n)   'live capacity of reservoirs (maf)' / tarbela-r   9.093
                                                    mangla-r    5.251
                                                    chasma-r    0.500 /
    ircont(n) 'initial reservoir contenst  (maf)' / tarbela-r   9.093
                                                    mangla-r    5.251
                                                    chasma-r    0.500 /;

Table rulelo(n,m) 'lower rule curve(ratio of reservoir contents to capacity)'
                   jan feb mar apr may jun jul aug sep oct nov dec
   tarbela-r        43  30  14   4   0  10  46 100 100  64  59  53
   chasma-r          0   0   0   0   0   0   0   0   0   0   0   0
   mangla-r         16   6   0   7  21  48  74  95  83  55  35  24;

Table ruleup(n,m) 'upper rule curve'
                   jan feb mar apr may jun jul aug sep oct nov dec
   tarbela-r        69  47  37  26  13  48  73 100 100 100  87  77
   chasma-r        100 100 100 100 100 100 100 100 100 100 100 100
   mangla-r         39  28  19  31  42  59  87 100 100  90  68  49;

Table  revapl(n,m) 'evaporation losses from reservoirs in 000 af'
                    jan feb mar apr may jun   jul   aug sep oct nov dec
   tarbela-r         1   5   7   9   16  28    10     1  12  29  12   5
   chasma-r          3   3   1                  6     3   7  15   6   3
   mangla-r          1   5   4   5   12  17  -1.9  -2.5   4  22  10  50;


$sTitle Report on the Input Data
Parameter rep1, rep2;
rep1(i,m)              = inflow(i,m);
rep1(i,s)              = sum(m$sm(s,m), inflow(i,m));
rep1(i,"annual")       = sum(m, inflow(i,m) );
rep1("total",m)        = sum(i, rep1(i,m));
rep1("total",s)        = sum(i, rep1(i,s));
rep1("total","annual") = sum(s, rep1("total", s));
display " system inflows at rim stations maf ", rep1;

rep1(i,m)              = 0;
rep1(i,s)              = 0;
rep1(i,"annual")       = 0;
rep1(n,m)              = runoff(n,m);
rep1(n,s)              = sum(m$sm(s,m), runoff(n,m));
rep1(n,"annual")       = sum(m, runoff(n,m));
rep1("total",m)        = sum(n, rep1(n,m));
rep1("total",s)        = sum(n, rep1(n,s));
rep1("total","annual") = sum(s, rep1("total", s));
display " runoff to nodes from rainfall 000 af", rep1;

rep1(n,m)              = 0;
rep1(n,s)              = 0;
rep1(n,"annual")       = 0;
rep2(n,n1,m)           = trib(n,n1,m);
rep2(n,n1,s)           = sum(m$sm(s,m), trib(n,n1,m));
rep2(n,n1,"annual")    = sum(s, rep2(n,n1,s));
display " tributory inflow in maf", rep2;

rep2(n,n1,m)           = 0;
rep2(n,n1,s)           = 0;
rep2(n,n1,"annual")    = 0;
rep2(n,n1,m)           = seepage(n,n1,m);
rep2(n,n1,s)           = sum(m$sm(s,m), seepage(n,n1,m));
rep2(n,n1,"annual")    = sum(s, rep2(n,n1,s));
display " seepage from/to river reaches 000 af", rep2;

rep2(n,n1,m)        = 0;
rep2(n,n1,s)        = 0;
rep2(n,n1,"annual") = 0;

$sTitle Model Definition
Positive Variable
   rcont(n,m)    'end of the month reservoir contents (maf)'
   canaldiv(c,m) 'monthly diversion to canal          (maf)'
   f(n,n1,m)     'flow to node n from node n1         (maf)';

Variable vol 'total reservoir volume';

Equation
   nbal(n,m) 'water balance at a node                 (maf)'
   defvol;

defvol..  vol =e= sum((n,m)$rcap(n), rcont(n,m));

nbal(n,m)$nb(n).. sum(i$ni(n,i), inflow(i,m)) + runoff(n,m)/1000
               +  sum(n1, trib(n,n1,m))
               +  sum(n1$nn(n,n1),f(n,n1,m)*coeffl(n1,n,m)$coeffl(n1,n,m)
               +  (f(n,n1,m) - seepage(n1,n,m)/1000 )$(coeffl(n1,n,m) eq 0))
               -  sum(n1$nn(n1,n), f(n1,n,m)) + (rcont(n,m--1) - rcont(n,m)
               -  revapl(n,m)/1000)$rcap(n) - sum(c$nc(n,c), canaldiv(c,m))
              =e= 0 ;

canaldiv.up(c,m) = ccap(c);
f.up(n,n1,m)     = inf;
f.up(n,n1,m)$( ncap(n1,n) <> 0 ) = ncap(n1,n);
rcont.lo(n,m)    = rulelo(n,m)*rcap(n)/100;
rcont.up(n,m)    = ruleup(n,m)*rcap(n)/100;
rcont.fx(n,"sep")$rcap(n) = ircont(n);

Model canal / all /;

solve canal max vol using lp;