examples/egypt.mod
author Alpar Juttner <alpar@cs.elte.hu>
Mon, 06 Dec 2010 13:09:21 +0100
changeset 1 c445c931472f
permissions -rw-r--r--
Import glpk-4.45

- Generated files and doc/notes are removed
alpar@1
     1
# EGYPT, a static model of fertilizer production
alpar@1
     2
#
alpar@1
     3
# References:
alpar@1
     4
# Robert Fourer, David M. Gay and Brian W. Kernighan, "A Modeling Language
alpar@1
     5
# for Mathematical Programming." Management Science 36 (1990) 519-554.
alpar@1
     6
alpar@1
     7
###  SETS  ###
alpar@1
     8
alpar@1
     9
set center;                # Locations from which final product may be shipped
alpar@1
    10
set port within center;    # Locations at which imports can be received
alpar@1
    11
set plant within center;   # Locations of plants
alpar@1
    12
alpar@1
    13
set region;                # Demand regions
alpar@1
    14
alpar@1
    15
set unit;                  # Productive units
alpar@1
    16
set proc;                  # Processes
alpar@1
    17
alpar@1
    18
set nutr;                  # Nutrients
alpar@1
    19
alpar@1
    20
set c_final;               # Final products (fertilizers)
alpar@1
    21
set c_inter;               # Intermediate products
alpar@1
    22
set c_ship within c_inter; # Intermediates for shipment
alpar@1
    23
set c_raw;                 # Domestic raw materials and miscellaneous inputs
alpar@1
    24
alpar@1
    25
set commod := c_final union c_inter union c_raw;
alpar@1
    26
alpar@1
    27
                           # All commodities
alpar@1
    28
alpar@1
    29
###  PARAMETERS  ###
alpar@1
    30
alpar@1
    31
param cf75 {region,c_final} >= 0;
alpar@1
    32
alpar@1
    33
                           # Consumption of fertilizer 1974-75 (1000 tpy)
alpar@1
    34
alpar@1
    35
param fn {c_final,nutr} >= 0;
alpar@1
    36
alpar@1
    37
                           # Nutrient content of fertilizers
alpar@1
    38
alpar@1
    39
param cn75 {r in region, n in nutr} := sum {c in c_final} cf75[r,c] * fn[c,n];
alpar@1
    40
alpar@1
    41
                           # Consumption of nutrients 1974-75 (1000 tpy)
alpar@1
    42
alpar@1
    43
param road {region,center} >= 0;
alpar@1
    44
alpar@1
    45
                           # Road distances
alpar@1
    46
alpar@1
    47
param rail_half {plant,plant} >= 0;
alpar@1
    48
param rail {p1 in plant, p2 in plant} :=
alpar@1
    49
    if rail_half[p1,p2] > 0 then rail_half[p1,p2] else rail_half[p2,p1];
alpar@1
    50
alpar@1
    51
                           # Interplant rail distances (kms)
alpar@1
    52
alpar@1
    53
param impd_barg {plant} >= 0;
alpar@1
    54
param impd_road {plant} >= 0;
alpar@1
    55
alpar@1
    56
                           # Import distances (kms) by barge and road
alpar@1
    57
alpar@1
    58
param tran_final {pl in plant, r in region} :=
alpar@1
    59
              if road[r,pl] > 0 then .5 + .0144 * road[r,pl] else 0;
alpar@1
    60
alpar@1
    61
param tran_import {r in region, po in port} :=
alpar@1
    62
              if road[r,po] > 0 then .5 + .0144 * road[r,po] else 0;
alpar@1
    63
alpar@1
    64
param tran_inter {p1 in plant, p2 in plant} :=
alpar@1
    65
              if rail[p1,p2] > 0 then 3.5 + .03 * rail[p1,p2] else 0;
alpar@1
    66
alpar@1
    67
param tran_raw {pl in plant} :=
alpar@1
    68
            (if impd_barg[pl] > 0 then 1.0 + .0030 * impd_barg[pl] else 0)
alpar@1
    69
          + (if impd_road[pl] > 0 then 0.5 + .0144 * impd_road[pl] else 0);
alpar@1
    70
alpar@1
    71
                           # Transport cost (le per ton) for:
alpar@1
    72
                           #   final products, imported final products,
alpar@1
    73
                           #   interplant shipment, imported raw materials
alpar@1
    74
alpar@1
    75
param io {commod,proc};    # Input-output coefficients
alpar@1
    76
alpar@1
    77
param util {unit,proc} >= 0;
alpar@1
    78
alpar@1
    79
                           # Capacity utilization coefficients
alpar@1
    80
alpar@1
    81
param p_imp {commod} >= 0; # Import Price (cif US$ per ton 1975)
alpar@1
    82
alpar@1
    83
param p_r {c_raw} >= 0;
alpar@1
    84
param p_pr {plant,c_raw} >= 0;
alpar@1
    85
alpar@1
    86
param p_dom {pl in plant, c in c_raw} :=
alpar@1
    87
              if p_r[c] > 0 then p_r[c] else p_pr[pl,c];
alpar@1
    88
alpar@1
    89
                           # Domestic raw material prices
alpar@1
    90
alpar@1
    91
param dcap {plant,unit} >= 0;
alpar@1
    92
alpar@1
    93
                           # Design capacity of plants (t/day)
alpar@1
    94
alpar@1
    95
param icap {u in unit, pl in plant} := 0.33 * dcap[pl,u];
alpar@1
    96
alpar@1
    97
                           # Initial capacity of plants (t/day)
alpar@1
    98
alpar@1
    99
param exch := 0.4;         # Exchange rate
alpar@1
   100
alpar@1
   101
param util_pct := 0.85;    # Utilization percent for initial capacity
alpar@1
   102
alpar@1
   103
###  DERIVED SETS OF "POSSIBILITIES"  ###
alpar@1
   104
alpar@1
   105
set m_pos {pl in plant} := {u in unit: icap[u,pl] > 0};
alpar@1
   106
alpar@1
   107
                           # At each plant, set of units for which there is
alpar@1
   108
                           # initial capacity
alpar@1
   109
alpar@1
   110
set p_cap {pl in plant} :=
alpar@1
   111
             {pr in proc: forall {u in unit: util[u,pr] > 0} u in m_pos[pl] };
alpar@1
   112
alpar@1
   113
                           # At each plant, set of processes for which
alpar@1
   114
                           # all necessary units have some initial capacity
alpar@1
   115
alpar@1
   116
set p_except {plant} within proc;
alpar@1
   117
alpar@1
   118
                           # At each plant, list of processes that are
alpar@1
   119
                           # arbitrarily ruled out
alpar@1
   120
alpar@1
   121
set p_pos {pl in plant} := p_cap[pl] diff p_except[pl];
alpar@1
   122
alpar@1
   123
                           # At each plant, set of possible processes
alpar@1
   124
alpar@1
   125
set cp_pos {c in commod} := {pl in plant: sum {pr in p_pos[pl]} io[c,pr] > 0};
alpar@1
   126
alpar@1
   127
set cc_pos {c in commod} := {pl in plant: sum {pr in p_pos[pl]} io[c,pr] < 0};
alpar@1
   128
alpar@1
   129
set c_pos {c in commod} := cp_pos[c] union cc_pos[c];
alpar@1
   130
alpar@1
   131
                           # For each commodity, set of plants that can
alpar@1
   132
                           # produce it (cp_pos) or consume it (cc_pos),
alpar@1
   133
                           # and their union (c_pos)
alpar@1
   134
alpar@1
   135
###  VARIABLES  ###
alpar@1
   136
alpar@1
   137
var Z {pl in plant, p_pos[pl]} >= 0;
alpar@1
   138
alpar@1
   139
                           # Z[pl,pr] is level of process pr at plant pl
alpar@1
   140
alpar@1
   141
var Xf {c in c_final, cp_pos[c], region} >= 0;
alpar@1
   142
alpar@1
   143
                           # Xf[c,pl,r] is amount of final product c
alpar@1
   144
                           # shipped from plant pl to region r
alpar@1
   145
alpar@1
   146
var Xi {c in c_ship, cp_pos[c], cc_pos[c]} >= 0;
alpar@1
   147
alpar@1
   148
                           # Xi[c,p1,p2] is amount of intermediate c
alpar@1
   149
                           # shipped from plant p1 to plant p2
alpar@1
   150
alpar@1
   151
var Vf {c_final,region,port} >= 0;
alpar@1
   152
alpar@1
   153
                           # Vf[c,r,po] is amount of final product c
alpar@1
   154
                           # imported by region r from port po
alpar@1
   155
alpar@1
   156
var Vr {c in c_raw, cc_pos[c]} >= 0;
alpar@1
   157
alpar@1
   158
                           # Vr[c,pl] is amount of raw material c
alpar@1
   159
                           # imported for use at plant pl
alpar@1
   160
alpar@1
   161
var U {c in c_raw, cc_pos[c]} >= 0;
alpar@1
   162
alpar@1
   163
                           # U[c,pl] is amount of raw material c
alpar@1
   164
                           # purchased domestically for use at plant pl
alpar@1
   165
alpar@1
   166
var Psip;                  # Domestic recurrent cost
alpar@1
   167
var Psil;                  # Transport cost
alpar@1
   168
var Psii;                  # Import cost
alpar@1
   169
alpar@1
   170
###  OBJECTIVE  ###
alpar@1
   171
alpar@1
   172
minimize Psi:  Psip + Psil + Psii;
alpar@1
   173
alpar@1
   174
###  CONSTRAINTS  ###
alpar@1
   175
alpar@1
   176
subject to mbd {n in nutr, r in region}:
alpar@1
   177
alpar@1
   178
    sum {c in c_final} fn[c,n] *
alpar@1
   179
                (sum {po in port} Vf[c,r,po] +
alpar@1
   180
                 sum {pl in cp_pos[c]} Xf[c,pl,r])  >=  cn75[r,n];
alpar@1
   181
alpar@1
   182
                           # Total nutrients supplied to a region by all
alpar@1
   183
                           # final products (sum of imports plus internal
alpar@1
   184
                           # shipments from plants) must meet requirements
alpar@1
   185
alpar@1
   186
subject to mbdb {c in c_final, r in region: cf75[r,c] > 0}:
alpar@1
   187
alpar@1
   188
    sum {po in port} Vf[c,r,po] +
alpar@1
   189
    sum {pl in cp_pos[c]} Xf[c,pl,r]  >=  cf75[r,c];
alpar@1
   190
alpar@1
   191
                           # Total of each final product supplied to each
alpar@1
   192
                           # region (as in previous constraint) must meet
alpar@1
   193
                           # requirements
alpar@1
   194
alpar@1
   195
subject to mb {c in commod, pl in plant}:
alpar@1
   196
alpar@1
   197
    sum {pr in p_pos[pl]} io[c,pr] * Z[pl,pr]
alpar@1
   198
alpar@1
   199
   + ( if c in c_ship then
alpar@1
   200
                ( if pl in cp_pos[c] then sum {p2 in cc_pos[c]} Xi[c,pl,p2] )
alpar@1
   201
              - ( if pl in cc_pos[c] then sum {p2 in cp_pos[c]} Xi[c,p2,pl] ))
alpar@1
   202
alpar@1
   203
   + ( if (c in c_raw and pl in cc_pos[c]) then
alpar@1
   204
                 (( if p_imp[c] > 0 then Vr[c,pl] )
alpar@1
   205
                + ( if p_dom[pl,c] > 0 then U[c,pl] )))
alpar@1
   206
alpar@1
   207
  >= if (c in c_final and pl in cp_pos[c]) then sum {r in region} Xf[c,pl,r];
alpar@1
   208
alpar@1
   209
                           # For each commodity at each plant:  sum of
alpar@1
   210
                           #   (1) production or consumption at plant,
alpar@1
   211
                           #   (2) inter-plant shipments in or out,
alpar@1
   212
                           #   (3) import and domestic purchases (raw only)
alpar@1
   213
                           # is >= 0 for raw materials and intermediates;
alpar@1
   214
                           # is >= the total shipped for final products
alpar@1
   215
alpar@1
   216
subject to cc {pl in plant, u in m_pos[pl]}:
alpar@1
   217
alpar@1
   218
    sum {pr in p_pos[pl]} util[u,pr] * Z[pl,pr]  <=  util_pct * icap[u,pl];
alpar@1
   219
alpar@1
   220
                           # For each productive unit at each plant,
alpar@1
   221
                           # total utilization by all processes
alpar@1
   222
                           # may not exceed the unit's capacity
alpar@1
   223
alpar@1
   224
subject to ap:
alpar@1
   225
alpar@1
   226
    Psip  =  sum {c in c_raw, pl in cc_pos[c]} p_dom[pl,c] * U[c,pl];
alpar@1
   227
alpar@1
   228
                           # Psip is the cost of domestic raw materials,
alpar@1
   229
                           # summed over all plants that consume them
alpar@1
   230
alpar@1
   231
subject to al:
alpar@1
   232
alpar@1
   233
    Psil  =  sum {c in c_final} (
alpar@1
   234
alpar@1
   235
               sum {pl in cp_pos[c], r in region}
alpar@1
   236
                                              tran_final[pl,r] * Xf[c,pl,r]
alpar@1
   237
alpar@1
   238
             + sum {po in port, r in region} tran_import[r,po] * Vf[c,r,po] )
alpar@1
   239
alpar@1
   240
           + sum {c in c_ship, p1 in cp_pos[c], p2 in cc_pos[c]}
alpar@1
   241
                                               tran_inter[p1,p2] * Xi[c,p1,p2]
alpar@1
   242
alpar@1
   243
           + sum {c in c_raw, pl in cc_pos[c]: p_imp[c] > 0}
alpar@1
   244
                                                    tran_raw[pl] * Vr[c,pl];
alpar@1
   245
alpar@1
   246
                           # Total transport cost is sum of shipping costs for
alpar@1
   247
                           #   (1) all final products from all plants,
alpar@1
   248
                           #   (2) all imports of final products,
alpar@1
   249
                           #   (3) all intermediates shipped between plants,
alpar@1
   250
                           #   (4) all imports of raw materials
alpar@1
   251
alpar@1
   252
subject to ai:
alpar@1
   253
alpar@1
   254
    Psii / exch  =  sum {c in c_final, r in region, po in port}
alpar@1
   255
                                                      p_imp[c] * Vf[c,r,po]
alpar@1
   256
alpar@1
   257
                  + sum {c in c_raw, pl in cc_pos[c]} p_imp[c] * Vr[c,pl];
alpar@1
   258
alpar@1
   259
                           # Total import cost -- at exchange rate --
alpar@1
   260
                           # is sum of import costs for final products
alpar@1
   261
                           # in each region and raw materials at each plant
alpar@1
   262
alpar@1
   263
###  DATA  ###
alpar@1
   264
alpar@1
   265
data;
alpar@1
   266
alpar@1
   267
set center := ASWAN HELWAN ASSIOUT KAFR_EL_ZT ABU_ZAABAL ABU_KIR TALKHA SUEZ ;
alpar@1
   268
alpar@1
   269
set port := ABU_KIR ;
alpar@1
   270
alpar@1
   271
set plant := ASWAN HELWAN ASSIOUT KAFR_EL_ZT ABU_ZAABAL ;
alpar@1
   272
alpar@1
   273
set region := ALEXANDRIA BEHERA GHARBIA KAFR_EL_SH DAKAHLIA DAMIETTA
alpar@1
   274
              SHARKIA ISMAILIA SUEZ MENOUFIA KALUBIA GIZA BENI_SUEF FAYOUM
alpar@1
   275
              MINIA ASSIOUT NEW_VALLEY SOHAG QUENA ASWAN ;
alpar@1
   276
alpar@1
   277
set unit := SULF_A_S SULF_A_P NITR_ACID AMM_ELEC AMM_C_GAS C_AMM_NITR
alpar@1
   278
            AMM_SULF SSP ;
alpar@1
   279
alpar@1
   280
set proc := SULF_A_S SULF_A_P NITR_ACID AMM_ELEC AMM_C_GAS CAN_310 CAN_335
alpar@1
   281
            AMM_SULF SSP_155 ;
alpar@1
   282
alpar@1
   283
set nutr := N P205 ;
alpar@1
   284
alpar@1
   285
set c_final := UREA CAN_260 CAN_310 CAN_335 AMM_SULF DAP SSP_155 C_250_55
alpar@1
   286
               C_300_100 ;
alpar@1
   287
alpar@1
   288
set c_inter := AMMONIA NITR_ACID SULF_ACID ;
alpar@1
   289
alpar@1
   290
set c_ship := AMMONIA SULF_ACID ;
alpar@1
   291
alpar@1
   292
set c_raw := EL_ASWAN COKE_GAS PHOS_ROCK LIMESTONE EL_SULFUR PYRITES
alpar@1
   293
             ELECTRIC BF_GAS WATER STEAM BAGS ;
alpar@1
   294
alpar@1
   295
set p_except[ASWAN] := CAN_335 ;
alpar@1
   296
set p_except[HELWAN] := CAN_310 ;
alpar@1
   297
set p_except[ASSIOUT] := ;
alpar@1
   298
set p_except[KAFR_EL_ZT] := ;
alpar@1
   299
set p_except[ABU_ZAABAL] := ;
alpar@1
   300
alpar@1
   301
param cf75  default 0.0  :
alpar@1
   302
alpar@1
   303
               CAN_260    CAN_310    CAN_335    AMM_SULF     UREA   :=
alpar@1
   304
alpar@1
   305
ALEXANDRIA        .           .         5.0        3.0        1.0
alpar@1
   306
ASSIOUT          1.0        20.0       26.0        1.0       27.0
alpar@1
   307
ASWAN             .         40.0         .          .          .
alpar@1
   308
BEHERA           1.0          .        25.0       90.0       35.0
alpar@1
   309
BENI_SUEF        1.0          .        15.0        1.0       20.0
alpar@1
   310
DAKAHLIA         1.0          .        26.0       60.0       20.0
alpar@1
   311
DAMIETTA          .           .         2.0       15.0        8.0
alpar@1
   312
FAYOUM           1.0          .        20.0        6.0       20.0
alpar@1
   313
GHARBIA           .           .        17.0       60.0       28.0
alpar@1
   314
GIZA              .           .        40.0        6.0        2.0
alpar@1
   315
ISMAILIA          .           .         4.0        6.0        2.0
alpar@1
   316
KAFR_EL_SH       1.0          .        10.0       45.0       22.0
alpar@1
   317
KALUBIA           .           .        25.0       16.0        7.0
alpar@1
   318
MENOUFIA         1.0          .        24.0       21.0       30.0
alpar@1
   319
MINIA            2.0        15.0       35.0        1.0       41.0
alpar@1
   320
NEW_VALLEY        .           .          .          .         1.0
alpar@1
   321
QUENA             .         95.0        2.0         .         3.0
alpar@1
   322
SHARKIA          1.0          .        31.0       50.0       28.0
alpar@1
   323
SOHAG             .         65.0        3.0         .         7.0
alpar@1
   324
SUEZ              .           .         1.0         .          .
alpar@1
   325
alpar@1
   326
   :          SSP_155    C_250_55   C_300_100    DAP   :=
alpar@1
   327
alpar@1
   328
ALEXANDRIA       8.0         .          .         .
alpar@1
   329
ASSIOUT         35.0        5.0         .1        .
alpar@1
   330
ASWAN            8.0         .          .         .
alpar@1
   331
BEHERA          64.0        1.0         .1        .1
alpar@1
   332
BENI_SUEF       13.0        3.0         .         .
alpar@1
   333
DAKAHLIA        52.0        1.0         .         .
alpar@1
   334
DAMIETTA         5.0         .          .         .
alpar@1
   335
FAYOUM          17.0        1.0         .         .
alpar@1
   336
GHARBIA         57.0        1.0         .2        .1
alpar@1
   337
GIZA            14.0        1.0         .1        .
alpar@1
   338
ISMAILIA         4.0         .          .         .
alpar@1
   339
KAFR_EL_SH      25.0        2.0         .1        .
alpar@1
   340
KALUBIA         22.0        1.0         .         .1
alpar@1
   341
MENOUFIA        33.0        2.0         .1        .1
alpar@1
   342
MINIA           50.0        3.0         .2        .1
alpar@1
   343
NEW_VALLEY       1.0         .          .         .
alpar@1
   344
QUENA            8.0         .          .         .
alpar@1
   345
SHARKIA         43.0        1.0         .1        .
alpar@1
   346
SOHAG           20.0        1.0         .         .
alpar@1
   347
SUEZ             1.0         .          .         .        ;
alpar@1
   348
alpar@1
   349
param fn  default 0.0 :      N     P205    :=
alpar@1
   350
alpar@1
   351
            AMM_SULF       .206     .
alpar@1
   352
            CAN_260        .26      .
alpar@1
   353
            CAN_310        .31      .
alpar@1
   354
            CAN_335        .335     .
alpar@1
   355
            C_250_55       .25      .055
alpar@1
   356
            C_300_100      .30      .10
alpar@1
   357
            DAP            .18      .46
alpar@1
   358
            SSP_155        .        .15
alpar@1
   359
            UREA           .46      .      ;
alpar@1
   360
alpar@1
   361
param road  default 0.0  :
alpar@1
   362
alpar@1
   363
            ABU_KIR ABU_ZAABAL ASSIOUT ASWAN HELWAN KAFR_EL_ZT SUEZ TALKHA :=
alpar@1
   364
alpar@1
   365
ALEXANDRIA      16     210       607    1135   244      119     362   187
alpar@1
   366
ASSIOUT        616     420         .     518   362      504     527   518
alpar@1
   367
ASWAN         1134     938       518       .   880     1022    1045  1036
alpar@1
   368
BEHERA          76      50       547    1065   184       42     288   120
alpar@1
   369
BENI_SUEF      359     163       257     775   105      248     270   261
alpar@1
   370
DAKAHLIA       208     138       515    1033   152       58     219     3
alpar@1
   371
DAMIETTA       267     216       596    1114   233      131     286    66
alpar@1
   372
FAYOUM         341     145       308     826    88      230     252   243
alpar@1
   373
GHARBIA        150      65       485    1003   122       20     226    55
alpar@1
   374
GIZA           287      48       372     890    .9      133     169   146
alpar@1
   375
ISMAILIA       365     142       536    1054   173      241      89   146
alpar@1
   376
KAFR_EL_SH     145     105       525    1043   162       20     266    35
alpar@1
   377
KALUBIA        190      97       439     957    76       66     180    81
alpar@1
   378
MENOUFIA       157     154       472     990   109       33     213    90
alpar@1
   379
MINIA          384     288       132     650   230      372     394   386
alpar@1
   380
NEW_VALLEY     815     619       199     519   561      703     726   717
alpar@1
   381
QUENA          858     662       242     276   604      746     769   760
alpar@1
   382
SHARKIA        240      60       473     991   110       78     214    58
alpar@1
   383
SOHAG          715     519        99     419   461      603     626   617
alpar@1
   384
SUEZ           370     224       541    1059   178      246       .   298  ;
alpar@1
   385
alpar@1
   386
param rail_half  default 0  :
alpar@1
   387
alpar@1
   388
              KAFR_EL_ZT   ABU_ZAABAL    HELWAN     ASSIOUT   :=
alpar@1
   389
alpar@1
   390
ABU_ZAABAL         85            .           .          .
alpar@1
   391
HELWAN            142           57           .          .
alpar@1
   392
ASSIOUT           504          420         362          .
alpar@1
   393
ASWAN            1022          938         880        518     ;
alpar@1
   394
alpar@1
   395
param :            impd_barg   impd_road :=
alpar@1
   396
alpar@1
   397
ABU_ZAABAL            210          .1
alpar@1
   398
ASSIOUT               583         0
alpar@1
   399
ASWAN                1087        10
alpar@1
   400
HELWAN                183         0
alpar@1
   401
KAFR_EL_ZT            104         6 ;
alpar@1
   402
alpar@1
   403
param io  default 0.0  :=
alpar@1
   404
alpar@1
   405
   [*,AMM_C_GAS]  AMMONIA        1.0
alpar@1
   406
                  BF_GAS      -609.
alpar@1
   407
                  COKE_GAS      -2.0
alpar@1
   408
                  ELECTRIC   -1960.
alpar@1
   409
                  STEAM         -4.
alpar@1
   410
                  WATER       -700.
alpar@1
   411
alpar@1
   412
   [*,AMM_ELEC]   AMMONIA        1.0
alpar@1
   413
                  EL_ASWAN     -12.0
alpar@1
   414
alpar@1
   415
   [*,AMM_SULF]   AMMONIA        -.26
alpar@1
   416
                  AMM_SULF       1.0
alpar@1
   417
                  BAGS         -22.
alpar@1
   418
                  ELECTRIC     -19.
alpar@1
   419
                  SULF_ACID      -.76
alpar@1
   420
                  WATER        -17.
alpar@1
   421
alpar@1
   422
   [*,CAN_310]    AMMONIA        -.20
alpar@1
   423
                  BAGS         -23.
alpar@1
   424
                  CAN_310        1.0
alpar@1
   425
                  LIMESTONE      -.12
alpar@1
   426
                  NITR_ACID      -.71
alpar@1
   427
                  STEAM          -.4
alpar@1
   428
                  WATER        -49.
alpar@1
   429
alpar@1
   430
   [*,CAN_335]    AMMONIA        -.21
alpar@1
   431
                  BAGS         -23.
alpar@1
   432
                  CAN_335        1.0
alpar@1
   433
                  LIMESTONE      -.04
alpar@1
   434
                  NITR_ACID      -.76
alpar@1
   435
                  STEAM          -.4
alpar@1
   436
                  WATER        -49.
alpar@1
   437
alpar@1
   438
   [*,NITR_ACID]  AMMONIA        -.292
alpar@1
   439
                  ELECTRIC    -231.
alpar@1
   440
                  NITR_ACID      1.0
alpar@1
   441
                  WATER          -.6
alpar@1
   442
alpar@1
   443
   [*,SSP_155]    BAGS         -22.
alpar@1
   444
                  ELECTRIC     -14.
alpar@1
   445
                  PHOS_ROCK      -.62
alpar@1
   446
                  SSP_155        1.0
alpar@1
   447
                  SULF_ACID      -.41
alpar@1
   448
                  WATER         -6.
alpar@1
   449
alpar@1
   450
   [*,SULF_A_P]   ELECTRIC     -75.
alpar@1
   451
                  PYRITES        -.826
alpar@1
   452
                  SULF_ACID      1.0
alpar@1
   453
                  WATER        -60.
alpar@1
   454
alpar@1
   455
   [*,SULF_A_S]   ELECTRIC     -50.
alpar@1
   456
                  EL_SULFUR      -.334
alpar@1
   457
                  SULF_ACID      1.0
alpar@1
   458
                  WATER        -20. ;
alpar@1
   459
alpar@1
   460
param util  default 0  :=
alpar@1
   461
alpar@1
   462
   [*,*]   SULF_A_S SULF_A_S    1      SULF_A_P SULF_A_P   1
alpar@1
   463
           NITR_ACID NITR_ACID  1      AMM_ELEC AMM_ELEC   1
alpar@1
   464
           AMM_C_GAS AMM_C_GAS  1      SSP SSP_155         1
alpar@1
   465
           C_AMM_NITR CAN_310   1      C_AMM_NITR CAN_335  1
alpar@1
   466
           AMM_SULF AMM_SULF    1 ;
alpar@1
   467
alpar@1
   468
param p_imp  default 0.0  :=
alpar@1
   469
alpar@1
   470
     PYRITES       17.5           AMM_SULF      75.
alpar@1
   471
     EL_SULFUR     55.            DAP          175.
alpar@1
   472
     UREA         150.            SSP_155       80.
alpar@1
   473
     CAN_260       75.            C_250_55     100.
alpar@1
   474
     CAN_310       90.            C_300_100    130.
alpar@1
   475
     CAN_335      100.   ;
alpar@1
   476
alpar@1
   477
param p_r  default 0.0  :=
alpar@1
   478
alpar@1
   479
     ELECTRIC     .007
alpar@1
   480
     BF_GAS       .007
alpar@1
   481
     WATER        .031
alpar@1
   482
     STEAM       1.25
alpar@1
   483
     BAGS         .28   ;
alpar@1
   484
alpar@1
   485
param p_pr  default 0.0  :=
alpar@1
   486
alpar@1
   487
 [HELWAN,COKE_GAS]              16.0
alpar@1
   488
 [ASWAN,EL_ASWAN]                1.0
alpar@1
   489
alpar@1
   490
 [*,LIMESTONE]      ASWAN        1.2
alpar@1
   491
                    HELWAN       1.2
alpar@1
   492
alpar@1
   493
 [*,PHOS_ROCK]      ABU_ZAABAL   4.0
alpar@1
   494
                    ASSIOUT      3.5
alpar@1
   495
                    KAFR_EL_ZT   5.0   ;
alpar@1
   496
alpar@1
   497
param dcap  default 0.0  :=
alpar@1
   498
alpar@1
   499
   [ABU_ZAABAL,*]   SSP          600
alpar@1
   500
                    SULF_A_P     227
alpar@1
   501
                    SULF_A_S     242
alpar@1
   502
alpar@1
   503
   [ASSIOUT,*]      SSP          600
alpar@1
   504
                    SULF_A_S     250
alpar@1
   505
alpar@1
   506
   [ASWAN,*]        AMM_ELEC     450
alpar@1
   507
                    C_AMM_NITR  1100
alpar@1
   508
                    NITR_ACID    800
alpar@1
   509
alpar@1
   510
   [HELWAN,*]       AMM_C_GAS    172
alpar@1
   511
                    AMM_SULF      24
alpar@1
   512
                    C_AMM_NITR   364
alpar@1
   513
                    NITR_ACID    282
alpar@1
   514
alpar@1
   515
   [KAFR_EL_ZT,*]   SSP          600
alpar@1
   516
                    SULF_A_P      50
alpar@1
   517
                    SULF_A_S     200  ;
alpar@1
   518
alpar@1
   519
end;