GAMS [ Home | Support | Sales | Solvers | Documentation | Model Libraries | Search | Contact Us ]

srcpm.gms : Single-Region Contingency Planning Model


A Contingency Planning Model (CPM) of international petroleum
production, transportation and refining had been developed jointly
at Stanford University, Sobotka and Company, and the US Department
of Energy. The model is designed to examine the effects of various
contingencies (crude supply interruptions) and policies (e.g. ban
of Alaskan exports). The following representation is the single-
region version discussed in Chapter 3.

Reference:
Small Model of Types: NLP lp
$Title Single-Region Contingency Planning Model (SRCPM,SEQ=52) $Ontext A Contingency Planning Model (CPM) of international petroleum production, transportation and refining had been developed jointly at Stanford University, Sobotka and Company, and the US Department of Energy. The model is designed to examine the effects of various contingencies (crude supply interruptions) and policies (e.g. ban of Alaskan exports). The following representation is the single- region version discussed in Chapter 3. Manne, A S, Nelson, C R, So, K C, and Weyant, J P, CPM: A Contingency Planning Model of the International Oil Market, International Energy Program Report. Tech. rep., Stanford University, 1982. $Offtext Sets c all commodities / ls-light low sulfur light crude ls-medium low sulfur medium crude ls-heavy low sulfur heavy crude hs-light high sulfur light crude hs-medium high sulfur medium crude hs-heavy high sulfur heavy crude ngl natural gas liquids ls-feed low sulfur feed hs-feed high sulfur feed gasoline motor gasoline distillat heating oil + diesel + kerosene naphtha primary naphtha lpg + others ls-resid low sulfur fuel oil + lubes and waxes hs-resid high sulfur fuel oil + asphalt / cr(c) crude types / ls-light, ls-medium, ls-heavy, hs-light, hs-medium, hs-heavy, ngl / ci(c) intermediate products / ls-feed, hs-feed / cf(c) final products / gasoline, distillat, naphtha, ls-resid, hs-resid / p processes / d-lsl distillation of low sulfur light crude d-lsm distillation of low sulfur medium crude d-lsh distillation of low sulfur heavy crude d-hsl distillation of high sulfur light crude d-hsm distillation of high sulfur medium crude d-hsh distillation of high sulfur heavy crude ngl natural gas liquids processing reform reforming ls-hc low sulfur heavy ends conversion hs-hc high sulfur heavy ends conversion desulf desulferization / pt transfer processes / t-gas transfer of gasoline to distillate t-nap transfer of naphtha to distillate t-lsr transfer of low sulfur resid t-hsr transfer of high sulfur resid / $Eject m productive units / p-still primary distillation ngl ngl facilities reformer he-conv heavy ends converter desulf desulfurizer / l cost level of facilities / b base or low cost, m marginal or high cost / Table a(c,l,p) input output coefficients d-lsl d-lsm d-lsh d-hsl d-hsm d-hsh ngl reform ls-hc hs-hc desulf ls-light.(b,m) -1.0 ls-medium.(b,m) -1.0 ls-heavy.(b,m) -1.0 hs-light.(b,m) -1.0 hs-medium.(b,m) -1.0 hs-heavy.(b,m) -1.0 ngl.(b,m) -1.0 ls-feed.b .35 .50 .68 -1.0 .99 ls-feed.m .34 .49 .67 -1.0 .99 hs-feed.b .38 .48 .66 -1.0 -1.0 hs-feed.m .38 .47 .65 -1.0 -1.0 gasoline.b .20 .96 .67 .61 gasoline.m .20 .96 .36 .25 distillat.b .28 .25 .20 .26 .23 .18 .07 .02 distillat.m .28 .25 .20 .26 .23 .18 .18 .10 naphtha.b .35 .23 .10 .33 .27 .14 .80 -1.0 .04 .06 naphtha.m .35 .23 .10 .33 .27 .14 .80 -1.0 .03 .04 ls-resid.b .23 ls-resid.m .42 hs-resid.b .30 hs-resid.m .60 Table tr(c,pt) transfer processes t-gas t-nap t-lsr t-hsr gasoline -1.0 distillat 1.0 .93 naphtha -1.0 ls-feed -1.0 hs-feed -1.0 ls-resid 1.0 hs-resid 1.0 Parameter loss(p,l) process losses ; loss(p,l) = sum(c, a(c,l,p)); Display loss; $Eject Table b(m,p) capacity utilization matrix d-lsl d-lsm d-lsh d-hsl d-hsm d-hsh ngl reform ls-hc hs-hc desulf p-still 1 1 1 1 1 1 ngl 1 reformer 1 he-conv 1 1 desulf 1 Table k(m,l) initial capacities (mbd) b m p-still 50.5 7.5 ngl 3.4 reformer 7.1 .8 he-conv 7.3 2.9 desulf 2.7 .3 Parameters hecr(l,p) heavy ends conversion restriction / b.ls-hc -.83, (b,m).hs-hc 1.0 / hecc(l) heavy ends conversion capacity (mbd) / b 3.9, m 2.5 / trb(pt) transfer bounds (mbd) / t-gas 1.7, t-nap 1.9, (t-lsr,t-hsr) inf / trc(pt) transfer costs ($ per b) / t-gas -.3 / mcpe(c) imports from cpe + drawdowns (mbd) / hs-light .7, distillat .5, hs-resid .1 / Table crd(cr,*) crude oil data limit price * (mbd) ($/b) ls-light 13.6 32.0 ls-medium 1.1 32.0 ls-heavy 1.0 32.0 hs-light 16.2 32.0 hs-medium 8.9 32.0 hs-heavy 4.4 32.0 ngl 3.1 32.0 Table pc(l,p) process cost (us$ per barrel) d-lsl d-lsm d-lsh d-hsl d-hsm d-hsh ngl reform ls-hc hs-hc desulf b .45 .45 .45 .50 .50 .50 .41 .27 .32 .9 m .50 .50 .50 .55 .55 .55 .50 .45 .28 1.0 $Eject Table ddat(cf,*) demand data ref-q ref-p ref-t elas * (mbd) ($/b) ($/b) gasoline 12.8 45.0 0.0 -.20 distillat 13.8 41.0 0.0 -.20 naphtha 8.3 43.0 0.0 -.20 ls-resid 4.2 35.3 0.0 -.30 hs-resid 8.6 31.0 0.0 -.30 Parameters dema(cf) demand parameter a demb(cf) demand parameter b ; demb(cf) = 1/ddat(cf,"elas") + 1; dema(cf) = ddat(cf,"ref-p")/demb(cf)/ddat(cf,"ref-q")**(demb(cf)-1); Display dema,demb,ddat; Variables z(p,l) process level (mbd) u(c) supply of crude (mbd) w(pt) transfer activities (mbd) xf(c) shipment of final products (mbd) pcost production cost (mill $ per day) scps consumers and producers surplus (mill $ per day) positive variables z, u, w, xf; Equations mb(c) material balance (mbd) cc(m,l) capacity constraint (mbd) ccr(l) capacity restriction - heavy ends (mbd) pcdef production cost definition (mill $ per day) dcps definition of surplus (mill $ per day) ; mb(c).. mcpe(c) +sum((p,l), a(c,l,p)*z(p,l)) + u(c)$cr(c) + sum(pt, tr(c,pt)*w(pt)) =g= xf(c)$cf(c); cc(m,l).. sum(p, b(m,p)*z(p,l)) =l= k(m,l); ccr(l).. sum(p, hecr(l,p)*z(p,l)) =l= hecc(l); pcdef.. pcost =e= sum((p,l), pc(l,p)*z(p,l)) + sum(pt, trc(pt)*w(pt)) + sum(cr, crd(cr,"price")*u(cr)); dcps.. scps =e= sum(cf, dema(cf)*xf(cf)**demb(cf) - ddat(cf,"ref-t")*xf(cf)) - pcost ; u.up(cr) = crd(cr,"limit"); w.up(pt) = trb(pt); Model refnlp world ref model nlp / mb,cc,ccr,pcdef,dcps / reflp world ref model lp / mb,cc,ccr,pcdef / ; xf.fx(cf) = ddat(cf,"ref-q"); Solve reflp minimizing pcost using lp ; xf.lo(cf) = 2; xf.up(cf) = +inf; Solve refnlp maximizing scps using nlp ;