spicelib/devcies/*dest.c, rewrite DEVdestroy() functions
This commit is contained in:
parent
d9e0ae3504
commit
4d79617cf1
|
|
@ -10,28 +10,25 @@ Author: 1987 Kanwar Jit Singh
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ASRCdestroy(GENmodel **model)
|
ASRCdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
ASRCmodel **start = (ASRCmodel**) model; /* starting model */
|
ASRCmodel *mod = *(ASRCmodel**) inModel;
|
||||||
ASRCinstance *here; /* current instance */
|
|
||||||
ASRCinstance *next;
|
|
||||||
ASRCmodel *mod = *start; /* current model */
|
|
||||||
ASRCmodel *nextmod;
|
|
||||||
|
|
||||||
for (; mod ; mod = nextmod) {
|
while (mod) {
|
||||||
for (here = mod->ASRCinstances; here; here = next) {
|
ASRCmodel *next_mod = mod->ASRCnextModel;
|
||||||
next = here->ASRCnextInstance;
|
ASRCinstance *inst = mod->ASRCinstances;
|
||||||
FREE(here->ASRCacValues);
|
while (inst) {
|
||||||
INPfreeTree(here->ASRCtree);
|
ASRCinstance *next_inst = inst->ASRCnextInstance;
|
||||||
if (here->ASRCposptr)
|
INPfreeTree(inst->ASRCtree);
|
||||||
free(here->ASRCposptr);
|
FREE(inst->ASRCacValues);
|
||||||
if (here->ASRCvars)
|
FREE(inst->ASRCposptr);
|
||||||
free(here->ASRCvars);
|
FREE(inst->ASRCvars);
|
||||||
FREE(here);
|
FREE(inst);
|
||||||
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
nextmod = mod->ASRCnextModel;
|
|
||||||
FREE(mod);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This routine deletes all BJTs from the circuit and frees
|
* This routine deletes all BJTs from the circuit and frees
|
||||||
|
|
@ -17,31 +15,21 @@ Author: 1985 Thomas L. Quarles
|
||||||
|
|
||||||
void
|
void
|
||||||
BJTdestroy(GENmodel **inModel)
|
BJTdestroy(GENmodel **inModel)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
BJTmodel *mod = *(BJTmodel**) inModel;
|
||||||
|
|
||||||
BJTmodel **model = (BJTmodel**)inModel;
|
while (mod) {
|
||||||
BJTinstance *here;
|
BJTmodel *next_mod = mod->BJTnextModel;
|
||||||
BJTinstance *prev = NULL;
|
BJTinstance *inst = mod->BJTinstances;
|
||||||
BJTmodel *mod = *model;
|
while (inst) {
|
||||||
BJTmodel *oldmod = NULL;
|
BJTinstance *next_inst = inst->BJTnextInstance;
|
||||||
|
FREE(inst->BJTsens);
|
||||||
for( ; mod ; mod = mod->BJTnextModel) {
|
FREE(inst);
|
||||||
if(oldmod) FREE(oldmod);
|
inst = next_inst;
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for(here = mod->BJTinstances ; here ; here = here->BJTnextInstance) {
|
|
||||||
if(prev){
|
|
||||||
if(prev->BJTsens) FREE(prev->BJTsens);
|
|
||||||
FREE(prev);
|
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if(prev){
|
|
||||||
if(prev->BJTsens) FREE(prev->BJTsens);
|
|
||||||
FREE(prev);
|
|
||||||
}
|
}
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Hong J. Park, Thomas L. Quarles
|
Author: 1985 Hong J. Park, Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "bsim1def.h"
|
#include "bsim1def.h"
|
||||||
|
|
@ -13,23 +11,19 @@ Author: 1985 Hong J. Park, Thomas L. Quarles
|
||||||
void
|
void
|
||||||
B1destroy(GENmodel **inModel)
|
B1destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
B1model *mod = *(B1model**) inModel;
|
||||||
|
|
||||||
B1model **model = (B1model**)inModel;
|
while (mod) {
|
||||||
B1instance *here;
|
B1model *next_mod = mod->B1nextModel;
|
||||||
B1instance *prev = NULL;
|
B1instance *inst = mod->B1instances;
|
||||||
B1model *mod = *model;
|
while (inst) {
|
||||||
B1model *oldmod = NULL;
|
B1instance *next_inst = inst->B1nextInstance;
|
||||||
|
FREE(inst);
|
||||||
for( ; mod ; mod = mod->B1nextModel) {
|
inst = next_inst;
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for(here = mod->B1instances ; here ; here = here->B1nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Hong J. Park, Thomas L. Quarles
|
Author: 1985 Hong J. Park, Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "bsim2def.h"
|
#include "bsim2def.h"
|
||||||
|
|
@ -13,24 +11,19 @@ Author: 1985 Hong J. Park, Thomas L. Quarles
|
||||||
void
|
void
|
||||||
B2destroy(GENmodel **inModel)
|
B2destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
B2model *mod = *(B2model**) inModel;
|
||||||
|
|
||||||
B2model **model = (B2model**)inModel;
|
while (mod) {
|
||||||
B2instance *here;
|
B2model *next_mod = mod->B2nextModel;
|
||||||
B2instance *prev = NULL;
|
B2instance *inst = mod->B2instances;
|
||||||
B2model *mod = *model;
|
while (inst) {
|
||||||
B2model *oldmod = NULL;
|
B2instance *next_inst = inst->B2nextInstance;
|
||||||
|
FREE(inst);
|
||||||
for( ; mod ; mod = mod->B2nextModel) {
|
inst = next_inst;
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for(here = mod->B2instances ; here ; here = here->B2nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
*inModel = NULL;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,53 +12,41 @@
|
||||||
#include "bsim3def.h"
|
#include "bsim3def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BSIM3destroy(
|
BSIM3destroy(GENmodel **inModel)
|
||||||
GENmodel **inModel)
|
|
||||||
{
|
{
|
||||||
BSIM3model **model = (BSIM3model**)inModel;
|
BSIM3model *mod = *(BSIM3model**) inModel;
|
||||||
BSIM3instance *here;
|
|
||||||
BSIM3instance *prev = NULL;
|
|
||||||
BSIM3model *mod = *model;
|
|
||||||
BSIM3model *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->BSIM3nextModel) {
|
#ifdef USE_OMP
|
||||||
/** added to get rid of link list pSizeDependParamKnot **/
|
|
||||||
struct bsim3SizeDependParam *pParam, *pParamOld=NULL;
|
|
||||||
|
|
||||||
pParam = mod->pSizeDependParamKnot;
|
|
||||||
|
|
||||||
for (; pParam ; pParam = pParam->pNext) {
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParamOld = pParam;
|
|
||||||
}
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParam = NULL;
|
|
||||||
/** end of extra code **/
|
|
||||||
if(oldmod) {
|
|
||||||
FREE(oldmod->BSIM3version);
|
|
||||||
FREE(oldmod);
|
|
||||||
}
|
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for (here = mod->BSIM3instances; here; here = here->BSIM3nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if(oldmod) {
|
|
||||||
#ifdef USE_OMP
|
|
||||||
/* free just once for all models */
|
/* free just once for all models */
|
||||||
FREE(oldmod->BSIM3InstanceArray);
|
FREE(mod->BSIM3InstanceArray);
|
||||||
#endif
|
#endif
|
||||||
/* oldmod->BSIM3modName to be freed in INPtabEnd() */
|
|
||||||
FREE(oldmod->BSIM3version);
|
while (mod) {
|
||||||
FREE(oldmod);
|
BSIM3model *next_mod = mod->BSIM3nextModel;
|
||||||
|
BSIM3instance *inst = mod->BSIM3instances;
|
||||||
|
|
||||||
|
/** added to get rid of link list pSizeDependParamKnot **/
|
||||||
|
struct bsim3SizeDependParam *p = mod->pSizeDependParamKnot;
|
||||||
|
while (p) {
|
||||||
|
struct bsim3SizeDependParam *next_p = p->pNext;
|
||||||
|
FREE(p);
|
||||||
|
p = next_p;
|
||||||
|
}
|
||||||
|
/** end of extra code **/
|
||||||
|
|
||||||
|
while (inst) {
|
||||||
|
BSIM3instance *next_inst = inst->BSIM3nextInstance;
|
||||||
|
FREE(inst);
|
||||||
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* mod->BSIM3modName to be freed in INPtabEnd() */
|
||||||
|
FREE(mod->BSIM3version);
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
*model = NULL;
|
|
||||||
return;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,29 +14,23 @@ Modified by Paolo Nenzi 2002
|
||||||
#include "b3soidddef.h"
|
#include "b3soidddef.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
B3SOIDDdestroy(GENmodel **inModel)
|
B3SOIDDdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
B3SOIDDmodel **model = (B3SOIDDmodel**)inModel;
|
B3SOIDDmodel *mod = *(B3SOIDDmodel**) inModel;
|
||||||
B3SOIDDinstance *here;
|
|
||||||
B3SOIDDinstance *prev = NULL;
|
|
||||||
B3SOIDDmodel *mod = *model;
|
|
||||||
B3SOIDDmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->B3SOIDDnextModel)
|
while (mod) {
|
||||||
{ if(oldmod) FREE(oldmod);
|
B3SOIDDmodel *next_mod = mod->B3SOIDDnextModel;
|
||||||
oldmod = mod;
|
B3SOIDDinstance *inst = mod->B3SOIDDinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for (here = mod->B3SOIDDinstances; here; here = here->B3SOIDDnextInstance)
|
B3SOIDDinstance *next_inst = inst->B3SOIDDnextInstance;
|
||||||
{ if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,29 +14,23 @@ File: b3soifddest.c 98/5/01
|
||||||
#include "b3soifddef.h"
|
#include "b3soifddef.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
B3SOIFDdestroy(GENmodel **inModel)
|
B3SOIFDdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
B3SOIFDmodel **model = (B3SOIFDmodel**)inModel;
|
B3SOIFDmodel *mod = *(B3SOIFDmodel**) inModel;
|
||||||
B3SOIFDinstance *here;
|
|
||||||
B3SOIFDinstance *prev = NULL;
|
|
||||||
B3SOIFDmodel *mod = *model;
|
|
||||||
B3SOIFDmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->B3SOIFDnextModel)
|
while (mod) {
|
||||||
{ if(oldmod) FREE(oldmod);
|
B3SOIFDmodel *next_mod = mod->B3SOIFDnextModel;
|
||||||
oldmod = mod;
|
B3SOIFDinstance *inst = mod->B3SOIFDinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for (here = mod->B3SOIFDinstances; here; here = here->B3SOIFDnextInstance)
|
B3SOIFDinstance *next_inst = inst->B3SOIFDnextInstance;
|
||||||
{ if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,29 +14,23 @@ Modified by Paolo Nenzi 2002
|
||||||
#include "b3soipddef.h"
|
#include "b3soipddef.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
B3SOIPDdestroy(GENmodel **inModel)
|
B3SOIPDdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
B3SOIPDmodel **model = (B3SOIPDmodel**)inModel;
|
B3SOIPDmodel *mod = *(B3SOIPDmodel**) inModel;
|
||||||
B3SOIPDinstance *here;
|
|
||||||
B3SOIPDinstance *prev = NULL;
|
|
||||||
B3SOIPDmodel *mod = *model;
|
|
||||||
B3SOIPDmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->B3SOIPDnextModel)
|
while (mod) {
|
||||||
{ if(oldmod) FREE(oldmod);
|
B3SOIPDmodel *next_mod = mod->B3SOIPDnextModel;
|
||||||
oldmod = mod;
|
B3SOIPDinstance *inst = mod->B3SOIPDinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for (here = mod->B3SOIPDinstances; here; here = here->B3SOIPDnextInstance)
|
B3SOIPDinstance *next_inst = inst->B3SOIPDnextInstance;
|
||||||
{ if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,29 +8,23 @@ File: b3v0dest.c
|
||||||
#include "bsim3v0def.h"
|
#include "bsim3v0def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BSIM3v0destroy(GENmodel **inModel)
|
BSIM3v0destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
BSIM3v0model **model = (BSIM3v0model**)inModel;
|
BSIM3v0model *mod = *(BSIM3v0model**) inModel;
|
||||||
BSIM3v0instance *here;
|
|
||||||
BSIM3v0instance *prev = NULL;
|
|
||||||
BSIM3v0model *mod = *model;
|
|
||||||
BSIM3v0model *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->BSIM3v0nextModel)
|
while (mod) {
|
||||||
{ if(oldmod) FREE(oldmod);
|
BSIM3v0model *next_mod = mod->BSIM3v0nextModel;
|
||||||
oldmod = mod;
|
BSIM3v0instance *inst = mod->BSIM3v0instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for (here = mod->BSIM3v0instances; here; here = here->BSIM3v0nextInstance)
|
BSIM3v0instance *next_inst = inst->BSIM3v0nextInstance;
|
||||||
{ if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,29 +14,23 @@
|
||||||
#include "bsim3v1def.h"
|
#include "bsim3v1def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BSIM3v1destroy(GENmodel **inModel)
|
BSIM3v1destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
BSIM3v1model **model = (BSIM3v1model**)inModel;
|
BSIM3v1model *mod = *(BSIM3v1model**) inModel;
|
||||||
BSIM3v1instance *here;
|
|
||||||
BSIM3v1instance *prev = NULL;
|
|
||||||
BSIM3v1model *mod = *model;
|
|
||||||
BSIM3v1model *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->BSIM3v1nextModel)
|
while (mod) {
|
||||||
{ if(oldmod) FREE(oldmod);
|
BSIM3v1model *next_mod = mod->BSIM3v1nextModel;
|
||||||
oldmod = mod;
|
BSIM3v1instance *inst = mod->BSIM3v1instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for (here = mod->BSIM3v1instances; here; here = here->BSIM3v1nextInstance)
|
BSIM3v1instance *next_inst = inst->BSIM3v1nextInstance;
|
||||||
{ if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,48 +13,37 @@
|
||||||
#include "bsim3v32def.h"
|
#include "bsim3v32def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BSIM3v32destroy (GENmodel **inModel)
|
BSIM3v32destroy (GENmodel **inModel)
|
||||||
{
|
{
|
||||||
BSIM3v32model **model = (BSIM3v32model**)inModel;
|
BSIM3v32model *mod = *(BSIM3v32model**) inModel;
|
||||||
BSIM3v32instance *here;
|
|
||||||
BSIM3v32instance *prev = NULL;
|
|
||||||
BSIM3v32model *mod = *model;
|
|
||||||
BSIM3v32model *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->BSIM3v32nextModel) {
|
|
||||||
/** added to get rid of link list pSizeDependParamKnot **/
|
|
||||||
struct bsim3v32SizeDependParam *pParam, *pParamOld=NULL;
|
|
||||||
|
|
||||||
pParam = mod->pSizeDependParamKnot;
|
|
||||||
|
|
||||||
for (; pParam ; pParam = pParam->pNext) {
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParamOld = pParam;
|
|
||||||
}
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParam = NULL;
|
|
||||||
/** end of extra code **/
|
|
||||||
if(oldmod) {
|
|
||||||
FREE(oldmod->BSIM3v32version);
|
|
||||||
FREE(oldmod);
|
|
||||||
}
|
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for (here = mod->BSIM3v32instances; here; here = here->BSIM3v32nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if(oldmod) {
|
|
||||||
#ifdef USE_OMP
|
#ifdef USE_OMP
|
||||||
/* free just once for all models */
|
/* free just once for all models */
|
||||||
FREE(oldmod->BSIM3v32InstanceArray);
|
FREE(mod->BSIM3v32InstanceArray);
|
||||||
#endif
|
#endif
|
||||||
FREE(oldmod->BSIM3v32version);
|
|
||||||
FREE(oldmod);
|
while (mod) {
|
||||||
|
BSIM3v32model *next_mod = mod->BSIM3v32nextModel;
|
||||||
|
BSIM3v32instance *inst = mod->BSIM3v32instances;
|
||||||
|
/** added to get rid of link list pSizeDependParamKnot **/
|
||||||
|
struct bsim3v32SizeDependParam *p = mod->pSizeDependParamKnot;
|
||||||
|
while (p) {
|
||||||
|
struct bsim3v32SizeDependParam *next_p = p->pNext;
|
||||||
|
FREE(p);
|
||||||
|
p = next_p;
|
||||||
|
}
|
||||||
|
/** end of extra code **/
|
||||||
|
while (inst) {
|
||||||
|
BSIM3v32instance *next_inst = inst->BSIM3v32nextInstance;
|
||||||
|
FREE(inst);
|
||||||
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
FREE(mod->BSIM3v32version);
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
*model = NULL;
|
|
||||||
return;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,50 +14,37 @@
|
||||||
#include "bsim4def.h"
|
#include "bsim4def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BSIM4destroy(
|
BSIM4destroy(GENmodel **inModel)
|
||||||
GENmodel **inModel)
|
|
||||||
{
|
{
|
||||||
BSIM4model **model = (BSIM4model**)inModel;
|
BSIM4model *mod = *(BSIM4model**) inModel;
|
||||||
BSIM4instance *here;
|
|
||||||
BSIM4instance *prev = NULL;
|
|
||||||
BSIM4model *mod = *model;
|
|
||||||
BSIM4model *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->BSIM4nextModel) {
|
|
||||||
/** added to get rid of link list pSizeDependParamKnot **/
|
|
||||||
struct bsim4SizeDependParam *pParam, *pParamOld=NULL;
|
|
||||||
|
|
||||||
pParam = mod->pSizeDependParamKnot;
|
|
||||||
|
|
||||||
for (; pParam ; pParam = pParam->pNext) {
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParamOld = pParam;
|
|
||||||
}
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParam = NULL;
|
|
||||||
/** end of extra code **/
|
|
||||||
if(oldmod) {
|
|
||||||
FREE(oldmod->BSIM4version);
|
|
||||||
FREE(oldmod);
|
|
||||||
}
|
|
||||||
oldmod = mod;
|
|
||||||
prev = (BSIM4instance *)NULL;
|
|
||||||
for (here = mod->BSIM4instances; here; here = here->BSIM4nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if(oldmod) {
|
|
||||||
#ifdef USE_OMP
|
#ifdef USE_OMP
|
||||||
/* free just once for all models */
|
/* free just once for all models */
|
||||||
FREE(oldmod->BSIM4InstanceArray);
|
FREE(mod->BSIM4InstanceArray);
|
||||||
#endif
|
#endif
|
||||||
/* oldmod->BSIM4modName to be freed in INPtabEnd() */
|
|
||||||
FREE(oldmod->BSIM4version);
|
while (mod) {
|
||||||
FREE(oldmod);
|
BSIM4model *next_mod = mod->BSIM4nextModel;
|
||||||
|
BSIM4instance *inst = mod->BSIM4instances;
|
||||||
|
/** added to get rid of link list pSizeDependParamKnot **/
|
||||||
|
struct bsim4SizeDependParam *p = mod->pSizeDependParamKnot;
|
||||||
|
while (p) {
|
||||||
|
struct bsim4SizeDependParam *next_p = p->pNext;
|
||||||
|
FREE(p);
|
||||||
|
p = next_p;
|
||||||
|
}
|
||||||
|
/** end of extra code **/
|
||||||
|
while (inst) {
|
||||||
|
BSIM4instance *next_inst = inst->BSIM4nextInstance;
|
||||||
|
FREE(inst);
|
||||||
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
FREE(mod->BSIM4version);
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
*model = NULL;
|
|
||||||
return;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,49 +12,37 @@
|
||||||
#include "bsim4v5def.h"
|
#include "bsim4v5def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BSIM4v5destroy(
|
BSIM4v5destroy(GENmodel **inModel)
|
||||||
GENmodel **inModel)
|
|
||||||
{
|
{
|
||||||
BSIM4v5model **model = (BSIM4v5model**)inModel;
|
BSIM4v5model *mod = *(BSIM4v5model**) inModel;
|
||||||
BSIM4v5instance *here;
|
|
||||||
BSIM4v5instance *prev = NULL;
|
|
||||||
BSIM4v5model *mod = *model;
|
|
||||||
BSIM4v5model *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->BSIM4v5nextModel) {
|
|
||||||
/** added to get rid of link list pSizeDependParamKnot **/
|
|
||||||
struct bsim4v5SizeDependParam *pParam, *pParamOld=NULL;
|
|
||||||
|
|
||||||
pParam = mod->pSizeDependParamKnot;
|
|
||||||
|
|
||||||
for (; pParam ; pParam = pParam->pNext) {
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParamOld = pParam;
|
|
||||||
}
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParam = NULL;
|
|
||||||
/** end of extra code **/
|
|
||||||
if (oldmod) {
|
|
||||||
FREE(oldmod->BSIM4v5version);
|
|
||||||
FREE(oldmod);
|
|
||||||
}
|
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for (here = mod->BSIM4v5instances; here; here = here->BSIM4v5nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if (oldmod) {
|
|
||||||
#ifdef USE_OMP
|
#ifdef USE_OMP
|
||||||
/* free just once for all models */
|
/* free just once for all models */
|
||||||
FREE(oldmod->BSIM4v5InstanceArray);
|
FREE(mod->BSIM4v5InstanceArray);
|
||||||
#endif
|
#endif
|
||||||
FREE(oldmod->BSIM4v5version);
|
|
||||||
FREE(oldmod);
|
while (mod) {
|
||||||
|
BSIM4v5model *next_mod = mod->BSIM4v5nextModel;
|
||||||
|
BSIM4v5instance *inst = mod->BSIM4v5instances;
|
||||||
|
/** added to get rid of link list pSizeDependParamKnot **/
|
||||||
|
struct bsim4v5SizeDependParam *p = mod->pSizeDependParamKnot;
|
||||||
|
while (p) {
|
||||||
|
struct bsim4v5SizeDependParam *next_p = p->pNext;
|
||||||
|
FREE(p);
|
||||||
|
p = next_p;
|
||||||
|
}
|
||||||
|
/** end of extra code **/
|
||||||
|
while (inst) {
|
||||||
|
BSIM4v5instance *next_inst = inst->BSIM4v5nextInstance;
|
||||||
|
FREE(inst);
|
||||||
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
FREE(mod->BSIM4v5version);
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
*model = NULL;
|
|
||||||
return;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,50 +14,37 @@
|
||||||
#include "bsim4v6def.h"
|
#include "bsim4v6def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BSIM4v6destroy(
|
BSIM4v6destroy(GENmodel **inModel)
|
||||||
GENmodel **inModel)
|
|
||||||
{
|
{
|
||||||
BSIM4v6model **model = (BSIM4v6model**)inModel;
|
BSIM4v6model *mod = *(BSIM4v6model**) inModel;
|
||||||
BSIM4v6instance *here;
|
|
||||||
BSIM4v6instance *prev = NULL;
|
|
||||||
BSIM4v6model *mod = *model;
|
|
||||||
BSIM4v6model *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->BSIM4v6nextModel) {
|
|
||||||
/** added to get rid of link list pSizeDependParamKnot **/
|
|
||||||
struct bsim4v6SizeDependParam *pParam, *pParamOld=NULL;
|
|
||||||
|
|
||||||
pParam = mod->pSizeDependParamKnot;
|
|
||||||
|
|
||||||
for (; pParam ; pParam = pParam->pNext) {
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParamOld = pParam;
|
|
||||||
}
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParam = NULL;
|
|
||||||
/** end of extra code **/
|
|
||||||
|
|
||||||
if (oldmod) {
|
|
||||||
FREE(oldmod->BSIM4v6version);
|
|
||||||
FREE(oldmod);
|
|
||||||
}
|
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for (here = mod->BSIM4v6instances; here; here = here->BSIM4v6nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if(oldmod) {
|
|
||||||
#ifdef USE_OMP
|
#ifdef USE_OMP
|
||||||
/* free just once for all models */
|
/* free just once for all models */
|
||||||
FREE(oldmod->BSIM4v6InstanceArray);
|
FREE(mod->BSIM4v6InstanceArray);
|
||||||
#endif
|
#endif
|
||||||
FREE(oldmod->BSIM4v6version);
|
|
||||||
FREE(oldmod);
|
while (mod) {
|
||||||
|
BSIM4v6model *next_mod = mod->BSIM4v6nextModel;
|
||||||
|
BSIM4v6instance *inst = mod->BSIM4v6instances;
|
||||||
|
/** added to get rid of link list pSizeDependParamKnot **/
|
||||||
|
struct bsim4v6SizeDependParam *p = mod->pSizeDependParamKnot;
|
||||||
|
while (p) {
|
||||||
|
struct bsim4v6SizeDependParam *next_p = p->pNext;
|
||||||
|
FREE(p);
|
||||||
|
p = next_p;
|
||||||
|
}
|
||||||
|
/** end of extra code **/
|
||||||
|
while (inst) {
|
||||||
|
BSIM4v6instance *next_inst = inst->BSIM4v6nextInstance;
|
||||||
|
FREE(inst);
|
||||||
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
FREE(mod->BSIM4v6version);
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
*model = NULL;
|
|
||||||
return;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,50 +14,38 @@
|
||||||
#include "bsim4v7def.h"
|
#include "bsim4v7def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BSIM4v7destroy(
|
BSIM4v7destroy(GENmodel **inModel)
|
||||||
GENmodel **inModel)
|
|
||||||
{
|
{
|
||||||
BSIM4v7model **model = (BSIM4v7model**)inModel;
|
BSIM4v7model *mod = *(BSIM4v7model**) inModel;
|
||||||
BSIM4v7instance *here;
|
|
||||||
BSIM4v7instance *prev = NULL;
|
|
||||||
BSIM4v7model *mod = *model;
|
|
||||||
BSIM4v7model *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->BSIM4v7nextModel) {
|
|
||||||
/** added to get rid of link list pSizeDependParamKnot **/
|
|
||||||
struct bsim4SizeDependParam *pParam, *pParamOld=NULL;
|
|
||||||
|
|
||||||
pParam = mod->pSizeDependParamKnot;
|
|
||||||
|
|
||||||
for (; pParam ; pParam = pParam->pNext) {
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParamOld = pParam;
|
|
||||||
}
|
|
||||||
FREE(pParamOld);
|
|
||||||
pParam = NULL;
|
|
||||||
/** end of extra code **/
|
|
||||||
if(oldmod) {
|
|
||||||
FREE(oldmod->BSIM4v7version);
|
|
||||||
FREE(oldmod);
|
|
||||||
}
|
|
||||||
oldmod = mod;
|
|
||||||
prev = (BSIM4v7instance *)NULL;
|
|
||||||
for (here = mod->BSIM4v7instances; here; here = here->BSIM4v7nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if(oldmod) {
|
|
||||||
#ifdef USE_OMP
|
#ifdef USE_OMP
|
||||||
/* free just once for all models */
|
/* free just once for all models */
|
||||||
FREE(oldmod->BSIM4v7InstanceArray);
|
FREE(mod->BSIM4v7InstanceArray);
|
||||||
#endif
|
#endif
|
||||||
/* oldmod->BSIM4v7modName to be freed in INPtabEnd() */
|
|
||||||
FREE(oldmod->BSIM4v7version);
|
while (mod) {
|
||||||
FREE(oldmod);
|
BSIM4v7model *next_mod = mod->BSIM4v7nextModel;
|
||||||
|
BSIM4v7instance *inst = mod->BSIM4v7instances;
|
||||||
|
/** added to get rid of link list pSizeDependParamKnot **/
|
||||||
|
struct bsim4SizeDependParam *p = mod->pSizeDependParamKnot;
|
||||||
|
while (p) {
|
||||||
|
struct bsim4SizeDependParam *next_p = p->pNext;
|
||||||
|
FREE(p);
|
||||||
|
p = next_p;
|
||||||
|
}
|
||||||
|
/** end of extra code **/
|
||||||
|
while (inst) {
|
||||||
|
BSIM4v7instance *next_inst = inst->BSIM4v7nextInstance;
|
||||||
|
FREE(inst);
|
||||||
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
/* mod->BSIM4v7modName to be freed in INPtabEnd() */
|
||||||
|
FREE(mod->BSIM4v7version);
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
*model = NULL;
|
|
||||||
return;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,35 +15,26 @@
|
||||||
**********/
|
**********/
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
|
|
||||||
#include "b4soidef.h"
|
#include "b4soidef.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
B4SOIdestroy(
|
B4SOIdestroy(GENmodel **inModel)
|
||||||
GENmodel **inModel)
|
|
||||||
{
|
{
|
||||||
B4SOImodel **model = (B4SOImodel**)inModel;
|
B4SOImodel *mod = *(B4SOImodel**) inModel;
|
||||||
B4SOIinstance *here;
|
|
||||||
B4SOIinstance *prev = NULL;
|
|
||||||
B4SOImodel *mod = *model;
|
|
||||||
B4SOImodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod ; mod = mod->B4SOInextModel)
|
while (mod) {
|
||||||
{ if(oldmod) FREE(oldmod);
|
B4SOImodel *next_mod = mod->B4SOInextModel;
|
||||||
oldmod = mod;
|
B4SOIinstance *inst = mod->B4SOIinstances;
|
||||||
prev = (B4SOIinstance *)NULL;
|
while (inst) {
|
||||||
for (here = mod->B4SOIinstances; here; here = here->B4SOInextInstance)
|
B4SOIinstance *next_inst = inst->B4SOInextInstance;
|
||||||
{
|
FREE(inst);
|
||||||
if(prev) FREE(prev);
|
inst = next_inst;
|
||||||
prev = here;
|
}
|
||||||
}
|
FREE(mod);
|
||||||
if(prev) FREE(prev);
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@ Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
Modified: September 2003 Paolo Nenzi
|
Modified: September 2003 Paolo Nenzi
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "capdefs.h"
|
#include "capdefs.h"
|
||||||
|
|
@ -13,25 +11,20 @@ Modified: September 2003 Paolo Nenzi
|
||||||
|
|
||||||
void
|
void
|
||||||
CAPdestroy(GENmodel **inModel)
|
CAPdestroy(GENmodel **inModel)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
CAPmodel *mod = *(CAPmodel**) inModel;
|
||||||
|
|
||||||
CAPmodel **model = (CAPmodel**)inModel;
|
while (mod) {
|
||||||
CAPinstance *here;
|
CAPmodel *next_mod = mod->CAPnextModel;
|
||||||
CAPinstance *prev = NULL;
|
CAPinstance *inst = mod->CAPinstances;
|
||||||
CAPmodel *mod = *model;
|
while (inst) {
|
||||||
CAPmodel *oldmod = NULL;
|
CAPinstance *next_inst = inst->CAPnextInstance;
|
||||||
|
FREE(inst);
|
||||||
for( ; mod ; mod = mod->CAPnextModel) {
|
inst = next_inst;
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for(here = mod->CAPinstances ; here ; here = here->CAPnextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "cccsdefs.h"
|
#include "cccsdefs.h"
|
||||||
|
|
@ -12,24 +10,20 @@ Author: 1985 Thomas L. Quarles
|
||||||
|
|
||||||
void
|
void
|
||||||
CCCSdestroy(GENmodel **inModel)
|
CCCSdestroy(GENmodel **inModel)
|
||||||
|
|
||||||
{
|
{
|
||||||
CCCSmodel **model = (CCCSmodel**)inModel;
|
CCCSmodel *mod = *(CCCSmodel**) inModel;
|
||||||
CCCSinstance *here;
|
|
||||||
CCCSinstance *prev = NULL;
|
|
||||||
CCCSmodel *mod = *model;
|
|
||||||
CCCSmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->CCCSnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
CCCSmodel *next_mod = mod->CCCSnextModel;
|
||||||
oldmod = mod;
|
CCCSinstance *inst = mod->CCCSinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->CCCSinstances ; here ; here = here->CCCSnextInstance) {
|
CCCSinstance *next_inst = inst->CCCSnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "ccvsdefs.h"
|
#include "ccvsdefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
CCVSdestroy(GENmodel **inModel)
|
CCVSdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
CCVSmodel **model = (CCVSmodel**)inModel;
|
CCVSmodel *mod = *(CCVSmodel**) inModel;
|
||||||
CCVSinstance *here;
|
|
||||||
CCVSinstance *prev = NULL;
|
|
||||||
CCVSmodel *mod = *model;
|
|
||||||
CCVSmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->CCVSnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
CCVSmodel *next_mod = mod->CCVSnextModel;
|
||||||
oldmod = mod;
|
CCVSinstance *inst = mod->CCVSinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->CCVSinstances ; here ; here = here->CCVSnextInstance) {
|
CCVSinstance *next_inst = inst->CCVSnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,25 +8,23 @@ Author: 1992 Charles Hough
|
||||||
#include "cpldefs.h"
|
#include "cpldefs.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
CPLdestroy(GENmodel **inModel)
|
CPLdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
CPLmodel **model = (CPLmodel **)inModel;
|
CPLmodel *mod = *(CPLmodel **) inModel;
|
||||||
CPLinstance *here;
|
|
||||||
CPLinstance *prev = NULL;
|
|
||||||
CPLmodel *mod = *model;
|
|
||||||
CPLmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->CPLnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
CPLmodel *next_mod = mod->CPLnextModel;
|
||||||
oldmod = mod;
|
CPLinstance *inst = mod->CPLinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->CPLinstances ; here ; here = here->CPLnextInstance) {
|
CPLinstance *next_inst = inst->CPLnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Gordon Jacobs
|
Author: 1985 Gordon Jacobs
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "cswdefs.h"
|
#include "cswdefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Gordon Jacobs
|
||||||
void
|
void
|
||||||
CSWdestroy(GENmodel **inModel)
|
CSWdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
CSWmodel **model = (CSWmodel**)inModel;
|
CSWmodel *mod = *(CSWmodel**) inModel;
|
||||||
CSWinstance *here;
|
|
||||||
CSWinstance *prev = NULL;
|
|
||||||
CSWmodel *mod = *model;
|
|
||||||
CSWmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->CSWnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
CSWmodel *next_mod = mod->CSWnextModel;
|
||||||
oldmod = mod;
|
CSWinstance *inst = mod->CSWinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->CSWinstances ; here ; here = here->CSWnextInstance) {
|
CSWinstance *next_inst = inst->CSWnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "diodefs.h"
|
#include "diodefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
DIOdestroy(GENmodel **inModel)
|
DIOdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
DIOmodel **model = (DIOmodel**)inModel;
|
DIOmodel *mod = *(DIOmodel**) inModel;
|
||||||
DIOinstance *here;
|
|
||||||
DIOinstance *prev = NULL;
|
|
||||||
DIOmodel *mod = *model;
|
|
||||||
DIOmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->DIOnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
DIOmodel *next_mod = mod->DIOnextModel;
|
||||||
oldmod = mod;
|
DIOinstance *inst = mod->DIOinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->DIOinstances ; here ; here = here->DIOnextInstance) {
|
DIOinstance *next_inst = inst->DIOnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,23 +11,19 @@ Modified: Paolo Nenzi
|
||||||
void
|
void
|
||||||
HFETAdestroy(GENmodel **inModel)
|
HFETAdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
HFETAmodel **model = (HFETAmodel**)inModel;
|
HFETAmodel *mod = *(HFETAmodel**) inModel;
|
||||||
HFETAinstance *here;
|
|
||||||
HFETAinstance *prev = NULL;
|
|
||||||
HFETAmodel *mod = *model;
|
|
||||||
HFETAmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->HFETAnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
HFETAmodel *next_mod = mod->HFETAnextModel;
|
||||||
oldmod = mod;
|
HFETAinstance *inst = mod->HFETAinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->HFETAinstances ; here ; here = here->HFETAnextInstance) {
|
HFETAinstance *next_inst = inst->HFETAnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,27 +8,22 @@ Modified: Paolo Nenzi
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void HFET2destroy(GENmodel **inModel)
|
void
|
||||||
|
HFET2destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
HFET2model *mod = *(HFET2model**) inModel;
|
||||||
|
|
||||||
HFET2model **model = (HFET2model**)inModel;
|
while (mod) {
|
||||||
HFET2instance *here;
|
HFET2model *next_mod = mod->HFET2nextModel;
|
||||||
HFET2instance *prev = NULL;
|
HFET2instance *inst = mod->HFET2instances;
|
||||||
HFET2model *mod = *model;
|
while (inst) {
|
||||||
HFET2model *oldmod = NULL;
|
HFET2instance *next_inst = inst->HFET2nextInstance;
|
||||||
|
FREE(inst);
|
||||||
for( ; mod ; mod = mod->HFET2nextModel) {
|
inst = next_inst;
|
||||||
if(oldmod) FREE(oldmod);
|
}
|
||||||
oldmod = mod;
|
FREE(mod);
|
||||||
prev = NULL;
|
mod = next_mod;
|
||||||
for(here = mod->HFET2instances ; here ; here = here->HFET2nextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
|
||||||
return;
|
|
||||||
|
|
||||||
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,32 +58,28 @@ to others."
|
||||||
#include "hsm2def.h"
|
#include "hsm2def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
void HSM2destroy(
|
|
||||||
GENmodel **inModel)
|
void
|
||||||
|
HSM2destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
HSM2model **model = (HSM2model**)inModel;
|
HSM2model *mod = *(HSM2model**) inModel;
|
||||||
HSM2instance *here;
|
|
||||||
HSM2instance *prev = NULL;
|
|
||||||
HSM2model *mod = *model;
|
|
||||||
HSM2model *oldmod = NULL;
|
|
||||||
|
|
||||||
for ( ;mod ;mod = mod->HSM2nextModel ) {
|
|
||||||
if (oldmod) FREE(oldmod);
|
|
||||||
oldmod = mod;
|
|
||||||
prev = (HSM2instance *)NULL;
|
|
||||||
for ( here = mod->HSM2instances ;here ;here = here->HSM2nextInstance ) {
|
|
||||||
if (prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if (prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if (oldmod) {
|
|
||||||
#ifdef USE_OMP
|
#ifdef USE_OMP
|
||||||
/* free just once for all models */
|
/* free just once for all models */
|
||||||
FREE(oldmod->HSM2InstanceArray);
|
FREE(mod->HSM2InstanceArray);
|
||||||
#endif
|
#endif
|
||||||
FREE(oldmod);
|
|
||||||
}
|
|
||||||
*model = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
while (mod) {
|
||||||
|
HSM2model *next_mod = mod->HSM2nextModel;
|
||||||
|
HSM2instance *inst = mod->HSM2instances;
|
||||||
|
while (inst) {
|
||||||
|
HSM2instance *next_inst = inst->HSM2nextInstance;
|
||||||
|
FREE(inst);
|
||||||
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
|
}
|
||||||
|
|
||||||
|
*inModel = NULL;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,26 +19,23 @@
|
||||||
#include "hsmhvdef.h"
|
#include "hsmhvdef.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
void HSMHVdestroy(
|
|
||||||
GENmodel **inModel)
|
void
|
||||||
|
HSMHVdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
HSMHVmodel **model = (HSMHVmodel**)inModel;
|
HSMHVmodel *mod = *(HSMHVmodel**) inModel;
|
||||||
HSMHVinstance *here;
|
|
||||||
HSMHVinstance *prev = NULL;
|
|
||||||
HSMHVmodel *mod = *model;
|
|
||||||
HSMHVmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for ( ;mod ;mod = mod->HSMHVnextModel ) {
|
while (mod) {
|
||||||
if (oldmod) FREE(oldmod);
|
HSMHVmodel *next_mod = mod->HSMHVnextModel;
|
||||||
oldmod = mod;
|
HSMHVinstance *inst = mod->HSMHVinstances;
|
||||||
prev = (HSMHVinstance *)NULL;
|
while (inst) {
|
||||||
for ( here = mod->HSMHVinstances ;here ;here = here->HSMHVnextInstance ) {
|
HSMHVinstance *next_inst = inst->HSMHVnextInstance;
|
||||||
if (prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if (prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if (oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
*inModel = NULL;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,26 +61,23 @@ June 2008 (revised October 2011)
|
||||||
#include "hsmhv2def.h"
|
#include "hsmhv2def.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
void HSMHV2destroy(
|
|
||||||
GENmodel **inModel)
|
void
|
||||||
|
HSMHV2destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
HSMHV2model **model = (HSMHV2model**)inModel;
|
HSMHV2model *mod = *(HSMHV2model**) inModel;
|
||||||
HSMHV2instance *here;
|
|
||||||
HSMHV2instance *prev = NULL;
|
|
||||||
HSMHV2model *mod = *model;
|
|
||||||
HSMHV2model *oldmod = NULL;
|
|
||||||
|
|
||||||
for ( ;mod ;mod = mod->HSMHV2nextModel ) {
|
while (mod) {
|
||||||
if (oldmod) FREE(oldmod);
|
HSMHV2model *next_mod = mod->HSMHV2nextModel;
|
||||||
oldmod = mod;
|
HSMHV2instance *inst = mod->HSMHV2instances;
|
||||||
prev = (HSMHV2instance *)NULL;
|
while (inst) {
|
||||||
for ( here = mod->HSMHV2instances ;here ;here = here->HSMHV2nextInstance ) {
|
HSMHV2instance *next_inst = inst->HSMHV2nextInstance;
|
||||||
if (prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
|
}
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if (prev) FREE(prev);
|
|
||||||
}
|
|
||||||
if (oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
*inModel = NULL;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "inddefs.h"
|
#include "inddefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
INDdestroy(GENmodel **inModel)
|
INDdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
INDmodel **model = (INDmodel**)inModel;
|
INDmodel *mod = *(INDmodel**) inModel;
|
||||||
INDinstance *here;
|
|
||||||
INDinstance *prev = NULL;
|
|
||||||
INDmodel *mod = *model;
|
|
||||||
INDmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->INDnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
INDmodel *next_mod = mod->INDnextModel;
|
||||||
oldmod = mod;
|
INDinstance *inst = mod->INDinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->INDinstances ; here ; here = here->INDnextInstance) {
|
INDinstance *next_inst = inst->INDnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "inddefs.h"
|
#include "inddefs.h"
|
||||||
|
|
@ -11,26 +9,25 @@ Author: 1985 Thomas L. Quarles
|
||||||
|
|
||||||
|
|
||||||
#ifdef MUTUAL
|
#ifdef MUTUAL
|
||||||
|
|
||||||
void
|
void
|
||||||
MUTdestroy(GENmodel **inModel)
|
MUTdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
MUTmodel **model = (MUTmodel**)inModel;
|
MUTmodel *mod = *(MUTmodel**) inModel;
|
||||||
MUTinstance *here;
|
|
||||||
MUTinstance *prev = NULL;
|
|
||||||
MUTmodel *mod = *model;
|
|
||||||
MUTmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->MUTnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
MUTmodel *next_mod = mod->MUTnextModel;
|
||||||
oldmod = mod;
|
MUTinstance *inst = mod->MUTinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->MUTinstances ; here ; here = here->MUTnextInstance) {
|
MUTinstance *next_inst = inst->MUTnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
#endif /* MUTUAL */
|
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "isrcdefs.h"
|
#include "isrcdefs.h"
|
||||||
|
|
@ -13,25 +11,20 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
ISRCdestroy(GENmodel **inModel)
|
ISRCdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
ISRCmodel **model = (ISRCmodel**)inModel;
|
ISRCmodel *mod = *(ISRCmodel**) inModel;
|
||||||
ISRCinstance *here;
|
|
||||||
ISRCinstance *prev = NULL;
|
|
||||||
ISRCmodel *mod = *model;
|
|
||||||
ISRCmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->ISRCnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
ISRCmodel *next_mod = mod->ISRCnextModel;
|
||||||
oldmod = mod;
|
ISRCinstance *inst = mod->ISRCinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->ISRCinstances ; here ; here = here->ISRCnextInstance) {
|
ISRCinstance *next_inst = inst->ISRCnextInstance;
|
||||||
if(prev) {
|
FREE(inst->ISRCcoeffs);
|
||||||
tfree(prev->ISRCcoeffs);
|
FREE(inst);
|
||||||
FREE(prev);
|
inst = next_inst;
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "jfetdefs.h"
|
#include "jfetdefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
JFETdestroy(GENmodel **inModel)
|
JFETdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
JFETmodel **model = (JFETmodel**)inModel;
|
JFETmodel *mod = *(JFETmodel**) inModel;
|
||||||
JFETinstance *here;
|
|
||||||
JFETinstance *prev = NULL;
|
|
||||||
JFETmodel *mod = *model;
|
|
||||||
JFETmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->JFETnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
JFETmodel *next_mod = mod->JFETnextModel;
|
||||||
oldmod = mod;
|
JFETinstance *inst = mod->JFETinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->JFETinstances ; here ; here = here->JFETnextInstance) {
|
JFETinstance *next_inst = inst->JFETnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,6 @@ Author: 1985 Thomas L. Quarles
|
||||||
Modified to jfet2 for PS model definition ( Anthony E. Parker )
|
Modified to jfet2 for PS model definition ( Anthony E. Parker )
|
||||||
Copyright 1994 Macquarie University, Sydney Australia.
|
Copyright 1994 Macquarie University, Sydney Australia.
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "jfet2defs.h"
|
#include "jfet2defs.h"
|
||||||
|
|
@ -17,22 +15,19 @@ Modified to jfet2 for PS model definition ( Anthony E. Parker )
|
||||||
void
|
void
|
||||||
JFET2destroy(GENmodel **inModel)
|
JFET2destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
JFET2model **model = (JFET2model**)inModel;
|
JFET2model *mod = *(JFET2model**) inModel;
|
||||||
JFET2instance *here;
|
|
||||||
JFET2instance *prev = NULL;
|
|
||||||
JFET2model *mod = *model;
|
|
||||||
JFET2model *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->JFET2nextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
JFET2model *next_mod = mod->JFET2nextModel;
|
||||||
oldmod = mod;
|
JFET2instance *inst = mod->JFET2instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->JFET2instances ; here ; here = here->JFET2nextInstance) {
|
JFET2instance *next_inst = inst->JFET2nextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,29 +7,23 @@ Author: 1990 Jaijeet S. Roychowdhury
|
||||||
#include "ltradefs.h"
|
#include "ltradefs.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
LTRAdestroy(GENmodel **inModel)
|
LTRAdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
LTRAmodel **model = (LTRAmodel **) inModel;
|
LTRAmodel *mod = *(LTRAmodel **) inModel;
|
||||||
LTRAinstance *here;
|
|
||||||
LTRAinstance *prev = NULL;
|
|
||||||
LTRAmodel *mod = *model;
|
|
||||||
LTRAmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for (; mod; mod = mod->LTRAnextModel) {
|
while (mod) {
|
||||||
if (oldmod)
|
LTRAmodel *next_mod = mod->LTRAnextModel;
|
||||||
FREE(oldmod);
|
LTRAinstance *inst = mod->LTRAinstances;
|
||||||
oldmod = mod;
|
while (inst) {
|
||||||
prev = NULL;
|
LTRAinstance *next_inst = inst->LTRAnextInstance;
|
||||||
for (here = mod->LTRAinstances; here; here = here->LTRAnextInstance) {
|
FREE(inst);
|
||||||
if (prev)
|
inst = next_inst;
|
||||||
FREE(prev);
|
}
|
||||||
prev = here;
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if (prev)
|
|
||||||
FREE(prev);
|
*inModel = NULL;
|
||||||
}
|
|
||||||
if (oldmod)
|
|
||||||
FREE(oldmod);
|
|
||||||
*model = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 S. Hwang
|
Author: 1985 S. Hwang
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "mesdefs.h"
|
#include "mesdefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 S. Hwang
|
||||||
void
|
void
|
||||||
MESdestroy(GENmodel **inModel)
|
MESdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
MESmodel **model = (MESmodel**)inModel;
|
MESmodel *mod = *(MESmodel**) inModel;
|
||||||
MESinstance *here;
|
|
||||||
MESinstance *prev = NULL;
|
|
||||||
MESmodel *mod = *model;
|
|
||||||
MESmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->MESnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
MESmodel *next_mod = mod->MESnextModel;
|
||||||
oldmod = mod;
|
MESinstance *inst = mod->MESinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->MESinstances ; here ; here = here->MESnextInstance) {
|
MESinstance *next_inst = inst->MESnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,23 +11,19 @@ Author: Trond Ytterdal
|
||||||
void
|
void
|
||||||
MESAdestroy(GENmodel **inModel)
|
MESAdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
MESAmodel **model = (MESAmodel**)inModel;
|
MESAmodel *mod = *(MESAmodel**) inModel;
|
||||||
MESAinstance *here;
|
|
||||||
MESAinstance *prev = NULL;
|
|
||||||
MESAmodel *mod = *model;
|
|
||||||
MESAmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->MESAnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
MESAmodel *next_mod = mod->MESAnextModel;
|
||||||
oldmod = mod;
|
MESAinstance *inst = mod->MESAinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->MESAinstances ; here ; here = here->MESAnextInstance) {
|
MESAinstance *next_inst = inst->MESAnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "mos1defs.h"
|
#include "mos1defs.h"
|
||||||
|
|
@ -13,25 +11,20 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
MOS1destroy(GENmodel **inModel)
|
MOS1destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
MOS1model **model = (MOS1model**)inModel;
|
MOS1model *mod = *(MOS1model**) inModel;
|
||||||
MOS1instance *here;
|
|
||||||
MOS1instance *prev = NULL;
|
|
||||||
MOS1model *mod = *model;
|
|
||||||
MOS1model *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->MOS1nextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
MOS1model *next_mod = mod->MOS1nextModel;
|
||||||
oldmod = mod;
|
MOS1instance *inst = mod->MOS1instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->MOS1instances ; here ; here = here->MOS1nextInstance) {
|
MOS1instance *next_inst = inst->MOS1nextInstance;
|
||||||
if(prev){
|
FREE(inst->MOS1sens);
|
||||||
if(prev->MOS1sens) FREE(prev->MOS1sens);
|
FREE(inst);
|
||||||
FREE(prev);
|
inst = next_inst;
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "mos2defs.h"
|
#include "mos2defs.h"
|
||||||
|
|
@ -13,25 +11,20 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
MOS2destroy(GENmodel **inModel)
|
MOS2destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
MOS2model **model = (MOS2model **)inModel;
|
MOS2model *mod = *(MOS2model **) inModel;
|
||||||
MOS2instance *here;
|
|
||||||
MOS2instance *prev = NULL;
|
|
||||||
MOS2model *mod = *model;
|
|
||||||
MOS2model *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->MOS2nextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
MOS2model *next_mod = mod->MOS2nextModel;
|
||||||
oldmod = mod;
|
MOS2instance *inst = mod->MOS2instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->MOS2instances ; here ; here = here->MOS2nextInstance) {
|
MOS2instance *next_inst = inst->MOS2nextInstance;
|
||||||
if(prev){
|
FREE(inst->MOS2sens);
|
||||||
if(prev->MOS2sens) FREE(prev->MOS2sens);
|
FREE(inst);
|
||||||
FREE(prev);
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
prev = here;
|
FREE(mod);
|
||||||
}
|
mod = next_mod;
|
||||||
if(prev) FREE(prev);
|
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "mos3defs.h"
|
#include "mos3defs.h"
|
||||||
|
|
@ -13,25 +11,20 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
MOS3destroy(GENmodel **inModel)
|
MOS3destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
MOS3model **model = (MOS3model **)inModel;
|
MOS3model *mod = *(MOS3model **) inModel;
|
||||||
MOS3instance *here;
|
|
||||||
MOS3instance *prev = NULL;
|
|
||||||
MOS3model *mod = *model;
|
|
||||||
MOS3model *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->MOS3nextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
MOS3model *next_mod = mod->MOS3nextModel;
|
||||||
oldmod = mod;
|
MOS3instance *inst = mod->MOS3instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->MOS3instances ; here ; here = here->MOS3nextInstance) {
|
MOS3instance *next_inst = inst->MOS3nextInstance;
|
||||||
if(prev){
|
FREE(inst->MOS3sens);
|
||||||
if(prev->MOS3sens) FREE(prev->MOS3sens);
|
FREE(inst);
|
||||||
FREE(prev);
|
inst = next_inst;
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1989 Takayasu Sakurai
|
Author: 1989 Takayasu Sakurai
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "mos6defs.h"
|
#include "mos6defs.h"
|
||||||
|
|
@ -13,25 +11,20 @@ Author: 1989 Takayasu Sakurai
|
||||||
void
|
void
|
||||||
MOS6destroy(GENmodel **inModel)
|
MOS6destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
MOS6model **model = (MOS6model**)inModel;
|
MOS6model *mod = *(MOS6model**) inModel;
|
||||||
MOS6instance *here;
|
|
||||||
MOS6instance *prev = NULL;
|
|
||||||
MOS6model *mod = *model;
|
|
||||||
MOS6model *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->MOS6nextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
MOS6model *next_mod = mod->MOS6nextModel;
|
||||||
oldmod = mod;
|
MOS6instance *inst = mod->MOS6instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->MOS6instances ; here ; here = here->MOS6nextInstance) {
|
MOS6instance *next_inst = inst->MOS6nextInstance;
|
||||||
if(prev){
|
FREE(inst->MOS6sens);
|
||||||
if(prev->MOS6sens) FREE(prev->MOS6sens);
|
FREE(inst);
|
||||||
FREE(prev);
|
inst = next_inst;
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@ Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
Modified: Alan Gillespie
|
Modified: Alan Gillespie
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "mos9defs.h"
|
#include "mos9defs.h"
|
||||||
|
|
@ -14,25 +12,20 @@ Modified: Alan Gillespie
|
||||||
void
|
void
|
||||||
MOS9destroy(GENmodel **inModel)
|
MOS9destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
MOS9model **model = (MOS9model **)inModel;
|
MOS9model *mod = *(MOS9model **) inModel;
|
||||||
MOS9instance *here;
|
|
||||||
MOS9instance *prev = NULL;
|
|
||||||
MOS9model *mod = *model;
|
|
||||||
MOS9model *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->MOS9nextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
MOS9model *next_mod = mod->MOS9nextModel;
|
||||||
oldmod = mod;
|
MOS9instance *inst = mod->MOS9instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->MOS9instances ; here ; here = here->MOS9nextInstance) {
|
MOS9instance *next_inst = inst->MOS9nextInstance;
|
||||||
if(prev){
|
FREE(inst->MOS9sens);
|
||||||
if(prev->MOS9sens) FREE(prev->MOS9sens);
|
FREE(inst);
|
||||||
FREE(prev);
|
inst = next_inst;
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/**********
|
/**********
|
||||||
Copyright 1992 Regents of the University of California. All rights reserved.
|
Copyright 1992 Regents of the University of California. All rights reserved.
|
||||||
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
**********/
|
**********/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -14,25 +14,24 @@ Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
#include "ngspice/cidersupt.h"
|
#include "ngspice/cidersupt.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NBJTdestroy(GENmodel **inModel)
|
NBJTdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
NBJTmodel *mod = *(NBJTmodel **) inModel;
|
||||||
|
|
||||||
NBJTmodel **model = (NBJTmodel **) inModel;
|
while (mod) {
|
||||||
NBJTmodel *mod, *nextMod;
|
NBJTmodel *next_mod = mod->NBJTnextModel;
|
||||||
NBJTinstance *inst, *nextInst;
|
NBJTinstance *inst = mod->NBJTinstances;
|
||||||
|
while (inst) {
|
||||||
|
NBJTinstance *next_inst = inst->NBJTnextInstance;
|
||||||
for (mod = *model; mod;) {
|
ONEdestroy(inst->NBJTpDevice);
|
||||||
for (inst = mod->NBJTinstances; inst;) {
|
FREE(inst);
|
||||||
ONEdestroy(inst->NBJTpDevice);
|
inst = next_inst;
|
||||||
nextInst = inst->NBJTnextInstance;
|
}
|
||||||
FREE(inst);
|
FREE(mod);
|
||||||
inst = nextInst;
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
nextMod = mod->NBJTnextModel;
|
|
||||||
FREE(mod);
|
*inModel = NULL;
|
||||||
mod = nextMod;
|
|
||||||
}
|
|
||||||
*model = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/**********
|
/**********
|
||||||
Copyright 1992 Regents of the University of California. All rights reserved.
|
Copyright 1992 Regents of the University of California. All rights reserved.
|
||||||
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
**********/
|
**********/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -14,25 +14,24 @@ Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
#include "../../../ciderlib/twod/twodext.h"
|
#include "../../../ciderlib/twod/twodext.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NBJT2destroy(GENmodel **inModel)
|
NBJT2destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
NBJT2model *mod = *(NBJT2model **) inModel;
|
||||||
|
|
||||||
NBJT2model **model = (NBJT2model **) inModel;
|
while (mod) {
|
||||||
NBJT2model *mod, *nextMod;
|
NBJT2model *next_mod = mod->NBJT2nextModel;
|
||||||
NBJT2instance *inst, *nextInst;
|
NBJT2instance *inst = mod->NBJT2instances;
|
||||||
|
while (inst) {
|
||||||
|
NBJT2instance *next_inst = inst->NBJT2nextInstance;
|
||||||
for (mod = *model; mod;) {
|
TWOdestroy(inst->NBJT2pDevice);
|
||||||
for (inst = mod->NBJT2instances; inst;) {
|
FREE(inst);
|
||||||
TWOdestroy(inst->NBJT2pDevice);
|
inst = next_inst;
|
||||||
nextInst = inst->NBJT2nextInstance;
|
}
|
||||||
FREE(inst);
|
FREE(mod);
|
||||||
inst = nextInst;
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
nextMod = mod->NBJT2nextModel;
|
|
||||||
FREE(mod);
|
*inModel = NULL;
|
||||||
mod = nextMod;
|
|
||||||
}
|
|
||||||
*model = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,32 @@
|
||||||
/**********
|
/**********
|
||||||
Permit to use it as your wish.
|
Permit to use it as your wish.
|
||||||
Author: 2007 Gong Ding, gdiso@ustc.edu
|
Author: 2007 Gong Ding, gdiso@ustc.edu
|
||||||
University of Science and Technology of China
|
University of Science and Technology of China
|
||||||
**********/
|
**********/
|
||||||
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "ndevdefs.h"
|
#include "ndevdefs.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NDEVdestroy(GENmodel **inModel)
|
NDEVdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
NDEVmodel *mod = *(NDEVmodel **) inModel;
|
||||||
|
|
||||||
NDEVmodel **model = (NDEVmodel **)inModel;
|
while (mod) {
|
||||||
NDEVinstance *here;
|
NDEVmodel *next_mod = mod->NDEVnextModel;
|
||||||
NDEVinstance *prev = NULL;
|
NDEVinstance *inst = mod->NDEVinstances;
|
||||||
NDEVmodel *mod = *model;
|
while (inst) {
|
||||||
NDEVmodel *oldmod = NULL;
|
NDEVinstance *next_inst = inst->NDEVnextInstance;
|
||||||
|
FREE(inst);
|
||||||
for( ; mod ; mod = mod->NDEVnextModel) {
|
inst = next_inst;
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for(here = mod->NDEVinstances ; here ; here = here->NDEVnextInstance) {
|
|
||||||
if(prev) FREE(prev);
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
close(mod->sock);
|
||||||
close(mod->sock);
|
printf("Disconnect to remote NDEV server %s:%d\n", mod->host, mod->port);
|
||||||
fprintf(stdout,"Disconnect to remote NDEV server %s:%d\n",mod->host,mod->port);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/**********
|
/**********
|
||||||
Copyright 1992 Regents of the University of California. All rights reserved.
|
Copyright 1992 Regents of the University of California. All rights reserved.
|
||||||
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
**********/
|
**********/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -14,25 +14,24 @@ Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
#include "ngspice/cidersupt.h"
|
#include "ngspice/cidersupt.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NUMDdestroy(GENmodel **inModel)
|
NUMDdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
NUMDmodel *mod = *(NUMDmodel **) inModel;
|
||||||
|
|
||||||
NUMDmodel **model = (NUMDmodel **) inModel;
|
while (mod) {
|
||||||
NUMDmodel *mod, *nextMod;
|
NUMDmodel *next_mod = mod->NUMDnextModel;
|
||||||
NUMDinstance *inst, *nextInst;
|
NUMDinstance *inst = mod->NUMDinstances;
|
||||||
|
while (inst) {
|
||||||
|
NUMDinstance *next_inst = inst->NUMDnextInstance;
|
||||||
for (mod = *model; mod;) {
|
ONEdestroy(inst->NUMDpDevice);
|
||||||
for (inst = mod->NUMDinstances; inst;) {
|
FREE(inst);
|
||||||
ONEdestroy(inst->NUMDpDevice);
|
inst = next_inst;
|
||||||
nextInst = inst->NUMDnextInstance;
|
}
|
||||||
FREE(inst);
|
FREE(mod);
|
||||||
inst = nextInst;
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
nextMod = mod->NUMDnextModel;
|
|
||||||
FREE(mod);
|
*inModel = NULL;
|
||||||
mod = nextMod;
|
|
||||||
}
|
|
||||||
*model = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/**********
|
/**********
|
||||||
Copyright 1992 Regents of the University of California. All rights reserved.
|
Copyright 1992 Regents of the University of California. All rights reserved.
|
||||||
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
**********/
|
**********/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -15,25 +15,24 @@ Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
#include "ngspice/cidersupt.h"
|
#include "ngspice/cidersupt.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NUMD2destroy(GENmodel **inModel)
|
NUMD2destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
NUMD2model *mod = *(NUMD2model **) inModel;
|
||||||
|
|
||||||
NUMD2model **model = (NUMD2model **) inModel;
|
while (mod) {
|
||||||
NUMD2model *mod, *nextMod;
|
NUMD2model *next_mod = mod->NUMD2nextModel;
|
||||||
NUMD2instance *inst, *nextInst;
|
NUMD2instance *inst = mod->NUMD2instances;
|
||||||
|
while (inst) {
|
||||||
|
NUMD2instance *next_inst = inst->NUMD2nextInstance;
|
||||||
for (mod = *model; mod;) {
|
TWOdestroy(inst->NUMD2pDevice);
|
||||||
for (inst = mod->NUMD2instances; inst;) {
|
FREE(inst);
|
||||||
TWOdestroy(inst->NUMD2pDevice);
|
inst = next_inst;
|
||||||
nextInst = inst->NUMD2nextInstance;
|
}
|
||||||
FREE(inst);
|
FREE(mod);
|
||||||
inst = nextInst;
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
nextMod = mod->NUMD2nextModel;
|
|
||||||
FREE(mod);
|
*inModel = NULL;
|
||||||
mod = nextMod;
|
|
||||||
}
|
|
||||||
*model = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/**********
|
/**********
|
||||||
Copyright 1991 Regents of the University of California. All rights reserved.
|
Copyright 1991 Regents of the University of California. All rights reserved.
|
||||||
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
**********/
|
**********/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -14,24 +14,24 @@ Author: 1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
|
||||||
#include "../../../ciderlib/twod/twodext.h"
|
#include "../../../ciderlib/twod/twodext.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NUMOSdestroy(GENmodel **inModel)
|
NUMOSdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
NUMOSmodel *mod = *(NUMOSmodel **) inModel;
|
||||||
|
|
||||||
NUMOSmodel **model = (NUMOSmodel **) inModel;
|
while (mod) {
|
||||||
NUMOSmodel *mod, *nextMod;
|
NUMOSmodel *next_mod = mod->NUMOSnextModel;
|
||||||
NUMOSinstance *inst, *nextInst;
|
NUMOSinstance *inst = mod->NUMOSinstances;
|
||||||
|
while (inst) {
|
||||||
for (mod = *model; mod;) {
|
NUMOSinstance *next_inst = inst->NUMOSnextInstance;
|
||||||
for (inst = mod->NUMOSinstances; inst;) {
|
TWOdestroy(inst->NUMOSpDevice);
|
||||||
TWOdestroy(inst->NUMOSpDevice);
|
FREE(inst);
|
||||||
nextInst = inst->NUMOSnextInstance;
|
inst = next_inst;
|
||||||
FREE(inst);
|
}
|
||||||
inst = nextInst;
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
nextMod = mod->NUMOSnextModel;
|
|
||||||
FREE(mod);
|
*inModel = NULL;
|
||||||
mod = nextMod;
|
|
||||||
}
|
|
||||||
*model = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@ Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
Modified: Apr 2000 - Paolo Nenzi
|
Modified: Apr 2000 - Paolo Nenzi
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "resdefs.h"
|
#include "resdefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Modified: Apr 2000 - Paolo Nenzi
|
||||||
void
|
void
|
||||||
RESdestroy(GENmodel **inModel)
|
RESdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
RESmodel **model = (RESmodel **)inModel;
|
RESmodel *mod = *(RESmodel **) inModel;
|
||||||
RESinstance *here;
|
|
||||||
RESinstance *prev = NULL;
|
|
||||||
RESmodel *mod = *model;
|
|
||||||
RESmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->RESnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
RESmodel *next_mod = mod->RESnextModel;
|
||||||
oldmod = mod;
|
RESinstance *inst = mod->RESinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->RESinstances ; here ; here = here->RESnextInstance) {
|
RESinstance *next_inst = inst->RESnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,25 +28,20 @@ ngspice integration
|
||||||
void
|
void
|
||||||
SOI3destroy(GENmodel **inModel)
|
SOI3destroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
SOI3model **model = (SOI3model**)inModel;
|
SOI3model *mod = *(SOI3model**) inModel;
|
||||||
SOI3instance *here;
|
|
||||||
SOI3instance *prev = NULL;
|
|
||||||
SOI3model *mod = *model;
|
|
||||||
SOI3model *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->SOI3nextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
SOI3model *next_mod = mod->SOI3nextModel;
|
||||||
oldmod = mod;
|
SOI3instance *inst = mod->SOI3instances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->SOI3instances ; here ; here = here->SOI3nextInstance) {
|
SOI3instance *next_inst = inst->SOI3nextInstance;
|
||||||
if(prev){
|
/* FREE(inst->SOI3sens); */
|
||||||
/* if(prev->SOI3sens) FREE(prev->SOI3sens); */
|
FREE(inst);
|
||||||
FREE(prev);
|
inst = next_inst;
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Gordon Jacobs
|
Author: 1985 Gordon Jacobs
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "swdefs.h"
|
#include "swdefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Gordon Jacobs
|
||||||
void
|
void
|
||||||
SWdestroy(GENmodel **inModel)
|
SWdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
SWmodel **model = (SWmodel**)inModel;
|
SWmodel *mod = *(SWmodel**) inModel;
|
||||||
SWinstance *here;
|
|
||||||
SWinstance *prev = NULL;
|
|
||||||
SWmodel *mod = *model;
|
|
||||||
SWmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->SWnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
SWmodel *next_mod = mod->SWnextModel;
|
||||||
oldmod = mod;
|
SWinstance *inst = mod->SWinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->SWinstances ; here ; here = here->SWnextInstance) {
|
SWinstance *next_inst = inst->SWnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "tradefs.h"
|
#include "tradefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
TRAdestroy(GENmodel **inModel)
|
TRAdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
TRAmodel **model = (TRAmodel **)inModel;
|
TRAmodel *mod = *(TRAmodel **) inModel;
|
||||||
TRAinstance *here;
|
|
||||||
TRAinstance *prev = NULL;
|
|
||||||
TRAmodel *mod = *model;
|
|
||||||
TRAmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->TRAnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
TRAmodel *next_mod = mod->TRAnextModel;
|
||||||
oldmod = mod;
|
TRAinstance *inst = mod->TRAinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->TRAinstances ; here ; here = here->TRAnextInstance) {
|
TRAinstance *next_inst = inst->TRAnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ reserved.
|
||||||
Author: 1992 Charles Hough
|
Author: 1992 Charles Hough
|
||||||
**********/
|
**********/
|
||||||
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "txldefs.h"
|
#include "txldefs.h"
|
||||||
#include "ngspice/suffix.h"
|
#include "ngspice/suffix.h"
|
||||||
|
|
@ -13,22 +12,19 @@ Author: 1992 Charles Hough
|
||||||
void
|
void
|
||||||
TXLdestroy(GENmodel **inModel)
|
TXLdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
TXLmodel **model = (TXLmodel **)inModel;
|
TXLmodel *mod = *(TXLmodel **) inModel;
|
||||||
TXLinstance *here;
|
|
||||||
TXLinstance *prev = NULL;
|
|
||||||
TXLmodel *mod = *model;
|
|
||||||
TXLmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->TXLnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
TXLmodel *next_mod = mod->TXLnextModel;
|
||||||
oldmod = mod;
|
TXLinstance *inst = mod->TXLinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->TXLinstances ; here ; here = here->TXLnextInstance) {
|
TXLinstance *next_inst = inst->TXLnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1987 Thomas L. Quarles
|
Author: 1987 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "urcdefs.h"
|
#include "urcdefs.h"
|
||||||
|
|
@ -14,22 +11,19 @@ Author: 1987 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
URCdestroy(GENmodel **inModel)
|
URCdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
URCmodel **model = (URCmodel **)inModel;
|
URCmodel *mod = *(URCmodel **) inModel;
|
||||||
URCinstance *here;
|
|
||||||
URCinstance *prev = NULL;
|
|
||||||
URCmodel *mod = *model;
|
|
||||||
URCmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->URCnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
URCmodel *next_mod = mod->URCnextModel;
|
||||||
oldmod = mod;
|
URCinstance *inst = mod->URCinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->URCinstances ; here ; here = here->URCnextInstance) {
|
URCinstance *next_inst = inst->URCnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,29 +18,20 @@ Spice3 Implementation: 2003 Dietmar Warning DAnalyse GmbH
|
||||||
void
|
void
|
||||||
VBICdestroy(GENmodel **inModel)
|
VBICdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
|
VBICmodel *mod = *(VBICmodel**) inModel;
|
||||||
|
|
||||||
VBICmodel **model = (VBICmodel**)inModel;
|
while (mod) {
|
||||||
VBICinstance *here;
|
VBICmodel *next_mod = mod->VBICnextModel;
|
||||||
VBICinstance *prev = NULL;
|
VBICinstance *inst = mod->VBICinstances;
|
||||||
VBICmodel *mod = *model;
|
while (inst) {
|
||||||
VBICmodel *oldmod = NULL;
|
VBICinstance *next_inst = inst->VBICnextInstance;
|
||||||
|
FREE(inst->VBICsens);
|
||||||
for( ; mod ; mod = mod->VBICnextModel) {
|
FREE(inst);
|
||||||
if(oldmod) FREE(oldmod);
|
inst = next_inst;
|
||||||
oldmod = mod;
|
|
||||||
prev = NULL;
|
|
||||||
for(here = mod->VBICinstances ; here ; here = here->VBICnextInstance) {
|
|
||||||
if(prev){
|
|
||||||
if(prev->VBICsens) FREE(prev->VBICsens);
|
|
||||||
FREE(prev);
|
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
|
||||||
if(prev){
|
|
||||||
if(prev->VBICsens) FREE(prev->VBICsens);
|
|
||||||
FREE(prev);
|
|
||||||
}
|
}
|
||||||
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "vccsdefs.h"
|
#include "vccsdefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
VCCSdestroy(GENmodel **inModel)
|
VCCSdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
VCCSmodel **model = (VCCSmodel**)inModel;
|
VCCSmodel *mod = *(VCCSmodel**) inModel;
|
||||||
VCCSinstance *here;
|
|
||||||
VCCSinstance *prev = NULL;
|
|
||||||
VCCSmodel *mod = *model;
|
|
||||||
VCCSmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->VCCSnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
VCCSmodel *next_mod = mod->VCCSnextModel;
|
||||||
oldmod = mod;
|
VCCSinstance *inst = mod->VCCSinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->VCCSinstances ; here ; here = here->VCCSnextInstance) {
|
VCCSinstance *next_inst = inst->VCCSnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "vcvsdefs.h"
|
#include "vcvsdefs.h"
|
||||||
|
|
@ -13,22 +11,19 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
VCVSdestroy(GENmodel **inModel)
|
VCVSdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
VCVSmodel **model = (VCVSmodel **)inModel;
|
VCVSmodel *mod = *(VCVSmodel **) inModel;
|
||||||
VCVSinstance *here;
|
|
||||||
VCVSinstance *prev = NULL;
|
|
||||||
VCVSmodel *mod = *model;
|
|
||||||
VCVSmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->VCVSnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
VCVSmodel *next_mod = mod->VCVSnextModel;
|
||||||
oldmod = mod;
|
VCVSinstance *inst = mod->VCVSinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->VCVSinstances ; here ; here = here->VCVSnextInstance) {
|
VCVSinstance *next_inst = inst->VCVSnextInstance;
|
||||||
if(prev) FREE(prev);
|
FREE(inst);
|
||||||
prev = here;
|
inst = next_inst;
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||||
Author: 1985 Thomas L. Quarles
|
Author: 1985 Thomas L. Quarles
|
||||||
**********/
|
**********/
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ngspice/ngspice.h"
|
#include "ngspice/ngspice.h"
|
||||||
#include "vsrcdefs.h"
|
#include "vsrcdefs.h"
|
||||||
|
|
@ -13,25 +11,20 @@ Author: 1985 Thomas L. Quarles
|
||||||
void
|
void
|
||||||
VSRCdestroy(GENmodel **inModel)
|
VSRCdestroy(GENmodel **inModel)
|
||||||
{
|
{
|
||||||
VSRCmodel **model = (VSRCmodel**)inModel;
|
VSRCmodel *mod = *(VSRCmodel**) inModel;
|
||||||
VSRCinstance *here;
|
|
||||||
VSRCinstance *prev = NULL;
|
|
||||||
VSRCmodel *mod = *model;
|
|
||||||
VSRCmodel *oldmod = NULL;
|
|
||||||
|
|
||||||
for( ; mod ; mod = mod->VSRCnextModel) {
|
while (mod) {
|
||||||
if(oldmod) FREE(oldmod);
|
VSRCmodel *next_mod = mod->VSRCnextModel;
|
||||||
oldmod = mod;
|
VSRCinstance *inst = mod->VSRCinstances;
|
||||||
prev = NULL;
|
while (inst) {
|
||||||
for(here = mod->VSRCinstances ; here ; here = here->VSRCnextInstance) {
|
VSRCinstance *next_inst = inst->VSRCnextInstance;
|
||||||
if(prev) {
|
FREE(inst->VSRCcoeffs);
|
||||||
tfree(prev->VSRCcoeffs);
|
FREE(inst);
|
||||||
FREE(prev);
|
inst = next_inst;
|
||||||
}
|
|
||||||
prev = here;
|
|
||||||
}
|
}
|
||||||
if(prev) FREE(prev);
|
FREE(mod);
|
||||||
|
mod = next_mod;
|
||||||
}
|
}
|
||||||
if(oldmod) FREE(oldmod);
|
|
||||||
*model = NULL;
|
*inModel = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue