function ss = steady1(param);
%STEADY1   calculates the steady states for the models with N=1 in 
%          Chari, Kehoe, and McGrattan, ``Can Sticky Price Models 
%          Generate Volatile and Persistent Real Exchange Rates?''
%          Preferences are given in UTIL.m
%

%          Ellen McGrattan, 9-16-99
%          Revised, ERM, 9-17-99


% Subset of parameters used to construct steady state:
Utype    = param(4);
beta     = param(11);
ome1     = param(12);
rho      = param(13);
theta    = param(14);
alpha    = param(15);
delta    = param(16);
b        = param(17);
mu       = param(19);


% Intermediate parameters:
alph1    = 1-alpha;
delt1    = 1-delta;
ome2     = 1-ome1;
thet1    = 1-theta;
sup1     = 1/(1-rho);
sup2     = rho/(rho-1);

% Start with a good guess:
pph      = (ome1^sup1+ome2^sup1)^(1/sup2);
mc       = theta/pph;
Fk       = (1-beta*delt1)/(beta*mc);
kl       = (Fk/alpha)^(-1/alph1);
Fl       = alph1*kl^alpha;
cl       = kl^alpha/pph-delta*kl;
cm       = 1;
l        = .25;
z0       = [cm;l];
del      = diag(z0)*.0001;

% Find a fixed point of the nonstochastic first order conditions:
for i=1:20;

  cm           = z0(1);
  l            = z0(2);
  c            = cl*l;
  MP           = c/cm;
  [U,UC,UM,UL] = util(c,MP,l,param);
  res          = [1-beta/mu-UM/UC;
                  mc+UL/UC/Fl];
  zp           = z0 + del(:,1);
  cm           = zp(1);
  l            = zp(2);
  c            = cl*l;
  MP           = c/cm;
  [U,UC,UM,UL] = util(c,MP,l,param);
  dres(:,1)    = ([1-beta/mu-UM/UC;
                   mc+UL/UC/Fl] -res)/del(1,1);
  zp           = z0 + del(:,2);
  cm           = zp(1);
  l            = zp(2);
  c            = cl*l;
  MP           = c/cm;
  [U,UC,UM,UL] = util(c,MP,l,param);
  dres(:,2)    = ([1-beta/mu-UM/UC;
                   mc+UL/UC/Fl] -res)/del(2,2);
  z0           = z0 - dres\res;

end;

cm       = z0(1);
l        = z0(2);
k        = kl*l;
c        = cl*l;
MP       = c/cm;
x        = delta*k;
y        = c+x;
p        = mu/MP;
ph       = p/pph;
yh       = y*(ome1*pph)^sup1;
yha      = y*(ome2*pph)^sup1;

[U,UC,UM,UL,UCC,UMM,ULL,UCM,UCL,ULM] ...
         = util(c,MP,l,param);

ss       = [ph;y;c;MP;UC;UM;UL;UCC;UMM;ULL;UCM;UCL;ULM;k;x;yh;yha;l];

