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.
dnSTOP¶
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 )
logical
& KTcond(2)
integer
& 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)
character
& 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.