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;
|