$Title Krugman Trade Equilibrium with Iceberg Costs

*Edward J. Balistreri, Colorado School of Mines (ebalistr@mines.edu)
*Thomas F. Rutherford, ETH Z\"{u}rich (tom@mpsge.org).
*March 2011

        r        countries or regions /R1,R2,R3/
        k        goods                      /G1/;
Alias (r,s);

        sig          elasticity of substitution       /5.6/,
        eta          demand elasticity                /2/,
        mu           supply elasticity                /0.5/,
        Q0(k,r)      benchmark aggregate quantity,
        P0(k,r)      benchmark price index,
        N0(k,r)      benchmark number of firms,
        qf0(k,r,s)   benchmark firm-level quantity,
        pf0(k,r,s)   benchmark firm-level pricing (gross of tau),
        c0(k,r)      benchmark input cost,
        Y0(k,r)      benchmark input supply,
        fc(k,r)      fixed costs,
        tau(k,r,s)   iceberg transport cost factor,
        vx0(k,r,s)   arbitrary benchmark export values
c0(k,r)    = 1;
vx0(k,r,s) = 1;
vx0(k,r,r) = 3;
Y0(k,r)    = sum(s, vx0(k,r,s))/c0(k,r);
N0(k,r)    = 10;
*        Calibrate the fixed cost based on zero profit
fc(k,r)    = sum(s,vx0(k,r,s))/(sig*N0(k,r)*c0(k,r));
P0(k,r)    = 1;
Q0(k,r)    = sum(s, vx0(k,s,r))/P0(k,r);
pf0(k,r,s) = (vx0(k,r,s)/(N0(k,r)*Q0(k,s)))**(1/(1-sig));
qf0(k,r,s) = Q0(k,s)*pf0(k,r,s)**(-sig);
tau(k,r,s) = (1-1/sig)*pf0(k,r,s)/c0(k,r);
display tau;

Positive Variables
        Q(k,r)        Composite Quantity,
        P(k,r)        Composite price index,
        N(k,r)        Number of firms (varieties)
        QF(k,r,s)     Firm-level output in s-market
        PF(k,r,s)     Firm-level (gross) pricing in s-market
        c(k,r)        Composite input price (marginal cost),
        Y(k,r)        Composite input supply (output);

        DEM(k,r)      Aggregate demand,
        DS(k,r)       Dixit-Stiglitz price index,
        FE(k,r)       Free entry,
        DEMF(k,r,s)   Firm demand,
        MKUP(k,r,s)   Optimal firm pricing,
        MKT(k,r)      Input market clearance,
        SUP(k,r)      Input supply (output);

DEM(k,r)..  Q(k,r) - Q0(k,r)*(P0(k,r)/P(k,r))**eta =g= 0;
DS(k,s).. sum(r,N(k,r)*PF(k,r,s)**(1-sig))**(1/(1-sig)) - 
           P(k,s) =g= 0; 

FE(k,r)..     c(k,r)*fc(k,r) - sum(s,PF(k,r,s)*QF(k,r,s)/sig) =g= 0;

DEMF(k,r,s).. QF(k,r,s) -  Q(k,s)*(P(k,s)/PF(k,r,s))**sig =g= 0;

MKUP(k,r,s).. tau(k,r,s)*c(k,r) - (1 - 1/sig)*PF(k,r,s) =g= 0;

MKT(k,r).. Y(k,r) - 
           N(k,r)*(fc(k,r) + sum(s,tau(k,r,s)*QF(k,r,s)))
           =g= 0;

SUP(k,r).. Y0(k,r)*(c(k,r)/c0(k,r))**mu - Y(k,r) =g= 0;


*Set the level values and check for benchmark consistency 
Q.l(k,r)   =Q0(k,r)   ;
P.l(k,r)   =P0(k,r)   ;
N.l(k,r)   =N0(k,r)   ;
c.l(k,r)   =c0(k,r)   ;
Y.l(k,r)   =Y0(k,r)   ;

A_2.iterlim = 0;
Solve A_2 using MCP;
Abort$(A_2.objval > 1e-6) "Benchmark Replication Failed";