Advanced Features

Kernel Routines

The DNOPT kernel routine lives one level below the main subroutines DNOPT and expose additional input arguments in the subroutine calls.

For each solver call, there are 3 additional external arguments dnLog, dqLog, and dnSTOP listed after the user-defined subroutines. Each of these arguments is an external subroutine. The first two subroutines can be used to customize the output logging routines for major SQP iterations and QP iterations, respectively. dnSTOP is a subroutine that is called every major iteration of the SQP method and can be used to abort the run.


subroutine dnSTOP
&   ( iAbort,
&     KTcond, minimize, mCon0, mCon,
&     n, nb, mNCon0, mNCon, nnObj0, nnObj, nZ,
&     itn, nMajor, nMinor,
&     condHz, ObjAdd, fMerit, penParm, step,
&     primalInf, dualInf, maxVi, maxViRel, state,
&     scales, bl, bu, fObj, gObj, fCon, fConMul,
&     JQP, ldJQP, gQ, x, pi,
&     cu, lencu, iu, leniu, ru, lenru,
&     cw, lencw, iw, leniw, rw, lenrw )

&     KTcond(2)
&     iAbort, itn, ldJQP,
&     lencu, lencw, leniu, leniw, lenru, lenrw,
&     minimize, mCon0, mCon, n, nb,
&     mNCon0, mNCon, nnObj0, nnObj, nMajor, nMinor, nZ,
&     state(nb), iu(leniu), iw(leniw)
 double precision
&     condHz, ObjAdd, fMerit, fObj, penParm(4), maxVIRel, maxVi,
&     primalInf, dualInf, step, scales(nb), bl(nb), bu(nb),
&     fCon(mNCon0), fConMul(mNCon0), gObj(nnObj0), gQ(n),
&     JQP(ldJQP,*), x(nb), pi(mCon0),
&     ru(lenru), rw(lenrw)
&     cu(lencu)*8, cw(lencw)*8

The dnSTOP subroutine is called every major iteration. dnSTOP can be used to examine or print information at the current iteration. A nonzero value of iAbort will terminate DNOPT at this iteration. Otherwise, DNOPT continues until some termination criteria is met.