DONLP2 is a general nonlinear programming code by Prof. Dr. Peter Spellucci e-mail: spellucci@mathematik.th-darmstadt.de It uses an SQP algorithm and dense-matrix linear algebra. Source for DONLP2 is available from ftp://ftp.mathematik.tu-darmstadt.de/pub/department/software/opti/DONLP2 File donlp2.o (mentioned in the makefile) is an object form of DONLP2 source file donlp2.f . See the DONLP2 source for documentation. For a summary of using solver "donlp2", execute donlp2 '-?' Donlp2 reads keywords and values from the environment (shell) variable donlp2_options (known in an AMPL session as option donlp2_options) and from the command line. Execute donlp2 -= for a summary of keywords that donlp2 recognizes. Possible solve_result_num values for donlp2: 0 Success! KKT conditions satisfied 100 nearly feasible with small directional deriv. 101 relaxed KKT conditions satisfied: singular point 101 small QP correction: nearly feasible and singular 200 tiny correction from QP at infeasible point 400 reached maxit steps 500 N too large (the Fortran donlp2 routines must be recompiled) 501 unknown termination reason 510 cannot evaluate constraints 511 cannot evaluate objective 520 dual extended QP failure: singular working set 521 infeasible QP 522 no descent in QP 523 tiny QP step from infeasible point 524 nondescent direction from QP 525 no acceptable step size 527 tiny step 528 more than NRESET small primal corrections 529 max(N,10) small penalty function differences 540 slow primal progress: singular or ill-conditioned problem? Scaling (new 19980606): in an AMPL session, if you declare option suffix vsclog10; then variable.vsclog10 (default 0) is passed to donlp2, which scales the variable internally by 10^-variable.vsclog10. Thus if variables x and y are distances in meters that have typical values of a few centimeters and a few kilometers, respectively, then let x.vsclog10 := -2; let y.vsclog10 := 3; woudl probably be appropriate, since it would give the internal variables typical values around 1.