|
|
@ -143,6 +143,7 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam |
|
|
char *ch, tmpname[BSIZE_SP]; |
|
|
char *ch, tmpname[BSIZE_SP]; |
|
|
bool saveall = TRUE; |
|
|
bool saveall = TRUE; |
|
|
bool savealli = FALSE; |
|
|
bool savealli = FALSE; |
|
|
|
|
|
bool savenosub = FALSE; |
|
|
char *an_name; |
|
|
char *an_name; |
|
|
int initmem; |
|
|
int initmem; |
|
|
/*to resume a run saj |
|
|
/*to resume a run saj |
|
|
@ -213,6 +214,13 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam |
|
|
saves[i].used = 1; |
|
|
saves[i].used = 1; |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (cieq(saves[i].name, "nosub")) { |
|
|
|
|
|
savenosub = TRUE; |
|
|
|
|
|
savesused[i] = TRUE; |
|
|
|
|
|
saves[i].used = 1; |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
#ifdef SHARED_MODULE |
|
|
#ifdef SHARED_MODULE |
|
|
/* this may happen if shared ngspice*/ |
|
|
/* this may happen if shared ngspice*/ |
|
|
if (cieq(saves[i].name, "none")) { |
|
|
if (cieq(saves[i].name, "none")) { |
|
|
@ -226,7 +234,7 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (numsaves && !saveall) |
|
|
|
|
|
|
|
|
if (numsaves && !saveall && !savenosub) |
|
|
initmem = numsaves; |
|
|
initmem = numsaves; |
|
|
else |
|
|
else |
|
|
initmem = numNames; |
|
|
initmem = numNames; |
|
|
@ -245,7 +253,7 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Pass 1. */ |
|
|
/* Pass 1. */ |
|
|
if (numsaves && !saveall) { |
|
|
|
|
|
|
|
|
if (numsaves && !saveall && !savenosub) { |
|
|
for (i = 0; i < numsaves; i++) { |
|
|
for (i = 0; i < numsaves; i++) { |
|
|
if (!savesused[i]) { |
|
|
if (!savesused[i]) { |
|
|
for (j = 0; j < numNames; j++) { |
|
|
for (j = 0; j < numNames; j++) { |
|
|
@ -269,7 +277,8 @@ beginPlot(JOB *analysisPtr, CKTcircuit *circuitPtr, char *cktName, char *analNam |
|
|
for (i = 0; i < numNames; i++) |
|
|
for (i = 0; i < numNames; i++) |
|
|
if (!refName || !name_eq(dataNames[i], refName)) |
|
|
if (!refName || !name_eq(dataNames[i], refName)) |
|
|
/* Save the node as long as it's not an internal device node */ |
|
|
/* Save the node as long as it's not an internal device node */ |
|
|
if (!strstr(dataNames[i], "#internal") && |
|
|
|
|
|
|
|
|
if (!(savenosub && strchr(dataNames[i], '.')) && /* don't save subckt nodes */ |
|
|
|
|
|
!strstr(dataNames[i], "#internal") && |
|
|
!strstr(dataNames[i], "#source") && |
|
|
!strstr(dataNames[i], "#source") && |
|
|
!strstr(dataNames[i], "#drain") && |
|
|
!strstr(dataNames[i], "#drain") && |
|
|
!strstr(dataNames[i], "#collector") && |
|
|
!strstr(dataNames[i], "#collector") && |
|
|
|