Simul.gms (Outdated)
Simul.gms
is very similar to Ref.gms (Outdated)
, except it includes the political economy scenarios of interest in the simulation. The file is organised in three parts:
- Initialisation of simulation - This part should not be changed.
- Scenario - It is the part where you should write your scenario.
- Simulation solving - You have usually nothing to change in this part, which initialises the parameters for the slicing of shocks and solves the model.
Simul.gms:
*------ INITIALISATION OF SIMULATION -------- t1 = 6; ! Start in 2006 t(Temps) = no; t(Temps) = yes$(ord(Temps)=t1); sim(Simul) = no; sim("Sim") = yes; K_(i,r,s) = sum(Temps$(ord(Temps)=t1),(K.l(i,r,s,Temps,"Ref") -INV.l(i,r,s,Temps,"Ref"))/(1-delta(r))); BL = 0; PGF.fx(r,Temps,"Sim") = PGF.l(r,Temps,"Ref"); PLind.fx(r,Temps,"Sim") = PLind.l(r,Temps,"Ref"); $batinclude VARIABLES.gms .\ProgGMS\ISim *--------- SCENARIO ----------- *------ Simulation solving ------ ** Automatic slicing initialisation ! NB: All exogenous variables changed in the shock should be entered here PGFend(r,Temps,sim) = PGF.l(r,Temps,sim); taxPend(i,r,Temps,sim) = taxP(i,r,Temps,sim); tsubKend(i,r,Temps,sim) = tsubK(i,r,Temps,sim); tsubTEend(i,r,Temps,sim) = tsubTE(i,r,Temps,sim); DDend(i,r,s,Temps,sim) = DD(i,r,s,Temps,sim); renteend(i,r,s,Temps,sim) = rente(i,r,s,Temps,sim); taxAMFend(i,r,s,Temps,sim) = taxAMF(i,r,s,Temps,sim); TAXEXPbaseend(i,r,s,Temps,sim) = TAXEXPbase(i,r,s,Temps,sim); While(t1 < card(Temps), *$include NEXT.gms $include NEXTSlice.gms $include changemode.gms put log1; loop(Temps$(ord(Temps)=t1), put 'Year ', Temps.tl:4:0, ' complete' //); putclose;);