Surface Panel Methods for Airfoils
Rather than make the assumption of thin airfoil theory, that the singularities
and boundary conditions are evaluated on the x-axis, we can use a panel
method to compute the forces and vorticity on a thin airfoil.

One approach is to place vortices (·) on the mean line as shown above,
with boundary conditions of tangential flow satisfied at the control points
(x).
Vortices are often placed at the 1/4 chord point of each panel with control
points at the 3/4 chord point. This is chosen solely to make the lift and
moment come out right with very few panels. The details of this method
are left as a homework exercise.
One may also place vorticity on the actual surface (not the mean line) of
a thick section. A common approach involves the distribution of linearly-varying
vorticity panels. One solves for the vorticity strength at panel edges
and requires that the boundary conditions and Kutta condition are satisfied.
More detail on this method is given in Kuethe
and Chow or Moran.

Recall that the PDE and BC's are not sufficient to produce a unique solution.
We have gotten away without an explicit extra condition until now by using
some tricks. In thin airfoil theory, we assumed a form of the circulation
distribution that had no vorticity at the trailing edge. For the discrete
vortex panel model, the selection of the control points
one-half panel from the vortices effectively did the same thing. In a true
surface panel method, this auxiliary condition must be included explicitly.
By forcing the vorticity on the upper surface to be equal in magnitude
but of opposite sign to that on the lower surface, one obtains flows that
satisfy the Kutta condition. This condition is enforced in reality by viscosity:
if the flow did continue around the sharp trailing edge (at very high speeds),
the boundary layer would separate on the upper surface.
Here is a Fortran subroutine that computes the
pressure distribution on arbitrary airfoils using a linear surface vorticity
distribution.