%   This is the .mod file to solve the deterministic model

%--------------------------{ Preamble }------------------------------------

%   This is where we establish the variables, exogenous variables, and the
%   parameters of the model.

var c c_p ca n n_p na m lam1 lam2 tau w pi d r r_d r_l h h_p ha y g l; 
varexo mu;
parameters xi theta pis delta phi alpha omega chi eta lambda taus beta x_d 
           rho_r rho_pi phi_g phi_n gs nas rs;

load steady_state_values.mat

xi = 0.20;
theta = 0.50;
pis = 1.005;
delta = 0.40;
phi = 0.30;
alpha = 0.80;
omega = 0.035;
chi = 5;
eta = 3;
lambda = 0.40;
taus = 1.161097059187778;
beta = 0.993109990637097;
x_d = 0.007626203241594;
rho_r = 0.963495392116854
rho_pi = 0.062576853398951;
phi_g = 8.392509717993029e-04;
phi_n = 0.009541261645168;
gs =  0.088428396053855;
nas = 0.150863780386165;
rs = 1.011972500000000;


%----------------------------{ Model }-------------------------------------

%   Since this is a deterministic model, it does not have to be linearized.
%   Thus, we can simply write it in its nonlinear form.

model;
1/c - (c/m)^(chi-1)*(1/m) = lam2*tau;
n = xi*mu^(theta-1)*m*(lam1/(lam2-beta*lam2(+1)*(1-delta)/pi(+1)))^theta;
d = (1-xi)*m*(lam1/(lam2-beta*lam2(+1)*(r_d/pi(+1))))^theta;
1 = beta*(lam2(+1)/lam2)*(r/pi(+1));
1 = beta*(lam2(+1)/lam2)*(r_l/pi(+1));
eta = lam2*w;
(c/m)^chi = lam1*m;
tau*c_p = w*h_p;
w*h_p = mu*n_p;
h_p = 1/eta;
r_d = (1-omega)*r_l + (omega-x_d)*pi(+1)/(beta*lam2(+1)/lam2);
w = alpha*y/ha;
m = (xi^(1/theta)*(mu*n)^((theta-1)/theta)+(1-xi)^(1/theta)*d^((theta-1)/theta))^(theta/(theta-1));
tau*c + d + n + r_l(-1)/pi*l(-1) = w*h + r_d(-1)/pi*d(-1) + (1-delta)/pi*n(-1) + l;
l = (1-omega)*d;
y = ha^alpha;
(tau-1)*ca + (1-phi)*(na-((1-delta)/pi)*na(-1)) = g;
log(tau/taus) = phi_g*log(g/gs) + phi_n*log((na-(1-delta)*na(-1))/(delta*nas));
ca = (1-lambda)*c+lambda*c_p;
ha = (1-lambda)*h+lambda*h_p;
na = (1-lambda)*n+lambda*n_p;
log(r/rs) = rho_r*log(r(-1)/rs)+rho_pi*log(pi(-1)/pis);
end;

%--------------------------{ Steady State Values }-------------------------

initval;
c=0.284743237261889;
c_p=0.284743262854692; 
ca =0.284743247499010;
n =0.031029923894197;
n_p =0.330614565124115;
na =0.150863780386165;
m =0.501299223617995;
lam1=0.117946456889158; 
lam2 =3.024670130986492;
tau =1.161097059187778;
w =0.991843695372346;
pi =1.005;
d =0.906851701464599;
r =1.011972500000000;
r_d =(1-x_d)*rs;
r_l =1.011972500000000;
h =0.346738778918171;
h_p =1/eta;
ha =0.341376600684236;
y =0.423240286420378;
g =0.088428396053855;
l=0.875111891913338;
mu=1;
end;
steady;

resid;

check;


endval;
c=0.284746391352541;
c_p=0.284746416951128; 
ca =0.284746401591976;
n =0.030952981644543;
n_p =0.328973360533544;
na =0.150161133200144;
m =0.501304776493175;
lam1=0.117945150412668; 
lam2 =3.024636627136355;
tau =1.161097059187778;
w =0.991854682008635;
pi =1.005;
d =0.906861746631373;
r =1.011972500000000;
r_d =(1-x_d)*rs;
r_l =1.011972500000000;
h =0.346707268107086;
h_p =0.333333333333333;
ha =0.341357694197585;
y =0.423221534036934;
g =0.088230694738870;
l=0.875121585499275;
mu=1.005;
end;
steady;


shocks;
var mu;
periods 1:8;
values 0;
end;

simul(periods=80);
