$TITLE MRSTCTOY: Static Multi-Region Toy (3x4) Model
$OFFSYMLIST OFFSYMXREF OFFUPPER OFFLISTING
*
*Data by                   : Xinshen Diao, USDA/ERS
*                                 and U of Minnesota
*Programming by            : Erinc Yeldan, Bilkent U
*
*
*##########################################################
* Model Notes:

*The model is a toy version of the Multi-Region Dynamic
*Modeling Project constructed to study issues of global
*food security, trade policy and agricultural growth.

*The production technology is CES with ag-land,
*labor and capital as primary inputs. Leontieff intermediates.
*Switch to Cobb-Douglas is possible.

*Consumption demand functions follow Cobb-Douglas preferences.

*Composite good elasticities are the same across commodity use
*and source of import origin

*Composite goods follow CES in imports and CET in exports.

*###########################################################
 SET k       countries /poor, rich, minc/
     nref(k) non-reference countries /poor, minc/
     ref(k)  reference country       / rich /
 
     f       factors /lnd, lab, cap/
 
     i       sectors / agr, ind, mac, ser /

     ilst(i) last i for calibration shares /ser/

     TPER      Time periods /1*100/
     t(TPER)   Current time period

         ;

* ref(k) = NOT nref(k) ;

 Alias (k,l,cty1) ;
 Alias (i,j) ;
 Alias (f,ff) ;

 SET  PT(k,l)   Trading partners
             /  poor. (rich,minc)
                rich. (poor,minc)
                minc. (poor,rich) /
      IE1(i,k,l)  export index
     ;
 

PARAMETER
 AC(I,K)      ARMINGTON FUNCTION SHIFT PARAMETER
 AT(I,K)      CET FUNCTION SHIFT PARAMETER
 AX(I,K)      SHIFT PARAMETER IN PROD FUNC
 BC(I,K,L)    ARMINGTON FUNCTION SHARE PARAMETER
 BT(I,K,L)    CET FUNC SHARE PARAMETER
 BX(I,F,K)    PROD FUNCTION SHARE PARAMETER
 CLES(I,K)    SECTORAL PRIVATE CONSUMPTION SHARES
 GLES(I,K)    SECTORAL GOVERNMENT CONSUMPTION SHARES
 ILES(I,K)    SECTORAL INVESTMENT DEMAND SHARES
 PWT(i,k)     Weights for price index
 RHOC(I,K)    ARMINGTON FUNC EXPONENT
 RHOT(I,K)    CET FUNC EXPONENT
 RHOP(I,K)    PRODUCTION FUNCTION EXPONENT
 savrat(k)    Saving rate

*#GOVERNMENT POLICY VARIABLES
TP(I,k)       INDIRECT  PRODUCER TAX RATE
TM(I,k,l)     TARIFF RATE
TE(I,k,l)     EXPORT TAX RATE (SUBSIDY IF NEGATIVE)
tq(I,k)       SALES TAX RATE ON THE COMPOSITE GOOD
TY(k)         INCOME TAX RATE

*DUMMIES TO HOLD INITIAL DATA
    CD0(i,k)      Initializing private consumption demand
    D0(i,k)       initializing domestic component of demand
    E0(i,k,l)     initializing exports
    FSAV0(k,l)    Initializing Bilateral Current Account Bal
*foreign savings OF k FROM l
    FBAL0(k)      Initializing Current Account Bal
    GD0(i,k)      Initializing Government Consumption
    GR0(k)        Initializing Government Revenue
    M0(i,k,l)     initializing imports
    Q0(i,k)       Initializing composite good in aggregate demand
    PDD0(i,k)     Initializing domestic price
    PED0(i,k,l)   Price of Exported Good including subsidy
    PMD0(i,k,l)   Price of Imported Good including tariff
    PQ0(i,k)      Initializing composite good price
    PQT0(i,k)     Price of Domestic composite Good including tax
    PV0(i,k)      Initializing value added (net) price
    PWE0(i,k,l)   Initializing export price FROM k TO l
    PWM0(i,k,l)   Initializing import price OF k FROM l
    PX0(i,k)      Initializing domestic production price
    SAV0(K)       Initializing domestic savings
    xs0(i,k)      Initializing value of production
    YHH0(K)       Initializing private grossincome (inclusive of ty)

   FDSC0(i,f,k)   factor demand
   FS0(f,k)       factor supply
   WF0(f,k)       initializing factor price
   WFDIST0(i,f,k) factor price sectoral proportionality constants ( 1 here)
   YFCTR0(f,k)    total factor income of f
   YFSECT0(i,k)   total expenditures on factors in sector i
 
* welfare
 CLIV0(k)          Cost of Living Index
 UTIL0(k)          Base Utility
       ;
 

*##The following data is generated by the file MRSMSAM
*  in directory MRSMDATA
 

TABLE EXPORT(i,k,l) Bilateral Trade Flows from K to L

                POOR        RICH        MINC

AGR.POOR               18212.300    5193.120
AGR.RICH   10219.200               59868.900
AGR.MINC    4216.560   66036.500
IND.POOR               57819.200   11918.200
IND.RICH   31478.200              203044.000
IND.MINC   21853.000  331757.000
MAC.POOR                3867.180    2865.810
MAC.RICH   43397.400              321958.000
MAC.MINC    9117.120  160445.000
SER.POOR               27608.200    5720.890
SER.RICH   28996.100              186555.800
SER.MINC    6982.680  158379.300
  ;
 
 

TABLE VDM(i,k)   Domestic sales of commodity i in region k
 
           POOR        RICH        MINC

AGR  317710.961 2747098.630 1276568.790
IND  251794.190 6443389.300 1880966.300
MAC   81868.980 3316059.400  543727.880
SER  476720.692 2.046913E+7 3459367.200
    ;
 

TABLE FD0(i,f,k)   FACTOR DEMANDS

                  POOR        RICH        MINC

AGR.LND      32852.300   81717.000  118972.000
AGR.CAP     366317.028 3069936.023 1401895.867
AGR.LAB      96358.400  528565.000  261004.000
IND.CAP     457887.539 8240723.235 3339347.089
IND.LAB      33304.000 1327780.000  282870.000
MAC.CAP     104440.476 3942454.066  649873.501
MAC.LAB      12205.800  988920.000  112676.000
SER.CAP     943274.957 3.987889E+7 6743783.543
SER.LAB     154940.000 7472250.000 1035470.000
   ;
 

TABLE FCTRY0(i,f,k)  Producer expend on f in reg k

               POOR        RICH        MINC

AGR.LND   32852.300   81717.000  118972.000
AGR.LAB   96358.400  528565.000  261004.000
IND.LAB   33304.000 1327780.000  282870.000
MAC.LAB   12205.800  988920.000  112676.000
SER.LAB  154940.000 7472250.000 1035470.000
AGR.CAP   54449.600  378247.000  212451.000
IND.CAP   68060.700 1015340.000  506063.000
MAC.CAP   15524.100  485750.000   98485.400
SER.CAP  140209.000 4913480.000 1021990.000
  ;
 

TABLE IO(i,j,k) Intermediate input demand flows

               POOR        RICH        MINC

AGR.AGR   98085.204 1068152.612  473249.971
AGR.IND   19480.446  102382.135   74490.397
AGR.MAC     296.628    5824.409    2580.07957
AGR.SER   14052.647  298544.814   75476.2600018

IND.AGR   22815.170  282819.480  108468.636
IND.IND  116588.179 2462276.688  895883.357
IND.MAC   19721.213  742406.285  152500.9033
IND.SER   69181.843 1856907.669  513611.4540327

MAC.AGR    3064.693   23409.404   10543.368
MAC.IND    9567.452  102857.170   52942.764
MAC.MAC   21979.188  697278.360  211449.334
MAC.SER   24637.661  522256.841  142590.2910099

SER.AGR   29784.150  488428.089  127385.805
SER.IND   49085.071 1345652.907  311884.239
SER.MAC   12210.546  699832.573   99814.565
SER.SER   89992.733 5292204.240  725410.266
   ;
 
 

TABLE ID0(i,k) Investment demand by ORIGIN in region k
 
          POOR        RICH        MINC

AGR     4711.046    7076.690   13887.356
IND     6077.997  199527.503   31382.088
MAC    51097.118 1287785.914  329900.320
SER    71475.059 2362299.076  616335.471
   ;
 

TABLE VPA(i,k)  Private household expenditure on i in k

           POOR        RICH        MINC

AGR  200105.773 1399542.251  746513.530
IND   83216.184 1295424.499  435002.292
MAC   33008.172  663978.700  182910.396
SER  171615.857 8048812.690 1249961.951
   ;
 

TABLE VGA(i,k)  Government expenditure on i in region k

           POOR        RICH        MINC

AGR     698.020   15048.802    5720.168
IND    3397.051   94205.178   39913.721
MAC    3259.821  215028.232   24698.423
SER   92939.807 2834408.910  545805.245
  ;
 

 
PARAMETER HHSAV(K)   TOTAL PRIVATE SAVINGS

  / POOR  110305.860
    RICH 3918082.103
    MINC  953167.674  /  ;
 
 

TABLE EXPTAX(i,k,l)  EXPORT TAX IN REGION k applied to l

                POOR        RICH        MINC

AGR.POOR                -958.800    -147.130
AGR.RICH    2473.400               12678.300
AGR.MINC    -122.790    -968.400
IND.POOR               -5735.000    -391.300
IND.RICH       0.400                  13.000
IND.MINC    -144.300  -18024.000
MAC.POOR                -110.380     -54.440
MAC.RICH       5.900                  71.000
MAC.MINC     -34.060   -4709.000
SER.POOR                -728.400     -94.230
SER.RICH      27.700                 160.000
SER.MINC     -20.810    -835.000
  ;
 

TABLE TARIFF(i,k,l)   IMPORT TARIFFS ON GOOD I
*CAUTION: on trade flows FROM K TO L,
*Do NOT forget to realign TM in calibration
 
               POOR        RICH        MINC

AGR.POOR                6744.600    1524.830
AGR.RICH    1521.300               22723.200
AGR.MINC     805.230   25095.100
IND.POOR                3487.700    1929.400
IND.RICH    7131.200               36963.000
IND.MINC    5378.900   24034.000
MAC.POOR                 215.550     556.210
MAC.RICH    7674.200               60768.000
MAC.MINC    1954.620   10969.000
SER.RICH                               1.000
   ;
 

TABLE PTAX(i,k) Value of producer tax on i in k

           POOR        RICH        MINC

AGR    2600.933  -19000.155   33655.880
IND   19319.442  321636.000   92274.244
MAC    6499.676   61480.073   31040.658
SER   16213.270  329223.736  109325.099
  ;
 

TABLE DOMTAX(i,k)  TAXES ON DOMESTIC SALES on i in k

           POOR        RICH        MINC

AGR    2956.514   33384.583   26038.921
IND    3362.147   73080.102   41941.550
MAC    2601.784   21038.491   25158.996
SER    4403.749  416523.285   24952.651
   ;
 

PARAMETER INCTAX(k) INCOME TAXES IN K
   /  POOR  9652.054
      RICH  1866208.757
      MINC  82425.558  /
    ;
 

TABLE  SIGMA(I,K) ARMINGTON CES SUBSTITUTION ELASTICITY
           POOR        RICH        MINC

AGR        2.00        2.00        2.00
IND        2.00        2.00        2.00
MAC        2.00        2.00        2.00
SER        2.00        2.00        2.00
  ;
 
 

TABLE OMEGA(I,K)  CET EXPORT TRANSFORMATION ELASTICITY
           POOR        RICH        MINC
AGR        2.00        2.00        2.00
IND        2.00        2.00        2.00
MAC        2.00        2.00        2.00
SER        2.00        2.00        2.00
  ;
 

TABLE RHOP(I,K)  PRODUCTION FUNCTION ELASTICITY
           POOR        RICH        MINC
AGR        2.00        2.00        2.00
IND        2.00        2.00        2.00
MAC        2.00        2.00        2.00
SER        2.00        2.00        2.00
  ;
 
 
 

*###MODEL CALIBRATION

*TRADE FLOWS, TRADE PRICES
E0(i,k,l) = EXPORT(i,k,l) ;
M0(i,k,l) = E0(i,l,k) ;

*set export index
IE1(i,k,l)$E0(i,k,l)     = yes ;

*## INITIALIZE PRICES
* construct trade prices such that the value of exports
*equals the other country's imports
  pwe0(i,k,l)$pt(k,l)    = 1.0 ;
  pwe0(i,k,k)            = 0.0 ;
  pwm0(i,k,l)            = pwe0(i,l,k) ;
  PED0(I,K,K)            = 0 ;
  PMD0(I,K,K)            = 0 ;

*trade policy instruments
*Data on EXPTAX is initially negative:
te(i,k,l)         = 0.0 ;
te(I,k,l)$PT(k,l) = - EXPTAX(I,k,l)/EXPORT(I,k,l) ;
ped0(i,k,l) = pwe0(i,k,l)*(1 - te(i,k,l)) ;

tm(i,k,l)         = 0.0 ;
*OBSERVE that data on tariffs follow flows from origin to destination
*as in export flows. CONVERT it to destination FROM origin flows
*as in imports
        TARIFF(i,k,l) = TARIFF(i,l,k) ;
        tm(I,k,l)$PT(k,l) = TARIFF(i,k,l)/(PWM0(I,K,L)*M0(I,K,L)) ;
        pmd0(i,k,l) = pwm0(i,k,l)*(1 + tm(i,k,l)) ;
 

pdd0(i,k)   = 1.0 ;
px0(i,k)    = 1.0 ;
pq0(i,k)    = 1.0 ;

xs0(I,K) = ( SUM(j, IO(j,I,k))
        + SUM(f, FCTRY0(I,f,k)) + PTAX(I,k) )/ PX0(I,k) ;
 

D0(i,k) = (xs0(i,k)*PX0(i,k) - SUM(l, E0(i,k,l)*PED0(i,k,l)) )
        / PDD0(i,k) ;

tq(i,k)   = DOMTAX(I,k)
        / (PDD0(i,k)*D0(i,k) + SUM(l, M0(i,k,l)*PMD0(i,k,l)) ) ;

pqt0(i,k) = (1+tq(i,k))*PQ0(i,k) ;
 
Q0(i,k) = (PDD0(i,k)*D0(i,k) + SUM(l, M0(i,k,l)*PMD0(i,k,l))
       + DOMTAX(i,k)) / PQT0(i,k) ;
 
parameter chkdomtax(i,k) ;
chkdomtax(i,k) = tq(i,k)*pq0(i,k)*Q0(i,k) - DOMTAX(i,k)  ;
display chkdomtax ;
 
DISPLAY PWE0, PWM0, PMD0, PED0, PQ0, PDD0, pqt0 ;
 

*TRADE BALANCE
  FSAV0(k,l)   = SUM(i, PWM0(i,k,l)*M0(i,k,l))
                 - SUM(i, PWE0(i,k,l)*E0(i,k,l)) ;
  FBAL0(k)     = SUM(l, FSAV0(k,l) ) ;

DISPLAY M0, xs0, Q0, D0, FSAV0, FBAL0 ;
 

*## CALIBRATE CET and CES TRADE AGGREGATION FUNCTIONS
*## CET Composite of Exports and Domestic Good

 rhoc(i,k)              = (1/SIGMA(i,k)) - 1;
 rhot(i,k)              = (1/OMEGA(i,k)) + 1;

PARAMETER DENOM2(i,k)  denominator in calibration program ;

DENOM2(i,k)         = SUM(cty1$E0(i,k,cty1),
                      PED0(i,k,cty1)*E0(i,k,cty1)**(1-RHOT(i,k)) ) +
                      PDD0(i,k)*D0(i,k)**(1-RHOT(i,k)) ;

BT(i,k,l)$E0(i,k,l) = (PED0(i,k,l)*E0(i,k,l)**(1-RHOT(i,k)) )
                       /DENOM2(i,k) ;

BT(i,k,l)$(E0(i,k,l) EQ 0 ) = 0 ;
 
AT(i,k)             = xs0(i,k)/( (SUM(l $E0(i,k,l), bt(i,k,l)*E0(i,k,l)
                      **(RHOT(i,k))) +(1-SUM(l, bt(i,k,l)))*D0(i,k)
                      **(RHOT(i,k)))**(1/RHOT(i,k)) )  ;
 
parameter chkxs0CET(i,k)
          chkpx0(i,k)
          ;

chkpx0(i,k) = (1/AT(i,k))* (SUM(l $E0(i,k,l),bt(i,k,l)**(-OMEGA(i,k))
   *PEd0(i,k,l)**(OMEGA(i,k)+1) )
        + (1-SUM(l, bt(i,k,l)))**(-OMEGA(i,k))
   *Pdd0(i,k)**(OMEGA(i,k)+1) )**(1/(1+OMEGA(i,k))) - px0(i,k)  ;

chkxs0CET(i,k) = AT(i,k)*
       (SUM(l,bt(i,k,l)*E0(i,k,l)$E0(i,k,l)
             **RHOT(i,k)) +(1-SUM(l, bt(i,k,l)))*D0(i,k)
             **RHOT(i,k))**(1/RHOT(i,k)) - xs0(i,k) ;
 
display chkxs0CET, chkpx0 ;

 
DISPLAY DENOM2, AT, BT ;
 
 

*## Armington CES Composite of Domestic and Imported Variety
* BC is coefficient on imports, the coefficient on domestic
* consumption is 1 - sum of BC

 PARAMETER DENOM1(i,k)  denominator in BC equation ;

 DENOM1(i,k)       = SUM(cty1$M0(i,k,cty1),
                     PMD0(i,k,cty1)*M0(i,k,cty1)**(1+RHOC(i,k)) ) +
                     pdd0(i,k)*D0(i,k)$D0(i,k)**(1+RHOC(i,k)) ;

 BC(i,k,l)$M0(i,k,l)  = (PMD0(i,k,l)*M0(i,k,l)**(1+RHOC(i,k)) )
                          / DENOM1(i,k) ;
 

 BC(i,k,l)$(M0(i,k,l) EQ 0 ) = 0 ;

 AC(i,k)           = Q0(i,k)/( (SUM(l$M0(i,k,l),
                     BC(i,k,l)*M0(i,k,l)**(-RHOC(i,k))) +
                     (1-SUM(l, BC(i,k,l)))*D0(i,k)**(-RHOC(i,k)))
                     **(-1/RHOC(i,k)) )  ;

parameter chkq0CES(i,k)
          chkpq0(i,k) ;

chkq0CES(i,k) = AC(i,k)* (SUM(l$M0(i,k,l),
             BC(i,k,l)*M0(i,k,l)**(-RHOC(i,k))) +
             (1-SUM(l, BC(i,k,l)))*D0(i,k)**(-RHOC(i,k)))
             **(-1/RHOC(i,k)) - Q0(i,k) ;

chkpq0(i,k) = (1/AC(i,k)) * (SUM(l$M0(i,k,l),
             BC(i,k,l)**SIGMA(i,k)*PMD0(i,k,l)**(1-SIGMA(i,k))) +
             (1-SUM(l, BC(i,k,l)))**SIGMA(i,k)*PDD0(i,k)
           **(1-SIGMA(i,k))) **(1/(1-SIGMA(i,k))) - pq0(i,k) ;
 
display chkq0CES, chkpq0 ;
 
DISPLAY DENOM1, AC, BC ;
 

*## INITIALIZE FACTOR MARKETS
   FDSC0(i,f,k)   = FD0(i,f,k)   ;
   FS0(f,k)       = SUM(i, FDSC0(i,f,k)) ;
   YFCTR0(f,k)    = SUM(i, FCTRY0(i,f,k)) ;
   YFSECT0(i,k)   = SUM(f, FCTRY0(i,f,k)) ;
   WF0(f,k)       = YFCTR0(f,k)/FS0(f,k) ;
   WFDIST0(i,f,k) $FDSC0(i,f,k)
                  = (FCTRY0(i,f,k)/FDSC0(i,f,k))/WF0(f,k) ;
   WFDIST0(i,f,k) $(FDSC0(i,f,k) = 0) = 1.0 ;
 
DISPLAY FS0, YFCTR0, YFSECT0, WF0, WFDIST0 ;
 

*INTERMEDIATE INPUT OUTPUT COEFFICIENTS, value added, taxes
*CONVERT NOMINAL INPUT OUTPUT FLOWS INTO REAL QUANTITY FLOWS
IO(i,j,k) = IO(i,j,k)/pqt0(i,k) ;
 

PARAMETER a(i,j,k) INPUT*OUTPUT COEFFICIENTS  ;
a(i,j,k) = IO(I,j,K)/xs0(j,K) ;

tp(i,k)  = PTAX(i,k)/(px0(i,k)*xs0(i,k)) ;
PV0(I,k) = PX0(I,k)*(1-tp(I,k)) - SUM(J, a(j,i,k)*Pqt0(J,k) )  ;

PARAMETER chkpvfcty1(i,k)
          chkpvfcty2(i,k) ;
chkpvfcty1(i,k) = PV0(i,k)*xs0(i,k)-YFSECT0(i,k) ;
chkpvfcty2(i,k) = PV0(i,k)*xs0(i,k)
            - SUM(f, WF0(f,k)*WFDIST0(i,f,k)*FDSC0(i,f,k) ) ;

DISPLAY chkpvfcty1, chkpvfcty2 ;
DISPLAY a, pv0 ;

PARAMETER chkx0prd(i,k) ;
*$ontext
*## CES PRODUCTION FUNCTION FOR AN ARBITRARY NUMBER OF ARGUMENTS
*## get values for BX from the producer's cost minimization problem
*## get AX from the constraint

rhop(i,k)              = (1/RHOP(i,k)) - 1;

BX(i,f,k)$FDSC0(i,f,k) = ( WFDIST0(i,f,k)*WF0(f,k)*(FDSC0(i,f,k))**
                         (1 + RHOP(i,k)) )/SUM(ff, WFDIST0(i,ff,k)
                         *WF0(ff,k)*(FDSC0(i,ff,k))**(1+RHOP(i,k)) ) ;

BX(i,f,k)$(FDSC0(i,f,k) EQ 0) = 0.0 ;

AX(i,k)                 = xs0(i,k)/( SUM(f$(FDSC0(i,f,k)),
                        BX(i,f,k)*FDSC0(i,f,k)
                        **(-RHOP(i,k))) )**(-1/RHOP(i,k));
 
 

chkx0prd(i,k)  =  AX(i,k)*( SUM(f$(FDSC0(i,f,k)),
                  BX(i,f,k)*FDSC0(i,f,k)
                **(-RHOP(i,k))) )**(-1/RHOP(i,k)) - xs0(i,k) ;
display chkx0prd ;
display BX, AX ;
*$offtext

$ontext
*## COBB-DOUGLAS PRODUCTION FUNCTION

 BX(i,f,k)           =  (WFDIST0(i,f,k)*WF0(f,k)*FDSC0(i,f,k))
                          /YFSECT0(i,k) ;
 AX(i,k)             = xs0(i,k)/PROD(f,FDSC0(i,f,k)**BX(i,f,k)) ;

chkx0prd(i,k)  = AX(i,k)*PROD(f,FDSC0(i,f,k)**BX(i,f,k) )-xs0(i,k) ;
display chkx0prd ;
 DISPLAY BX, AX ;
$offtext
 
 

*##INCOME GENERATION, SAVINGS, INVESTMENT PARAMETERS

YHH0(k) = SUM(f,  SUM(i,
         WF0(f,k)*WFDIST0(i,f,k)*FDSC0(i,f,k) ))  ;
ty(k)   = INCTAX(k)/YHH0(k) ;

SAV0(k) = SUM(i, ID0(i,k)) - FBAL0(k) ;
SAVRAT(k) = SAV0(k)/YHH0(k) ;

PARAMETER chkSAV(k) ;
chkSAV(k) = savrat(k)*yhh0(k) - HHSAV(k) ;
DISPLAY chksav ;
DISPLAY savrat ;
 

GR0(k)       = SUM((l,i), tm(i,k,l)*PWM0(i,k,l)*M0(i,k,l))
             + SUM(i,     tq(i,k)*PQ0(i,k)*Q0(i,k))
             + SUM((l,i), te(i,k,l)*PWE0(i,k,l)*E0(i,k,l))
             + SUM(i,     tp(i,k)*px0(i,k)*xs0(i,k) )
             + ty(k)*YHH0(k)   ;

display yhh0, gr0 ;

*## INITIALIZE CONSUMPTION SHARES AND WELFARE PARAMETERS
PWT(i,k) $(not ilst(i))  = Q0(i,k)/SUM(j, Q0(j,k)) ;
PWT(ilst,k)              = 1-SUM(i $(not ilst(i)), PWT(i,k)) ;

CLES(i,k) $(not ilst(i)) = VPA(i,k)/SUM(j, VPA(j,k)) ;
CLES(ilst,k)             = 1-SUM(i $(not ilst(i)), CLES(i,k)) ;
CD0(i,k)     = CLES(i,k)*(1-ty(k)-savrat(k))*YHH0(k)/pqt0(i,k) ;

GLES(i,k) $(not ilst(i)) = VGA(i,k)/SUM(j, VGA(j,k)) ;
GLES(ilst,k)             = 1-SUM(i $(not ilst(i)), GLES(i,k)) ;
GD0(i,k)     = GLES(i,k)*GR0(k)/pqt0(i,k) ;

PARAMETER chkcd0(i,k)
          chkgd0(i,k) ;
chkcd0(i,k) = pqt0(i,k)*CD0(i,k)-VPA(i,k) ;
chkgd0(i,k) = pqt0(i,k)*GD0(i,k)-VGA(i,k) ;
DISPLAY chkcd0, chkgd0 ;

CLIV0(k)          = PROD(i, PQT0(i,k)**CLES(i,k)) ;
UTIL0(k)          = PROD(i, Q0(i,k)**CLES(i,k)) ;

ILES(i,k) $(not ilst(i)) = ID0(i,k)/SUM(j, ID0(j,k)) ;
ILES(ilst,k)             = 1-SUM(i $(not ilst(i)), ILES(i,k)) ;
ID0(i,k)     = ILES(i,k)*(SAV0(k)+FBAL0(k))/pqt0(i,k)
 

DISPLAY CLES,ILES, CLIV0, UTIL0 ;
 

*display all taxes
DISPLAY TM, TE, tq, TP, TY ;
 

*##CHECK SAM AFTER CALIBRATION##

*=============construction of SAM=====================
SETS

  SI / ACT,COMD,FLD,FLB,FK,PH,GV,KA,ROW,ITR,TOTAL/
  SIT(SI) /TOTAL/
  S1(SI) / GV,PH,KA,ROW,ITR /
  SSI(S1) / ROW,ITR /
  SI1(SI)
    ;

  ALIAS(SI1,SI2);

  PARAMETER

  poorSAM(SI,SI)     SOCIAL ACCOUNTING MATRIX
  richSAM(SI,SI)     SOCIAL ACCOUNTING MATRIX
  mincSAM(SI,SI)     SOCIAL ACCOUNTING MATRIX

  poorRES(SI)     RESIDUAL OF REVENUE & EXPENDITURE, SHOULD ZERO
  richRES(SI)     RESIDUAL OF REVENUE & EXPENDITURE, SHOULD ZERO
  mincRES(SI)     RESIDUAL OF REVENUE & EXPENDITURE, SHOULD ZERO
          ;

  SI1(SI) = NOT  SIT(SI);
 

* FIRST BLOCK: ACTIVITIES. DOMESTIC SUPPLY,EXPORT TAX,
* EXPORTS AT MP
* EXPORTS FOR INTERNATIONAL TRANSPORTATION.

  poorSAM("ACT","COMD") = SUM(I, pdd0(i,"POOR")*D0(I,"POOR"));

  poorSAM("ACT","GV")  = - SUM((l,i),
        te(i,"POOR",l)*PWE0(i,"POOR",l)*E0(i,"POOR",l)) ;

  poorSAM("ACT","ROW") = SUM((I,L), PWE0(i,"POOR",l)*E0(i,"POOR",l) );
 
 

* SECOND BLOCK: COMMODITIES. INTERMEDIATE DEMAND,
* HOUSEHOLD CONSUMPTION, GOVERNMENT CONSUMPTION,INVESTMENT.

  poorSAM("COMD","ACT") = SUM((j,i),
        a(j,i,"POOR")*Pqt0(J,"POOR")*XS0(i,"POOR") ) ;

  poorSAM("COMD","PH")  = SUM(I, pqt0(I,"poor")*CD0(i,"POOR") );
  poorSAM("COMD","GV")  = SUM(I, pqt0(I,"poor")*GD0(i,"POOR") );
  poorSAM("COMD","KA")  = SUM(I, pqt0(I,"poor")*ID0(i,"POOR") );
 
 

* THIRD BLOCK: VALUE ADDED
  poorSAM("FLD","ACT") = SUM(I,
      WF0("LND","POOR")*WFDIST0(i,"LND","POOR")*FDSC0(I,"LND","poor")) ;
 
  poorSAM("FLB","ACT") = SUM(I,
      WF0("LAB","POOR")*WFDIST0(i,"LAB","POOR")*FDSC0(I,"LAB","poor")) ;

  poorSAM("FK","ACT")  = SUM(I,
      WF0("CAP","POOR")*WFDIST0(i,"CAP","POOR")*FDSC0(I,"CAP","poor")) ;
 

* FOURTH BLOCK: HOUSEHOLDS. INCOME FROM FACTORS.

  poorSAM("PH","FLD") = poorSAM("FLD","ACT") ;
  poorSAM("PH","FLB") = poorSAM("FLB","ACT") ;
  poorSAM("PH","FK")  = poorSAM("FK","ACT")  ;
 
 

*FIFTH BLOCK: GOVERNMENT. INDIRECT TAX,TARIFFS,
* FACTOR TAX,CAPITAL RETURN
* HOUSEHOLD TAX,NET TRANSFER FROM GOVERNMENT.

  poorSAM("GV","PH") = ty("POOR")*YHH0("POOR")   ;

  poorSAM("GV","ACT") = SUM(I, tp(i,"POOR")*px0(i,"POOR")*xs0(i,"POOR"));

  poorSAM("GV","COMD") = SUM((I,l),
    tm(i,"POOR",l)*PWM0(i,"POOR",l)*M0(i,"POOR",l))
  + SUM(i, tq(i,"POOR")*PQ0(i,"POOR")*Q0(i,"POOR") ) ;
 
 

* SIXTH BLOCK: CAPITAL ACCOUNT. HOUSEHOLD SAVINGS,
* GOVERNMENT SAVING AND NET CAPITAL INFLOW
* (BALANCE OF TRADE + NET FOREIGN INVESTMENT)

  poorSAM("KA","PH")   = savrat("POOR")*yhh0("POOR") ;
  poorSAM("KA","ROW")  = SUM(L, FSAV0("POOR",L) ) ;
 

 
* SEVENTH BLOCK: REST OF THE WORLD. IMPORTS

  poorSAM("ROW","COMD") = SUM((I,L), PWM0(i,"POOR",l)*M0(i,"POOR",l) );
 
 

* EIGHTH BLOCK: SUM OF COLUMN. EXPENDITURE

  poorSAM("TOTAL","ACT") = SUM(SI1,poorSAM(SI1,"ACT"));
  poorSAM("TOTAL","COMD") = SUM(SI1,poorSAM(SI1,"COMD"));
  poorSAM("TOTAL","FLD") = SUM(SI1, poorSAM(SI1,"FLD"));
  poorSAM("TOTAL","FLB") = SUM(SI1, poorSAM(SI1,"FLB"));
  poorSAM("TOTAL","FK") = SUM(SI1, poorSAM(SI1,"FK"));
  poorSAM("TOTAL","PH") = SUM(SI1, poorSAM(SI1,"PH"));
  poorSAM("TOTAL","GV") = SUM(SI1, poorSAM(SI1,"GV"));
  poorSAM("TOTAL","KA") = SUM(SI1, poorSAM(SI1,"KA"));
  poorSAM("TOTAL","ROW") = SUM(SI1, poorSAM(SI1,"ROW"));

* SUM OF ROW: REVENUE

  poorSAM(SI2,"TOTAL") = SUM(SI1, poorSAM(SI2,SI1));
  poorRES(SI) = poorSAM("TOTAL",SI) - poorSAM(SI,"TOTAL");

  OPTION poorSAM:3:1:1;
  DISPLAY poorSAM;
  DISPLAY poorRES;

  PARAMETER poorSRES;
  poorSRES = SUM(SI1, poorRES(SI1));

  DISPLAY poorSRES;
 

Parameter
chkcomPOOR(i)
chkactPOOR(i)
     ;

chkcomPOOR(i) = SUM(J, a(i,J,"POOR")*Pqt0(i,"POOR")*XS0(J,"POOR") )
      + pqt0(i,"POOR")*CD0(i,"POOR")
      + pqt0(i,"POOR")*GD0(i,"POOR")
      + pqt0(i,"POOR")*ID0(i,"POOR")
- ( pdd0(i,"POOR")*D0(i,"POOR")
  + SUM(l, tm(i,"POOR",l)*PWM0(i,"POOR",l)*M0(i,"POOR",l))
  +        tq(i,"POOR")*PQ0(i,"POOR")*Q0(i,"POOR")
  + SUM(l, PWM0(i,"POOR",l)*M0(i,"POOR",l)) ) ;
 

chkactPOOR(i) = pdd0(i,"POOR")*D0(i,"POOR")
  - SUM(l, te(i,"POOR",l)*PWE0(i,"POOR",l)*E0(i,"POOR",l) )
  + SUM(L, PWE0(i,"POOR",l)*E0(i,"POOR",l) )
 -( SUM(J, a(J,i,"POOR")*Pqt0(J,"POOR")*XS0(i,"POOR") )
     + WF0("LND","POOR")*WFDIST0(i,"LND","POOR")*FDSC0(I,"LND","poor")
     + WF0("LAB","POOR")*WFDIST0(i,"LAB","POOR")*FDSC0(I,"LAB","poor")
     + WF0("CAP","POOR")*WFDIST0(i,"CAP","POOR")*FDSC0(I,"CAP","poor")
     + tp(i,"POOR")*px0(i,"POOR")*xs0(i,"POOR") ) ;
 

display chkcomPOOR , chkactPOOR ;
 

*SAM for the RICH

* FIRST BLOCK: ACTIVITIES. DOMESTIC SUPPLY,EXPORT TAX,
* EXPORTS AT MP
* EXPORTS FOR INTERNATIONAL TRANSPORTATION.

  RICHSAM("ACT","COMD") = SUM(I, pdd0(i,"RICH")*D0(I,"RICH"));

  RICHSAM("ACT","GV")  = - SUM((l,i),
        te(i,"RICH",l)*PWE0(i,"RICH",l)*E0(i,"RICH",l)) ;

  RICHSAM("ACT","ROW") = SUM((I,L), PWE0(i,"RICH",l)*E0(i,"RICH",l) );
 
 

* SECOND BLOCK: COMMODITIES. INTERMEDIATE DEMAND,
* HOUSEHOLD CONSUMPTION, GOVERNMENT CONSUMPTION,INVESTMENT.

  RICHSAM("COMD","ACT") = SUM((j,i),
        a(j,i,"RICH")*Pqt0(J,"RICH")*XS0(i,"RICH") ) ;

  RICHSAM("COMD","PH")  = SUM(I, pqt0(I,"RICH")*CD0(i,"RICH") );
  RICHSAM("COMD","GV")  = SUM(I, pqt0(I,"RICH")*GD0(i,"RICH") );
  RICHSAM("COMD","KA")  = SUM(I, pqt0(I,"RICH")*ID0(i,"RICH") );
 
 

* THIRD BLOCK: VALUE ADDED
  RICHSAM("FLD","ACT") = SUM(I,
      WF0("LND","RICH")*WFDIST0(i,"LND","RICH")*FDSC0(I,"LND","RICH")) ;
 
  RICHSAM("FLB","ACT") = SUM(I,
      WF0("LAB","RICH")*WFDIST0(i,"LAB","RICH")*FDSC0(I,"LAB","RICH")) ;

  RICHSAM("FK","ACT")  = SUM(I,
      WF0("CAP","RICH")*WFDIST0(i,"CAP","RICH")*FDSC0(I,"CAP","RICH")) ;
 

* FOURTH BLOCK: HOUSEHOLDS. INCOME FROM FACTORS.

  RICHSAM("PH","FLD") = RICHSAM("FLD","ACT") ;
  RICHSAM("PH","FLB") = RICHSAM("FLB","ACT") ;
  RICHSAM("PH","FK")  = RICHSAM("FK","ACT")  ;
 
 

*FIFTH BLOCK: GOVERNMENT. INDIRECT TAX,TARIFFS,
* FACTOR TAX,CAPITAL RETURN
* HOUSEHOLD TAX,NET TRANSFER FROM GOVERNMENT.

  RICHSAM("GV","PH") = ty("RICH")*YHH0("RICH")   ;

  RICHSAM("GV","ACT") = SUM(I, tp(i,"RICH")*px0(i,"RICH")*xs0(i,"RICH"));

  RICHSAM("GV","COMD") = SUM((I,l),
    tm(i,"RICH",l)*PWM0(i,"RICH",l)*M0(i,"RICH",l))
  + SUM(i, tq(i,"RICH")*PQ0(i,"RICH")*Q0(i,"RICH") ) ;
 
 

* SIXTH BLOCK: CAPITAL ACCOUNT. HOUSEHOLD SAVINGS,
* GOVERNMENT SAVING AND NET CAPITAL INFLOW
* (BALANCE OF TRADE + NET FOREIGN INVESTMENT)

  RICHSAM("KA","PH")   = savrat("RICH")*yhh0("RICH") ;
  RICHSAM("KA","ROW")  = SUM(L, FSAV0("RICH",L) ) ;
 

 
* SEVENTH BLOCK: REST OF THE WORLD. IMPORTS

  RICHSAM("ROW","COMD") = SUM((I,L), PWM0(i,"RICH",l)*M0(i,"RICH",l) );
 
 

* EIGHTH BLOCK: SUM OF COLUMN. EXPENDITURE

  RICHSAM("TOTAL","ACT") = SUM(SI1,RICHSAM(SI1,"ACT"));
  RICHSAM("TOTAL","COMD") = SUM(SI1,RICHSAM(SI1,"COMD"));
  RICHSAM("TOTAL","FLD") = SUM(SI1, RICHSAM(SI1,"FLD"));
  RICHSAM("TOTAL","FLB") = SUM(SI1, RICHSAM(SI1,"FLB"));
  RICHSAM("TOTAL","FK") = SUM(SI1, RICHSAM(SI1,"FK"));
  RICHSAM("TOTAL","PH") = SUM(SI1, RICHSAM(SI1,"PH"));
  RICHSAM("TOTAL","GV") = SUM(SI1, RICHSAM(SI1,"GV"));
  RICHSAM("TOTAL","KA") = SUM(SI1, RICHSAM(SI1,"KA"));
  RICHSAM("TOTAL","ROW") = SUM(SI1, RICHSAM(SI1,"ROW"));

* SUM OF ROW: REVENUE

  RICHSAM(SI2,"TOTAL") = SUM(SI1, RICHSAM(SI2,SI1));
  RICHRES(SI) = RICHSAM("TOTAL",SI) - RICHSAM(SI,"TOTAL");

  OPTION RICHSAM:3:1:1;
  DISPLAY RICHSAM;
  DISPLAY RICHRES;

  PARAMETER RICHSRES;
  RICHSRES = SUM(SI1, RICHRES(SI1));

  DISPLAY RICHSRES;
 

Parameter
chkcomRICH(i)
chkactRICH(i)
     ;

chkcomRICH(i) = SUM(J, a(i,J,"RICH")*Pqt0(i,"RICH")*XS0(J,"RICH") )
      + pqt0(i,"RICH")*CD0(i,"RICH")
      + pqt0(i,"RICH")*GD0(i,"RICH")
      + pqt0(i,"RICH")*ID0(i,"RICH")
- ( pdd0(i,"RICH")*D0(i,"RICH")
  + SUM(l, tm(i,"RICH",l)*PWM0(i,"RICH",l)*M0(i,"RICH",l))
  +        tq(i,"RICH")*PQ0(i,"RICH")*Q0(i,"RICH")
  + SUM(l, PWM0(i,"RICH",l)*M0(i,"RICH",l)) ) ;
 

chkactRICH(i) = pdd0(i,"RICH")*D0(i,"RICH")
  - SUM(l, te(i,"RICH",l)*PWE0(i,"RICH",l)*E0(i,"RICH",l) )
  + SUM(L, PWE0(i,"RICH",l)*E0(i,"RICH",l) )
 -( SUM(J, a(J,i,"RICH")*Pqt0(J,"RICH")*XS0(i,"RICH") )
     + WF0("LND","RICH")*WFDIST0(i,"LND","RICH")*FDSC0(I,"LND","RICH")
     + WF0("LAB","RICH")*WFDIST0(i,"LAB","RICH")*FDSC0(I,"LAB","RICH")
     + WF0("CAP","RICH")*WFDIST0(i,"CAP","RICH")*FDSC0(I,"CAP","RICH")
     + tp(i,"RICH")*px0(i,"RICH")*xs0(i,"RICH") ) ;
 

display chkcomRICH , chkactRICH ;
 

*SAM for the MINC

* FIRST BLOCK: ACTIVITIES. DOMESTIC SUPPLY,EXPORT TAX,
* EXPORTS AT MP
* EXPORTS FOR INTERNATIONAL TRANSPORTATION.

  MINCSAM("ACT","COMD") = SUM(I, pdd0(i,"MINC")*D0(I,"MINC"));

  MINCSAM("ACT","GV")  = - SUM((l,i),
        te(i,"MINC",l)*PWE0(i,"MINC",l)*E0(i,"MINC",l)) ;

  MINCSAM("ACT","ROW") = SUM((I,L), PWE0(i,"MINC",l)*E0(i,"MINC",l) );
 
 

* SECOND BLOCK: COMMODITIES. INTERMEDIATE DEMAND,
* HOUSEHOLD CONSUMPTION, GOVERNMENT CONSUMPTION,INVESTMENT.

  MINCSAM("COMD","ACT") = SUM((j,i),
        a(j,i,"MINC")*Pqt0(J,"MINC")*XS0(i,"MINC") ) ;

  MINCSAM("COMD","PH")  = SUM(I, pqt0(I,"MINC")*CD0(i,"MINC") );
  MINCSAM("COMD","GV")  = SUM(I, pqt0(I,"MINC")*GD0(i,"MINC") );
  MINCSAM("COMD","KA")  = SUM(I, pqt0(I,"MINC")*ID0(i,"MINC") );
 
 

* THIRD BLOCK: VALUE ADDED
  MINCSAM("FLD","ACT") = SUM(I,
      WF0("LND","MINC")*WFDIST0(i,"LND","MINC")*FDSC0(I,"LND","MINC")) ;
 
  MINCSAM("FLB","ACT") = SUM(I,
      WF0("LAB","MINC")*WFDIST0(i,"LAB","MINC")*FDSC0(I,"LAB","MINC")) ;

  MINCSAM("FK","ACT")  = SUM(I,
      WF0("CAP","MINC")*WFDIST0(i,"CAP","MINC")*FDSC0(I,"CAP","MINC")) ;
 

* FOURTH BLOCK: HOUSEHOLDS. INCOME FROM FACTORS.

  MINCSAM("PH","FLD") = MINCSAM("FLD","ACT") ;
  MINCSAM("PH","FLB") = MINCSAM("FLB","ACT") ;
  MINCSAM("PH","FK")  = MINCSAM("FK","ACT")  ;
 
 

*FIFTH BLOCK: GOVERNMENT. INDIRECT TAX,TARIFFS,
* FACTOR TAX,CAPITAL RETURN
* HOUSEHOLD TAX,NET TRANSFER FROM GOVERNMENT.

  MINCSAM("GV","PH") = ty("MINC")*YHH0("MINC")   ;

  MINCSAM("GV","ACT") = SUM(I, tp(i,"MINC")*px0(i,"MINC")*xs0(i,"MINC"));

  MINCSAM("GV","COMD") = SUM((I,l),
    tm(i,"MINC",l)*PWM0(i,"MINC",l)*M0(i,"MINC",l))
  + SUM(i, tq(i,"MINC")*PQ0(i,"MINC")*Q0(i,"MINC") ) ;
 
 

* SIXTH BLOCK: CAPITAL ACCOUNT. HOUSEHOLD SAVINGS,
* GOVERNMENT SAVING AND NET CAPITAL INFLOW
* (BALANCE OF TRADE + NET FOREIGN INVESTMENT)

  MINCSAM("KA","PH")   = savrat("MINC")*yhh0("MINC") ;
  MINCSAM("KA","ROW")  = SUM(L, FSAV0("MINC",L) ) ;
 

 
* SEVENTH BLOCK: REST OF THE WORLD. IMPORTS

  MINCSAM("ROW","COMD") = SUM((I,L), PWM0(i,"MINC",l)*M0(i,"MINC",l) );
 
 

* EIGHTH BLOCK: SUM OF COLUMN. EXPENDITURE

  MINCSAM("TOTAL","ACT") = SUM(SI1,MINCSAM(SI1,"ACT"));
  MINCSAM("TOTAL","COMD") = SUM(SI1,MINCSAM(SI1,"COMD"));
  MINCSAM("TOTAL","FLD") = SUM(SI1, MINCSAM(SI1,"FLD"));
  MINCSAM("TOTAL","FLB") = SUM(SI1, MINCSAM(SI1,"FLB"));
  MINCSAM("TOTAL","FK") = SUM(SI1, MINCSAM(SI1,"FK"));
  MINCSAM("TOTAL","PH") = SUM(SI1, MINCSAM(SI1,"PH"));
  MINCSAM("TOTAL","GV") = SUM(SI1, MINCSAM(SI1,"GV"));
  MINCSAM("TOTAL","KA") = SUM(SI1, MINCSAM(SI1,"KA"));
  MINCSAM("TOTAL","ROW") = SUM(SI1, MINCSAM(SI1,"ROW"));

* SUM OF ROW: REVENUE

  MINCSAM(SI2,"TOTAL") = SUM(SI1, MINCSAM(SI2,SI1));
  MINCRES(SI) = MINCSAM("TOTAL",SI) - MINCSAM(SI,"TOTAL");

  OPTION MINCSAM:3:1:1;
  DISPLAY MINCSAM;
  DISPLAY MINCRES;

  PARAMETER MINCSRES;
  MINCSRES = SUM(SI1, MINCRES(SI1));

  DISPLAY MINCSRES;
 

Parameter
chkcomMINC(i)
chkactMINC(i)
     ;

chkcomMINC(i) = SUM(J, a(i,J,"MINC")*Pqt0(i,"MINC")*XS0(J,"MINC") )
      + pqt0(i,"MINC")*CD0(i,"MINC")
      + pqt0(i,"MINC")*GD0(i,"MINC")
      + pqt0(i,"MINC")*ID0(i,"MINC")
- ( pdd0(i,"MINC")*D0(i,"MINC")
  + SUM(l, tm(i,"MINC",l)*PWM0(i,"MINC",l)*M0(i,"MINC",l))
  +        tq(i,"MINC")*PQ0(i,"MINC")*Q0(i,"MINC")
  + SUM(l, PWM0(i,"MINC",l)*M0(i,"MINC",l)) ) ;
 

chkactMINC(i) = pdd0(i,"MINC")*D0(i,"MINC")
  - SUM(l, te(i,"MINC",l)*PWE0(i,"MINC",l)*E0(i,"MINC",l) )
  + SUM(L, PWE0(i,"MINC",l)*E0(i,"MINC",l) )
 -( SUM(J, a(J,i,"MINC")*Pqt0(J,"MINC")*XS0(i,"MINC") )
     + WF0("LND","MINC")*WFDIST0(i,"LND","MINC")*FDSC0(I,"LND","MINC")
     + WF0("LAB","MINC")*WFDIST0(i,"LAB","MINC")*FDSC0(I,"LAB","MINC")
     + WF0("CAP","MINC")*WFDIST0(i,"CAP","MINC")*FDSC0(I,"CAP","MINC")
     + tp(i,"MINC")*px0(i,"MINC")*xs0(i,"MINC") ) ;
 

display chkcomMINC , chkactMINC ;

*################################
*SCALE all quantity initial data by 1000

    CD0(i,k)      = CD0(i,k)/1000 ;
    D0(i,k)       = D0(i,k)/1000 ;
    E0(i,k,l)     = E0(i,k,l)/1000 ;
    ID0(i,k)      = ID0(i,k)/1000 ;
    FSAV0(k,l)    = FSAV0(k,l)/1000 ;
    FBAL0(k)      = FBAL0(k)/1000 ;
    GD0(i,k)      = GD0(i,k)/1000 ;
    GR0(k)        = GR0(k)/1000 ;
    M0(i,k,l)     = M0(i,k,l)/1000 ;
    Q0(i,k)       = Q0(i,k)/1000 ;
    SAV0(K)       = SAV0(k)/1000 ;
    xs0(i,k)      = XS0(i,k)/1000 ;
    YHH0(K)       = YHH0(k)/1000 ;
 
   FDSC0(i,f,k)   = FDSC0(i,f,k)/1000 ;
   FCTRY0(i,f,k)  = FCTRY0(i,f,k)/1000 ;
   FS0(f,k)       = FS0(f,k)/1000 ;
   YFCTR0(f,k)    = YFCTR0(f,k)/1000 ;
   YFSECT0(i,k)   = YFSECT0(i,k)/1000 ;
 
   UTIL0(k)       = UTIL0(k)/1000 ;
 
*##INTRODUCE scale VARIABLES SUCH THAT ALL INITIAL LEVELS OF
*  VARIABLES ARE UNITY
PARAMETER
 scPQT(i,k), scPED(i,k,l), scPMD(i,k,l),
 scPV(i,k), scQ(i,k), scDD(i,k), scE(i,k,l), scM(i,k,l), scXS(i,k),
scFDSC(i,f,k),scFCTRY(i,f,k), scFS(f,k), scCD(i,k), scGD(i,k), scID(i,k),
scINVEST(k), scINT(i,k), scYHH(k), scSAV(k), scFSAV(k,l), scFBAL(k),
scGR(k), scUTIL(k), scCLIV(k), scWF(f,k)
    ;

  scPED(i,k,l)   = PED0(i,k,l) ;
  scPMD(i,k,l)   = PMD0(i,k,l) ;
  scPV(i,k)      = PV0(i,k) ;
  scPQT(i,k)     = pqt0(i,k) ;
 
  scDD(i,k)      = D0(i,k) ;
  scM(i,k,l)     = M0(i,k,l) ;
  scE(i,k,l)     = E0(i,k,l) ;
  scXS(i,k)      = XS0(i,k) ;
  scQ(i,k)       = Q0(i,k) ;
  scCD(i,k)      = CD0(i,k) ;
  scGD(i,k)      = GD0(i,k) ;
  scID(i,k)      = ID0(i,k) ;
  scINT(i,k)     = SUM(J, a(i,J,k)*XS0(J,k) ) ;
  scFSAV(k,l)    = FSAV0(k,l) ;
  scFBAL(k)      = FBAL0(k) ;
 
  scGR(k)        = GR0(k) ;
  scYHH(k)       = YHH0(k) ;
  scSAV(k)       = SAV0(k) ;
  scINVEST(k)    = SAV0(k) + FBAL0(k)  ;
 
    scFDSC(i,f,k)   =  FDSC0(i,f,k) ;
    scFCTRY(i,f,k)  =  FCTRY0(i,f,k) ;
    scFS(f,k)       =  FS0(f,k) ;
    scWF(f,k)       =  WF0(f,k) ;
 
    scCLIV(k)       = CLIV0(k) ;
    scUTIL(k)       = UTIL0(k) ;
 

*## VARIABLE DECLARATION
VARIABLE
*Prices
    PDD(i,k)    Price of Domestic Good
    PED(i,k,l)  Price of Exported Good including tax
    PMD(i,k,l)  Price of Imported Good including tariff
    PQ(i,k)     Composite Price Index
    PQT(i,k)    Price of Composite Good including tax
    PV(i,k)     Value Added (net) Price
    PWE(i,k,l)  Export price in k to l
    PWM(i,k,l)  Import price in k from l
    PX(i,k)     Producer Price Index
    PINDEX(k)   Aggregate price index
* Factor Market Variables
    FDSC(i,f,k)   Factor Demands
    FCTRY(i,f,k)  Factor Income
    FS(f,k)       Factor Supply
    WF(f,k)       Factor Return
    WFDIST(i,f,k) Factor Differential
*Income generation and demand
    E(i,k,l)    Exports from k to l
    DD(i,k)     Domestic Demand
    M(i,k,l)    Imports to k from l
    FSAV(k,l)       Bilateral Trade Balance
    FBAL(k)         Trade Balance
    Q(i,k)          Composite Consumption
    GR(k)           Government Net Revenue
    CD(i,k)         Private Consumption
    GD(i,k)         Government Consumption
    ID(i,k)         Investment Demand by Origin
    INT(i,k)        Intermediate input demand by origin
    SAV(k)          Private Savings
    INVEST(k)       Aggergate Investment
    XS(i,k)         Composite Production
    YHH(K)          Private Gross Income
    WALRAS1(k)      Walras law variable
    WALRAS2
    WELFARE         Objective function
* Welfare Variables
    CLIV(k)         Cost of Living Index at Current Prices
    UTIL(k)         Utility
*   EV(k)           Equivalent Variation
     ;
 

*## VARIABLE INITIALIZATION
  PWM.L(i,k,l)   = 1.0 ;
  PWE.L(i,k,l)   = 1.0 ;
  PED.L(i,k,l)   = 1.0 ;
  PMD.L(i,k,l)   = 1.0 ;
  PDD.L(i,k)     = 1.0 ;
  PV.L(i,k)      = 1.0 ;
  PX.L(i,k)      = 1.0 ;
  PQ.L(i,k)      = 1.0 ;
  pqt.L(i,k)     = 1.0 ;
  PINDEX.L(k)    = 1.0 ;

  DD.L(i,k)      = 1.0 ;
  M.L(i,k,l)     = 1.0 ;
  E.L(i,k,l)     = 1.0 ;
  XS.L(i,k)      = 1.0 ;
  Q.L(i,k)       = 1.0 ;
  CD.L(i,k)      = 1.0 ;
  GD.L(i,k)      = 1.0 ;
  ID.L(i,k)      = 1.0 ;
  INT.L(i,k)     = 1.0 ;
  FSAV.L(k,l)    = 1.0 ;
  FBAL.L(k)      = 1.0 ;
 
  GR.L(k)        = 1.0 ;
  YHH.L(k)       = 1.0 ;
  SAV.L(k)       = 1.0 ;
  INVEST.L(k)    = 1.0  ;
 
    FDSC.L(i,f,k)   =  1.0 ;
    FCTRY.L(i,f,k)  =  1.0 ;
    FS.L(f,k)       =  1.0 ;
    WF.L(f,k)       =  1.0 ;
    WFDIST.L(i,f,k) =  1.0 ;

    CLIV.L(k)       = 1.0 ;
    UTIL.L(k)       = 1.0 ;

  WALRAS1.L(k)  = 0.0 ;
  WALRAS2.L     = 0.0 ;
 

*## EQUATION DECLARATION
 EQUATION
  CET(i,k)      Composite Production
  CONS(i,k)     Composite Consumption
  EXPRAT(i,k,l) Ratio of Exports to Domestic Supply
  IMPRAT(i,k,l) Ratio of Imports to Domestic Supply
  EXCH(i,k)     Composite good balance
  PEXP(i,k,l)   Price of Exported Good
  PINDEXDEF(k)  Define aggregate price level
  PIMP(i,k,l)   Price of Imported Good
  PDOM(i,k)     Price of Domestic Good
  pqtEQ(i,k)    Price of Composite Good Including Tax
  PVEQT(i,k)    Value Added price definition
  HHINC(k)      Private Income
  GREQ(k)       Government Revenue Constraint
  INTEQ(i,k)    Intermediate input demand
  CDEQ(i,k)      Private Consumption demand
  GDEQ(i,k)     Government Consumption demand
  SAVEQ(k)      Private savings
  WALRASEQ(k)   Saving Investment balance check Walras Law
  IDEQ(i,k)     Investment demand
  FBALEQ(k)     FBAL DEFINITIONS
  COMBALEQ(i,k) Commodity Balances
  BOP(k,l)      Balance of trade constraint
  TRADE1(i,k,l) Trade price consistency
  TRADE2(i,k,l) Trade quantity consistency
  TRADE3        Walras Check on FSAV sum in the world
  OBJECT      Objective function

* Factor Market Equations
  ACTIVITY(i,k)  Production Function
  PMAX(i,f,k)    First Order Conditions for Profit Max
  YFDEF(i,f,k)   Factor Income
  FMEQUIL(f,k)   Factor Market Equilibrium

* Welfare Equations
  CLIVEQ(k)       Cost of Living Index
  UTILEQ(k)       Utility
  ;
 

  CET(i,k)..      scXS(i,k)*XS(i,k) =E=
       AT(i,k)*(SUM(l$E0(i,k,l), bt(i,k,l)*
        (scE(i,K,L)*E(i,k,l))**(RHOT(i,k)))
       +(1-SUM(l, bt(i,k,l)))*(scDD(i,k)*DD(i,k))
       **(RHOT(i,k)))**(1/RHOT(i,k)) ;

  EXPRAT(i,k,l)$E0(i,k,l)..  scE(i,k,l)*E(i,k,l) =E= scDD(i,k)*DD(i,k)*
                  ( (scPED(i,k,l)*PED(i,k,l))/PDD(i,k)
                  *(1 - SUM(cty1$PT(k,cty1), BT(i,k,cty1)))
                  /bt(i,k,l) )**(1/(-1+RHOT(i,k))) ;

  CONS(i,k)..     scQ(i,k)*Q(i,k) =E= AC(i,k)*(SUM(l$M0(i,k,l),
                  BC(i,k,l)*(scM(i,k,l)*M(i,k,l))**(-RHOC(i,k)))
                 + (1- SUM(l$PT(k,l), BC(i,k,l)))*(scDD(i,k)*DD(i,k))
                 **(-RHOC(i,k)))**(-1/RHOC(i,k)) ;
 

  IMPRAT(i,k,l)$M0(i,k,l)..  scM(i,k,l)*M(i,k,l) =E= scDD(i,k)*DD(i,k)*
                       ( (pdd(i,k)/(scPMD(i,k,l)*PMD(i,k,l))*BC(i,k,l)/
                       (1 - SUM(cty1$PT(k,cty1), BC(i,k,cty1))))
                     **(1/(1+RHOC(i,k))) ) ;

  PEXP(i,k,l)..   scPED(i,k,l)*PED(i,k,l) =E=
                       PWE(i,k,l)*(1-TE(i,k,l));
 

  EXCH(i,k)..     PX(i,k)*scXS(i,k)*XS(i,k) =E=
           SUM(l, scPED(i,k,l)*PED(i,k,l)*scE(i,k,l)*E(i,k,l)) +
                PDD(i,k)*scDD(i,k)*DD(i,k);
 
  PIMP(i,k,l)..   scPMD(i,k,l)*PMD(i,k,l) =E=
                PWM(i,k,l)*(1+TM(i,k,l));

  PDOM(i,k)..     PQ(i,k)*scQ(i,k)*Q(i,k) =E=
             pdd(i,k)*scDD(i,k)*DD(i,k)
           + SUM(l, scPMD(i,k,l)*PMD(i,k,l)*scM(i,k,l)*M(i,k,l))  ;

  pqtEQ(i,k)..    scPQT(i,k)*pqt(i,k) =E= (1+tq(i,k))*PQ(i,k);

  PVEQT(i,k)..    scPV(i,k)*PV(i,k) =E= (1-tp(i,k))*PX(i,k)
                    - SUM(J, scPQT(j,k)*PQT(J,k)*a(J,i,k)) ;
 

  PINDEXDEF(k)..  PINDEX(k)  =E= SUM(i, PWT(i,k)*PQ(i,k)) ;
 

*##Production: CES Technology
* Factor Market Equations

  ACTIVITY(i,k)..     scXS(i,k)*XS(i,k) =E= AX(i,k)*
     ( (SUM(f $FDSC0(i,f,k),
     BX(i,f,k)*(scFDSC(i,f,k)*FDSC(i,f,k))**(-RHOP(i,k))) )
     **(-1/RHOP(i,k)) ) ;
 

  PMAX(i,f,k) $FDSC0(i,f,k)..
       scWF(f,k)*WF(f,k)*WFDIST(i,f,k) =E=
       scPV(i,k)*PV(i,k)*AX(i,k)* (SUM(ff$FDSC0(i,ff,k),
      BX(i,ff,k)*(scFDSC(i,ff,k)*FDSC(i,ff,k))**(-RHOP(i,k)))  )
      **((-1/RHOP(i,k)) - 1)
      *BX(i,f,k)*(scFDSC(i,f,k)*FDSC(i,f,k))**(-RHOP(i,k)-1);

$ontext
* Cobb-Douglas Technology
 ACTIVITY(i,k)..   scXS(i,k)*XS(i,k)   =E= AX(i,k)*PROD(f$BX(i,f,k),
              (scFDSC(i,f,k)*FDSC(i,f,k))**BX(i,f,k));
 
 PMAX(i,f,k) $FDSC0(i,f,k)..
      scWF(f,k)*WF(f,k)*WFDIST(i,f,k)*scFDSC(i,f,k)*FDSC(i,f,k) =E=
      scXS(i,k)*XS(i,k)*scPV(i,k)*PV(i,k)*BX(i,f,k) ;
$offtext
 

 INTEQ(i,k)..     scINT(i,k)*INT(i,k) =E=
                SUM(J, a(i,J,k)*scXS(j,k)*XS(J,k) ) ;

 YFDEF(i,f,k)..   scFCTRY(i,f,k)*FCTRY(i,f,k) =E=
         scWF(f,k)*WF(f,k)*WFDIST(i,f,k)*scFDSC(i,f,k)*FDSC(i,f,k);

 FMEQUIL(f,k)..   scFS(f,k)*FS(f,k) =E=
                SUM(i, scFDSC(i,f,k)*FDSC(i,f,k)) ;
 

 HHINC(k)..       scYHH(k)*YHH(k) =E= SUM(f, SUM(i,
     scWF(f,k)*WF(f,k)*WFDIST(i,f,k)*scFDSC(i,f,k)*FDSC(i,f,k) )) ;
 
 
 GREQ(k)..        scGR(k)*GR(k) =E=
               SUM((l,i), tm(i,k,l)*PWM(i,k,l)*scM(i,k,l)*M(i,k,l))
             + SUM(i,     tq(i,k)*PQ(i,k)*scQ(i,k)*Q(i,k))
             + SUM((l,i), te(i,k,l)*PWE(i,k,l)*scE(i,k,l)*E(i,k,l))
             + SUM(i,     tp(i,k)*px(i,k)*scXS(i,k)*XS(i,k) )
             + ty(k)*scYHH(k)*YHH(k)   ;
 

 CDEQ(i,k)..      scCD(i,k)*CD(i,k) =E=
             CLES(i,k)*(1-ty(k)-savrat(k))*scYHH(k)*YHH(k)
             /(scPQT(i,k)*PQT(i,k)) ;

 GDEQ(i,k)..      scGD(i,k)*GD(i,k) =E=
             GLES(i,k)*scGR(k)*GR(k)/(scPQT(i,k)*PQT(i,k)) ;
 

 IDEQ(i,k)..      scID(i,k)*ID(i,k) =E=
             ILES(i,k)*scINVEST(k)*INVEST(k)/(scPQT(i,k)*PQT(i,k)) ;
 
 SAVEQ(k)..       scSAV(k)*SAV(k)   =E= savrat(k)*scYHH(k)*YHH(k) ;

 WALRASEQ(k)..    scINVEST(k)*INVEST(k)  =E=
           scSAV(k)*SAV(k) + scFBAL(k)*FBAL(k) + walras1(k) ;

 
 COMBALEQ(i,k)..  scQ(i,k)*Q(i,k) =E= scCD(i,k)*CD(i,k)+
             scGD(i,k)*GD(i,k)+scID(i,k)*ID(i,k)+scINT(i,k)*INT(i,k) ;
 

 FBALEQ(k)..      scFBAL(k)*FBAL(k) =E= SUM(l, scFSAV(k,l)*FSAV(k,l)) ;
 

  BOP(k,l)..      SUM(i, PWM(i,k,l)*scM(i,k,l)*M(i,k,l)) -
                  SUM(i, PWE(i,k,l)*scE(i,k,l)*E(i,k,l))
              =E= scFSAV(k,l)*FSAV(k,l) ;
 

  TRADE1(i,k,l)$PT(k,l)..   PWM(i,k,l)  =E= PWE(i,l,k) ;

  TRADE2(i,k,l)$PT(k,l)..   scM(i,k,l)*M(i,k,l) =E= scE(i,l,k)*E(i,l,k) ;

  TRADE3..      WALRAS2 =E= SUM((k,l), scFSAV(k,l)*FSAV(k,l)) ;

 
  OBJECT..      WELFARE =E=  SUM(k, WALRAS1(k)*WALRAS1(k) ) +
                                    WALRAS2*WALRAS2   ;
 

*Welfare Equations
  CLIVEQ(k)..       scCLIV(k)*CLIV(k)  =E=
                PROD(i, (scPQT(i,k)*PQT(i,k))**CLES(i,k)) ;

  UTILEQ(k)..       scUTIL(k)*UTIL(k)  =E=
                PROD(i, (scQ(i,k)*Q(i,k))**CLES(i,k)) ;

 
 

*## CLOSURE CONDITIONS

*SR redundant equations defined
fdsc.fx(i,f,k) $(FDSC0(i,f,k)=0) = 0.0 ;

* Restrict trade prices to own country
  PWM.FX(i,k,k)       = 0.0 ;
  PWE.FX(i,k,k)       = 0.0 ;
  M.FX(i,k,k)         = 0.0 ;
  E.FX(i,k,k)         = 0.0 ;

* Make the RICH the "reference" country, with PINDEX=1.  Hence,
* BOP is measured in RICH's currency.
  PINDEX.FX(ref)      = PINDEX.L(ref) ;
*  PINDEX.FX(nref)     = PINDEX.L(nref) ;
*  CLIV.FX(k)       = CLIV0(k) ;

* Trade Closure
  FBAL.FX(nref)        = FBAL.L(nref) ;

*## Factor Markets
$ontext
Use following settings to fix sectoral factors and output
* FS.FX(f,k)          = FS.L(f,k) ;
  FDSC.FX(i,f,k)      = FDSC.L(i,f,k) ;
* WFDIST.FX(i,f,k)    = WFDIST.L(i,f,k) ;
  WF.FX(f,k)          = WF.L(f,k) ;
$offtext
*Use following settings to have mobile factors
  FS.FX(f,k)          = FS.L(f,k) ;
* FDSC.FX(i,f,k)      = FDSC.L(i,f,k) ;
  WFDIST.FX(i,f,k)    = WFDIST.L(i,f,k) ;
* WF.FX(f,k)          = WF.L(f,k) ;
 

 Options iterlim=10000,limrow=0,limcol=0, DECIMALS=3, solprint=OFF ;
  option nlp=conopt;
* option nlp=minos5;

 Model MRTRADE  Multi Regional Trade Model / ALL/ ;
 mrtrade.optfile   = 1 ;
 mrtrade.holdfixed = 1 ;
 
 

*TABLES TO DISPLAY RESULTS

SET  TEXP SIMULATION EXPERIMENTS /BASE, EXP1*EXP10/
     EXPCRT(TEXP) CURRENT EXPERIMENT
      ;
 

PARAMETER
 prSCALRES(*,TPER,TEXP)   SCALAR RESULTS for poor
 rcSCALRES(*,TPER,TEXP)   SCALAR RESULTS for rich
 mcSCALRES(*,TPER,TEXP)   SCALAR RESULTS for minc

 prSECTRES(*,I,TPER,TEXP)   SECTORAL RESULTS for poor
 rcSECTRES(*,I,TPER,TEXP)   SECTORAL RESULTS for rich
 mcSECTRES(*,I,TPER,TEXP)   SECTORAL RESULTS for minc
     ;

 
* Solve mrtrade Using NLP MAXIMIZING WELFARE ;
 SOLVE MRTRADE USING MCP ;

EXPCRT(TEXP)   = NO ;
EXPCRT("BASE") = YES ;

t(TPER)        = NO ;
t("1")         = YES ;

* STORE RESULTS IN CORRESPONDING MATRICES

prSCALRES("GDP",T,EXPCRT)     = YHH.l("poor");
prSCALRES("TOTCON",T,EXPCRT)  = SUM(I, scCD(i,"poor")*CD.L(I,"poor") )
          /SUM(I, scCD(I,"poor") ) ;
prSCALRES("HHSAVE",T,EXPCRT)  = SAV.L("poor")  ;
prSCALRES("INVTOT",T,EXPCRT)  = INVEST.L("poor") ;
prSCALRES("COSTOFLIV",T,EXPCRT) = CLIV.L("poor") ;
*prSCALRES("ER",T,EXPCRT)      = ER.L("poor") ;
prSCALRES("REALER",T,EXPCRT)  = SUM(ref, CLIV.L("POOR")/CLIV.L(ref) ) ;
prSCALRES("FBAL",T,EXPCRT)    = FBAL.L("poor")  ;
prSCALRES("UTILITY",T,EXPCRT) = UTIL.L("poor") ;

prSCALRES("GOVREV",T,EXPCRT)    = GR.L("poor")  ;
prSCALRES("IMPORTWP",T,EXPCRT)  =
     SUM((I,L), PWM.L(I,"poor",L)*scM(i,"poor",L)*M.L(I,"poor",L))
     /SUM((I,L), PWM0(I,"poor",L)*scM(I,"poor",L)) ;
prSCALRES("EXPORTWP",T,EXPCRT) =
     SUM((I,L), PWE.L(I,"poor",L)*scE(i,"poor",L)*E.L(I,"poor",L))
     /SUM((I,L), PWE0(I,"poor",L)*scE(I,"poor",L))  ;
prSCALRES("WALRAS1",T,EXPCRT) = WALRAS1.L("poor") ;

prSECTRES("PV",I,T,EXPCRT) = PV.L(I,"poor") ;
prSECTRES("PQT",I,T,EXPCRT)= PQT.L(I,"poor") ;
prSECTRES("XS",I,T,EXPCRT) = XS.L(I,"poor") ;
prSECTRES("CD",I,T,EXPCRT) = CD.L(I,"poor") ;
prSECTRES("GD",I,T,EXPCRT) = GD.L(I,"poor") ;
prSECTRES("ID",I,T,EXPCRT) = ID.L(I,"poor") ;
prSECTRES("Q",I,T,EXPCRT)  = Q.L(I,"poor") ;
 

rcSCALRES("GDP",T,EXPCRT)     = YHH.l("rich");
rcSCALRES("TOTCON",T,EXPCRT)  = SUM(I, scCD(i,"rich")*CD.L(I,"rich") )
         /SUM(I, scCD(I,"rich") ) ;
rcSCALRES("HHSAVE",T,EXPCRT)  = SAV.L("rich")  ;
rcSCALRES("INVTOT",T,EXPCRT)  = INVEST.L("rich") ;
rcSCALRES("COSTOFLIV",T,EXPCRT) = CLIV.L("rich") ;
*rcSCALRES("ER",T,EXPCRT)      = ER.L("rich") ;
rcSCALRES("REALER",T,EXPCRT)  = SUM(ref, CLIV.L("rich")/CLIV.L(ref)) ;
rcSCALRES("FBAL",T,EXPCRT)    = FBAL.L("rich")  ;
rcSCALRES("UTILITY",T,EXPCRT) = UTIL.L("rich") ;

rcSCALRES("GOVREV",T,EXPCRT)    = GR.L("rich")  ;
rcSCALRES("IMPORTWP",T,EXPCRT)  =
     SUM((I,L), PWM.L(I,"rich",L)*scM(i,"rich",L)*M.L(I,"rich",L))
     /SUM((I,L), PWM0(I,"rich",L)*scM(I,"rich",L)) ;
rcSCALRES("EXPORTWP",T,EXPCRT) =
     SUM((I,L), PWE.L(I,"rich",L)*scE(i,"rich",L)*E.L(I,"rich",L))
     /SUM((I,L), PWE0(I,"rich",L)*scE(I,"rich",L));
rcSCALRES("WALRAS1",T,EXPCRT) = WALRAS1.L("rich") ;

rcSECTRES("PV",I,T,EXPCRT) = PV.L(I,"rich") ;
rcSECTRES("PQT",I,T,EXPCRT)= PQT.L(I,"rich") ;
rcSECTRES("XS",I,T,EXPCRT) = XS.L(I,"rich") ;
rcSECTRES("CD",I,T,EXPCRT) = CD.L(I,"rich") ;
rcSECTRES("GD",I,T,EXPCRT) = GD.L(I,"rich") ;
rcSECTRES("ID",I,T,EXPCRT) = ID.L(I,"rich") ;
rcSECTRES("Q",I,T,EXPCRT)  = Q.L(I,"rich") ;
 

mcSCALRES("GDP",T,EXPCRT)     = YHH.l("minc");
mcSCALRES("TOTCON",T,EXPCRT)  = SUM(I, scCD(i,"minc")*CD.L(I,"minc") )
      /SUM(I, scCD(I,"minc") );
mcSCALRES("HHSAVE",T,EXPCRT)  = SAV.L("minc")  ;
mcSCALRES("INVTOT",T,EXPCRT)  = INVEST.L("minc") ;
mcSCALRES("COSTOFLIV",T,EXPCRT) = CLIV.L("minc") ;
*mcSCALRES("ER",T,EXPCRT)      = ER.L("minc") ;
mcSCALRES("REALER",T,EXPCRT)  = SUM(ref, CLIV.L("minc")/CLIV.L(ref) ) ;
mcSCALRES("FBAL",T,EXPCRT)    = FBAL.L("minc")  ;
mcSCALRES("UTILITY",T,EXPCRT) = UTIL.L("minc") ;

mcSCALRES("GOVREV",T,EXPCRT)    = GR.L("minc")  ;
mcSCALRES("IMPORTWP",T,EXPCRT)  =
     SUM((I,L), PWM.L(I,"minc",L)*scM(i,"minc",L)*M.L(I,"minc",L))
     /SUM((I,L), PWM0(I,"minc",L)*scM(I,"minc",L)) ;
mcSCALRES("EXPORTWP",T,EXPCRT) =
     SUM((I,L), PWE.L(I,"minc",L)*scE(i,"minc",L)*E.L(I,"minc",L))
     /SUM((I,L), PWE0(I,"minc",L)*scE(I,"minc",L)) ;
mcSCALRES("WALRAS1",T,EXPCRT) = WALRAS1.L("minc") ;

mcSECTRES("PV",I,T,EXPCRT) = PV.L(I,"minc") ;
mcSECTRES("PQT",I,T,EXPCRT)= PQT.L(I,"minc") ;
mcSECTRES("XS",I,T,EXPCRT) = XS.L(I,"minc") ;
mcSECTRES("CD",I,T,EXPCRT) = CD.L(I,"minc") ;
mcSECTRES("GD",I,T,EXPCRT) = GD.L(I,"minc") ;
mcSECTRES("ID",I,T,EXPCRT) = ID.L(I,"minc") ;
mcSECTRES("Q",I,T,EXPCRT)  = Q.L(I,"minc") ;
 
 

*##DO AN EXPERIMENT: A Neoclassical Utopia
tm(i,k,l) = 0.0 ;
te(i,k,l) = 0.0 ;

* Solve mrtrade Using NLP MAXIMIZING WELFARE ;
 SOLVE MRTRADE USING MCP ;

EXPCRT(TEXP)   = NO ;
EXPCRT("EXP1") = YES ;

t(TPER)        = NO ;
t("1")         = YES ;
 

* STORE RESULTS IN CORRESPONDING MATRICES

prSCALRES("GDP",T,EXPCRT)     = YHH.l("poor");
prSCALRES("TOTCON",T,EXPCRT)  = SUM(I, scCD(i,"poor")*CD.L(I,"poor") )
          /SUM(I, scCD(I,"poor") ) ;
prSCALRES("HHSAVE",T,EXPCRT)  = SAV.L("poor")  ;
prSCALRES("INVTOT",T,EXPCRT)  = INVEST.L("poor") ;
prSCALRES("COSTOFLIV",T,EXPCRT) = CLIV.L("poor") ;
prSCALRES("FBAL",T,EXPCRT)    = FBAL.L("poor")  ;
prSCALRES("UTILITY",T,EXPCRT) = UTIL.L("poor") ;

prSCALRES("GOVREV",T,EXPCRT)    = GR.L("poor")  ;
prSCALRES("IMPORTWP",T,EXPCRT)  =
     SUM((I,L), PWM.L(I,"poor",L)*scM(i,"poor",L)*M.L(I,"poor",L))
     /SUM((I,L), PWM0(I,"poor",L)*scM(I,"poor",L)) ;
prSCALRES("EXPORTWP",T,EXPCRT) =
     SUM((I,L), PWE.L(I,"poor",L)*scE(i,"poor",L)*E.L(I,"poor",L))
     /SUM((I,L), PWE0(I,"poor",L)*scE(I,"poor",L))  ;
prSCALRES("WALRAS1",T,EXPCRT) = WALRAS1.L("poor") ;

prSECTRES("PV",I,T,EXPCRT) = PV.L(I,"poor") ;
prSECTRES("PQT",I,T,EXPCRT)= PQT.L(I,"poor") ;
prSECTRES("XS",I,T,EXPCRT) = XS.L(I,"poor") ;
prSECTRES("CD",I,T,EXPCRT) = CD.L(I,"poor") ;
prSECTRES("GD",I,T,EXPCRT) = GD.L(I,"poor") ;
prSECTRES("ID",I,T,EXPCRT) = ID.L(I,"poor") ;
prSECTRES("Q",I,T,EXPCRT)  = Q.L(I,"poor") ;
 

rcSCALRES("GDP",T,EXPCRT)     = YHH.l("rich");
rcSCALRES("TOTCON",T,EXPCRT)  = SUM(I, scCD(i,"rich")*CD.L(I,"rich") )
         /SUM(I, scCD(I,"rich") ) ;
rcSCALRES("HHSAVE",T,EXPCRT)  = SAV.L("rich")  ;
rcSCALRES("INVTOT",T,EXPCRT)  = INVEST.L("rich") ;
rcSCALRES("COSTOFLIV",T,EXPCRT) = CLIV.L("rich") ;
rcSCALRES("FBAL",T,EXPCRT)    = FBAL.L("rich")  ;
rcSCALRES("UTILITY",T,EXPCRT) = UTIL.L("rich") ;

rcSCALRES("GOVREV",T,EXPCRT)    = GR.L("rich")  ;
rcSCALRES("IMPORTWP",T,EXPCRT)  =
     SUM((I,L), PWM.L(I,"rich",L)*scM(i,"rich",L)*M.L(I,"rich",L))
     /SUM((I,L), PWM0(I,"rich",L)*scM(I,"rich",L)) ;
rcSCALRES("EXPORTWP",T,EXPCRT) =
     SUM((I,L), PWE.L(I,"rich",L)*scE(i,"rich",L)*E.L(I,"rich",L))
     /SUM((I,L), PWE0(I,"rich",L)*scE(I,"rich",L));
rcSCALRES("WALRAS1",T,EXPCRT) = WALRAS1.L("rich") ;

rcSECTRES("PV",I,T,EXPCRT) = PV.L(I,"rich") ;
rcSECTRES("PQT",I,T,EXPCRT)= PQT.L(I,"rich") ;
rcSECTRES("XS",I,T,EXPCRT) = XS.L(I,"rich") ;
rcSECTRES("CD",I,T,EXPCRT) = CD.L(I,"rich") ;
rcSECTRES("GD",I,T,EXPCRT) = GD.L(I,"rich") ;
rcSECTRES("ID",I,T,EXPCRT) = ID.L(I,"rich") ;
rcSECTRES("Q",I,T,EXPCRT)  = Q.L(I,"rich") ;
 

mcSCALRES("GDP",T,EXPCRT)     = YHH.l("minc");
mcSCALRES("TOTCON",T,EXPCRT)  = SUM(I, scCD(i,"minc")*CD.L(I,"minc") )
      /SUM(I, scCD(I,"minc") );
mcSCALRES("HHSAVE",T,EXPCRT)  = SAV.L("minc")  ;
mcSCALRES("INVTOT",T,EXPCRT)  = INVEST.L("minc") ;
mcSCALRES("COSTOFLIV",T,EXPCRT) = CLIV.L("minc") ;
mcSCALRES("FBAL",T,EXPCRT)    = FBAL.L("minc")  ;
mcSCALRES("UTILITY",T,EXPCRT) = UTIL.L("minc") ;

mcSCALRES("GOVREV",T,EXPCRT)    = GR.L("minc")  ;
mcSCALRES("IMPORTWP",T,EXPCRT)  =
     SUM((I,L), PWM.L(I,"minc",L)*scM(i,"minc",L)*M.L(I,"minc",L))
     /SUM((I,L), PWM0(I,"minc",L)*scM(I,"minc",L)) ;
mcSCALRES("EXPORTWP",T,EXPCRT) =
     SUM((I,L), PWE.L(I,"minc",L)*scE(i,"minc",L)*E.L(I,"minc",L))
     /SUM((I,L), PWE0(I,"minc",L)*scE(I,"minc",L)) ;
mcSCALRES("WALRAS1",T,EXPCRT) = WALRAS1.L("minc") ;

mcSECTRES("PV",I,T,EXPCRT) = PV.L(I,"minc") ;
mcSECTRES("PQT",I,T,EXPCRT)= PQT.L(I,"minc") ;
mcSECTRES("XS",I,T,EXPCRT) = XS.L(I,"minc") ;
mcSECTRES("CD",I,T,EXPCRT) = CD.L(I,"minc") ;
mcSECTRES("GD",I,T,EXPCRT) = GD.L(I,"minc") ;
mcSECTRES("ID",I,T,EXPCRT) = ID.L(I,"minc") ;
mcSECTRES("Q",I,T,EXPCRT)  = Q.L(I,"minc") ;
 

DISPLAY prSCALRES, rcSCALRES, mcSCALRES,
        prSECTRES, rcSECTRES, mcSECTRES ;
 

*##########END OF PROGRAM###########