$OFFSYMLIST OFFSYMXREF OFFUPPER OFFLISTING
$TITLE  TWO SECTOR OPEN ECONOMY GENERAL EQUILIBRIUM MODEL FOR TURKEY
*
*
*
*The Program simulates the workings of a 2-sector open economy model
*under imperfect substitution in trade (The Armington specification).
*Data come from a two-sector aggregation of the Input-Output accounts
*for the Turkish economy (State Institute of Statistics, Ankara).
*Data is in 2003 Billions TL.
*
* For further documentation of the model, refer to:
*Algebraic Equations of the Standart CGE Model of the SPO: TurkCGE
*
*Programming by: E. Yeldan-Bilkent University
*Restructured and updated by: C.Telli-State Planning Organization
*###*###*###*###*###*###THE GAMS PROGRAM*###*###*###*###*
*##SET DEFINITIONS
SET

 I  GOODS  / A  AGRICULTURAL GOOD

             N  INDUSTRIAL GOOD /

 IM(I)  IMPORTING SECTORS

 INM(I) NON-IMPORTING SECTORS
 IE(I)  EXPORTING SECTORS
 INE(I) NON-EXPORTING SECTORS

 ILST(I)  LAST I FOR CALIBRATION /N/

 TP     simulation experiments /SAM2003,2003*2007/

 TFUT(TP) FUTURE TIME PERIODS /2004*2007/
 T(TP)  CURRENT experiment
         ;

 ALIAS(I,J) ;

 

*##PARAMETER DEFINITIONS

PARAMETER
 AC(I)      ARMINGTON FUNCTION SHIFT PARAMETER
 AT(I)      CET FUNCTION SHIFT PARAMETER
 AX(I)      SHIFT PARAMETER IN PROD FUNC
 BC(I)      ARMINGTON FUNCTION SHIFT PARAMETER
 BT(I)      CET FUNC SHARE PARAMETER
 BX(I)      COBB-DOUGLAS PROD FUNCTION SHARE PARAMETER
 CLES(I)    SECTORAL CONSUMPTION SHARES
 GLES(I)    SECTORAL GOVERNMENT CONSUMPTION DEMAND
 IDLES(I)   PRIVATE INVESTMENT DEMAND SHARES
 GIDLES(I)  PUBLIC INVESTMENT DEMAND SHARES
 PWE(I)     WORLD PRICE OF EXPORTS
 PWM(I)     WORLD PRICE OF IMPORTS
 PWTS(I)    PRICE WEIGHTS
 RHOC(I)    ARMINGTON FUNC EXPONENT
 RHOT(I)    CET FUNC EXPONENT

*#GOVERNMENT POLICY VARIABLES

 PROTAX(I)   PRODUCTION TAXE RATE
 SALTAX(I)   SALES TAXES RATE
 TM(I)       TARIFF RATE
 TE(I)       EXPORT TAX RATE (SUBSIDY IF NEGATIVE)

*DUMMIES TO HOLD INITIAL DATA

 CC0(I)     COMPOSITE GOOD
 CD0(I)     PRIVATE CONSUMPTION
 DC0(I)     DOMESTIC SALES OF DOMESTIC GOOD
 E0(I)      EXPORTS
 GD0(I)     GOV CONSUMPTION
 ID0(I)     PRIVATE INVESTMENT DEMAND BY SECTOR OF ORIGIN
 GID0 (I)   PUBLIC INVESTMENT DEMAND BY SECTOR OF ORIGIN
 INT0(I)    INTERMEDIATE INPUT DEMANDS
 K0(I)      CAPITAL DEMAND IN SECTOR I
 LD0(I)     SECTORAL LABOR DEMANDS
 M0(I)      IMPORTS
 PC0(I)     COMPOSITE PRICES
 PD0(I)     DOMESTIC GOOD PRICE
 PE0(I)     DOM PRICE OF EXPORTS
 PM0(I)     DOM PRICE OF IMPORTS
 PVA0(I)    VALUE ADDED PRICE
 PX0(I)     GROSS OUTPUT PRICE
 RP0(I)     SECTORAL PROFITS
 WL0(I)     SECTORAL WAGE PAYMENTS
 WDIST0(I)  SECTORAL WAGE COEFFICENTS
 RKDIST0(I) SECTORAL PROFIT RATE COEFFCIENTS
 XS0(I)     COMMODITY SUPPLIES
       ;

SCALAR

 FSAV0     FOREIGN SAVINGS   /14920067.0/
 GSAV0     GOVERNMENT SAVINGS /-19398942.0/
 GOVTRANS0 GOVERNMENT TRANSFERS  /113247685.88459/
 INTRSRAT  RATIO OF INTEREST PAYMENTS TO DOM BANKS IN GOVTRANSFERS /0.484/
 NPFI0     NET PRIVATE FACTOR INCOME FROM ROW /7886043.34036/
 NPFE0     NET PRIVATE FACTOR PAYMENTS TO ROW /4343866.22495/
 GFINT0    GOVERNMENT FOREIGN INTEREST PAYMENTS TO ROW /6624215.115410/
 GSR       GOV SAVINGS RATE
 GIR       GOVERNMENT INVESTMENT RATIO (OF GDP)
 GVTR      GOVERNMENT TRANSFER EXPENDITURE RATIO(OF GDP)
 GCR       GOVERNMENT CONSUMPTION RATIO (OF GDP)
 GPRBR     PRIMARY BALANCE AS A RATIO TO THE GDP
 HTAX      DIRECT INCOME TAX RATE  /28370862.0/
 SSTAX     SOCIAL SECURITY TAXES /23592480.0/
 CORPTAX   CORPORATE TAXES AND PUBLIC SECTOR FACTOR INCOME /30510587.0/
 KSUP0     TOTAL CAPITAL SUPPLY
 LSUP0     TOTAL LABOR SUPPLY
 MPS0      PRIVATE PROPENSITY TO SAVE /86801913.8472135/
 RK0       PROFIT RATE
 W0        WAGE RATE
 Y0        PRIVATE INCOME
    ;

*TABLES TO DISPLAY RESULTS

PARAMETER
 SCALRES(*,TP)      SCALAR RESULTS
 FISCAL(*,TP)       FISCAL RESULTS
 SECTRES(*,I,TP)    SECTORAL RESULTS
 BASERAT(*,TP)      RATIOS TO BASE PERIOD
 BASERAT1(*,I,TP)   SECTORAL RATIOS TO BASE PERIOD
     ;
 

*###INITIAL DATA FROM SAM 2003 TABLE

 

TABLE IO(I,J)  INPUT-OUTPUT FLOWS

        A                N
A   14956922.8798596   21495919.9088164
N   15169629.5702436  227255725.554538
  ;
 

TABLE MATBAL(*,I)  MATERIAL BALANCES AND SECTORAL PARAMETERS

              A                      N

 PC0        1.0                     1.0
 IMPORTS    3838602.060609      106495764.939391
 EXPORTS    3806303.433945      94690034.566055
 TARIFFS    56094.4936667899    945180.47444844
 EXTAX      0.0000                 0.0000
 PROTAX     1941731.52898401     30292284.7239505
 SALTAX     4880060.03602945     24076146.7429208
 SIGC       2.0000                2.0000
 SIGT       2.0000                2.0000
 CD0       48752378.4857885      196333069.706281
 GD0       637537.048335635     43554930.9516644
 ID0       117858.372638719     66094192.4745748
 GID0      7772.61477449433     16103215.3852255
 LD0       7165000               13981000
 RP0      28671944.5600984      140881848.351019
 WL0      20259707.6146675      107757927.513498
 XS0      80999936.1538531      527683706.051822
    ;
 

*##MODEL CALIBRATION

*COMPUTATION OF PARAMETERS AND COEFFICIENTS FOR CALIBRATION

*PRICES

PC0(I)  = MATBAL("PC0",I) ;
PD0(I)  = MATBAL("PC0",I) ;
PE0(I)  = MATBAL("PC0",I) ;
PM0(I)  = MATBAL("PC0",I) ;
PX0(I)  = MATBAL("PC0",I) ;

*FACTOR MARKET PARAMETERS

XS0(I)  = MATBAL("XS0",I) ;
LD0(I)  = MATBAL("LD0",I) ;
K0(I)   = MATBAL("RP0",I) ;
WL0(I)  = MATBAL("WL0",I) ;
RP0(I)  = MATBAL("RP0",I) ;

*FACTOR ENDOWMENTS

LSUP0    = SUM(I, LD0(I) ) ;
KSUP0    = SUM(I, K0(I) ) ;

*WAGE RATE

W0= SUM(I, WL0(I))/LSUP0 ;

WDIST0(I)= WL0(I)/(LD0(I)*W0) ;

*PROFIT RATE

RK0= SUM(I, RP0(I))/KSUP0 ;

RKDIST0(I)  = RP0(I)/(K0(I)*RK0) ;

*INTERMEDIATE INPUT USE AND VALUE ADDED

IO(I,J) = IO(I,J)/XS0(J) ;
INT0(I) = SUM(J, IO(I,J)*XS0(J)) ;

PROTAX(I) = MATBAL("PROTAX",I)/(PX0(I)*XS0(I)) ;

PVA0(I) = PX0(I)*(1-PROTAX(I)) - SUM(J, PC0(J)*IO(J,I)) ;
 

*##TRADE QUANTITIES

M0(I)  = MATBAL("IMPORTS",I)+MATBAL("TARIFFS",I) ;
E0(I)  = MATBAL("EXPORTS",I)+MATBAL("EXTAX",I) ;
DC0(I) = (PX0(I)/PD0(I))*XS0(I) - (PE0(I)/PD0(I))*E0(I);
 

*SALES TAX COLLECTED OVER TOTAL COMPOSITE GOOD SALES

SALTAX(I) = MATBAL("SALTAX",I)/(PM0(I)*M0(I)+PD0(I)*DC0(I)) ;

CC0(I) = (PM0(I)*M0(I) + PD0(I)*DC0(I))*(1+SALTAX(I))/PC0(I) ;

DISPLAY  IO,PC0,PVA0,W0,RK0,PROTAX, SALTAX ;

 

*##INDEX DEFINITIONS FOR IMPORTABLES AND EXPORTABLES

IM(I)  = YES $M0(I) ;
INM(I) = NOT IM(I) ;

IE(I)  = YES $E0(I) ;

INE(I) = NOT IE(I) ;

*##WORLD PRICES AND COMMERCIAL INSTRUMENTS

TM(IM)     = MATBAL("TARIFFS",IM)/MATBAL("IMPORTS",IM) ;
TM(INM)    = 0.0 ;
TE(IE)     = MATBAL("EXTAX",IE)/MATBAL("EXPORTS",IE) ;
TE(INE)    = 0.0 ;

PWM(I) = PM0(I)/(1+TM(I)) ;

PWE(I) = PE0(I)/(1-TE(I)) ;

DISPLAY TM, TE, PWM, PWE, M0 ;

*##PRIVATE INCOME PARAMETERS

SSTAX = SSTAX/SUM(I, WL0(I)) ;

CORPTAX = CORPTAX/SUM(I, RP0(I));
 
Y0   = SUM(I, (1-SSTAX)*WL0(I) + (1-CORPTAX)*RP0(I)) + GOVTRANS0 + NPFI0 - NPFE0 ;
HTAX = HTAX/Y0 ;

MPS0 = MPS0/(Y0*(1-HTAX)) ;

DISPLAY  Y0, MPS0, HTAX, SSTAX, CORPTAX;

 

*##INVESTMENT PARAMETERS

ID0(I)   = MATBAL("ID0",I) ;
IDLES(I) $(not ilst(i))  = ID0(I) / SUM(J, ID0(J) ) ;
IDLES(ILST)  = 1 - SUM(I $(NOT ILST(I)), IDLES(I) ) ;
 

GID0(I)  = MATBAL("GID0",I) ;

GIDLES(I)$(not ilst(i))  = GID0(I)/SUM(J, GID0(J) ) ;
GIDLES(ILST) = 1 - SUM(I $(not ilst(i)), GIDLES(I) ) ;

DISPLAY  GIDLES, IDLES ;

 

*##CONSUMPTION SHARES AND PWTS

CD0(I)     = MATBAL("CD0",I) ;

CLES(I) $(not ilst(i))  = CD0(I)/SUM(J, CD0(J));
CLES(ILST) = 1 - SUM(I $(not ilst(i)), CLES(I)) ;
PWTS(I)    = CLES(I) ;

GD0(I)  = MATBAL("GD0",I) ;

GLES(I)$(not ilst(i))  = GD0(I)/SUM(J, GD0(J) ) ;
GLES(ILST) = 1 - SUM(I $(not ilst(i)), GLES(I) ) ;

DISPLAY CLES, GLES, PWTS ;

 

*#*#*CALIBRATION OF ALL SHIFT AND SHARE PARAMETERS

*
*##FOREIGN TRADE FUNCTIONS
RHOC(I) = (1/MATBAL("SIGC",I) ) - 1 ;
RHOT(I) = (1/MATBAL("SIGT",I) ) + 1 ;

BC(IM) = PM0(IM)/PD0(IM)

           *(M0(IM)/DC0(IM))**(1+RHOC(IM)) ;
BC(IM) = BC(IM)/(1 + BC(IM) ) ;

AC(IM) = CC0(IM) / ( BC(IM)*M0(IM)**(-RHOC(IM))

      + (1-BC(IM))*DC0(IM)**(-RHOC(IM)) )**(-1/RHOC(IM) );
BC(INM)  = 0 ;
AC(INM)  = 1 ;

BT(IE) = 1/(1 + PD0(IE)/PE0(IE) * (E0(IE)/DC0(IE))**(RHOT(IE)-1) ) ;

AT(IE) = XS0(IE)/( BT(IE)*E0(IE)**RHOT(IE) +

           (1-BT(IE))*DC0(IE)**RHOT(IE) )**(1/RHOT(IE)) ;

BT(INE) = 0 ;

AT(INE) = 1 ;

DISPLAY AC, BC, AT, BT ;

 

*##PRODUCTION FUNCTIONS: COBB-DOUGLAS TECHNOLOGY

BX(I)  = RP0(I)/(PVA0(I)*XS0(I)) ;

AX(I)  = XS0(I)/(K0(I)**BX(I)*LD0(I)**(1-BX(I))) ;

DISPLAY AX, BX ;

 

*##VARIABLE DEFINITIONS

VARIABLE
*PRICE BLOCK
 PINDEX   PRICE INDEX
 PC(I)    COMPOSITE PRICE
 PD(I)    DOMESTIC PRICE
 PE(I)    EXPORT PRICE
 PM(I)    IMPORT PRICE
 PVA(I)   NET PRICE (VALUE ADDED)
 PX(I)    GROSS OUTPUT PRICE
*PRODUCTION BLOCK
 CC(I)    COMPOSITE GOOD
 DC(I)    DOMESTIC SALES OF DOMESTIC GOOD
 E(I)     EXPORTS
 M(I)     IMPORTS
 XS(I)    GROSS OUTPUT SUPPLY
 GDP      GROSS DOMESTIC PRODUCT
*FACTORS BLOCK
 LD(I)    SECTORAL LABOR DEMANDS
 LSUP     LABOR SUPPLY
 K(I)     SECTORAL CAPITAL DEMANDS
 KSUP     CAPITAL SUPPLY
 W        NOMINAL WAGE RATE
 WDIST(I) SECTORAL WAGE DIFFERENCE COEFFICENTS
 RKDIST(I) SECTORAL PROFIT RATE DIFFERENTIALS
 RK       NOMINAL PROFIT RATE
*INCOME GENERATION AND FINAL DEMAND BLOCK
 CD(I)    PRIVATE CONSUMPTION
 GD(I)    GOVERNMENT CONSUMPTION
 ID(I)   PRIVATE INVESTMENT DEMAND BY SECTOR OF ORIGIN
 GID(I)  PUBLIC INVESTMENT DEMAND BY SECTOR OF ORIGIN
 INT(I)   INTERMEDIATE INPUT USES
 Y        PRIVATE INCOME
*GOVERNMENT'S FISCAL ACCOUNTS AND MACRO BALANCES
 EXTAX    EXPORT TAX REVENUE
 TOTPROTAX  PRODUCTION TAXES
 TOTSALTAX  SALES TAXES
 TOTSSTAX   SOCIAL SECURITY TAXES
 TOTCORPTAX  CORPORATE TAXES
 TARIFF   TARIFF REVENUES
 TOTHHTAX TOTAL INCOME TAX REVENUES
 NPFI     NET PRIVATE FACTOR INCOME FROM ROW
 NPFE     NET PRIVATE FACTOR PAYMENTS TO ROW
 GFINT    GOVERNMENT FOREIGN INTEREST PAYMENTS TO ROW
 FSAV     FOREIGN SAVINGS
 GREV     GOVERNMENT REVENUES
 GOVCON   GOVERNMENT CONSUMPTION
 GOVTRANS GOVERNMENT TRANSFERS
 GINV     GOVERNMENT INVESTMENT
 GSAV     GOVERNMENT SAVINGS
 PISB     PUBLIC SAVING INVESTMENT DEFICIT
 GPRMBAL  PRIMARY BUDGET BALANCE
 MPS      PRIVATE SAVINGS RATE
 PRSAV    PRIVATE SAVINGS
 PRINV    PRIVATE INVESTMENT

*OBJECTIVE FUNCTION

 OMEGA    MAXIMAND FOR ALGORITHM
 DROP     PSEUDO VARIABLE TO CHECK WALRAS' LAW
       ;

*#*#*VARIABLE INITIALIZATIONS

PC.L(I)    = PC0(I)   ;

PD.L(I)    = PD0(I)   ;
PE.L(I)    = PE0(I)   ;
PM.L(I)    = PM0(I)   ;
PX.L(I)    = PX0(I)   ;
PVA.L(I)   = PVA0(I)  ;
PINDEX.L  = 1.00000  ;

CC.L(I)    = CC0(I)  ;

DC.L(I)    = DC0(I)  ;
E.L(I)     = E0(I)   ;
K.L(I)     = K0(I)   ;
XS.L(I)    = XS0(I)  ;
KSUP.L     = KSUP0   ;
LSUP.L     = LSUP0   ;
LD.L(I)    = LD0(I)  ;
M.L(I)     = M0(I)   ;
RK.L       = RK0     ;
W.L        = W0 ;
WDIST.L(I)   = WDIST0(I) ;
RKDIST.L(I)  = RKDIST0(I) ;

INT.L(I)   = INT0(I)  ;

CD.L(I)    = CD0(I)   ;
GD.L(I)    = GD0(I)   ;
ID.L(I)    = ID0(I) ;
GID.L(I)   = GID0(I);

Y.L        = Y0 ;

MPS.L      = MPS0 ;

TOTPROTAX.L  = SUM(I, PROTAX(I)*PX0(I)*XS0(I) ) ;

TOTSSTAX.L   = SUM(I, SSTAX*W0*WDIST0(i)*LD0(I));
TOTCORPTAX.L = SUM(I, CORPTAX*RK0*RKDIST0(i)*K0(I));
EXTAX.L      = SUM(I, TE(I)*PWE(I)*E0(I)) ;
TARIFF.L     = SUM(I, TM(I)*PWM(I)*M0(I)) ;
TOTHHTAX.L   = HTAX*Y0 ;
TOTSALTAX.L  = SUM(I, (PM0(I)*M0(I) + PD0(I)*DC0(I))*SALTAX(I) ) ;

GFINT.L = GFINT0 ;

NPFI.L  = NPFI0  ;
NPFE.L  = NPFE0  ;

GINV.L     = SUM (I, PC0(I)*GID0(I));

GSAV.L     = GSAV0 ;
PISB.L     = GINV.L - GSAV.L;

GREV.L     = TOTPROTAX.L + TOTSALTAX.L + TOTCORPTAX.L + EXTAX.L + TARIFF.L + TOTHHTAX.L + TOTSSTAX.L ;

GOVCON.L   = SUM(I, PC0(I)*GD0(I)) ;
GOVTRANS.L = GOVTRANS0;
GPRMBAL.L  = GREV.L - GOVCON.L - GINV.L - INTRSRAT*GOVTRANS.L ;

PRSAV.L    = MPS0*Y0*(1-HTAX);

*below equation just equivalent of walras.
PRINV.L    = PRSAV.L + FSAV0 - PISB.L ;
FSAV.L     = FSAV0 ;

GDP.L      = SUM(I, PC0(I)*(CD0(I)+GD0(I)+GID0(I)+ID0(I)) + PWE(I)*E0(I)-PWM(I)*M0(I) ) ;

DROP.L     = 0.0 ;

GIR       = GINV.L/GDP.L ;

GVTR      = GOVTRANS.L/GDP.L ;
GSR       = GSAV.L/GREV.L ;
GCR       = GOVCON.L/GDP.L ;
GPRBR     = GPRMBAL.L/GDP.L ;
DISPLAY GIR, GVTR, GSR, GCR, GPRBR ;
 
 

*##SCALING OF ALL VARIABLES (EXPRESS IN NEW TL)

CC.L(I)=CC.L(I)/1000000;DC.L(I)=DC.L(I)/1000000;M.L(I)=M.L(I)/1000000;

XS.L(I)=XS.L(I)/1000000;E.L(I)=E.L(I)/1000000;
KSUP.L = KSUP.L/1000000;LSUP.L = LSUP.L/1000000;
K.L(I)=K.L(I)/1000000; LD.L(I)=LD.L(I)/1000000;Y.L=Y.L/1000000;
GOVTRANS.L=GOVTRANS.L/1000000;GREV.L=GREV.L/1000000;
TOTPROTAX.L=TOTPROTAX.L/1000000;TOTSALTAX.L=TOTSALTAX.L/1000000;
TARIFF.L=TARIFF.L/1000000; TOTSSTAX.L=TOTSSTAX.L/1000000;TOTCORPTAX.L=TOTCORPTAX.L/1000000;
TOTHHTAX.L=TOTHHTAX.L/1000000;EXTAX.L=EXTAX.L/1000000;PISB.L=PISB.L/1000000;
GOVCON.L=GOVCON.L/1000000;GINV.L=GINV.L/1000000; GPRMBAL.L=GPRMBAL.L/1000000;
GD.L(I)=GD.L(I)/1000000;CD.L(I)=CD.L(I)/1000000;
INT.L(I)=INT.L(I)/1000000; GDP.L=GDP.L/1000000;GID.L(I)=GID.L(I)/1000000;
ID.L(I)=ID.L(I)/1000000; PRSAV.L=PRSAV.L/1000000;GSAV.L=GSAV.L/1000000;
FSAV.L=FSAV.L/1000000;PRINV.L=PRINV.L/1000000;
NPFE.L=NPFE.L/1000000; NPFI.L=NPFI.L/1000000;GFINT.L=GFINT.L/1000000;
 

*$ONTEXT

*##CHECK THAT SAM IS IN BALANCE AND NO ERROR WAS MADE IN CALIBRATION
*=============construction of SAM=====================

SETS

  SI / ACT,COMD,FLB,FK,PH,GV,KAPH,KAG,ROW,TOTAL/

  SIT(SI) /TOTAL/
  S1(SI) / GV,PH,KAPH,KAG,ROW /
  SSI(S1) / ROW /
  SI1(SI)
    ;

  ALIAS(SI1,SI2);

  PARAMETER

   trkSAM(SI,SI)  SOCIAL ACCOUNTING MATRIX FOR TURKEY 2003
   trkRES(SI)     RESIDUAL OF REVENUE & EXPENDITURE SHOULD add ZERO
          ;

  SI1(SI) = NOT  SIT(SI);

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

  trkSAM("ACT","COMD") = SUM(I, PD.L(I)*DC.L(I));
  trkSAM("ACT","GV")  = - SUM(I, TE(I)*PWE(I)*E.L(i)) ;
  trkSAM("ACT","ROW") = SUM(I, PWE(i)*E.L(i) );
 

* SECOND BLOCK: COMMODITIES. INTERMEDIATE DEMAND,

* HOUSEHOLD CONSUMPTION, GOVERNMENT CONSUMPTION,INVESTMENT.

  trkSAM("COMD","ACT") = SUM((j,i),

        IO(j,i)*PC.L(J)*XS.L(i) ) ;
  trkSAM("COMD","PH")  = SUM(I, PC.L(I)*CD.L(i) );
  trkSAM("COMD","GV")  = SUM(I, PC.L(I)*GD.L(i) );
  trkSAM("COMD","KAPH")= SUM(I, PC.L(I)*ID.L(i));
  trkSAM("COMD","KAG") = SUM(I, PC.L(I)*GID.L(i) ) ;
 

* THIRD BLOCK: VALUE ADDED

  trkSAM("FLB","ACT") = SUM(I, W.L*WDIST.L(i)*LD.L(I)) ;
  trkSAM("FK","ACT")  = SUM(I, RK.L*RKDIST.L(i)*K.L(I)) ;
 

* FOURTH BLOCK: HOUSEHOLDS. INCOME FROM FACTORS.

  trkSAM("PH","FLB") =  SUM(I, (1-SSTAX)*W.L*WDIST.L(i)*LD.L(I));
  trkSAM("PH","FK")  =  SUM(I, (1-CORPTAX)*RK.L*RKDIST.L(i)*K.L(I)) - NPFE.L ;
  trkSAM("PH","GV")  =  GOVTRANS.L ;
  trkSAM("PH","ROW") =  NPFI.L ;
 

*FIFTH BLOCK: GOVERNMENT. INDIRECT TAX,TARIFFS, CORPORATE TAX, FACTOR TRANSFERS FROM SSEs

* HOUSEHOLD TAX, minus NET TRANSFER FROM GOVERNMENT.
  trkSAM("GV","ACT") = SUM(I, PROTAX(I)*PX.L(i)*XS.L(i));
  trkSAM("GV","COMD") = SUM(I, tm(i)*PWM(i)*M.L(i) ) + SUM(I,(PM.L(I)*M.L(I)+PD.L(I)*DC.L(I))*SALTAX(I) );
  trkSAM("GV","FLB")  =  SUM(I, SSTAX*W.L*WDIST.L(i)*LD.L(I));
  trkSAM("GV","FK")  =  SUM(I, CORPTAX*RK.L*RKDIST.L(i)*K.L(I));
  trkSAM("GV","PH") = HTAX*Y.L ;
 

* SIXTH BLOCK: CAPITAL ACCOUNT. HOUSEHOLD SAVINGS USED IN PRIVATE INVESTMENT

  trkSAM("KAPH","PH")   = PRINV.L  ;

* SEVENTH BLOCK:GOVERNMENT SAVING AND NET CAPITAL INFLOW FROM ROW (CA DEFICIT)

  trkSAM("KAG","PH")   = PRSAV.L - PRINV.L ;
  trkSAM("KAG","GV")   = GSAV.L ;
  trkSAM("KAG","ROW")  = FSAV.L ;
 

* EIGHTH BLOCK: REST OF THE WORLD. IMPORTS

*WORLD PRICES EXCLUDE FOR TARIFFS CONTAINED IN IMPORT VALUE, M.
  trkSAM("ROW","COMD") = SUM(I, PWM(i)*M.L(i) );
  trkSAM("ROW","FK")  =  NPFE.L ;
  trkSAM("ROW","GV")  =  GFINT.L ;

* NINTH BLOCK: SUM OF COLUMNS. EXPENDITURE

  trkSAM("TOTAL","ACT") = SUM(SI1,trkSAM(SI1,"ACT"));
  trkSAM("TOTAL","COMD") = SUM(SI1,trkSAM(SI1,"COMD"));
  trkSAM("TOTAL","FLB") = SUM(SI1, trkSAM(SI1,"FLB"));
  trkSAM("TOTAL","FK") = SUM(SI1, trkSAM(SI1,"FK"));
  trkSAM("TOTAL","PH") = SUM(SI1, trkSAM(SI1,"PH"));
  trkSAM("TOTAL","GV") = SUM(SI1, trkSAM(SI1,"GV"));
  trkSAM("TOTAL","KAPH") = SUM(SI1, trkSAM(SI1,"KAPH"));
  trkSAM("TOTAL","KAG") = SUM(SI1, trkSAM(SI1,"KAG"));
  trkSAM("TOTAL","ROW") = SUM(SI1, trkSAM(SI1,"ROW"));
 

* SUM OF ROWS: REVENUE

  trkSAM(SI2,"TOTAL") = SUM(SI1, trkSAM(SI2,SI1));

  trkRES(SI) = trkSAM("TOTAL",SI) - trkSAM(SI,"TOTAL");

  OPTION trkSAM:3:1:1;

  DISPLAY trkSAM;
  DISPLAY trkRES;

  PARAMETER trkSRES;

  trkSRES = SUM(SI1, trkRES(SI1));

  DISPLAY trkSRES;

 

Parameter

chkcomTRK(i)
chkactTRK(i)
     ;

chkcomTRK(i) = SUM(J, IO(i,J)*PC.L(i)*XS.L(J) )

      + PC.L(i)*CD.L(i) + PC.L(i)*GD.L(i) + PC.L(i)*ID.L(i) + PC.L(I)*GID.L(i)
- ( PD.L(i)*DC.L(i) + tm(i)*PWM(i)*M.L(i) + (PM.L(I)*M.L(I)+PD.L(I)*DC.L(I))*SALTAX(I)
  + PWM(i)*M.L(i) ) ;

chkactTRK(i) = PD.L(i)*DC.L(i) - te(i)*PWE(i)*E.L(i)

  + PWE(i)*E.L(i)
 -( SUM(J, IO(J,i)*PC.L(J)*XS.L(i) )
     + W.L*WDIST.L(i)*LD.L(I)
     + RK.L*RKDIST.L(i)*K.L(I)
     + PROTAX(I)*PX.L(i)*XS.L(i) ) ;
 

display chkcomTRK, chkactTRK ;

*##END OF SAM TABLE
*$OFFTEXT
 

*##STORE SAM DATA

T(TP) = NO;
T("SAM2003") = YES ;

* STORE RESULTS IN CORRESPONDING MATRICES

*$INCLUDE 'DISPLAY.INC'
*DISPLAY TABLES
 

SCALRES("PINDEX",T)   = PINDEX.L ;

SCALRES("WAGERATE",T) = W.L ;
SCALRES("RENTALRATE",T) = RK.L ;
SCALRES("PRVDISY",T) = Y.L*(1-HTAX) ;
SCALRES("PRVINCOME",T) = Y.L ;
SCALRES("PRIVCON",T) = SUM(I, CD.L(I));
SCALRES("PRIVCONCUR",T) = SUM(I, PC.L(I)*CD.L(I) ) ;
SCALRES("PRSAV",T)   = PRSAV.L  ;
SCALRES("PRINV",T) = PRINV.L ;
SCALRES("FSAV",T)    = FSAV.L ;
SCALRES("MRIMP",T)   = SUM(IM, PWM(IM)*M.L(IM)) ;
SCALRES("MREXP",T)   = SUM(IE, PWE(IE)*E.L(IE)) ;
SCALRES("GDPFC",T) = SUM(I, PVA.L(I)*XS.L(I)) ;
SCALRES("NOMGDP",T) = SUM(I, PC.L(I)*(CD.L(I)+GD.L(I)+ID.L(I)+GID.L(I))
    + PWE(I)*E.L(I) - PWM(I)*M.L(I) ) ;
SCALRES("REALGDP",T)  = SUM(I, CD.L(I)+GD.L(I)+ID.L(I)+GID.L(I)
    + PWE(I)*E.L(I) - PWM(I)*M.L(I) );
 

FISCAL("TOTHHTAX",T) = TOTHHTAX.L  ;

FISCAL("TOTSALTAX",T)= TOTSALTAX.L ;
FISCAL("TARIFF",T)   = TARIFF.L  ;
FISCAL("EXTAX",T)    = EXTAX.L  ;
FISCAL("TOTPROTAX",T)= TOTPROTAX.L  ;
FISCAL("SOCSECTAX",T)= TOTSSTAX.L  ;
FISCAL("TOTCORPTAX",T) = TOTCORPTAX.L  ;

FISCAL("GREV",T)    = GREV.L ;

FISCAL("GREXP",T)   = GOVCON.L + GINV.L + GOVTRANS.L + GFINT.L ;
FISCAL("GOVCON",T)  = GOVCON.L ;
FISCAL("GSAV",T)    = GSAV.L ;
FISCAL("GINV",T)    = GINV.L ;
FISCAL("PISB",T)    = PISB.L ;
FISCAL("GOVTRANS",T) = GOVTRANS.L  ;
FISCAL("PRIMARYBAL",T) = GPRMBAL.L ;

FISCAL("PRBALGDPRAT",T) = FISCAL("PRIMARYBAL",T)/SCALRES("NOMGDP",T) ;

FISCAL("GINVGDPRAT",T)  = FISCAL("GINV",T)/SCALRES("NOMGDP",T) ;
FISCAL("PISGDPRAT",T)   = FISCAL("PISB",T)/SCALRES("NOMGDP",T) ;
FISCAL("GREVGDPRAT",T)  = FISCAL("GREV",T)/SCALRES("NOMGDP",T) ;
FISCAL("GEXPGDPRAT",T)  = FISCAL("GREXP",T)/SCALRES("NOMGDP",T) ;

SECTRES("PX",I,T)  = PX.L(I) ;

SECTRES("PC",I,T)  = PC.L(I) ;
SECTRES("PD",I,T)  = PD.L(I) ;
SECTRES("PM",I,T)  = PM.L(I) ;
SECTRES("PE",I,T)  = PE.L(I) ;
SECTRES("PM/PD",I,T) = PM.L(I)/PD.L(I) ;
SECTRES("PE/PD",I,T) = PE.L(I)/PD.L(I) ;
SECTRES("PVA",I,T) = PVA.L(I) ;
SECTRES("CC",I,T)  = CC.L(I) ;
SECTRES("LD",I,T)  = LD.L(I) ;
SECTRES("K",I,T)  = K.L(I) ;
SECTRES("XS",I,T)  = XS.L(I) ;
SECTRES("DC",I,T)  = DC.L(I) ;
SECTRES("E",IE,T)  = E.L(IE) ;
SECTRES("M",IM,T)  = M.L(IM) ;
SECTRES("INT",I,T)   = INT.L(I) ;
SECTRES("CD",I,T)  = CD.L(I) ;
SECTRES("GD",I,T)  = GD.L(I) ;
SECTRES("ID",I,T) = ID.L(I) ;
SECTRES("WDIST",I,T) = WDIST.L(I) ;
SECTRES("RKDIST",I,T) = RKDIST.L(I) ;
 

BASERAT("W",T)        = W.L/SCALRES("WAGERATE","SAM2003") ;

BASERAT("RK",T)       = RK.L/SCALRES("RENTALRATE","SAM2003")  ;
BASERAT("NOMGDP",T)   = SCALRES("NOMGDP",T)/SCALRES("NOMGDP","SAM2003") ;
BASERAT("REALGDP",T)  = SCALRES("REALGDP",T)/SCALRES("REALGDP","SAM2003") ;
BASERAT("PRVDISY",T)  = SCALRES("PRVDISY",T)/SCALRES("PRVDISY","SAM2003") ;
BASERAT("PRIVCON",T)  = SCALRES("PRIVCON",T)/SCALRES("PRIVCON","SAM2003") ;
BASERAT("PRINV",T)    = SCALRES("PRINV",T)/SCALRES("PRINV","SAM2003") ;
BASERAT("GREV",T)     = FISCAL("GREV",T)/FISCAL("GREV","SAM2003") ;
BASERAT("GREXP",T)    = FISCAL("GREXP",T)/FISCAL("GREXP","SAM2003") ;
BASERAT("GOVCON",T)   = FISCAL("GOVCON",T)/FISCAL("GOVCON","SAM2003") ;
BASERAT("GINV",T)     = FISCAL("GINV",T)/FISCAL("GINV","SAM2003") ;
BASERAT("GSAV",T)     = FISCAL("GSAV",T)/FISCAL("GSAV","SAM2003") ;
BASERAT("PISB",T)     = FISCAL("PISB",T)/FISCAL("PISB","SAM2003") ;
BASERAT("PRIMARYBAL",T) = FISCAL("PRIMARYBAL",T)/FISCAL("PRIMARYBAL","SAM2003") ;
 
 

BASERAT1("PM/PD",I,T) = (PM.L(I)/PD.L(I))/SECTRES("PM/PD",I,"SAM2003") ;

BASERAT1("PE/PD",I,T) = (PE.L(I)/PD.L(I))/SECTRES("PE/PD",I,"SAM2003") ;
BASERAT1("PVA",I,T) = PVA.L(I)/SECTRES("PVA",I,"SAM2003") ;
BASERAT1("LD",I,T) = LD.L(I)/SECTRES("LD",I,"SAM2003") ;
BASERAT1("K",I,T) = K.L(I)/SECTRES("K",I,"SAM2003") ;
BASERAT1("XS",I,T) = XS.L(I)/SECTRES("XS",I,"SAM2003") ;
BASERAT1("CD",I,T) = CD.L(I)/SECTRES("CD",I,"SAM2003") ;
BASERAT1("GD",I,T) = GD.L(I)/SECTRES("GD",I,"SAM2003") ;
BASERAT1("ID",I,T) = ID.L(I)/SECTRES("ID",I,"SAM2003") ;
BASERAT1("E",I,T) = E.L(I)/SECTRES("E",I,"SAM2003") ;
BASERAT1("M",I,T) = M.L(I)/SECTRES("M",I,"SAM2003") ;
 
 
 

*#*#*#*#*EQUATION DEFINITIONS

EQUATIONS
*##PRICE BLOCK
  PMDEF(I)        DEFINITION OF DOMESTIC IMPORT PRICES
  PEDEF(I)        DEFINITION OF DOMESTIC EXPORT PRICES
  PCDEF(I)        VALUE OF DOMESTIC SALES
  PXDEF(I)        VALUE OF SECTORAL OUTPUT
  PVDEF(I)        VALUE ADDED AT THE FIRM LEVEL (PRODUCER PRICE)
  PLEVDEF         DEFINITION OF GENERAL PRICE LEVEL

*##OUTPUT AND FACTORS OF PRODUCTION BLOCK

  ACTIVITY(I)   PRODUCTION TECHNOLOGY: COBB-DOUGLAS
  FOCLABEQ(I)   FIRST ORDER CONDITIONS FOR LABOR EMPLOYMENT
  FOCKAPEQ(I)   FIRST ORDER CONDITIONS FOR CAPITAL EMPLOY.
  LABMKTEQM     LABOR MARKET EQUILIBRIUM
  KAPMKTEQM     CAPITAL MARKET EQUILIBRIUM

*##TRADE BLOCK

  CET(I)          GROSS OUTPUT-EXPORTS FRONTIER
  ESUPPLY(I)      EXPORT SUPPLY
  ARMINGTON(I)    COMPOSITE GOOD AGGREGATION FUNCTION
  COSTMIN(I)      F.O.C. FOR COST MINIMIZATION OF COMPOSITE GOOD
  DCN(I)          DOMESTIC SALES FOR NONTRADED SECTORS
  XSN(I)          COMPOSITE GOOD AGG. FOR NON-TRADED SECTORS

*##INCOME GENERATION AND DEMAND BLOCK

  PRINCEQ         PRIVATE INCOME FROM FACTOR OWNERSHIP
  GREQ            GOVERNMENT REVENUE
  PROTAXDEF       INDIRECT TAXES ON DOMESTIC PRODUCTION
  SALTAXEQ        INDIRECT TAXES ON DOMESTIC SALES
  TARIFFEQ        TARIFF REVENUE EQUATION
  SSTAXEQ         SOCIAL SECURITY TAXES EQUATION
  CORPTAXEQ       EQUATION OF CORPORATE TAXES
  EXTAXEQ         EXPORT TAX REVENUE EQUATION
  HHTAXDEF        TOTAL HOUSEHOLD TAXES COLLECTED BY GOVT.
  CDEQ(I)         PRIVATE CONSUMPTION BY SECTORS
  GDEQ(I)         GOVERNMENT CONSUMPTION BY SECTORS
  INTEQ(I)        TOTAL INTERMEDIATE USES

  GDPDEF          GROSS DOMESTIC PRODUCT

*##SAVINGS INVESTMENT BLOCK

  PRSAVEQ         HOUSEHOLD SAVINGS
  GOVSAV          CALCULATION OF PUBLIC SAVINGS
  PISBDEF         PUBLIC SAVING INVESTENT BALANCE
  GOVTRANSE       GOVERNMENT TRANSFERS BEHAVIOR
*  GINVEQ          DETERMINATION OF GOV INVESTMENT AS A RATIO OF GDP
  GOVCONEQ        GOVERNMENT CONSUMPTION BEHAVIOR AS A RATIO TO GDP
  GPRBGDPRAT      PRIMARY BALANCE AS A RATIO TO THE GDP
  GPRBALEQ        DEFINITION OF GOV PRIMARY BUDGET BALANCE
  IDEQ(I)         INVESTMENT DEMAND BY SECTOR OF ORIGIN
  GIDEQ(I)        PUBLIC INVESTMENT DEMAND BY SECTOR OF ORIGIN
  WALRAS          WALRAS LAW EQUATION

*##PRODUCT MARKET CLEARING

  COMBAL(I)      COMMODITY BALANCES
  CAEQ            CURRENT ACCOUNT BALANCE

*OBJECTIVE FUNCTION

  OBJ               OBJECTIVE FUNCTION  ;
 

*#EQUATION SPECIFICATIONS

*##PRICE BLOCK

 PMDEF(IM)..   PM(IM) =E= PWM(IM)*(1+TM(IM)) ;

 PEDEF(IE)..   PE(IE) =E= PWE(IE)*(1-TE(IE))  ;

 PCDEF(I)..    PC(I)*CC(I) =E= (PD(I)*DC(I) + PM(I)*M(I)$IM(I) ) * (1+SALTAX(I)) ;

 PXDEF(I)..    PX(I)*XS(I) =E= PD(I)*DC(I) + (PE(I)*E(I))$IE(I) ;

 PVDEF(I)..    PVA(I) =E=  (1-PROTAX(I))*PX(I) - SUM(J, PC(J)*IO(J,I)) ;

 PLEVDEF..     PINDEX =E= SUM(I, PWTS(I)*PC(I) ) ;

 

*##OUTPUT AND FACTORS OF PRODUCTION BLOCK

 ACTIVITY(I)..    XS(I) =E= AX(I)*K(I)**BX(I)*LD(I)**(1-BX(I)) ;

 FOCLABEQ(I)..    W*WDIST(I)*LD(I) =E= (1-BX(I))*PVA(I)*XS(I) ;

 FOCKAPEQ(I)..    RK*RKDIST(I)*K(I) =E= BX(I)*PVA(I)*XS(I) ;

 LABMKTEQM..      SUM(I, LD(I)) =E= LSUP ;

 KAPMKTEQM..      SUM(I, K(I))  =E= KSUP ;

*##TRADE BLOCK

 CET(IE)..    XS(IE) =E= AT(IE)*( BT(IE)*E(IE)**RHOT(IE)

     + ( 1-BT(IE) )*DC(IE)**RHOT(IE) )**(1/RHOT(IE)) ;

 ESUPPLY(IE)..   E(IE)/DC(IE) =E= ( PE(IE)/PD(IE)

    *(1-BT(IE))/BT(IE) )**(1/(RHOT(IE)-1) ) ;

 ARMINGTON(IM)..   CC(IM) =E= AC(IM)*( BC(IM)*M(IM)**(-RHOC(IM))

     + (1-BC(IM))*DC(IM)**(-RHOC(IM)) )**(-1/RHOC(IM)) ;

 COSTMIN(IM)..     M(IM)/DC(IM) =E= ( PD(IM)/PM(IM)

     *BC(IM)/(1-BC(IM)) )**(1/(1 + RHOC(IM)) ) ;

 DCN(INE)..        DC(INE) =E= XS(INE) ;

 XSN(INM)..        CC(INM) =E= DC(INM) ;

 

*##INCOME GENERATION AND DEMAND BLOCK

 PRINCEQ..       Y =E= SUM(I, (1-SSTAX)*W*WDIST(I)*LD(I) + (1-CORPTAX)*RK*RKDIST(I)*K(I)) + GOVTRANS + NPFI - NPFE ;

 GREQ..          GREV =E= TOTPROTAX + TOTSALTAX + TARIFF + TOTSSTAX + TOTCORPTAX

                            + TOTHHTAX+EXTAX ;

 PROTAXDEF..     TOTPROTAX =E= SUM(I, PROTAX(I)*PX(I)*XS(I) );

 SALTAXEQ..      TOTSALTAX =E= SUM(I, SALTAX(I)*(PD(I)*DC(I) + PM(I)*M(I)$IM(I)) ) ;

 TARIFFEQ..      TARIFF =E= SUM(I, TM(I)*PWM(I)*M(I)) ;

 SSTAXEQ..       TOTSSTAX =E= SUM(I, SSTAX*W*WDIST(I)*LD(I));

 CORPTAXEQ..     TOTCORPTAX =E= SUM(I, CORPTAX*RK*RKDIST(I)*K(I));

 HHTAXDEF..      TOTHHTAX =E= HTAX*Y ;

 EXTAXEQ..       EXTAX =E= SUM(I, TE(I)*PWE(I)*E(I)) ;

 GDEQ(I)..      PC(I)*GD(I) =E= GLES(I)*GOVCON ;

 CDEQ(I)..      PC(I)*CD(I) =E= CLES(I)*(1-MPS)*Y*(1-HTAX)  ;

 INTEQ(I)..     INT(I) =E= SUM(J, IO(I,J)*XS(J));

 GDPDEF..       GDP =E= SUM(I, PC(I)*(CD(I)+GD(I)+GID(I)+ID(I))

                         + PWE(I)*E(I)-PWM(I)*M(I) ) ;
 

*##SAVING INVESTMENT BALANCE

 PRSAVEQ..       PRSAV =E= MPS*Y*(1-HTAX);

 GOVSAV..        GSAV =E= GREV - GOVCON - GOVTRANS - GFINT ;

 PISBDEF..       PISB =E= GINV - GSAV;

 GOVTRANSE..    GOVTRANS =E=GVTR*GDP;

* GINVEQ..      GINV =E= GIR*GDP ;

 GOVCONEQ..      GOVCON =E= GCR*GDP ;

 GPRBGDPRAT..      GPRMBAL  =E= GPRBR*GDP ;

 GPRBALEQ..    GPRMBAL  =E= GREV - GOVCON - GINV - INTRSRAT*GOVTRANS ;

 IDEQ(I)..     PC(I)*ID(I) =E= IDLES(I)*PRINV;

 GIDEQ(I)..    PC(I)*GID(I) =E= GIDLES(I)*GINV;

 WALRAS..      PRSAV + GSAV + FSAV =E= PRINV + GINV + DROP;

 

*COMMODITY MARKET CLEARING

 COMBAL(I)..   CC(I) =E= INT(I) + CD(I) + GD(I) + ID(I) + GID(I) ;

 CAEQ..     SUM(IM, PWM(IM)*M(IM)) + NPFE + GFINT =E=

                        SUM(IE, PWE(IE)*E(IE)) + FSAV + NPFI ;
 

*OBJECTIVE FUNCTION

 OBJ..               OMEGA =E= DROP*DROP  ;

* OBJ..             OMEGA =E= GDP ;
* OBJ..             OMEGA =E= 1.00 ;
 

*# ADDITIONAL RESTRICTIONS CORRESPONDING TO VARIABLES WITHOUT EQUATIONS

 M.FX(INM)   = M.L(INM);
 E.FX(INE)   = E.L(INE);
 PM.FX(INM)  = PM0(INM) ;
 PE.FX(INE)  = PE0(INE) ;
 

*#*#*#*#*#*#*#*MODEL CLOSURE*#*#*#*#*#*

*##FACTOR MARKET CLOSURE

*#LABOR MARKET
*FLEXIBLE WAGES
*W.FX       = W.L ;
LSUP.FX    = LSUP.L ;

*LABOR IS MOBILE ACROSS SECTORS.

*FOR SECTOR SPECIFIC LABOR R-ALLOCATE "*" BELOW
*LD.FX(I)   = LD.L(I) ;
WDIST.FX(I) = WDIST0(I) ;

*#CAPITAL MARKET

*FLEXIBLE PROFIT RATE
*RK.FX      = RK.L ;
KSUP.FX    = KSUP.L ;

*CAPITAL IS MOBILE ACROSS SECTORS

*FOR SECTOR SPECIFIC CAPITAL RE-ALLOCATE "*" BELOW
*K.FX(I)    = K.L(I) ;
RKDIST.FX(I) = RKDIST0(I) ;
 

*##FOREIGN CLOSURE

*ONE OF THE FOLLOWING SHOULD BE MADE ENDOGENOUS
*PINDEX.FX  = PINDEX.L ;
 FSAV.FX   = FSAV.L ;
*#EXOGENOUSLY SPECIFIED FLOWS
GFINT.FX = GFINT.L;
NPFI.FX  = NPFI.L;
NPFE.FX  = NPFE.L;

*##MACRO CLOSURE (SAVING-INVESTMENT BALANCE)

*Currently the model adopts the "neo-classical" closure. Hence,
*private investment is saving-driven.  To adopt "Kaldorian" closure
*set MPS as endogenous, and fix PRINV
*PRINV.FX   = PRINV.L ;
 MPS.FX     = MPS.L ;

*##GOVERNMENT ACCOUNTS

*If you make changes here, make sure to implement the corresponding
*changes in the equation specifications
*GINV.FX   = GINV.L ;
*GOVCON.FX = GOVCON.L ;
*GPRBAL.FX = GPRBAL.L ;
 

*###MODEL DEFINITION

MODEL  GENEQM  OPEN ECONOMY GENERAL EQUILIBRIUM MODEL /ALL/  ;

OPTIONS  DECIMALS = 3, ITERLIM =1000, LIMROW = 0, LIMCOL = 0, SOLPRINT = OFF;

geneqm.holdfixed  = 1;

*geneqm.optfile    = 1;

SOLVE GENEQM MAXIMIZING OMEGA USING NLP;

*SOLVE GENEQM USING MCP ;

*SOLUTION VALUES FOR EXPERIMENT 1

T(TP) = NO;
T("2003") = YES ;
 

* STORE RESULTS IN CORRESPONDING MATRICES

*$INCLUDE 'DISPLAY.INC'
*DISPLAY TABLES

SCALRES("DROP",T)     = DROP.L ;

SCALRES("PINDEX",T)   = PINDEX.L ;
SCALRES("WAGERATE",T) = W.L ;
SCALRES("RENTALRATE",T) = RK.L ;
SCALRES("PRVDISY",T) = Y.L*(1-HTAX) ;
SCALRES("PRVINCOME",T) = Y.L ;
SCALRES("PRIVCON",T) = SUM(I, CD.L(I));
SCALRES("PRIVCONCUR",T) = SUM(I, PC.L(I)*CD.L(I) ) ;
SCALRES("PRSAV",T)   = PRSAV.L  ;
SCALRES("PRINV",T) = PRINV.L ;
SCALRES("FSAV",T)    = FSAV.L ;
SCALRES("MRIMP",T)   = SUM(IM, PWM(IM)*M.L(IM)) ;
SCALRES("MREXP",T)   = SUM(IE, PWE(IE)*E.L(IE)) ;
SCALRES("GDPFC",T) = SUM(I, PVA.L(I)*XS.L(I)) ;
SCALRES("NOMGDP",T) = SUM(I, PC.L(I)*(CD.L(I)+GD.L(I)+ID.L(I)+GID.L(I))
    + PWE(I)*E.L(I) - PWM(I)*M.L(I) ) ;
SCALRES("REALGDP",T)  = SUM(I, CD.L(I)+GD.L(I)+ID.L(I)+GID.L(I)
    + PWE(I)*E.L(I) - PWM(I)*M.L(I) );
 

FISCAL("TOTHHTAX",T) = TOTHHTAX.L  ;

FISCAL("TOTSALTAX",T)= TOTSALTAX.L ;
FISCAL("TARIFF",T)   = TARIFF.L  ;
FISCAL("EXTAX",T)    = EXTAX.L  ;
FISCAL("TOTPROTAX",T)= TOTPROTAX.L  ;
FISCAL("SOCSECTAX",T)= TOTSSTAX.L  ;
FISCAL("TOTCORPTAX",T) = TOTCORPTAX.L  ;

FISCAL("GREV",T)    = GREV.L ;

FISCAL("GREXP",T)   = GOVCON.L + GINV.L + GOVTRANS.L + GFINT.L ;
FISCAL("GOVCON",T)  = GOVCON.L ;
FISCAL("GSAV",T)    = GSAV.L ;
FISCAL("GINV",T)    = GINV.L ;
FISCAL("PISB",T)    = PISB.L ;
FISCAL("GOVTRANS",T) = GOVTRANS.L  ;
FISCAL("PRIMARYBAL",T) = GPRMBAL.L ;

FISCAL("PRBALGDPRAT",T) = FISCAL("PRIMARYBAL",T)/SCALRES("NOMGDP",T) ;

FISCAL("GINVGDPRAT",T)  = FISCAL("GINV",T)/SCALRES("NOMGDP",T) ;
FISCAL("PISGDPRAT",T)   = FISCAL("PISB",T)/SCALRES("NOMGDP",T) ;
FISCAL("GREVGDPRAT",T)  = FISCAL("GREV",T)/SCALRES("NOMGDP",T) ;
FISCAL("GEXPGDPRAT",T)  = FISCAL("GREXP",T)/SCALRES("NOMGDP",T) ;

SECTRES("PX",I,T)  = PX.L(I) ;

SECTRES("PC",I,T)  = PC.L(I) ;
SECTRES("PD",I,T)  = PD.L(I) ;
SECTRES("PM",I,T)  = PM.L(I) ;
SECTRES("PE",I,T)  = PE.L(I) ;
SECTRES("PM/PD",I,T) = PM.L(I)/PD.L(I) ;
SECTRES("PE/PD",I,T) = PE.L(I)/PD.L(I) ;
SECTRES("PVA",I,T) = PVA.L(I) ;
SECTRES("CC",I,T)  = CC.L(I) ;
SECTRES("LD",I,T)  = LD.L(I) ;
SECTRES("K",I,T)  = K.L(I) ;
SECTRES("XS",I,T)  = XS.L(I) ;
SECTRES("DC",I,T)  = DC.L(I) ;
SECTRES("E",IE,T)  = E.L(IE) ;
SECTRES("M",IM,T)  = M.L(IM) ;
SECTRES("INT",I,T)   = INT.L(I) ;
SECTRES("CD",I,T)  = CD.L(I) ;
SECTRES("GD",I,T)  = GD.L(I) ;
SECTRES("ID",I,T) = ID.L(I) ;
SECTRES("WDIST",I,T) = WDIST.L(I) ;
SECTRES("RKDIST",I,T) = RKDIST.L(I) ;
 

BASERAT("W",T)        = W.L/SCALRES("WAGERATE","SAM2003") ;

BASERAT("RK",T)       = RK.L/SCALRES("RENTALRATE","SAM2003")  ;
BASERAT("NOMGDP",T)   = SCALRES("NOMGDP",T)/SCALRES("NOMGDP","SAM2003") ;
BASERAT("REALGDP",T)  = SCALRES("REALGDP",T)/SCALRES("REALGDP","SAM2003") ;
BASERAT("PRVDISY",T)  = SCALRES("PRVDISY",T)/SCALRES("PRVDISY","SAM2003") ;
BASERAT("PRIVCON",T)  = SCALRES("PRIVCON",T)/SCALRES("PRIVCON","SAM2003") ;
BASERAT("PRINV",T)    = SCALRES("PRINV",T)/SCALRES("PRINV","SAM2003") ;
BASERAT("GREV",T)     = FISCAL("GREV",T)/FISCAL("GREV","SAM2003") ;
BASERAT("GREXP",T)    = FISCAL("GREXP",T)/FISCAL("GREXP","SAM2003") ;
BASERAT("GOVCON",T)   = FISCAL("GOVCON",T)/FISCAL("GOVCON","SAM2003") ;
BASERAT("GINV",T)     = FISCAL("GINV",T)/FISCAL("GINV","SAM2003") ;
BASERAT("GSAV",T)     = FISCAL("GSAV",T)/FISCAL("GSAV","SAM2003") ;
BASERAT("PISB",T)     = FISCAL("PISB",T)/FISCAL("PISB","SAM2003") ;
BASERAT("PRIMARYBAL",T) = FISCAL("PRIMARYBAL",T)/FISCAL("PRIMARYBAL","SAM2003") ;
 
 

BASERAT1("PM/PD",I,T) = (PM.L(I)/PD.L(I))/SECTRES("PM/PD",I,"SAM2003") ;

BASERAT1("PE/PD",I,T) = (PE.L(I)/PD.L(I))/SECTRES("PE/PD",I,"SAM2003") ;
BASERAT1("PVA",I,T) = PVA.L(I)/SECTRES("PVA",I,"SAM2003") ;
BASERAT1("LD",I,T) = LD.L(I)/SECTRES("LD",I,"SAM2003") ;
BASERAT1("K",I,T) = K.L(I)/SECTRES("K",I,"SAM2003") ;
BASERAT1("XS",I,T) = XS.L(I)/SECTRES("XS",I,"SAM2003") ;
BASERAT1("CD",I,T) = CD.L(I)/SECTRES("CD",I,"SAM2003") ;
BASERAT1("GD",I,T) = GD.L(I)/SECTRES("GD",I,"SAM2003") ;
BASERAT1("ID",I,T) = ID.L(I)/SECTRES("ID",I,"SAM2003") ;
BASERAT1("E",I,T) = E.L(I)/SECTRES("E",I,"SAM2003") ;
BASERAT1("M",I,T) = M.L(I)/SECTRES("M",I,"SAM2003") ;
 
 
 

*###DYNAMIC STAGE*##

*THIS PROGRAM SIMULATES THE 2003-2007 PATH OF THE TURKISH ECONOMY
 

TABLE RATES(*,TP)  GROWTH RATES PER ANNUM

         2004    2005    2006    2007

POPRATE  0.010   0.010  0.010   0.010
AGTFP    0.005   0.005  0.005   0.005
INDTFP   0.010   0.010  0.010   0.010
   ;
 

*##EXPERIMENT 1: REDUCE PRIMARY BALANCE RATIO TO THE GDP

*USE EXTRA PUBLIC FUNDS IN PUBLIC INVESTMENT (SEE CLOSURE)
 

GPRBR = 0.5*GPRBR ;

 

LOOP (TFUT,

T(TP)    = NO;

T(TFUT)  = YES ;

*##The following is common to all experiments (Base-Run)

*#UPDATE LABOR
LSUP.FX = (1+SUM(T, RATES("POPRATE",T)))*LSUP.L ;

*UPDATE CAPITAL STOCKS

*KSUP.FX =  (1-KDEP(I))*KSUP.L + SUM(I, ID.L(I) + GID.L(I) ) ;
KSUP.FX =  KSUP.L + SUM(I, ID.L(I) + GID.L(I) ) ;
 

*#TECHNICAL PRODUCTIVITY GROWTH

AX("A")  = AX("A")*(1+SUM(T, RATES("AGTFP",T))) ;
AX("N")  = AX("N")*(1+SUM(T, RATES("INDTFP",T))) ;
 

*SOLVE GENEQM MAXIMIZING OMEGA USING NLP;

SOLVE GENEQM USING MCP ;
 
 

*$INCLUDE 'DISPLAY.INC'

*DISPLAY TABLES

SCALRES("DROP",T)     = DROP.L ;

SCALRES("PINDEX",T)   = PINDEX.L ;
SCALRES("WAGERATE",T) = W.L ;
SCALRES("RENTALRATE",T) = RK.L ;
SCALRES("PRVDISY",T) = Y.L*(1-HTAX) ;
SCALRES("PRVINCOME",T) = Y.L ;
SCALRES("PRIVCON",T) = SUM(I, CD.L(I));
SCALRES("PRIVCONCUR",T) = SUM(I, PC.L(I)*CD.L(I) ) ;
SCALRES("PRSAV",T)   = PRSAV.L  ;
SCALRES("PRINV",T) = PRINV.L ;
SCALRES("FSAV",T)    = FSAV.L ;
SCALRES("MRIMP",T)   = SUM(IM, PWM(IM)*M.L(IM)) ;
SCALRES("MREXP",T)   = SUM(IE, PWE(IE)*E.L(IE)) ;
SCALRES("GDPFC",T) = SUM(I, PVA.L(I)*XS.L(I)) ;
SCALRES("NOMGDP",T) = SUM(I, PC.L(I)*(CD.L(I)+GD.L(I)+ID.L(I)+GID.L(I))
    + PWE(I)*E.L(I) - PWM(I)*M.L(I) ) ;
SCALRES("REALGDP",T)  = SUM(I, CD.L(I)+GD.L(I)+ID.L(I)+GID.L(I)
    + PWE(I)*E.L(I) - PWM(I)*M.L(I) );
 

FISCAL("TOTHHTAX",T) = TOTHHTAX.L  ;

FISCAL("TOTSALTAX",T)= TOTSALTAX.L ;
FISCAL("TARIFF",T)   = TARIFF.L  ;
FISCAL("EXTAX",T)    = EXTAX.L  ;
FISCAL("TOTPROTAX",T)= TOTPROTAX.L  ;
FISCAL("SOCSECTAX",T)= TOTSSTAX.L  ;
FISCAL("TOTCORPTAX",T) = TOTCORPTAX.L  ;

FISCAL("GREV",T)    = GREV.L ;

FISCAL("GREXP",T)   = GOVCON.L + GINV.L + GOVTRANS.L + GFINT.L ;
FISCAL("GOVCON",T)  = GOVCON.L ;
FISCAL("GSAV",T)    = GSAV.L ;
FISCAL("GINV",T)    = GINV.L ;
FISCAL("PISB",T)    = PISB.L ;
FISCAL("GOVTRANS",T) = GOVTRANS.L  ;
FISCAL("PRIMARYBAL",T) = GPRMBAL.L ;

FISCAL("PRBALGDPRAT",T) = FISCAL("PRIMARYBAL",T)/SCALRES("NOMGDP",T) ;

FISCAL("GINVGDPRAT",T)  = FISCAL("GINV",T)/SCALRES("NOMGDP",T) ;
FISCAL("PISGDPRAT",T)   = FISCAL("PISB",T)/SCALRES("NOMGDP",T) ;
FISCAL("GREVGDPRAT",T)  = FISCAL("GREV",T)/SCALRES("NOMGDP",T) ;
FISCAL("GEXPGDPRAT",T)  = FISCAL("GREXP",T)/SCALRES("NOMGDP",T) ;

SECTRES("PX",I,T)  = PX.L(I) ;

SECTRES("PC",I,T)  = PC.L(I) ;
SECTRES("PD",I,T)  = PD.L(I) ;
SECTRES("PM",I,T)  = PM.L(I) ;
SECTRES("PE",I,T)  = PE.L(I) ;
SECTRES("PM/PD",I,T) = PM.L(I)/PD.L(I) ;
SECTRES("PE/PD",I,T) = PE.L(I)/PD.L(I) ;
SECTRES("PVA",I,T) = PVA.L(I) ;
SECTRES("CC",I,T)  = CC.L(I) ;
SECTRES("LD",I,T)  = LD.L(I) ;
SECTRES("K",I,T)  = K.L(I) ;
SECTRES("XS",I,T)  = XS.L(I) ;
SECTRES("DC",I,T)  = DC.L(I) ;
SECTRES("E",IE,T)  = E.L(IE) ;
SECTRES("M",IM,T)  = M.L(IM) ;
SECTRES("INT",I,T)   = INT.L(I) ;
SECTRES("CD",I,T)  = CD.L(I) ;
SECTRES("GD",I,T)  = GD.L(I) ;
SECTRES("ID",I,T) = ID.L(I) ;
SECTRES("WDIST",I,T) = WDIST.L(I) ;
SECTRES("RKDIST",I,T) = RKDIST.L(I) ;
 

BASERAT("W",T)        = W.L/SCALRES("WAGERATE","SAM2003") ;

BASERAT("RK",T)       = RK.L/SCALRES("RENTALRATE","SAM2003")  ;
BASERAT("NOMGDP",T)   = SCALRES("NOMGDP",T)/SCALRES("NOMGDP","SAM2003") ;
BASERAT("REALGDP",T)  = SCALRES("REALGDP",T)/SCALRES("REALGDP","SAM2003") ;
BASERAT("PRVDISY",T)  = SCALRES("PRVDISY",T)/SCALRES("PRVDISY","SAM2003") ;
BASERAT("PRIVCON",T)  = SCALRES("PRIVCON",T)/SCALRES("PRIVCON","SAM2003") ;
BASERAT("PRINV",T)    = SCALRES("PRINV",T)/SCALRES("PRINV","SAM2003") ;
BASERAT("GREV",T)     = FISCAL("GREV",T)/FISCAL("GREV","SAM2003") ;
BASERAT("GREXP",T)    = FISCAL("GREXP",T)/FISCAL("GREXP","SAM2003") ;
BASERAT("GOVCON",T)   = FISCAL("GOVCON",T)/FISCAL("GOVCON","SAM2003") ;
BASERAT("GINV",T)     = FISCAL("GINV",T)/FISCAL("GINV","SAM2003") ;
BASERAT("GSAV",T)     = FISCAL("GSAV",T)/FISCAL("GSAV","SAM2003") ;
BASERAT("PISB",T)     = FISCAL("PISB",T)/FISCAL("PISB","SAM2003") ;
BASERAT("PRIMARYBAL",T) = FISCAL("PRIMARYBAL",T)/FISCAL("PRIMARYBAL","SAM2003") ;
 
 

BASERAT1("PM/PD",I,T) = (PM.L(I)/PD.L(I))/SECTRES("PM/PD",I,"SAM2003") ;

BASERAT1("PE/PD",I,T) = (PE.L(I)/PD.L(I))/SECTRES("PE/PD",I,"SAM2003") ;
BASERAT1("PVA",I,T) = PVA.L(I)/SECTRES("PVA",I,"SAM2003") ;
BASERAT1("LD",I,T) = LD.L(I)/SECTRES("LD",I,"SAM2003") ;
BASERAT1("K",I,T) = K.L(I)/SECTRES("K",I,"SAM2003") ;
BASERAT1("XS",I,T) = XS.L(I)/SECTRES("XS",I,"SAM2003") ;
BASERAT1("CD",I,T) = CD.L(I)/SECTRES("CD",I,"SAM2003") ;
BASERAT1("GD",I,T) = GD.L(I)/SECTRES("GD",I,"SAM2003") ;
BASERAT1("ID",I,T) = ID.L(I)/SECTRES("ID",I,"SAM2003") ;
BASERAT1("E",I,T) = E.L(I)/SECTRES("E",I,"SAM2003") ;
BASERAT1("M",I,T) = M.L(I)/SECTRES("M",I,"SAM2003") ;
 
 

*END OF LOOP

 );
 

DISPLAY SCALRES, FISCAL, SECTRES, BASERAT, BASERAT1 ;

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