mexls.gms : Mexico Steel - Large Static

Description

This is a detailed production and distribution scheduling model of
the Mexican steel sector. The model is reduced explicitly.


Large Model of Type : LP


Category : GAMS Model library


Main file : mexls.gms

$title Mexico Steel - Large Static (MEXLS,SEQ=17)

$onText
This is a detailed production and distribution scheduling model of
the Mexican steel sector. The model is reduced explicitly.


Kendrick, D, Meeraus, A, and Alatorre, J, The Planning of Investment
Programs in the Steel Industry. The Johns Hopkins University Press,
Baltimore and London, 1984.

A scanned version of this out-of-print book is accessible at
http://www.gams.com/docs/pdf/steel_investment.pdf

   Data References
   ---------------

    1.  Sicartsa, Descripcion de los procesos que se realizan en las
        plantas del complejo siderurgico sicartsa, 1978

    2.  Altos Horos, Information general (blueprint), 1974

    3.  Altos Hornos, Diagrama de flujo  3.75 mmt/a and 4.25 mmt/a
        (blueprints), 1978

    4.  CCIS, Situacion actual y crecimiento futuro de la industria
        siderurgica, 1978

    5.  CCIS, Reporte de la prueba del empleo de fierro esponja
        hyl en el Alto Horno 2, 1978

    6.  CCIS, Estudio de pre-factibilidad para una planta de fierro
        esponja para exportacion convenio Mexico-Brasil, 1978

    7.  CCIS, Las materias primas y otros insumos en la industria
        siderurgica, 1977

    8.  Russel and Vaughan, Steel Production, 1976

    9.  Secretaria de la Precidencia, La industria siderurgica
        integrada de Mexico  (vol i and ii), 1976

   10.  Ahmsa, Capacity sheet, 1978

   11.  Ahmsa, Capacity expansion 1979 - 1982, 1978

   12.  Fundidora, La moderna fundidora ...., 197..

   13.  Sicartsa, Production y consumo

   14.  Sicartsa, Insumos principales, pecios de presupuesto, 1979

   15.  Hylsa, The hyl iron ore direct reduction process, 1973

   16.  Fundidora, Computer data bank, 1978

   17.  Fundidora, Oferta y Demanda, Joint industry projections, 1978

   18.  CCIS, Transport cost and distances for mineral coal

   19.  CCIS, Transport cost and distances for iron ore

   20.  CCIS, Shortest railroad distances between major cities

   21.  CCIS, Transport cost and distances for some steel products

   22.  IBRD, Sicartsa ii, 1975

   23.  Capital cost. Sicartsa first stage. 1973. Report by
        industrial department. IBRD.

   24.  Plan de desarrollo de la industria siderurgica paraestatal
        1979-1990. Sidermex. Confidential document. Not published yet

Keywords: linear programming, production problem, distribution problem, scheduling,
          micro economics, steel industry
$offText

$eolCom //

$sTitle Set Definitions
Set
   im         'iron ore and coal mines'
              / p-colorada   'pena colorada colima'
                lastruchas   'lazaro cardenas michoacan'
                la-perla     'camargo chihuahua'
                cerro-mer    'cerro de mercado durango'
                hercules     'sierra mojada coahuila'
                la-chula     'minatitlan colima'
                el-encino    'pihuamo jalisco'
                coahuila     'coal mining region'       /
   ir         'raw material plants'
              / penacol      'pena colorada colima'
                laperla      'camargo chihuahua'
                alzada       'colima'
                esperanzas   'coahuila'                 /
   is         'steel mills'
              / sicartsa     'las truchas'
                ahmsa        'monclova'
                fundidora    'monterrey'
                hylsa        'monterrey'
                hylsap       'puebla'
                tamsa        'veracruz' /
   j          'domestic market areas'
              / mexico-df    'mexico d.f.'
                puebla       'puebla'
                queretaro    'queretaro'
                san-luis     'san luis potosi'
                monterrey    'nuevo leon'
                guadalaja    'guadalajara jalisco'
                l-cardenas   'michoacan'
                coatzacoal   'veracruz' /
   l          'export points'
              / gulf
                pacific  /
   mm         'productive units at mines'
              / mine-co      'mining equipment for coal mines'
                mine-eq      'mining equipment: trucks and crushers'
                conc-mag     'magnetic concentrator'
                conc-flot    'flotation concentrator' /
   mr         'productive units at raw material plants'
              / pellet       'pellet plant'
                coke-oven    'coke oven and byproduct units' /
   ms         'productive units at steel mills'
              / pellet       'pellet plant'
                sinter       'sinter plant'
                coke-oven    'coke ovens and by-product units'
                blast-furn   'blast furnaces'
                direct-red   'direct reduction units'
                openhearth   'open hearth furnaces'
                bof          'basic oxygen converters'
                elec-arc     'electric arc furnaces'
                concas-sl    'continuous casting unit for slabs'
                concas-bi    'continuous casting unit for billets'
                ingot-cast   'ingot casting'
                primary-fl   'primary mill and soaking pits - flat products'
                primary-nf   'primary mills and soaking pits - non flat'
                plate-mill   'plate mill'
                hot-mill     'hot strip mill'
                pickleline   'pickling line'
                cold-mill    'cold strip mill'
                anneal       'annealing units'
                tempermill   'temper mill'
                tin-line     'tinning line'
                billet       'billet mill'
                heavysmill   'heavy shapes mill'
                bar-mill     'integrated bar mill'
                wire-mill    'integrated wire mill'
                seaml-mill   'seamless pipe mill'   /
   pm         'production processes at mines'
              / min-co       'mining unwashed coal'
                was-co       'washing of coal'
                min-n        'mining in the northern mines'
                min-s        'mining in the southern mines'
                min-tr       'mining in las truchas mine'
                conc-n       'concentration of northern ore'
                conc-s       'concentration of southern ore'
                conc-tr      'concentration of truchas ore'  /
   pr         'production processes at raw material plants'
              / pelt-c       'pellet production using conc ore'
                coke-hd      'coke production with  domestic coal' /
   ps         'production processes at steel mills'
              / pelt-c       'pellet production using concentrated ore'
                sinter       'sinter production'
                coke-hd      'coke production with high domestic coal input'
                coke-hi      'coke production with high import coal input'
                pig-ore      'pig iron ore production with lump ore'
                pig-sin      'pig iron production with high sinter charge'
                pig-pel      'pig iron production with high pellets charge'
                pig-pel-m    'pig iron production with coke from imported coal'
                sponge       'sponge iron production'
                stl-oh-p     'steel production in open hearths with high pig iro'
                stl-oh-s     'steel production in open hearths with high scrap charge'
                stl-oh-s2    'steel production in open hearths with highest scrap charge'
                stl-bof-p    'steel production in bof with high pig iron charge'
                stl-bof-s    'steel production in bof with high scrap charge'
                stl-eaf-sp   'steel production in electric fur. with high sponge'
                stl-eaf-s    'steel production in electric furnace with high scrap'
                slabs-cc     'slabs production by continuous casting'
                billets-cc   'billet production by continuous casting'
                ingot        'ingot casting'
                slab-roll    'slab production by rolling'
                bloom-roll   'rolling of blooms from ingots'
                billet-rol   'billet production by rolling blooms'
                plate        'plate production from slabs'
                hot-sheet    'hot rolled coil production'
                pickled      'pickled coil production'
                cold-sheet   'cold roll coil production'
                annealed     'annealed coil production'
                tempered     'tempered coil production'
                tinning      'tin production'
                heavyshape   'heavy shape rolling'
                lightshape   'rolling of light shapes'
                rough-nf     'roughing mill for non-flat products'
                bar-roll     'rolling of bars'
                rebars-ld    'rolling of large diameter re-rods and bars'
                rebars-sd    'rolling of small diameter re-rods and bars'
                wire rod     'rolling of wire rod'
                seam-rol     'rollling of seamless pipes' /
   cs         'commodities at steel mills'
              / ore-n        'iron ore from north. high s and p. 59% fe.'
                ore-s        'iron ore from south. no p. 60% fe.'
                ore-trucha   'iron ore from sicartsa. no p. 55% fe.'
                ore-conc     'iron ore concentrated'
                pellets      'pellets'
                sinter       'sinter'
                coal-d       'coal-domestic: washed'
                coal-i       'coal-imported: washed'
                coal-r       'raw unwashed coal'
                coke         'coke produced with domestic coal'
                coke-imp-c   'coke produced with imported coal'
                fuel-oil     'fuel oil in thousand liters'
                limestone    'limestone'
                pig-iron     'pig iron (hot metal)'
                nat-gas      'natural gas in 1000 m3'
                sponge       'sponge iron'
                scrap        'steel scrap'
                ferro-allo   'ferroalloys'
                refrac       'refractories'
                dolomite     'dolomite'
                lime         'lime'
                electrodes   'electrodes (kg)'
                steel-liq    'liquid steel'
                steel-ing    'ingot steel'
                slabs        'slabs'
                plate        'plate'
                hot-strip    'hot strip sheet'
                pick-strip   'pickled strip sheet'
                cold-strip   'cold strip sheet'
                anl-strip    'annealed strip sheet'
                temp-strip   'tempered strip sheet'
                tin          'tin sheet'
                blooms       'blooms'
                billets      'billets'
                heavyshape   'heavy shapes'
                lightshape   'light shapes'
                bars         'bars'
                rebars       'reinforcing rods - demand data is available only for aggregate'
                rebars-ld    'large diameter reinforcing rods'
                rebars-sd    'small diameter reinforcing rods'
                wire         'wire rod'
                seamless     'seamless pipe'
                pesos        'mexican currency'
                electric     'electricity in 1000 kwh'
                water        'water in 1000 m3'
                ing-blooms   'steel blooms for seamless pipe'
                rails        'rails - only imported'          /
   craw(cs)   'domestic raw materials'
              / fuel-oil, limestone, nat-gas, scrap, ferro-allo, refrac
                dolomite, lime, electrodes, water, electric  /
   cm(cs)     'commodities at mines'
              / ore-n, ore-s, ore-trucha, coal-r, coal-d, ore-conc  /
   cr(cs)     'commodities at raw material plants'
              / ore-n, ore-s, ore-trucha, coal-r, coal-d, ore-conc, pellets, coke, electric  /
   crv(cs)    'imported raw materials and intermediate products'
              / coal-i, pellets, scrap, coke  /
   cmr(cs)    'commodities shipped from mines to raw material plants'
              / ore-conc, coal-d  /
   cms(cs)    'commodities shipped from mines to steel plants'
              / coal-d, ore-conc, ore-s, ore-n, ore-trucha /
   crs(cs)    'commodities shipped from raw material plants to steel mills'
              / pellets, coke  /
   css(cs)    'commodities for interplant shipment between steel mills'
              / sponge, pellets, coke  /
   cf(cs)     'final products'
              / plate, hot-strip, temp-strip, tin , heavyshape, lightshape
                bars , rebars-ld, rebars-sd , wire, seamless  , rails      /
   ce(cs)     'commodities for exports'
   cfv(cs)    'imported final products'
   o          'owner numbers'
              / 1*5  /
   own(o,is)  'owner groups'
              / 1.sicartsa, 2.ahmsa, 3.fundidora, 4.(hylsa,hylsap), 5.tamsa /
   isex(is)   'plants excluded from alzada ores'
              / sicartsa, ahmsa, fundidora, tamsa /
   res(cm,im) 'reserve types at locations'
              / ore-s.p-colorada, ore-trucha.lastruchas, ore-n.la-perla
                ore-n.cerro-mer , ore-n.hercules       , ore-s.la-chula
                ore-s.el-encino , coal-r.coahuila                       /;

ce(cf)  = yes;
cfv(cf) = yes;

Alias (is,isp);

$sTitle Production
Parameter as(cs,ps,is) 'input output relations for steel mills';

Table am(cm,pm) 'a matrix for mining products'
                 min-n   min-s   min-tr  conc-n  conc-s  conc-tr  min-co  was-co
   ore-n            1.                    -1.42
   ore-s                    1.                    -1.28
   ore-trucha                        1.                    -1.37
   ore-conc                                1.      1.       1.
   coal-r                                                             1.    -2.1
   coal-d                                                                    1. ;

Table ar(cs,pr) 'a matrix for raw material plants'
                  pelt-c   coke-hd
   fuel-oil        -.02
   ore-conc        -.99
   pellets         1.0
   coal-d                   -1.50
   coke                      1.0
   electric        -.045     -.060;

Table asic(cs,ps) 'a matrix for sicartsa'
                   pelt-c  coke-hi  pig-pel-m  stl-bof-p  stl-bof-s
   ore-trucha                           -.20
   ore-conc          -.99
   pellets           1.0               -1.384
   coal-i                    -1.38
   coke-imp-c                 1.0       -.60
   fuel-oil                             -.045
   limestone                            -.081
   pig-iron                             1.0        -.944      -.833
   scrap                                           -.166      -.180
   ferro-allo                                      -.033      -.033
   refrac                                          -.006      -.006
   dolomite                             -.049      -.06       -.06
   lime                                            -.09       -.09
   steel-liq                                       1.0        1.0
   electric          -.045    -.060     -.090      -.068      -.068

     +             billets-cc  lightshape  rebars-ld  rebars-sd   wire
   scrap                  .04         .03        .03        .03    .02
   steel-liq            -1.05
   billets               1.0        -1.06      -1.06      -1.06  -1.05
   lightshape                        1.0
   rebars-ld                                    1.0
   rebars-sd                                               1.0
   wire                                                           1.0
   electric                          -.08       -.08       -.08   -.08
   water                             -.01       -.01       -.01   -.01;

* data for pelt-c and coke-hi come from plant visit. data for pig-pel
* and stl-bof-p comes from (1 page 83 and 95). idealized data rather
* than historical yields for 1978 were used for rolling mills.

Table aahm(cs,ps) 'a matrix for ahmsa'
                   coke-hd   sinter  pig-pel  pig-sin
   ore-n                     -1.1               -.64
   coal-d           -1.50
   sinter                     1.0              -1.03
   pellets                            -1.6
   coke              1.0      -.11     -.63     -.70
   limestone                  -.17              -.10
   dolomite                            -.049    -.049
   pig-iron                            1.0      1.0
   nat-gas                             -.05     -.05
   sponge
   electric          -.060    -.040    -.090    -.090
   ferro-allo                          -.065    -.065

       +           stl-oh-s  stl-bof-p  stl-bof-s  ingot  slabs-cc  slab-roll
   ore-n                                    -.02
   pig-iron           -.77      -1.02       -.74
   scrap              -.33       -.11       -.42     .02       .02        .13
   nat-gas                                  -.078   -.05                 -.05
   fuel-oil                                 -.079
   limestone          -.14
   ferro-allo         -.011      -.011      -.011
   refrac             -.012      -.006      -.012
   dolomite           -.10       -.06
   lime                          -.09       -.14
   steel-liq          1.0        1.0        1.0    -1.04     -1.04
   steel-ing                                        1.0                 -1.17
   slabs                                                      1.0        1.0
   electric           -.040      -.068      -.068

       +           bloom-roll  billet-rol   plate  hot-sheet  pickled
   scrap                  .13         .13     .02        .03
   steel-ing            -1.17
   slabs                                    -1.04      -1.05
   plate                                     1.0
   hot-strip                                            1.0      -1.0
   blooms                1.0        -1.17
   billets                           1.0
   pick-strip                                                     1.0

       +           cold-sheet  annealed  tempered  tinning
   scrap                  .13
   pick-strip           -1.17
   cold-strip            1.0       -1.0
   anl-strip                        1.0      -1.0
   temp-strip                                 1.0    -1.02
   tin                                                1.0

       +           heavyshape  lightshape  bar-roll  rebars-ld  rebars-sd  wire
   blooms               -1.15
   heavyshape            1.0
   billets                          -1.14     -1.06      -1.06      -1.06  -1.0
   lightshape                        1.0
   bars                                        1.0
   rebars-ld                                              1.0
   rebars-sd                                                         1.0
   wire                                                                     1.0
   scrap                  .05         .03       .04        .04        .04    .0;

Table afund(cs,ps) 'a matrix for fundidora'
                    pig-pel  pig-ore  pelt-c
   ore-n              -.29    -1.38
   ore-conc                            -.99
   pellets           -1.38     -.29    1.0
   coke               -.69     -.75
   limestone          -.24     -.27
   pig-iron           1.0      1.0
   nat-gas            -.051    -.029
   electric           -.06     -.036   -.045
   water              -.003    -.001
   ferro-allo         -.065    -.065

      +             stl-oh-s  stl-bof-p  stl-bof-s  stl-oh-s2
   ore-n              -.02                              -.02
   fuel-oil            -.079                            -.079
   pig-iron           -.74        -.96       -.81       -.32
   nat-gas            -.078                             -.078
   scrap              -.42        -.15       -.27       -.80
   ferro-allo         -.012       -.012      -.012      -.012
   refrac             -.012       -.006      -.006      -.012
   lime               -.14                              -.14
   steel-liq          1.0         1.0        1.0        1.0
   electric           -.072       -.068      -.068      -.072

      +             ingot  slab-roll  plate  hot-sheet  pickled  cold-sheet
   scrap              .01        .10    .10                             .13
   steel-liq        -1.04
   steel-ing         1.0       -1.14
   slabs                        1.0   -1.12      -1.05
   plate                               1.0
   hot-strip                                      1.0      -1.0
   pick-strip                                               1.0       -1.17
   cold-strip                                                           1.0

      +             annealed  tempered  bloom-roll  billet-rol  lightshape
   scrap                                       .10                     .10
   steel-ing                                 -1.13
   cold-strip           -1.0
   anl-strip             1.0      -1.0
   temp-strip                      1.0
   blooms                                     1.0       -1.03
   billets                                               1.0         -1.14
   lightshape                                                         1.0

      +              wire  rebars-sd
   scrap              .04        .04
   billets          -1.06      -1.06
   rebars-sd                    1.0
   wire              1.0            ;

* data for the pig-ore and pig-pel processes were derived
* from bf no. 2 and bf no. 3 data for 1975 as reported in
* (9- vol i) table 3.3.6
* data for stl-oh-s are from same source table 3.4.6

Table ahyl(cs,ps) 'a matrix for hylsa in monterrey'
                   sponge  stl-eaf-sp  stl-eaf-s  ingot  slab-roll
   pellets         -1.38
   nat-gas          -.470                                     -.05
   sponge           1.0        -1.09     -.60
   scrap                                  -.46                 .05
   ferro-allo                   -.012     -.012
   refrac                       -.006     -.006
   electrodes                 -.0052      -.0052
   dolomite                     -.009     -.009
   lime                         -.007     -.007
   steel-liq                    1.0       1.0     -1.02
   steel-ing                                       1.0       -1.07
   slabs                                                      1.0
   electric         -.10        -.68     -.60

      +            hot-sheet  pickled  cold-sheet  annealed
   scrap                 .05      .06         .02
   slabs               -1.07
   plate
   hot-strip            1.0     -1.06
   pick-strip                    1.0        -1.05
   cold-strip                                1.0       -1.0
   anl-strip                                            1.0

      +            tempered  tinning
   scrap                .03      .01
   anl-strip          -1.04
   temp-strip          1.0     -1.02
   tin                          1.0 ;

* data for eaf from (15), rolling processes from (9 vol ii)
* verify scrap generation and electricity

Table ahylp(cs,ps) 'a matrix for hylsa in puebla'
                    sponge  stl-eaf-sp  stl-eaf-s  billets-cc
   pellets          -1.38
   nat-gas           -.420
   sponge            1.0       -1.09
   scrap                                -1.06
   ferro-allo                   -.014    -.012
   refrac                       -.006    -.006
   electrodes                   -.0052     -.0052
   dolomite                     -.009    -.009
   lime                         -.007    -.007
   steel-liq                    1.0      1.0            -1.06
   billets                                               1.0
   electric          -.010      -.68     -.50

       +            lightshape  bar-roll  rebars-ld  rebars-sd    wire
   scrap                   .04      .04        .04         .03     .03
   billets               -1.06    -1.06      -1.06       -1.05   -1.05
   lightshape             1.0
   bars                            1.0
   rebars-ld                                  1.0
   rebars-sd                                              1.0
   wire                                                           1.0
   electric               -.03     -.025      -.025       -.03    -.03;

* rolling processes from (9-ii), sponge and st-eaf from plant visits and (15)

Table atam(cs,ps) 'a matrix for tamsa'
                   sponge  stl-eaf-sp  stl-eaf-s   ingot
   pellets          -1.38
   nat-gas           -.50
   sponge            1.0      -1.09
   scrap                               -1.06
   ferro-allo                  -.033    -.033
   refrac                      -.006    -.006
   electrodes                  -.0052     -.0052
   dolomite                    -.009    -.009
   lime                        -.007    -.007
   steel-liq                   1.0      1.0        -1.06
   ing-blooms                                       1.0
   electric          -.01      -.68     -.50

       +           billet-rol  lightshape  bar-roll  seam-rol
   scrap                  .01         .04       .04       .35
   ing-blooms           -1.03                           -1.45
   billets               1.0        -1.06     -1.06
   lightshape                        1.0
   bars                                        1.0
   seamless                                              1.0;

as(cs,ps,"sicartsa")  = asic(cs,ps);
as(cs,ps,"ahmsa")     = aahm(cs,ps);
as(cs,ps,"fundidora") = afund(cs,ps);
as(cs,ps,"hylsa")     = ahyl(cs,ps);
as(cs,ps,"hylsap")    = ahylp(cs,ps);
as(cs,ps,"tamsa")     = atam(cs,ps);

Table bm(mm,pm) 'capacity utilization matrix for mines'
                 min-n  min-s  min-tr  conc-s  conc-tr conc-n  min-co
   mine-eq           1      1       1
   conc-mag                                 1        1
   conc-flot                                                1
   mine-co                                                          1;

Table br(mr,pr) 'capacity utilization for raw materials plants'
                 coke-hd     pelt-c
   coke-oven           1
   pellet                         1;

Table bs(ms,ps) 'capacity utilization matrix for steel mills'
                 coke-hd  coke-hi  pig-ore pig-sin pig-pel pig-pel-m
   coke-oven           1        1
   blast-furn                            1       1     .96         1

       +         sponge stl-oh-p stl-oh-s stl-oh-s2
   blast-furn
   direct-red         1
   openhearth                  1        1         1

       +         stl-bof-p  stl-bof-s  stl-eaf-sp  stl-eaf-s
   bof                   1          1
   elec-arc                                     1          1

       +         slabs-cc  billets-cc  ingot  slab-roll  bloom-roll
   concas-sl            1
   concas-bi                        1
   ingot-cast                              1
   primary-fl                                         1
   primary-nf                                                     1

       +         billet-rol   plate  hot-sheet  pickled  cold-sheet
   plate-mill                     1
   hot-mill                                  1
   pickleline                                         1
   cold-mill                                                      1
   billet                 1

       +         annealed  tempered  tinning  heavyshape  lightshape
   anneal               1
   tempermill                     1
   tin-line                                1
   heavysmill                                          1
   bar-mill                                                        1

       +         bar-roll  rebars-ld  rebars-sd  wire  seam-rol
   bar-mill             1          1
   wire-mill                                  1     1
   seaml-mill                                                 1

     +           pelt-c     sinter
   pellet             1
   sinter                        1;

$sTitle Capacity
Table km(mm,im) 'initial capacities for mines               (1000 tpy)'
                 p-colorada lastruchas la-perla cerro-mer hercules
   mine-eq             4000       2700     1000      3000     1000
   conc-mag            4000       1500
   conc-flot                               1000      3000

   +             la-chula  el-encino  coahuila
   mine-eq            500       3000
   conc-mag                     3000
   mine-co                                7000;

Table kr(mr,ir) 'initial capacities for raw material plants (1000 tpy)'
                 penacol  laperla  alzada  esperanzas
   pellet           3000      600    1500
   coke-oven                                      684;

Table ks(ms,is) 'initial capacities for steel mills         (1000 tpy)'
                 sicartsa  ahmsa  fundidora  hylsa  hylsap  tamsa
   pellet            1850               750
   sinter                   1500
   coke-oven          660   2100
   blast-furn        1100   3247       1400
   direct-red                                  660    1000    270
   openhearth               1500        850
   bof               1300   2070       1500
   elec-arc                                   1000     560    450
   concas-sl                 710
   concas-bi         1300                              560
   ingot-cast               2600       2000   1000            420
   primary-fl               1850       1450   1000
   primary-nf               1200
   plate-mill                960        250
   hot-mill                 1600        870    900
   pickleline               1600        575    650
   cold-mill                1495        500    600
   anneal                   1348        420    450
   tempermill               1225        520    450
   tin-line                  315                70
   billet                   1000       200
   heavysmill                200
   bar-mill           600    135                       430     80
   wire-mill          600    270                       200
   seaml-mill                                                 280;

$onText
sicartsa
   1. coke-oven (1)  2200 t/day = 660 mt/a  based on stated coal mix
   2. blast-furn (1)  3300 t/day with 330 days/year = 1100 mt/a
   3. all capacities from (1) unless otherwise noted

ahmsa
   1. all capacities from (10) unless otherwise noted

fundidora
   1. coke plant is at the mine
   2. all capacities from (12) unless otherwise noted
   3. open hearth capacity is for steelshop no. 2 from (9 - vol i) table 3.4.3

hylsa
   1. all capacities from (9 - vol i) unless otherwise noted
   2. only rough estimates for pickle, annealing, and temper lines
   3. monterrey visit april 1981

hylsap
   1. data obtained during plant visit

tamsa
   1. all capacities from(9 -vol i)
   2. monterrey visit 1981
$offText

Parameter ut(is) 'capacity utilization' / sicartsa .5, (ahmsa,fundidora,tamsa) .9, hylsa 1, hylsap 1.1 /;
km(mm,im) = .9*km(mm,im);
kr(mr,ir) = .9*kr(mr,ir);
ks(ms,is) = ut(is)*ks(ms,is);

$sTitle Demand Data
Set ds 'demand data components' / demand, semi-int, adj-dem /;

Table mrod(cs,cs)   'map for disaggregating demand for reinforced bars to large and small diameters'
            rebars-sd   rebars-ld
   rebars          .4          .6;

Table demdat(cs,ds) 'demand and semi-intgrated output (1000 tpy)'
                     demand   semi-int
   plate               1050
   hot-strip            600
   temp-strip          1250
   tin                  400
   heavyshape           300        130
   lightshape           310        160
   bars                 340        155
   rebars              1150        395
   wire                 600        190
   seamless             800
   rails                110           ;

Table regdem(cs,j)  'regional demand per product    (% of total)'
                     mexico-df puebla queretaro san-luis monterrey
   plate                  63.5    0.2       0.3      0.3      31.0
   hot-strip              41.9    2.8       1.6      2.8      36.2
   temp-strip             45.1    2.5       4.5      1.1      41.7
   tin                    87.6              0.3                9.4
   heavyshape             36.6    2.2       3.2      0.8      12.9
   lightshape             74.4    2.5       1.9      1.8       8.1
   bars                   46.6    4.2      23.5      2.2      11.2
   rebars                 46.7   10.3       4.0      3.4      12.8
   wire                   61.2    5.3       3.9      3.7      12.2
   seamless               10.5   28.0       0.4      0.2      18.4
   rails                  40.0    5.0       5.0     10.0      20.0

   +                 guadalaja  l-cardenas  coatzacoal
   plate                   4.5         0.1         0.1
   hot-strip              12.6         0.5         1.6
   temp-strip              4.3         0.4         0.4
   tin                     2.7
   heavyshape             42.6         1.4         0.3
   lightshape              8.9         1.6         0.8
   bars                   11.8         0.4         0.1
   rebars                 11.8         6.1         4.9
   wire                    9.8         1.9         2.0
   seamless                1.8         1.7        39.0
   rails                  10.0         5.0         5.0;

* data base estimated
* rail distibution has been added in washington

demdat(cs,"adj-dem") = demdat(cs,"demand") - demdat(cs,"semi-int");
demdat(cf,"adj-dem")$sum(cs, mrod(cs,cf)) = sum(cs, mrod(cs,cf)*demdat(cs,"adj-dem"));
regdem(cf,j)$sum(cs, mrod(cs,cf)) = sum(cs$mrod(cs,cf), regdem(cs,j));

Parameter d(*,*) 'adjusted demand for semi-integr plants (1000 tpy)';

d(cf,j) = demdat(cf,"adj-dem")*regdem(cf,j)/100;
d("   total  ",j)  = sum(cf, d(cf,j));
d(cf,"   total  ") = sum(j, d(cf,j));
d("   total  ","   total  ") = sum(cf, d(cf,"   total  "));

display demdat, regdem, d;

Parameter
   emax(cf) 'export limit by product (1000 tpy)'
   etot     'total export limit      (1000 tpy)';

emax(cf) = 500;
etot     = 250;

$sTitle Prices
Set sp 'domestic and international prices' / domestic, internat /;

Parameter mc(pm)    'mining cost (pesos per ton)' / min-co 250, (min-s,min-n,min-tr) 100 /;

Table prices(cs,sp) 'domestic and international prices of commodities'
                     domestic     internat
*                   (79 pesos)  (79 dollars)
   ore-conc                             28      // tons
   pellets                430           45      // tons
   coal-d                 880                   // tons
   coal-i                               63      // tons
   coke                  1200          100      // tons
   fuel-oil              1000                   // tons **** 1000liters
   limestone              120                   // tons
   nat-gas                322          152      // 1000 m3
   scrap                 3050          120      // tons
   ferro-allo           16000                   // tons
   refrac               50000                   // tons
   dolomite               800                   // tons
   lime                   690                   // tons
   electrodes           48000                   // tons
   electric               552                   // 1000 kwh
   plate                               347      // tons
   hot-strip                           393      // tons
   temp-strip                          373      // tons
   tin                                 393      // tons
   billets                             300      // tons
   heavyshape                          338      // tons
   lightshape                          364      // tons
   bars                                350      // tons
   rebars-ld                           347      // tons
   rebars-sd                           368      // tons
   wire                                434      // tons
   seamless                            455      // tons
   rails                               345      // tons

* different prices for limestone: ahmsa 90, fundidora 60, sicartsa 120
* price of natural gas for sicartsa expansions: 30% lower.

Parameter
   pd(cs) 'prices of domestic products (1979 pesos per unit)'
   pv(cs) 'prices of imports             (1979 us $ per ton)'
   pe(cs) 'export prices                 (1979 us $ per ton)'
   sh     'shadow exchange rate         (1979 pesos per us$)';

sh       = 25.0;
pd(craw) = prices(craw,"domestic");
pv(crv)  = prices(crv,"internat");
pv(cfv)  = prices(cfv,"internat");
pe(ce)   = .8*prices(ce,"internat");

$sTitle Transport Data
Table rdsj(is,j)  'rail distances from steel mills to markets (km)'
                   mexico-df puebla queretaro san-luis monterrey
   sicartsa              819    995       691      875      1305
   ahmsa                1204   1300       849      592       218
   fundidora            1017   1159       755      498
   hylsa                1017   1159       755      498
   hylsap                185              410      667      1085
   tamsa                 428    315       650      907      1330

    +              guadalaja l-cardenas coatzacoal
   sicartsa              704                  1638
   ahmsa                1125       1416       1850
   fundidora            1030       1322       1756
   hylsa                1030       1322       1756
   hylsap                760        995        671
   tamsa                1005       1239        550;

* data from (20) and (21)
* only steel plants included, since pellet and coke plants do not
* send final products to markets

Table rdss(is,is) 'rail distances between steel plants'
                   sicartsa ahmsa fundidora hylsa hylsap tamsa
   ahmsa               1416
   fundidora           1322   218
   hylsa               1322   218        10
   hylsap               995  1300      1159  1159
   tamsa               1239  1499      1405  1405    315      ;

Table rdrs(ir,is) 'rail distances from raw material plants to steel mills'
                   sicartsa  ahmsa  fundidora  hylsa  hylsap  tamsa
   penacol             1037   1490       1396   1396    1116   1360
   laperla             1797    403        621    621    1595   1703
   alzada               920   1360       1260   1260     990   1300
   esperanzas          1522    122        340    340    1422   1670;

* data from (19) and(20)

Table rdms(im,is) 'rail distances from mines to steel plants'
                   sicartsa ahmsa fundidora hylsa hylsap tamsa
   p-colorada          1037  1490      1396  1396   1116  1360
   lastruchas                1416      1322  1322    995  1239
   la-perla            1797   403       621   621   1595  1927
   cerro-mer           1275   677       636   636   1245  1489
   hercules            1613   219       563   563   1411  1655
   la-chula            1044  1480      1300  1300   1112  1356
   el-encino            965  1401      1307  1307   1033  1277
   coahuila            1500   120       400   400   1420  1700;

Table rdmr(im,ir) 'rail distances from mines to raw material plants'
                   penacol  laperla  alzada  esperanzas
   p-colorada                  1803      70
   lastruchas         1037     1797     920
   la-perla           1803             1800
   cerro-mer          1500      400    1500
   hercules           1616      400    1600
   la-chula             90     1800      60
   el-encino            90     1800      40
   coahuila                                          15;

* data from (19)
* data from (18)
* distances from coal mines to pellet plants not included for obviou

Table rdps(*,is)  'rail distances from nearest port to steel mill'
                   sicartsa ahmsa fundidora hylsa hylsap tamsa
   gulf                1239   739       521   521    315
   pacific                   1416      1322  1322    995  1239;

* data from (19) and (20)
* distances in this table are from plant to nearest port.
* for gulf: sicartsa,hylsap,tamsa and new-manz po veracruz.
*           ahmsa,fundidora,hylsa,naw-tamp to tampico.
*           new-coat to coatzacoalcos.
* for pacific: all plants to lazaro carenas, axcept fpr
*              new-manz to manzanillo

Table rdpj(*,j) 'rail distances from nearest port to markets'
                 mexico-df puebla queretaro san-luis monterrey
   gulf                428    315       650      444       521
   pacific             819    995       691      875      1305

     +           guadalaja l-cardenas coatzacoal
   gulf                995       1239
   pacific             300                  1638;

* data base from (20) and (21)
* nearest ports for
*    gulf: veracruz to mexico-df,puebla,queretaro,toluca,l-cardenas
*          tampico to san-luis,guadalajara
*          matamoros to monterrey
*          coatzacoalcos to coatzacoal
* pacific: all to lazaro cardenas, except for manzanillo to guadalaja

* mines - iron ore and coal mines
* plants - raw material plants
* mills - steel mills

Parameter
   mumr(im,ir)  'transport cost: mines to plants               (us$ per ton)'
   mums(im,is)  'transport cost: mines to mills                (us$ per ton)'
   murs(ir,is)  'transport cost: plants to mills               (us$ per ton)'
   muss(is,is)  'transport cost: between mills                 (us$ per ton)'
   musj(is,j)   'transport cost: mills to markets              (us$ per ton)'
   mupsr(is)    'transport cost: ports to mills - raw material (us$ per ton)'
   muspf(is)    'transport cost: mills to ports - final product  ($ per ton)'
   mupj(j)      'transport cost: ports to markets              (us$ per ton)';

rdps("short",is) = min(rdps("gulf",is) ,rdps("pacific",is));
rdss(is,isp)     = max(rdss(is,isp),rdss(isp,is));
rdpj("short",j)  = min(rdpj("gulf",j ),rdpj("pacific",j));
mumr(im,ir)      = (35 + .11*rdmr(im,ir))$rdmr(im,ir);
mums(im,is)      = (35 + .11*rdms(im,is))$rdms(im,is);
murs(ir,is)      = (35 + .11*rdrs(ir,is))$rdrs(ir,is);
muss(is,isp)     = (35 + .11*rdss(is,isp))$rdss(is,isp);
mupsr(is)        = (35 + .11*rdps("short",is))$rdps("short",is);
musj(is,j)       = (60 + .19*rdsj(is,j))$rdsj(is,j);
muspf(is)        = (60 + .19*rdps("short",is))$rdps("short",is);
mupj(j)          = (60 + .19*rdpj("short",j))$rdpj("short",j);

* data base from (19) and (20)
* old figures were 57.16 + .194 and 17.46 + .106

display mumr, mums, murs, muss, musj, mupsr, muspf, mupj;

Parameter
   loss(cs) 'correction factor for coke losses during intermill shipments of coke'
   pct(o)   'share of pellet shipments from pena colarada by ownership'
            / 2 .46, 3 .1, 4 .26, 5 .18 /;

loss(cs)     = 1;
loss("coke") = 0.9;

$sTitle Model Reduction
Set
   mmpos(mm,im)  'productive unit possibility: mines'
   mrpos(mr,ir)  'productive unit possibility: raw material plants'
   mspos(ms,is)  'productive unit possibility: steel mills'
   pmpos(pm,im)  'process possibility: mines'
   prpos(pr,ir)  'process possibility: raw material plants'
   pspos(ps,is)  'process possibility: steel mills'
   cmposp(cs,im) 'commodity production possibility:  mines'
   crposp(cs,ir) 'commodity production possibility:  raw material plants'
   csposp(cs,is) 'commodity production possibility:  steel mills'
   cmposn(cs,im) 'commodity consumption possibility: mines'
   crposn(cs,ir) 'commodity consumption possibility: raw material plants'
   csposn(cs,is) 'commodity consumption possibility: steel mills';

mmpos(mm,im) = yes$km(mm,im);
mrpos(mr,ir) = yes$kr(mr,ir);
mspos(ms,is) = yes$ks(ms,is);

pmpos(pm,im)$sum(cm, am(cm,pm)$res(cm,im) <> 0 ) =
             yes$(sum(mm$(not mmpos(mm,im)), bm(mm,pm) <> 0) = 0);
prpos(pr,ir)$sum(cr, ar(cr,pr) <> 0 ) =
             yes$(sum(mr$(not mrpos(mr,ir)), br(mr,pr) <> 0) = 0);
pspos(ps,is)$sum(cs, as(cs,ps,is) <> 0 ) =
             yes$(sum(ms$(not mspos(ms,is)), bs(ms,ps) <> 0) = 0);

cmposp(cm,im) = yes$sum(pm$pmpos(pm,im), am(cm,pm)    > 0);
crposp(cr,ir) = yes$sum(pr$prpos(pr,ir), ar(cr,pr)    > 0);
csposp(cs,is) = yes$sum(ps$pspos(ps,is), as(cs,ps,is) > 0);

cmposn(cm,im) = yes$sum(pm$pmpos(pm,im), am(cm,pm)    < 0);
crposn(cr,ir) = yes$sum(pr$prpos(pr,ir), ar(cr,pr)    < 0);
csposn(cs,is) = yes$sum(ps$pspos(ps,is), as(cs,ps,is) < 0);

display mmpos,  mrpos,  mspos,  pmpos, prpos, pspos, cmposp, crposp,
        csposp, cmposn, crposn, csposn;

Set
   imres(im)      'restricted mines' / lastruchas /
   imfree(im)     'free mines'
   xmpos(cs,im,*) 'possible shipments of mining products to raw mat plants';

imfree(im) = yes - imres(im);

xmpos("coal-d","coahuila","esperanzas")  = yes;
xmpos("ore-conc","p-colorada","penacol") = yes;
xmpos("ore-conc","la-perla","laperla")   = yes;
xmpos("ore-conc","el-encino","alzada")   = yes;
xmpos(cm,"lastruchas","sicartsa")        = yes;
xmpos(cm,imfree,is)                      = yes;

$sTitle Equations
Equation
   mbm(cm,im)    'material balance: mines                           (1000 tpy)'
   mbr(cr,ir)    'material balance: raw material plants       (1000 units tpy)'
   mbs(cs,is)    'material balance: steel mills               (1000 units tpy)'
   ccm(mm,im)    'capacity constraint: mines                        (1000 tpy)'
   ccr(mr,ir)    'capacity constraint: raw material plants          (1000 tpy)'
   ccs(ms,is)    'capacity constraint: steel mills                  (1000 tpy)'
   mreq(cf,j)    'market requirements                               (1000 tpy)'
   me(cf)        'export bounds                                     (1000 tpy)'
   me2           'total exports                                     (1000 tpy)'
   pelpc(o)      'pellet shipments from pena colarada               (1000 tpy)'
   pelal         'pellet shipments from alzada                      (1000 tpy)'
   acost         'accounting: total cost                            (mill us$)'
   arec          'accounting: recurrent cost                        (mill us$)'
   atrans        'accounting: transport cost                        (mill us$)'
   aimp          'accounting: import cost                           (mill us$)'
   aexp          'accounting: export revenue                        (mill us$)';

Variable
   zm(pm,im)     'process level: mines                              (1000 tpy)'
   zr(pr,ir)     'process level: raw material plants                (1000 tpy)'
   zs(ps,is)     'process level: steel mills                        (1000 tpy)'
   xm(cs,im,*)   'shipments: mine products                          (1000 tpy)'
   xr(cs,ir,is)  'shipments: from raw material plants               (1000 tpy)'
   xs(cs,is,isp) 'shipments: interplant                             (1000 tpy)'
   xf(cs,is,j)   'shipments: final products                         (1000 tpy)'
   ur(cs,ir)     'domestic products purchase: raw mat. plants (1000 units tpy)'
   us(cs,is)     'domestic products purchase: steel mills     (1000 units tpy)'
   e(cs,is)      'exports                                           (1000 tpy)'
   vs(cs,is)     'imports to steel mills                            (1000 tpy)'
   vf(cs,j)      'import of final products                          (1000 tpy)'
   cost          'total cost                                        (mill us$)'
   recurrent     'cost                                              (mill us$)'
   transport     'cost                                              (mill us$)'
   import        'cost                                              (mill us$)'
   export        'cost                                              (mill us$)';

Positive Variable zm, zr, zs, xm, xr, xs, xf, ur, us, e, vs, vf;

mbm(cm,im)..        sum(pm$pmpos(pm,im), am(cm,pm)*zm(pm,im))
             =g= (  sum(ir$(xmpos(cm,im,ir)*crposn(cm,ir)), xm(cm,im,ir))
                  + sum(is$(xmpos(cm,im,is)*csposn(cm,is)), xm(cm,im,is)))$cmposp(cm,im);

mbr(cr,ir)..      sum(pr$prpos(pr,ir), ar(cr,pr)*zr(pr,ir))
              +  (sum(im$(cmposp(cr,im)*xmpos(cr,im,ir)), xm(cr,im,ir))$cmr(cr) + ur(cr,ir)$craw(cr))$crposn(cr,ir)
             =g=  sum(is$(crs(cr)*crposp(cr,ir)*csposn(cr,is)), xr(cr,ir,is));

mbs(cs,is)..        sum(ps$pspos(ps,is), as(cs,ps,is)*zs(ps,is))
              +  (  sum(im$(cmposp(cs,im)*xmpos(cs,im,is)), xm(cs,im,is))$cms(cs)
                  + sum(ir$crposp(cs,ir), loss(cs)*xr(cs,ir,is))$crs(cs)
                  + sum(isp$csposp(cs,isp), loss(cs)*xs(cs,isp,is))$css(cs)
                  + us(cs,is)$craw(cs) + vs(cs,is)$crv(cs))$csposn(cs,is)
             =g= (  sum(isp$csposn(cs,isp), xs(cs,is,isp))$css(cs)
                  + sum(j, xf(cs,is,j))$cf(cs) + e(cs,is)$ce(cs))$csposp(cs,is);

ccm(mm,im)$mmpos(mm,im).. sum(pm$pmpos(pm,im), bm(mm,pm)*zm(pm,im)) =l= km(mm,im);

ccr(mr,ir)$mrpos(mr,ir).. sum(pr$prpos(pr,ir), br(mr,pr)*zr(pr,ir)) =l= kr(mr,ir);

ccs(ms,is)$mspos(ms,is).. sum(ps$pspos(ps,is), bs(ms,ps)*zs(ps,is)) =l= ks(ms,is);

mreq(cf,j).. sum(is$csposp(cf,is), xf(cf,is,j)) + vf(cf,j) =g= d(cf,j);

me(cf)..     sum(is$csposp(cf,is), e(cf,is)) =l= emax(cf);

me2..        sum((cf,is)$csposp(cf,is), e(cf,is)) =l= etot;

pelpc(o)..   sum(is$(own(o,is)*csposn("pellets",is)), xr("pellets","penacol",is)) =l= pct(o)*kr("pellet","penacol");

pelal..      sum(isex$csposn("pellets",isex), xr("pellets","alzada",isex)) =e= 0;

acost..      cost =e= recurrent + transport + sh*(import-export);

arec..       recurrent =e= (  sum((pm,im)$pmpos(pm,im), mc(pm)*zm(pm,im))
                            + sum((craw,ir)$crposn(craw,ir), pd(craw)*ur(craw,ir))
                            + sum((craw,is)$csposn(craw,is), pd(craw)*us(craw,is)))/1000;

atrans..     transport =e= (  sum((cmr,im,ir)$(cmposp(cmr,im)*xmpos(cmr,im,ir)*crposn(cmr,ir)), mumr(im,ir)*xm(cmr,im,ir))
                            + sum((cms,im,is)$(cmposp(cms,im)*csposn(cms,is)*xmpos(cms,im,is)), mums(im,is)*xm(cms,im,is))
                            + sum((crs,ir,is)$(crposp(crs,ir)*csposn(crs,is)), murs(ir,is)*xr(crs,ir,is))
                            + sum((css,is,isp)$(csposp(css,is)*csposn(css,isp)), muss(is,isp)*xs(css,is,isp))
                            + sum((cf,is,j)$csposp(cf,is), musj(is,j)*xf(cf,is,j))
                            + sum((crv,is)$csposn(crv,is), mupsr(is)*vs(crv,is))
                            + sum((cf,is)$csposp(cf,is), muspf(is)*e(cf,is)) + sum((cf,j), mupj(j)*vf(cf,j)))/1000;

aimp..       import =e= (sum((crv,is)$csposn(crv,is), pv(crv)*vs(crv,is)) + sum((cfv,j), pv(cfv)*vf(cfv,j)))/1000;

aexp..       export =e= (sum((ce,is)$csposp(ce,is), pe(ce)*e(ce,is)))/1000;

Model one / all /;

* define run 1
vs.up("coke",is)   = 0;
us.up("scrap",is)  = 0;
ks(ms,"ahmsa")     = ks(ms,"ahmsa")*0.9;
ks(ms,"fundidora") = ks(ms,"fundidora")*0.95;

display ks;

solve one minimizing cost using lp;