Solver-o-matic
Decision Tree for Nonsmooth Optimization Software
Your first choice should be SolvOpt (solver for local nonlinear optimization problems) with difference approximations. SolvOpt is an implementation of Shor's r-algorithm by A. Kuntsevich and F. Kappel. In SolvOpt one can select to use either original subgradients or difference approximations of them (i.e. you do not have to code difference approximations but to select one parameter to do this automatically). The possible constraints are taken into account by the method of exact penalization. The MatLab, C and Fortran source codes for SolvOpt are available.
Not satisfied?