When solving partial differential equations by numerical methods, an automatic mesh generation technique which can accommodate local mesh refinement adaptively is desirable. One efficient technique for producing such meshes in two-dimensional space is to subdivide recursively the domain into quadrants using a quadtree to store and manipulate the mesh information. Here, the quadtree grid generation technique is reviewed and its programming discussed. Three data storage methods are examined. The conversion of the quadtree grid to a triangular finite element mesh is also described, along with methods for fitting the mesh to smooth boundary contours. Results from viscous flow and standing wave simulations are used to illustrate mesh adaptivity ...