The Shoot package is a fortran package for solving Two Points Boundary Value Problems by the shooting method. The second member of the TPBVP can be discontinuous. In this case we use dense output of the numerical integration of Initial Value Problem to detect the schwitching times and the derivatives are calculated rigorously using variational equations . An application to the numerical solution of continuous 3D maximum mass orbit transfer around the Earth , especially for low thrust engines (e.g., thrust of Newton for a 1500 Kilogramme satellite) is given. The optimal control model given by the French Space Agency is the following (we refer to  for details):
mf -> max
dx/dt = f0(x)+1/m (u1f1(x)+u2f2(x)+u3f3(x)), t in [0,tf]
dm/dt = -ß|u|
x(0) = x0, m(0) = m0, h(x(tf)) = 0
|u| <= Tmax
where Tmax is the maximum modulus of the thrust. The state of the satellite is described by the geometry of the ellipse osculating to the trajectory and its position on it, x = (P,ex,ey,hx,hy,L), and by its mass m.
 P. Martinon and J. Gergaud, Using switching detection and variational equations for the shooting method, Optimal Control, Applications and Methods, 28(2) (2007), pp. 95-116.
Shoot package v1.1 - User Guide
P. Martinon and J. Gergaud
Technical Report RT/APO/08/03, INP-ENSEEIHT-IRIT, July 2008