RC=100 means the solution is "suspect" in one or the other
or both optimality criteria. It just means KNITRO stalled
and at least one of the optimality or feasibility conditions
is "far" from being satisfied. In most cases, though, it is
the optimality condition (more precisely dual feasibility)
that is not being met, frequently because of degeneracy or
scaling in the problem.
RC=101 also means KNITRO stalled; however, both optimality
criteria are within two orders of magnitude of the desired
stop tolerance. Think of the return code as a "warning"
that the solution should be looked at carefully.
Unfortunately, there is no return code that distinguishes
1) "Feasible, but can make no further progress"
2) "Infeasible and can make no further progress"
The first often implies that the solution is optimal with
respect to the primal variables, but fails the optimality
test because KNITRO cannot find accurate Lagrange multipliers
(typically because the problem is degenerate or badly scaled).
The second implies the primal solution is not optimal and
probably of no use.
A future release of KNITRO will make this distinction.