MGGHAT (MultiGrid Galerkin Hierarchical Adaptive Triangles) is a FORTRAN program for the solution of second order linear elliptic partial differential equations of the form d du d du - -- (p --) - -- (q --) + ru = f in D dx dx dy dy with boundary conditions of the form u = g on d1 du dy du dx p -- -- - q -- -- + cu = g on d2 dx ds dy ds where p>0, q>0, r, f, c and g are functions of x and y, D is a polygonal domain in R^2 (possibly with holes), d1 U d2 is the boundary of D, and d/ds is differentiation with respect to a counterclockwise parameterization of the boundary (x(s),y(s)). The second form of the boundary condition, called the natural boundary condition, reduces to the Neuman boundary condition when p=q=1. MGGHAT uses a finite element method with linear, quadratic or cubic elements (user selectable) over triangles. The adaptive refinement via newest vertex bisection and the multigrid iteration are both based on a hierarchical basis formulation. Run time and a posteriori graphical displays are made with gnuplot.