diff --git a/ChangeLog b/ChangeLog
index fe5e57d23..47bbe0297 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-02-05 Paolo Nenzi
+
+ * src/spicelib/analysis/cktntask.c: Bug: not all the values
+ of TSKtask structure were copied and got a correct default
+ value. The bug showed as an infinite loop in gmin stepping.
+
2004-02-10 Paolo Nenzi
* src/frontend/inpcom.c: Applied patch from Dietmar Warning
diff --git a/src/spicelib/analysis/cktntask.c b/src/spicelib/analysis/cktntask.c
index 06c1a74bb..aa654758c 100644
--- a/src/spicelib/analysis/cktntask.c
+++ b/src/spicelib/analysis/cktntask.c
@@ -33,36 +33,45 @@ CKTnewTask(void *ckt, void **taskPtr, IFuid taskName, void **defPtr)
def = *(TSKtask **)defPtr;
if ((strcmp(taskName,"special")==0) && def ) {
/* create options by copying the circuit's defaults */
- tsk->TSKgmin = def->TSKgmin;
- tsk->TSKabstol = def->TSKabstol;
- tsk->TSKreltol = def->TSKreltol;
- tsk->TSKchgtol = def->TSKchgtol;
- tsk->TSKvoltTol = def->TSKvoltTol;
-#ifdef NEWTRUNC
- tsk->TSKlteReltol = def->TSKlteRelto;
- tsk->TSKlteAbstol = def->TSKlteAbstol;
-#endif /* NEWTRUNC */
- tsk->TSKtrtol = def->TSKtrtol;
- tsk->TSKbypass = def->TSKbypass;
- tsk->TSKtranMaxIter = def->TSKtranMaxIter;
- tsk->TSKdcMaxIter = def->TSKdcMaxIter;
- tsk->TSKdcTrcvMaxIter = def->TSKdcTrcvMaxIter;
- tsk->TSKintegrateMethod = def->TSKintegrateMethod;
- tsk->TSKmaxOrder = def->TSKmaxOrder;
- tsk->TSKnumSrcSteps = def->TSKnumSrcSteps;
- tsk->TSKnumGminSteps = def->TSKnumGminSteps;
- tsk->TSKpivotAbsTol = def->TSKpivotAbsTol;
+ tsk->TSKtemp = def->TSKtemp;
+ tsk->TSKnomTemp = def->TSKnomTemp;
+ tsk->TSKmaxOrder = def->TSKmaxOrder;
+ tsk->TSKintegrateMethod = def->TSKintegrateMethod;
+ tsk->TSKbypass = def->TSKbypass;
+ tsk->TSKdcMaxIter = def->TSKdcMaxIter;
+ tsk->TSKdcTrcvMaxIter = def->TSKdcTrcvMaxIter;
+ tsk->TSKtranMaxIter = def->TSKtranMaxIter;
+ tsk->TSKnumSrcSteps = def->TSKnumSrcSteps;
+ tsk->TSKnumGminSteps = def->TSKnumGminSteps;
+ tsk->TSKgminFactor = def->TSKgminFactor;
+ /* minBreak */
+ tsk->TSKabstol = def->TSKabstol;
+ tsk->TSKpivotAbsTol = def->TSKpivotAbsTol;
tsk->TSKpivotRelTol = def->TSKpivotRelTol;
- tsk->TSKtemp = def->TSKtemp;
- tsk->TSKnomTemp = def->TSKnomTemp;
+ tsk->TSKreltol = def->TSKreltol;
+ tsk->TSKchgtol = def->TSKchgtol;
+ tsk->TSKvoltTol = def->TSKvoltTol;
+ tsk->TSKgmin = def->TSKgmin;
+ tsk->TSKgshunt = def->TSKgshunt;
+ /* delmin */
+ tsk->TSKtrtol = def->TSKtrtol;
tsk->TSKdefaultMosL = def->TSKdefaultMosL;
tsk->TSKdefaultMosW = def->TSKdefaultMosW;
tsk->TSKdefaultMosAD = def->TSKdefaultMosAD;
tsk->TSKdefaultMosAS = def->TSKdefaultMosAS;
- tsk->TSKnoOpIter= def->TSKnoOpIter;
- tsk->TSKtryToCompact = def->TSKtryToCompact;
- tsk->TSKbadMos3 = def->TSKbadMos3;
+ /* fixLimit */
+ tsk->TSKnoOpIter= def->TSKnoOpIter;
+ tsk->TSKtryToCompact = def->TSKtryToCompact;
+ tsk->TSKbadMos3 = def->TSKbadMos3;
tsk->TSKkeepOpInfo = def->TSKkeepOpInfo;
+ tsk->TSKcopyNodesets = def->TSKcopyNodesets;
+ tsk->TSKnodeDamping = def->TSKnodeDamping;
+ tsk->TSKabsDv = def->TSKabsDv;
+ tsk->TSKrelDv = def->TSKrelDv;
+#ifdef NEWTRUNC
+ tsk->TSKlteReltol = def->TSKlteReltol;
+ tsk->TSKlteAbstol = def->TSKlteAbstol;
+#endif /* NEWTRUNC */
} else {
/* use the application defaults */
#endif /*CDHW*/