A Fortran Implementation of a Feasible SQP Method for Nonlinear Constrained Optimization Problems

Version 2.8 (2013)


The Fortran subroutine NLPQLF solves smooth nonlinear programming problems and is an extension of the code NLPQLP. It is assumed that objective function or constraints can be evaluated only at argument values from a convex set described by some other inequality constraints. The numerical method performs a two-stage process. Starting from a point feasible subject to these 'simple' constraints, a new search direction is computed by solving a quadratic program expanded by the nonlinear feasibility constraints. Thus, the new iterate is feasible subject to these constraints and objective function as well as the remaining constraint function values can be evaluated.

Numerical Method

Starting from a feasible point, we formulate standard quadratic programming subproblems by a quadratic approximation of the Lagrangian function and by linearizing constraints, but where we insert in addition the given nonlinear feasibility constraints. Thus, we obtain a nonlinear subproblem to be solved in each step of the modified SQP algorithm, where the objective function is a quadratic one and where the constraints consist of a mixture of linear and nonlinear ones.

Program Organization

NLPQLF is a double precision FORTRAN subroutine where all parameters are passed through subroutine arguments. The program organization is very similar to that of NLPQLP.

Special Features

  • same as those for NLPQLP (scaling, reverse communication, etc.)
  • NLPQLB executes NLPQLP in reverse communication
  • full documentation by initial comments
  • Fortran source code (close to F77, conversion to C by f2c possible)


NLPQLF is applied to free material topology optimization problems on an academic level.