@ -14,6 +14,7 @@ Modified: 1999 Paolo Nenzi
# include "ngspice/const.h"
# include "ngspice/const.h"
# include "ngspice/sperror.h"
# include "ngspice/sperror.h"
# include "ngspice/fteext.h"
# include "ngspice/fteext.h"
# include "ngspice/compatmode.h"
# ifdef XSPICE
# ifdef XSPICE
# include "ngspice/evt.h"
# include "ngspice/evt.h"
@ -297,8 +298,8 @@ DCtrCurv(CKTcircuit *ckt, int restart)
if ( ckt - > evt - > counts . num_insts = = 0 ) {
if ( ckt - > evt - > counts . num_insts = = 0 ) {
/* If no event-driven instances, do what SPICE normally does */
/* If no event-driven instances, do what SPICE normally does */
# endif
# endif
converged = NIiter ( ckt , ckt - > CKTdcTrcvMaxIter ) ;
if ( converged ! = 0 ) {
if ( newcompat . hs ) {
converged = CKTop ( ckt ,
converged = CKTop ( ckt ,
( ckt - > CKTmode & MODEUIC ) | MODEDCTRANCURVE | MODEINITJCT ,
( ckt - > CKTmode & MODEUIC ) | MODEDCTRANCURVE | MODEINITJCT ,
( ckt - > CKTmode & MODEUIC ) | MODEDCTRANCURVE | MODEINITFLOAT ,
( ckt - > CKTmode & MODEUIC ) | MODEDCTRANCURVE | MODEINITFLOAT ,
@ -306,6 +307,17 @@ DCtrCurv(CKTcircuit *ckt, int restart)
if ( converged ! = 0 )
if ( converged ! = 0 )
return ( converged ) ;
return ( converged ) ;
}
}
else {
converged = NIiter ( ckt , ckt - > CKTdcTrcvMaxIter ) ;
if ( converged ! = 0 ) {
converged = CKTop ( ckt ,
( ckt - > CKTmode & MODEUIC ) | MODEDCTRANCURVE | MODEINITJCT ,
( ckt - > CKTmode & MODEUIC ) | MODEDCTRANCURVE | MODEINITFLOAT ,
ckt - > CKTdcMaxIter ) ;
if ( converged ! = 0 )
return ( converged ) ;
}
}
# ifdef XSPICE
# ifdef XSPICE
}
}
else {
else {