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.
 *------ 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;);