  For triangulated surfaces, we introduce the combinatorial Calabi flow which
is an analogue of smooth Calabi flow. We prove that the solution of
combinatorial Calabi flow exists for all time. Moreover, the solution converges
if and only if Thurston's circle packing exists. As a consequence,
combinatorial Calabi flow provides a new algorithm to find circle packings with
prescribed curvatures. The proofs rely on careful analysis of combinatorial
Calabi energy, combinatorial Ricci potential and discrete dual-Laplacians.
