From 6acb310419e301be233e1cba0a19a772acd21d52 Mon Sep 17 00:00:00 2001 From: Francesco Lannutti Date: Mon, 1 Apr 2013 22:19:31 +0200 Subject: [PATCH] New Binding Method extended to BSIM3SOIFD device --- .../devices/bsim3soi_fd/b3soifdbindCSC.c | 2771 +++++++---------- src/spicelib/devices/bsim3soi_fd/b3soifddef.h | 88 + 2 files changed, 1281 insertions(+), 1578 deletions(-) diff --git a/src/spicelib/devices/bsim3soi_fd/b3soifdbindCSC.c b/src/spicelib/devices/bsim3soi_fd/b3soifdbindCSC.c index 509592d0e..dcdb964da 100644 --- a/src/spicelib/devices/bsim3soi_fd/b3soifdbindCSC.c +++ b/src/spicelib/devices/bsim3soi_fd/b3soifdbindCSC.c @@ -1,5 +1,5 @@ /********** -Author: 2012 Francesco Lannutti +Author: 2013 Francesco Lannutti **********/ #include "ngspice/ngspice.h" @@ -7,1088 +7,1026 @@ Author: 2012 Francesco Lannutti #include "b3soifddef.h" #include "ngspice/sperror.h" +#include + +static int -B3SOIFDbindCSC(GENmodel *inModel, CKTcircuit *ckt) +BindCompare (const void *a, const void *b) { - B3SOIFDmodel *model = (B3SOIFDmodel *)inModel; - int i ; + BindElement *A, *B ; + A = (BindElement *)a ; + B = (BindElement *)b ; - /* loop through all the b3soifd models */ - for( ; model != NULL; model = model->B3SOIFDnextModel ) { - B3SOIFDinstance *here; - - /* loop through all the instances of the model */ - for (here = model->B3SOIFDinstances; here != NULL ; - here = here->B3SOIFDnextInstance) { - - if ((model->B3SOIFDshMod == 1) && (here->B3SOIFDrth0!=0.0)) { - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDTemptempPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDTemptempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDTempdpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDTempdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDTempspPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDTempspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDTempgPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDTempgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDbNode != 0)) { - while (here->B3SOIFDTempbPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDTempbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDTempePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDTempePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDGtempPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDDPtempPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDPtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDSPtempPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDSPtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDEtempPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDEtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDBtempPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDBtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - if (here->B3SOIFDbodyMod == 1) { - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDPtempPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDPtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - } /* IF */ - } /* IF */ - - if (here->B3SOIFDbodyMod == 2) { - } - else if (here->B3SOIFDbodyMod == 1) { - - i = 0 ; - if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDpNode != 0)) { - while (here->B3SOIFDBpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDBpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDbNode != 0)) { - while (here->B3SOIFDPbPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDPbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDpNode != 0)) { - while (here->B3SOIFDPpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDPpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDPgPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDPgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDPdpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDPdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDPspPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDPspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDPePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDPePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - } /* ELSE */ - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDEgPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDEgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDEdpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDEdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDEspPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDEspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDGePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDDPePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDPePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDSPePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDSPePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDbNode != 0)) { - while (here->B3SOIFDEbPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDEbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDEePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDEePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDGgPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDGdpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDGspPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDDPgPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDPgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDDPdpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDPdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDDPspPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDPspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNode != 0)) { - while (here->B3SOIFDDPdPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDPdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDSPgPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDSPgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDSPdpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDSPdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDSPspPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDSPspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNode != 0)) { - while (here->B3SOIFDSPsPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDSPsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNode != 0)) { - while (here->B3SOIFDDdPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDDdpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNode != 0)) { - while (here->B3SOIFDSsPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDSsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDSspPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDSspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - if ((here->B3SOIFDdebugMod > 1) || (here->B3SOIFDdebugMod == -1)) { - - i = 0 ; - if ((here-> B3SOIFDvbsNode != 0) && (here-> B3SOIFDvbsNode != 0)) { - while (here->B3SOIFDVbsPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDVbsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDidsNode != 0) && (here-> B3SOIFDidsNode != 0)) { - while (here->B3SOIFDIdsPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDIdsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDicNode != 0) && (here-> B3SOIFDicNode != 0)) { - while (here->B3SOIFDIcPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDIcPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDibsNode != 0) && (here-> B3SOIFDibsNode != 0)) { - while (here->B3SOIFDIbsPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDIbsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDibdNode != 0) && (here-> B3SOIFDibdNode != 0)) { - while (here->B3SOIFDIbdPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDIbdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDiiiNode != 0) && (here-> B3SOIFDiiiNode != 0)) { - while (here->B3SOIFDIiiPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDIiiPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDigidlNode != 0) && (here-> B3SOIFDigidlNode != 0)) { - while (here->B3SOIFDIgidlPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDIgidlPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDitunNode != 0) && (here-> B3SOIFDitunNode != 0)) { - while (here->B3SOIFDItunPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDItunPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDibpNode != 0) && (here-> B3SOIFDibpNode != 0)) { - while (here->B3SOIFDIbpPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDIbpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDabeffNode != 0) && (here-> B3SOIFDabeffNode != 0)) { - while (here->B3SOIFDAbeffPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDAbeffPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvbs0effNode != 0) && (here-> B3SOIFDvbs0effNode != 0)) { - while (here->B3SOIFDVbs0effPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDVbs0effPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvbseffNode != 0) && (here-> B3SOIFDvbseffNode != 0)) { - while (here->B3SOIFDVbseffPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDVbseffPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDxcNode != 0) && (here-> B3SOIFDxcNode != 0)) { - while (here->B3SOIFDXcPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDXcPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDcbbNode != 0) && (here-> B3SOIFDcbbNode != 0)) { - while (here->B3SOIFDCbbPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDCbbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDcbdNode != 0) && (here-> B3SOIFDcbdNode != 0)) { - while (here->B3SOIFDCbdPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDCbdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDcbgNode != 0) && (here-> B3SOIFDcbgNode != 0)) { - while (here->B3SOIFDCbgPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDCbgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqbNode != 0) && (here-> B3SOIFDqbNode != 0)) { - while (here->B3SOIFDqbPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDqbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqbfNode != 0) && (here-> B3SOIFDqbfNode != 0)) { - while (here->B3SOIFDQbfPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDQbfPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqjsNode != 0) && (here-> B3SOIFDqjsNode != 0)) { - while (here->B3SOIFDQjsPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDQjsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqjdNode != 0) && (here-> B3SOIFDqjdNode != 0)) { - while (here->B3SOIFDQjdPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDQjdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgmNode != 0) && (here-> B3SOIFDgmNode != 0)) { - while (here->B3SOIFDGmPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGmPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgmbsNode != 0) && (here-> B3SOIFDgmbsNode != 0)) { - while (here->B3SOIFDGmbsPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGmbsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgdsNode != 0) && (here-> B3SOIFDgdsNode != 0)) { - while (here->B3SOIFDGdsPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGdsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgmeNode != 0) && (here-> B3SOIFDgmeNode != 0)) { - while (here->B3SOIFDGmePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDGmePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvbs0teffNode != 0) && (here-> B3SOIFDvbs0teffNode != 0)) { - while (here->B3SOIFDVbs0teffPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDVbs0teffPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvthNode != 0) && (here-> B3SOIFDvthNode != 0)) { - while (here->B3SOIFDVthPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDVthPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvgsteffNode != 0) && (here-> B3SOIFDvgsteffNode != 0)) { - while (here->B3SOIFDVgsteffPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDVgsteffPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDxcsatNode != 0) && (here-> B3SOIFDxcsatNode != 0)) { - while (here->B3SOIFDXcsatPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDXcsatPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvcscvNode != 0) && (here-> B3SOIFDvcscvNode != 0)) { - while (here->B3SOIFDVcscvPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDVcscvPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvdscvNode != 0) && (here-> B3SOIFDvdscvNode != 0)) { - while (here->B3SOIFDVdscvPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDVdscvPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDcbeNode != 0) && (here-> B3SOIFDcbeNode != 0)) { - while (here->B3SOIFDCbePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDCbePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum1Node != 0) && (here-> B3SOIFDdum1Node != 0)) { - while (here->B3SOIFDDum1Ptr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDum1Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum2Node != 0) && (here-> B3SOIFDdum2Node != 0)) { - while (here->B3SOIFDDum2Ptr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDum2Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum3Node != 0) && (here-> B3SOIFDdum3Node != 0)) { - while (here->B3SOIFDDum3Ptr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDum3Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum4Node != 0) && (here-> B3SOIFDdum4Node != 0)) { - while (here->B3SOIFDDum4Ptr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDum4Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum5Node != 0) && (here-> B3SOIFDdum5Node != 0)) { - while (here->B3SOIFDDum5Ptr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDDum5Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqaccNode != 0) && (here-> B3SOIFDqaccNode != 0)) { - while (here->B3SOIFDQaccPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDQaccPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqsub0Node != 0) && (here-> B3SOIFDqsub0Node != 0)) { - while (here->B3SOIFDQsub0Ptr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDQsub0Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqsubs1Node != 0) && (here-> B3SOIFDqsubs1Node != 0)) { - while (here->B3SOIFDQsubs1Ptr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDQsubs1Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqsubs2Node != 0) && (here-> B3SOIFDqsubs2Node != 0)) { - while (here->B3SOIFDQsubs2Ptr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDQsubs2Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqeNode != 0) && (here-> B3SOIFDqeNode != 0)) { - while (here->B3SOIFDqePtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDqePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqdNode != 0) && (here-> B3SOIFDqdNode != 0)) { - while (here->B3SOIFDqdPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDqdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqgNode != 0) && (here-> B3SOIFDqgNode != 0)) { - while (here->B3SOIFDqgPtr != ckt->CKTmatrix->CKTbind_Sparse [i]) i ++ ; - here->B3SOIFDqgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } - } /* IF */ - } - } - return(OK); + return ((int)(A->Sparse - B->Sparse)) ; } int -B3SOIFDbindCSCComplex(GENmodel *inModel, CKTcircuit *ckt) +B3SOIFDbindCSC (GENmodel *inModel, CKTcircuit *ckt) { - B3SOIFDmodel *model = (B3SOIFDmodel *)inModel; - int i ; + B3SOIFDmodel *model = (B3SOIFDmodel *)inModel ; + B3SOIFDinstance *here ; + double *i ; + BindElement *matched, *BindStruct ; + size_t nz ; - /* loop through all the b3soifd models */ - for( ; model != NULL; model = model->B3SOIFDnextModel ) { - B3SOIFDinstance *here; + BindStruct = ckt->CKTmatrix->CKTbindStruct ; + nz = (size_t)ckt->CKTmatrix->CKTklunz ; + /* loop through all the B3SOIFD models */ + for ( ; model != NULL ; model = model->B3SOIFDnextModel) + { /* loop through all the instances of the model */ - for (here = model->B3SOIFDinstances; here != NULL ; - here = here->B3SOIFDnextInstance) { - - if ((model->B3SOIFDshMod == 1) && (here->B3SOIFDrth0!=0.0)) { - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDTemptempPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDTemptempPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDTempdpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDTempdpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDTempspPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDTempspPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDTempgPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDTempgPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDbNode != 0)) { - while (here->B3SOIFDTempbPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDTempbPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDTempePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDTempePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDGtempPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGtempPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDDPtempPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDPtempPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDSPtempPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDSPtempPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDEtempPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDEtempPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDBtempPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDBtempPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - if (here->B3SOIFDbodyMod == 1) { - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDtempNode != 0)) { - while (here->B3SOIFDPtempPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDPtempPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - } /* IF */ - } /* IF */ - - if (here->B3SOIFDbodyMod == 2) { + for (here = model->B3SOIFDinstances ; here != NULL ; here = here->B3SOIFDnextInstance) + { + if ((model->B3SOIFDshMod == 1) && (here->B3SOIFDrth0!=0.0)) + { + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDtempNode != 0)) + { + i = here->B3SOIFDTemptempPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDTemptempStructPtr = matched ; + here->B3SOIFDTemptempPtr = matched->CSC ; } - else if (here->B3SOIFDbodyMod == 1) { - - i = 0 ; - if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDpNode != 0)) { - while (here->B3SOIFDBpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDBpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDbNode != 0)) { - while (here->B3SOIFDPbPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDPbPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDpNode != 0)) { - while (here->B3SOIFDPpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDPpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDPgPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDPgPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDPdpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDPdpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDPspPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDPspPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDPePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDPePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - } /* ELSE */ - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDEgPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDEgPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDEdpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDEdpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDEspPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDEspPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDGePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDDPePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDPePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDSPePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDSPePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDbNode != 0)) { - while (here->B3SOIFDEbPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDEbPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDeNode != 0)) { - while (here->B3SOIFDEePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDEePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDGgPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGgPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDGdpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGdpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDGspPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGspPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDDPgPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDPgPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDDPdpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDPdpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDDPspPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDPspPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNode != 0)) { - while (here->B3SOIFDDPdPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDPdPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDgNode != 0)) { - while (here->B3SOIFDSPgPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDSPgPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDSPdpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDSPdpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDSPspPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDSPspPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNode != 0)) { - while (here->B3SOIFDSPsPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDSPsPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNode != 0)) { - while (here->B3SOIFDDdPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDdPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNodePrime != 0)) { - while (here->B3SOIFDDdpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDdpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNode != 0)) { - while (here->B3SOIFDSsPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDSsPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNodePrime != 0)) { - while (here->B3SOIFDSspPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDSspPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - if ((here->B3SOIFDdebugMod > 1) || (here->B3SOIFDdebugMod == -1)) { - - i = 0 ; - if ((here-> B3SOIFDvbsNode != 0) && (here-> B3SOIFDvbsNode != 0)) { - while (here->B3SOIFDVbsPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDVbsPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDidsNode != 0) && (here-> B3SOIFDidsNode != 0)) { - while (here->B3SOIFDIdsPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDIdsPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDicNode != 0) && (here-> B3SOIFDicNode != 0)) { - while (here->B3SOIFDIcPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDIcPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDibsNode != 0) && (here-> B3SOIFDibsNode != 0)) { - while (here->B3SOIFDIbsPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDIbsPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDibdNode != 0) && (here-> B3SOIFDibdNode != 0)) { - while (here->B3SOIFDIbdPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDIbdPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDiiiNode != 0) && (here-> B3SOIFDiiiNode != 0)) { - while (here->B3SOIFDIiiPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDIiiPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDigidlNode != 0) && (here-> B3SOIFDigidlNode != 0)) { - while (here->B3SOIFDIgidlPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDIgidlPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDitunNode != 0) && (here-> B3SOIFDitunNode != 0)) { - while (here->B3SOIFDItunPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDItunPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDibpNode != 0) && (here-> B3SOIFDibpNode != 0)) { - while (here->B3SOIFDIbpPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDIbpPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDabeffNode != 0) && (here-> B3SOIFDabeffNode != 0)) { - while (here->B3SOIFDAbeffPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDAbeffPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvbs0effNode != 0) && (here-> B3SOIFDvbs0effNode != 0)) { - while (here->B3SOIFDVbs0effPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDVbs0effPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvbseffNode != 0) && (here-> B3SOIFDvbseffNode != 0)) { - while (here->B3SOIFDVbseffPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDVbseffPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDxcNode != 0) && (here-> B3SOIFDxcNode != 0)) { - while (here->B3SOIFDXcPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDXcPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDcbbNode != 0) && (here-> B3SOIFDcbbNode != 0)) { - while (here->B3SOIFDCbbPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDCbbPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDcbdNode != 0) && (here-> B3SOIFDcbdNode != 0)) { - while (here->B3SOIFDCbdPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDCbdPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDcbgNode != 0) && (here-> B3SOIFDcbgNode != 0)) { - while (here->B3SOIFDCbgPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDCbgPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqbNode != 0) && (here-> B3SOIFDqbNode != 0)) { - while (here->B3SOIFDqbPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDqbPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqbfNode != 0) && (here-> B3SOIFDqbfNode != 0)) { - while (here->B3SOIFDQbfPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDQbfPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqjsNode != 0) && (here-> B3SOIFDqjsNode != 0)) { - while (here->B3SOIFDQjsPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDQjsPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqjdNode != 0) && (here-> B3SOIFDqjdNode != 0)) { - while (here->B3SOIFDQjdPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDQjdPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgmNode != 0) && (here-> B3SOIFDgmNode != 0)) { - while (here->B3SOIFDGmPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGmPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgmbsNode != 0) && (here-> B3SOIFDgmbsNode != 0)) { - while (here->B3SOIFDGmbsPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGmbsPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgdsNode != 0) && (here-> B3SOIFDgdsNode != 0)) { - while (here->B3SOIFDGdsPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGdsPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDgmeNode != 0) && (here-> B3SOIFDgmeNode != 0)) { - while (here->B3SOIFDGmePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDGmePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvbs0teffNode != 0) && (here-> B3SOIFDvbs0teffNode != 0)) { - while (here->B3SOIFDVbs0teffPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDVbs0teffPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvthNode != 0) && (here-> B3SOIFDvthNode != 0)) { - while (here->B3SOIFDVthPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDVthPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvgsteffNode != 0) && (here-> B3SOIFDvgsteffNode != 0)) { - while (here->B3SOIFDVgsteffPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDVgsteffPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDxcsatNode != 0) && (here-> B3SOIFDxcsatNode != 0)) { - while (here->B3SOIFDXcsatPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDXcsatPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvcscvNode != 0) && (here-> B3SOIFDvcscvNode != 0)) { - while (here->B3SOIFDVcscvPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDVcscvPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDvdscvNode != 0) && (here-> B3SOIFDvdscvNode != 0)) { - while (here->B3SOIFDVdscvPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDVdscvPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDcbeNode != 0) && (here-> B3SOIFDcbeNode != 0)) { - while (here->B3SOIFDCbePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDCbePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum1Node != 0) && (here-> B3SOIFDdum1Node != 0)) { - while (here->B3SOIFDDum1Ptr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDum1Ptr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum2Node != 0) && (here-> B3SOIFDdum2Node != 0)) { - while (here->B3SOIFDDum2Ptr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDum2Ptr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum3Node != 0) && (here-> B3SOIFDdum3Node != 0)) { - while (here->B3SOIFDDum3Ptr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDum3Ptr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum4Node != 0) && (here-> B3SOIFDdum4Node != 0)) { - while (here->B3SOIFDDum4Ptr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDum4Ptr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDdum5Node != 0) && (here-> B3SOIFDdum5Node != 0)) { - while (here->B3SOIFDDum5Ptr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDDum5Ptr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqaccNode != 0) && (here-> B3SOIFDqaccNode != 0)) { - while (here->B3SOIFDQaccPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDQaccPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqsub0Node != 0) && (here-> B3SOIFDqsub0Node != 0)) { - while (here->B3SOIFDQsub0Ptr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDQsub0Ptr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqsubs1Node != 0) && (here-> B3SOIFDqsubs1Node != 0)) { - while (here->B3SOIFDQsubs1Ptr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDQsubs1Ptr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqsubs2Node != 0) && (here-> B3SOIFDqsubs2Node != 0)) { - while (here->B3SOIFDQsubs2Ptr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDQsubs2Ptr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqeNode != 0) && (here-> B3SOIFDqeNode != 0)) { - while (here->B3SOIFDqePtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDqePtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqdNode != 0) && (here-> B3SOIFDqdNode != 0)) { - while (here->B3SOIFDqdPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDqdPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - - i = 0 ; - if ((here-> B3SOIFDqgNode != 0) && (here-> B3SOIFDqgNode != 0)) { - while (here->B3SOIFDqgPtr != ckt->CKTmatrix->CKTbind_CSC [i]) i ++ ; - here->B3SOIFDqgPtr = ckt->CKTmatrix->CKTbind_CSC_Complex [i] ; - } - } /* IF */ - } + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + { + i = here->B3SOIFDTempdpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDTempdpStructPtr = matched ; + here->B3SOIFDTempdpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + { + i = here->B3SOIFDTempspPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDTempspStructPtr = matched ; + here->B3SOIFDTempspPtr = matched->CSC ; + } + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDgNode != 0)) + { + i = here->B3SOIFDTempgPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDTempgStructPtr = matched ; + here->B3SOIFDTempgPtr = matched->CSC ; + } + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDbNode != 0)) + { + i = here->B3SOIFDTempbPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDTempbStructPtr = matched ; + here->B3SOIFDTempbPtr = matched->CSC ; + } + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDeNode != 0)) + { + i = here->B3SOIFDTempePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDTempeStructPtr = matched ; + here->B3SOIFDTempePtr = matched->CSC ; + } + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDtempNode != 0)) + { + i = here->B3SOIFDGtempPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGtempStructPtr = matched ; + here->B3SOIFDGtempPtr = matched->CSC ; + } + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) + { + i = here->B3SOIFDDPtempPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDPtempStructPtr = matched ; + here->B3SOIFDDPtempPtr = matched->CSC ; + } + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) + { + i = here->B3SOIFDSPtempPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDSPtempStructPtr = matched ; + here->B3SOIFDSPtempPtr = matched->CSC ; + } + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDtempNode != 0)) + { + i = here->B3SOIFDEtempPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDEtempStructPtr = matched ; + here->B3SOIFDEtempPtr = matched->CSC ; + } + + if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDtempNode != 0)) + { + i = here->B3SOIFDBtempPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDBtempStructPtr = matched ; + here->B3SOIFDBtempPtr = matched->CSC ; + } + + if (here->B3SOIFDbodyMod == 1) + { + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDtempNode != 0)) + { + i = here->B3SOIFDPtempPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDPtempStructPtr = matched ; + here->B3SOIFDPtempPtr = matched->CSC ; + } + + } + } + if (here->B3SOIFDbodyMod == 2) + { + } + else if (here->B3SOIFDbodyMod == 1) + { + if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDpNode != 0)) + { + i = here->B3SOIFDBpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDBpStructPtr = matched ; + here->B3SOIFDBpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDbNode != 0)) + { + i = here->B3SOIFDPbPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDPbStructPtr = matched ; + here->B3SOIFDPbPtr = matched->CSC ; + } + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDpNode != 0)) + { + i = here->B3SOIFDPpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDPpStructPtr = matched ; + here->B3SOIFDPpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDgNode != 0)) + { + i = here->B3SOIFDPgPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDPgStructPtr = matched ; + here->B3SOIFDPgPtr = matched->CSC ; + } + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + { + i = here->B3SOIFDPdpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDPdpStructPtr = matched ; + here->B3SOIFDPdpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + { + i = here->B3SOIFDPspPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDPspStructPtr = matched ; + here->B3SOIFDPspPtr = matched->CSC ; + } + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDeNode != 0)) + { + i = here->B3SOIFDPePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDPeStructPtr = matched ; + here->B3SOIFDPePtr = matched->CSC ; + } + + } + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDgNode != 0)) + { + i = here->B3SOIFDEgPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDEgStructPtr = matched ; + here->B3SOIFDEgPtr = matched->CSC ; + } + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + { + i = here->B3SOIFDEdpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDEdpStructPtr = matched ; + here->B3SOIFDEdpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + { + i = here->B3SOIFDEspPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDEspStructPtr = matched ; + here->B3SOIFDEspPtr = matched->CSC ; + } + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDeNode != 0)) + { + i = here->B3SOIFDGePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGeStructPtr = matched ; + here->B3SOIFDGePtr = matched->CSC ; + } + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDeNode != 0)) + { + i = here->B3SOIFDDPePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDPeStructPtr = matched ; + here->B3SOIFDDPePtr = matched->CSC ; + } + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDeNode != 0)) + { + i = here->B3SOIFDSPePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDSPeStructPtr = matched ; + here->B3SOIFDSPePtr = matched->CSC ; + } + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDbNode != 0)) + { + i = here->B3SOIFDEbPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDEbStructPtr = matched ; + here->B3SOIFDEbPtr = matched->CSC ; + } + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDeNode != 0)) + { + i = here->B3SOIFDEePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDEeStructPtr = matched ; + here->B3SOIFDEePtr = matched->CSC ; + } + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDgNode != 0)) + { + i = here->B3SOIFDGgPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGgStructPtr = matched ; + here->B3SOIFDGgPtr = matched->CSC ; + } + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + { + i = here->B3SOIFDGdpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGdpStructPtr = matched ; + here->B3SOIFDGdpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + { + i = here->B3SOIFDGspPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGspStructPtr = matched ; + here->B3SOIFDGspPtr = matched->CSC ; + } + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDgNode != 0)) + { + i = here->B3SOIFDDPgPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDPgStructPtr = matched ; + here->B3SOIFDDPgPtr = matched->CSC ; + } + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) + { + i = here->B3SOIFDDPdpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDPdpStructPtr = matched ; + here->B3SOIFDDPdpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) + { + i = here->B3SOIFDDPspPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDPspStructPtr = matched ; + here->B3SOIFDDPspPtr = matched->CSC ; + } + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNode != 0)) + { + i = here->B3SOIFDDPdPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDPdStructPtr = matched ; + here->B3SOIFDDPdPtr = matched->CSC ; + } + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDgNode != 0)) + { + i = here->B3SOIFDSPgPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDSPgStructPtr = matched ; + here->B3SOIFDSPgPtr = matched->CSC ; + } + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) + { + i = here->B3SOIFDSPdpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDSPdpStructPtr = matched ; + here->B3SOIFDSPdpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) + { + i = here->B3SOIFDSPspPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDSPspStructPtr = matched ; + here->B3SOIFDSPspPtr = matched->CSC ; + } + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNode != 0)) + { + i = here->B3SOIFDSPsPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDSPsStructPtr = matched ; + here->B3SOIFDSPsPtr = matched->CSC ; + } + + if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNode != 0)) + { + i = here->B3SOIFDDdPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDdStructPtr = matched ; + here->B3SOIFDDdPtr = matched->CSC ; + } + + if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + { + i = here->B3SOIFDDdpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDdpStructPtr = matched ; + here->B3SOIFDDdpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNode != 0)) + { + i = here->B3SOIFDSsPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDSsStructPtr = matched ; + here->B3SOIFDSsPtr = matched->CSC ; + } + + if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + { + i = here->B3SOIFDSspPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDSspStructPtr = matched ; + here->B3SOIFDSspPtr = matched->CSC ; + } + + if ((here->B3SOIFDdebugMod > 1) || (here->B3SOIFDdebugMod == -1)) + { + if ((here-> B3SOIFDvbsNode != 0) && (here-> B3SOIFDvbsNode != 0)) + { + i = here->B3SOIFDVbsPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDVbsStructPtr = matched ; + here->B3SOIFDVbsPtr = matched->CSC ; + } + + if ((here-> B3SOIFDidsNode != 0) && (here-> B3SOIFDidsNode != 0)) + { + i = here->B3SOIFDIdsPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDIdsStructPtr = matched ; + here->B3SOIFDIdsPtr = matched->CSC ; + } + + if ((here-> B3SOIFDicNode != 0) && (here-> B3SOIFDicNode != 0)) + { + i = here->B3SOIFDIcPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDIcStructPtr = matched ; + here->B3SOIFDIcPtr = matched->CSC ; + } + + if ((here-> B3SOIFDibsNode != 0) && (here-> B3SOIFDibsNode != 0)) + { + i = here->B3SOIFDIbsPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDIbsStructPtr = matched ; + here->B3SOIFDIbsPtr = matched->CSC ; + } + + if ((here-> B3SOIFDibdNode != 0) && (here-> B3SOIFDibdNode != 0)) + { + i = here->B3SOIFDIbdPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDIbdStructPtr = matched ; + here->B3SOIFDIbdPtr = matched->CSC ; + } + + if ((here-> B3SOIFDiiiNode != 0) && (here-> B3SOIFDiiiNode != 0)) + { + i = here->B3SOIFDIiiPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDIiiStructPtr = matched ; + here->B3SOIFDIiiPtr = matched->CSC ; + } + + if ((here-> B3SOIFDigidlNode != 0) && (here-> B3SOIFDigidlNode != 0)) + { + i = here->B3SOIFDIgidlPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDIgidlStructPtr = matched ; + here->B3SOIFDIgidlPtr = matched->CSC ; + } + + if ((here-> B3SOIFDitunNode != 0) && (here-> B3SOIFDitunNode != 0)) + { + i = here->B3SOIFDItunPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDItunStructPtr = matched ; + here->B3SOIFDItunPtr = matched->CSC ; + } + + if ((here-> B3SOIFDibpNode != 0) && (here-> B3SOIFDibpNode != 0)) + { + i = here->B3SOIFDIbpPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDIbpStructPtr = matched ; + here->B3SOIFDIbpPtr = matched->CSC ; + } + + if ((here-> B3SOIFDabeffNode != 0) && (here-> B3SOIFDabeffNode != 0)) + { + i = here->B3SOIFDAbeffPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDAbeffStructPtr = matched ; + here->B3SOIFDAbeffPtr = matched->CSC ; + } + + if ((here-> B3SOIFDvbs0effNode != 0) && (here-> B3SOIFDvbs0effNode != 0)) + { + i = here->B3SOIFDVbs0effPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDVbs0effStructPtr = matched ; + here->B3SOIFDVbs0effPtr = matched->CSC ; + } + + if ((here-> B3SOIFDvbseffNode != 0) && (here-> B3SOIFDvbseffNode != 0)) + { + i = here->B3SOIFDVbseffPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDVbseffStructPtr = matched ; + here->B3SOIFDVbseffPtr = matched->CSC ; + } + + if ((here-> B3SOIFDxcNode != 0) && (here-> B3SOIFDxcNode != 0)) + { + i = here->B3SOIFDXcPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDXcStructPtr = matched ; + here->B3SOIFDXcPtr = matched->CSC ; + } + + if ((here-> B3SOIFDcbbNode != 0) && (here-> B3SOIFDcbbNode != 0)) + { + i = here->B3SOIFDCbbPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDCbbStructPtr = matched ; + here->B3SOIFDCbbPtr = matched->CSC ; + } + + if ((here-> B3SOIFDcbdNode != 0) && (here-> B3SOIFDcbdNode != 0)) + { + i = here->B3SOIFDCbdPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDCbdStructPtr = matched ; + here->B3SOIFDCbdPtr = matched->CSC ; + } + + if ((here-> B3SOIFDcbgNode != 0) && (here-> B3SOIFDcbgNode != 0)) + { + i = here->B3SOIFDCbgPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDCbgStructPtr = matched ; + here->B3SOIFDCbgPtr = matched->CSC ; + } + + if ((here-> B3SOIFDqbNode != 0) && (here-> B3SOIFDqbNode != 0)) + { + i = here->B3SOIFDqbPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDqbStructPtr = matched ; + here->B3SOIFDqbPtr = matched->CSC ; + } + + if ((here-> B3SOIFDqbfNode != 0) && (here-> B3SOIFDqbfNode != 0)) + { + i = here->B3SOIFDQbfPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDQbfStructPtr = matched ; + here->B3SOIFDQbfPtr = matched->CSC ; + } + + if ((here-> B3SOIFDqjsNode != 0) && (here-> B3SOIFDqjsNode != 0)) + { + i = here->B3SOIFDQjsPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDQjsStructPtr = matched ; + here->B3SOIFDQjsPtr = matched->CSC ; + } + + if ((here-> B3SOIFDqjdNode != 0) && (here-> B3SOIFDqjdNode != 0)) + { + i = here->B3SOIFDQjdPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDQjdStructPtr = matched ; + here->B3SOIFDQjdPtr = matched->CSC ; + } + + if ((here-> B3SOIFDgmNode != 0) && (here-> B3SOIFDgmNode != 0)) + { + i = here->B3SOIFDGmPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGmStructPtr = matched ; + here->B3SOIFDGmPtr = matched->CSC ; + } + + if ((here-> B3SOIFDgmbsNode != 0) && (here-> B3SOIFDgmbsNode != 0)) + { + i = here->B3SOIFDGmbsPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGmbsStructPtr = matched ; + here->B3SOIFDGmbsPtr = matched->CSC ; + } + + if ((here-> B3SOIFDgdsNode != 0) && (here-> B3SOIFDgdsNode != 0)) + { + i = here->B3SOIFDGdsPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGdsStructPtr = matched ; + here->B3SOIFDGdsPtr = matched->CSC ; + } + + if ((here-> B3SOIFDgmeNode != 0) && (here-> B3SOIFDgmeNode != 0)) + { + i = here->B3SOIFDGmePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDGmeStructPtr = matched ; + here->B3SOIFDGmePtr = matched->CSC ; + } + + if ((here-> B3SOIFDvbs0teffNode != 0) && (here-> B3SOIFDvbs0teffNode != 0)) + { + i = here->B3SOIFDVbs0teffPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDVbs0teffStructPtr = matched ; + here->B3SOIFDVbs0teffPtr = matched->CSC ; + } + + if ((here-> B3SOIFDvthNode != 0) && (here-> B3SOIFDvthNode != 0)) + { + i = here->B3SOIFDVthPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDVthStructPtr = matched ; + here->B3SOIFDVthPtr = matched->CSC ; + } + + if ((here-> B3SOIFDvgsteffNode != 0) && (here-> B3SOIFDvgsteffNode != 0)) + { + i = here->B3SOIFDVgsteffPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDVgsteffStructPtr = matched ; + here->B3SOIFDVgsteffPtr = matched->CSC ; + } + + if ((here-> B3SOIFDxcsatNode != 0) && (here-> B3SOIFDxcsatNode != 0)) + { + i = here->B3SOIFDXcsatPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDXcsatStructPtr = matched ; + here->B3SOIFDXcsatPtr = matched->CSC ; + } + + if ((here-> B3SOIFDvcscvNode != 0) && (here-> B3SOIFDvcscvNode != 0)) + { + i = here->B3SOIFDVcscvPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDVcscvStructPtr = matched ; + here->B3SOIFDVcscvPtr = matched->CSC ; + } + + if ((here-> B3SOIFDvdscvNode != 0) && (here-> B3SOIFDvdscvNode != 0)) + { + i = here->B3SOIFDVdscvPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDVdscvStructPtr = matched ; + here->B3SOIFDVdscvPtr = matched->CSC ; + } + + if ((here-> B3SOIFDcbeNode != 0) && (here-> B3SOIFDcbeNode != 0)) + { + i = here->B3SOIFDCbePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDCbeStructPtr = matched ; + here->B3SOIFDCbePtr = matched->CSC ; + } + + if ((here-> B3SOIFDdum1Node != 0) && (here-> B3SOIFDdum1Node != 0)) + { + i = here->B3SOIFDDum1Ptr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDum1StructPtr = matched ; + here->B3SOIFDDum1Ptr = matched->CSC ; + } + + if ((here-> B3SOIFDdum2Node != 0) && (here-> B3SOIFDdum2Node != 0)) + { + i = here->B3SOIFDDum2Ptr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDum2StructPtr = matched ; + here->B3SOIFDDum2Ptr = matched->CSC ; + } + + if ((here-> B3SOIFDdum3Node != 0) && (here-> B3SOIFDdum3Node != 0)) + { + i = here->B3SOIFDDum3Ptr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDum3StructPtr = matched ; + here->B3SOIFDDum3Ptr = matched->CSC ; + } + + if ((here-> B3SOIFDdum4Node != 0) && (here-> B3SOIFDdum4Node != 0)) + { + i = here->B3SOIFDDum4Ptr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDum4StructPtr = matched ; + here->B3SOIFDDum4Ptr = matched->CSC ; + } + + if ((here-> B3SOIFDdum5Node != 0) && (here-> B3SOIFDdum5Node != 0)) + { + i = here->B3SOIFDDum5Ptr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDDum5StructPtr = matched ; + here->B3SOIFDDum5Ptr = matched->CSC ; + } + + if ((here-> B3SOIFDqaccNode != 0) && (here-> B3SOIFDqaccNode != 0)) + { + i = here->B3SOIFDQaccPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDQaccStructPtr = matched ; + here->B3SOIFDQaccPtr = matched->CSC ; + } + + if ((here-> B3SOIFDqsub0Node != 0) && (here-> B3SOIFDqsub0Node != 0)) + { + i = here->B3SOIFDQsub0Ptr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDQsub0StructPtr = matched ; + here->B3SOIFDQsub0Ptr = matched->CSC ; + } + + if ((here-> B3SOIFDqsubs1Node != 0) && (here-> B3SOIFDqsubs1Node != 0)) + { + i = here->B3SOIFDQsubs1Ptr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDQsubs1StructPtr = matched ; + here->B3SOIFDQsubs1Ptr = matched->CSC ; + } + + if ((here-> B3SOIFDqsubs2Node != 0) && (here-> B3SOIFDqsubs2Node != 0)) + { + i = here->B3SOIFDQsubs2Ptr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDQsubs2StructPtr = matched ; + here->B3SOIFDQsubs2Ptr = matched->CSC ; + } + + if ((here-> B3SOIFDqeNode != 0) && (here-> B3SOIFDqeNode != 0)) + { + i = here->B3SOIFDqePtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDqeStructPtr = matched ; + here->B3SOIFDqePtr = matched->CSC ; + } + + if ((here-> B3SOIFDqdNode != 0) && (here-> B3SOIFDqdNode != 0)) + { + i = here->B3SOIFDqdPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDqdStructPtr = matched ; + here->B3SOIFDqdPtr = matched->CSC ; + } + + if ((here-> B3SOIFDqgNode != 0) && (here-> B3SOIFDqgNode != 0)) + { + i = here->B3SOIFDqgPtr ; + matched = (BindElement *) bsearch (&i, BindStruct, nz, sizeof(BindElement), BindCompare) ; + here->B3SOIFDqgStructPtr = matched ; + here->B3SOIFDqgPtr = matched->CSC ; + } + + } + } } - return(OK); + + return (OK) ; +} + +int +B3SOIFDbindCSCComplex (GENmodel *inModel, CKTcircuit *ckt) +{ + B3SOIFDmodel *model = (B3SOIFDmodel *)inModel ; + B3SOIFDinstance *here ; + + NG_IGNORE (ckt) ; + + /* loop through all the B3SOIFD models */ + for ( ; model != NULL ; model = model->B3SOIFDnextModel) + { + /* loop through all the instances of the model */ + for (here = model->B3SOIFDinstances ; here != NULL ; here = here->B3SOIFDnextInstance) + { + if ((model->B3SOIFDshMod == 1) && (here->B3SOIFDrth0!=0.0)) + { + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDTemptempPtr = here->B3SOIFDTemptempStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDTempdpPtr = here->B3SOIFDTempdpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDTempspPtr = here->B3SOIFDTempspStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDTempgPtr = here->B3SOIFDTempgStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDbNode != 0)) + here->B3SOIFDTempbPtr = here->B3SOIFDTempbStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDTempePtr = here->B3SOIFDTempeStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDGtempPtr = here->B3SOIFDGtempStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDDPtempPtr = here->B3SOIFDDPtempStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDSPtempPtr = here->B3SOIFDSPtempStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDEtempPtr = here->B3SOIFDEtempStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDBtempPtr = here->B3SOIFDBtempStructPtr->CSC_Complex ; + + if (here->B3SOIFDbodyMod == 1) + { + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDPtempPtr = here->B3SOIFDPtempStructPtr->CSC_Complex ; + + } + } + if (here->B3SOIFDbodyMod == 2) + { + } + else if (here->B3SOIFDbodyMod == 1) + { + if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDpNode != 0)) + here->B3SOIFDBpPtr = here->B3SOIFDBpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDbNode != 0)) + here->B3SOIFDPbPtr = here->B3SOIFDPbStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDpNode != 0)) + here->B3SOIFDPpPtr = here->B3SOIFDPpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDPgPtr = here->B3SOIFDPgStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDPdpPtr = here->B3SOIFDPdpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDPspPtr = here->B3SOIFDPspStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDPePtr = here->B3SOIFDPeStructPtr->CSC_Complex ; + + } + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDEgPtr = here->B3SOIFDEgStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDEdpPtr = here->B3SOIFDEdpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDEspPtr = here->B3SOIFDEspStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDGePtr = here->B3SOIFDGeStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDDPePtr = here->B3SOIFDDPeStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDSPePtr = here->B3SOIFDSPeStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDbNode != 0)) + here->B3SOIFDEbPtr = here->B3SOIFDEbStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDEePtr = here->B3SOIFDEeStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDGgPtr = here->B3SOIFDGgStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDGdpPtr = here->B3SOIFDGdpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDGspPtr = here->B3SOIFDGspStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDDPgPtr = here->B3SOIFDDPgStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDDPdpPtr = here->B3SOIFDDPdpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDDPspPtr = here->B3SOIFDDPspStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNode != 0)) + here->B3SOIFDDPdPtr = here->B3SOIFDDPdStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDSPgPtr = here->B3SOIFDSPgStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDSPdpPtr = here->B3SOIFDSPdpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDSPspPtr = here->B3SOIFDSPspStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNode != 0)) + here->B3SOIFDSPsPtr = here->B3SOIFDSPsStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNode != 0)) + here->B3SOIFDDdPtr = here->B3SOIFDDdStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDDdpPtr = here->B3SOIFDDdpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNode != 0)) + here->B3SOIFDSsPtr = here->B3SOIFDSsStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDSspPtr = here->B3SOIFDSspStructPtr->CSC_Complex ; + + if ((here->B3SOIFDdebugMod > 1) || (here->B3SOIFDdebugMod == -1)) + { + if ((here-> B3SOIFDvbsNode != 0) && (here-> B3SOIFDvbsNode != 0)) + here->B3SOIFDVbsPtr = here->B3SOIFDVbsStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDidsNode != 0) && (here-> B3SOIFDidsNode != 0)) + here->B3SOIFDIdsPtr = here->B3SOIFDIdsStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDicNode != 0) && (here-> B3SOIFDicNode != 0)) + here->B3SOIFDIcPtr = here->B3SOIFDIcStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDibsNode != 0) && (here-> B3SOIFDibsNode != 0)) + here->B3SOIFDIbsPtr = here->B3SOIFDIbsStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDibdNode != 0) && (here-> B3SOIFDibdNode != 0)) + here->B3SOIFDIbdPtr = here->B3SOIFDIbdStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDiiiNode != 0) && (here-> B3SOIFDiiiNode != 0)) + here->B3SOIFDIiiPtr = here->B3SOIFDIiiStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDigidlNode != 0) && (here-> B3SOIFDigidlNode != 0)) + here->B3SOIFDIgidlPtr = here->B3SOIFDIgidlStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDitunNode != 0) && (here-> B3SOIFDitunNode != 0)) + here->B3SOIFDItunPtr = here->B3SOIFDItunStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDibpNode != 0) && (here-> B3SOIFDibpNode != 0)) + here->B3SOIFDIbpPtr = here->B3SOIFDIbpStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDabeffNode != 0) && (here-> B3SOIFDabeffNode != 0)) + here->B3SOIFDAbeffPtr = here->B3SOIFDAbeffStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDvbs0effNode != 0) && (here-> B3SOIFDvbs0effNode != 0)) + here->B3SOIFDVbs0effPtr = here->B3SOIFDVbs0effStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDvbseffNode != 0) && (here-> B3SOIFDvbseffNode != 0)) + here->B3SOIFDVbseffPtr = here->B3SOIFDVbseffStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDxcNode != 0) && (here-> B3SOIFDxcNode != 0)) + here->B3SOIFDXcPtr = here->B3SOIFDXcStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDcbbNode != 0) && (here-> B3SOIFDcbbNode != 0)) + here->B3SOIFDCbbPtr = here->B3SOIFDCbbStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDcbdNode != 0) && (here-> B3SOIFDcbdNode != 0)) + here->B3SOIFDCbdPtr = here->B3SOIFDCbdStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDcbgNode != 0) && (here-> B3SOIFDcbgNode != 0)) + here->B3SOIFDCbgPtr = here->B3SOIFDCbgStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqbNode != 0) && (here-> B3SOIFDqbNode != 0)) + here->B3SOIFDqbPtr = here->B3SOIFDqbStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqbfNode != 0) && (here-> B3SOIFDqbfNode != 0)) + here->B3SOIFDQbfPtr = here->B3SOIFDQbfStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqjsNode != 0) && (here-> B3SOIFDqjsNode != 0)) + here->B3SOIFDQjsPtr = here->B3SOIFDQjsStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqjdNode != 0) && (here-> B3SOIFDqjdNode != 0)) + here->B3SOIFDQjdPtr = here->B3SOIFDQjdStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgmNode != 0) && (here-> B3SOIFDgmNode != 0)) + here->B3SOIFDGmPtr = here->B3SOIFDGmStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgmbsNode != 0) && (here-> B3SOIFDgmbsNode != 0)) + here->B3SOIFDGmbsPtr = here->B3SOIFDGmbsStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgdsNode != 0) && (here-> B3SOIFDgdsNode != 0)) + here->B3SOIFDGdsPtr = here->B3SOIFDGdsStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDgmeNode != 0) && (here-> B3SOIFDgmeNode != 0)) + here->B3SOIFDGmePtr = here->B3SOIFDGmeStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDvbs0teffNode != 0) && (here-> B3SOIFDvbs0teffNode != 0)) + here->B3SOIFDVbs0teffPtr = here->B3SOIFDVbs0teffStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDvthNode != 0) && (here-> B3SOIFDvthNode != 0)) + here->B3SOIFDVthPtr = here->B3SOIFDVthStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDvgsteffNode != 0) && (here-> B3SOIFDvgsteffNode != 0)) + here->B3SOIFDVgsteffPtr = here->B3SOIFDVgsteffStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDxcsatNode != 0) && (here-> B3SOIFDxcsatNode != 0)) + here->B3SOIFDXcsatPtr = here->B3SOIFDXcsatStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDvcscvNode != 0) && (here-> B3SOIFDvcscvNode != 0)) + here->B3SOIFDVcscvPtr = here->B3SOIFDVcscvStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDvdscvNode != 0) && (here-> B3SOIFDvdscvNode != 0)) + here->B3SOIFDVdscvPtr = here->B3SOIFDVdscvStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDcbeNode != 0) && (here-> B3SOIFDcbeNode != 0)) + here->B3SOIFDCbePtr = here->B3SOIFDCbeStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdum1Node != 0) && (here-> B3SOIFDdum1Node != 0)) + here->B3SOIFDDum1Ptr = here->B3SOIFDDum1StructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdum2Node != 0) && (here-> B3SOIFDdum2Node != 0)) + here->B3SOIFDDum2Ptr = here->B3SOIFDDum2StructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdum3Node != 0) && (here-> B3SOIFDdum3Node != 0)) + here->B3SOIFDDum3Ptr = here->B3SOIFDDum3StructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdum4Node != 0) && (here-> B3SOIFDdum4Node != 0)) + here->B3SOIFDDum4Ptr = here->B3SOIFDDum4StructPtr->CSC_Complex ; + + if ((here-> B3SOIFDdum5Node != 0) && (here-> B3SOIFDdum5Node != 0)) + here->B3SOIFDDum5Ptr = here->B3SOIFDDum5StructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqaccNode != 0) && (here-> B3SOIFDqaccNode != 0)) + here->B3SOIFDQaccPtr = here->B3SOIFDQaccStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqsub0Node != 0) && (here-> B3SOIFDqsub0Node != 0)) + here->B3SOIFDQsub0Ptr = here->B3SOIFDQsub0StructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqsubs1Node != 0) && (here-> B3SOIFDqsubs1Node != 0)) + here->B3SOIFDQsubs1Ptr = here->B3SOIFDQsubs1StructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqsubs2Node != 0) && (here-> B3SOIFDqsubs2Node != 0)) + here->B3SOIFDQsubs2Ptr = here->B3SOIFDQsubs2StructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqeNode != 0) && (here-> B3SOIFDqeNode != 0)) + here->B3SOIFDqePtr = here->B3SOIFDqeStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqdNode != 0) && (here-> B3SOIFDqdNode != 0)) + here->B3SOIFDqdPtr = here->B3SOIFDqdStructPtr->CSC_Complex ; + + if ((here-> B3SOIFDqgNode != 0) && (here-> B3SOIFDqgNode != 0)) + here->B3SOIFDqgPtr = here->B3SOIFDqgStructPtr->CSC_Complex ; + + } + } + } + + return (OK) ; } int @@ -1096,610 +1034,287 @@ B3SOIFDbindCSCComplexToReal (GENmodel *inModel, CKTcircuit *ckt) { B3SOIFDmodel *model = (B3SOIFDmodel *)inModel ; B3SOIFDinstance *here ; - int i ; - /* loop through all the bsim3SiliconOnInsulatorFullyDepleted models */ + NG_IGNORE (ckt) ; + + /* loop through all the B3SOIFD models */ for ( ; model != NULL ; model = model->B3SOIFDnextModel) { /* loop through all the instances of the model */ for (here = model->B3SOIFDinstances ; here != NULL ; here = here->B3SOIFDnextInstance) { - i = 0 ; - if ((here->B3SOIFDtempNode != 0) && (here->B3SOIFDtempNode != 0)) + if ((model->B3SOIFDshMod == 1) && (here->B3SOIFDrth0!=0.0)) { - while (here->B3SOIFDTemptempPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDTemptempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDTemptempPtr = here->B3SOIFDTemptempStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDtempNode != 0) && (here->B3SOIFDdNodePrime != 0)) - { - while (here->B3SOIFDTempdpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDTempdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDTempdpPtr = here->B3SOIFDTempdpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDtempNode != 0) && (here->B3SOIFDsNodePrime != 0)) - { - while (here->B3SOIFDTempspPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDTempspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDTempspPtr = here->B3SOIFDTempspStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDtempNode != 0) && (here->B3SOIFDgNode != 0)) - { - while (here->B3SOIFDTempgPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDTempgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDTempgPtr = here->B3SOIFDTempgStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDtempNode != 0) && (here->B3SOIFDbNode != 0)) - { - while (here->B3SOIFDTempbPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDTempbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDbNode != 0)) + here->B3SOIFDTempbPtr = here->B3SOIFDTempbStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDtempNode != 0) && (here->B3SOIFDeNode != 0)) - { - while (here->B3SOIFDTempePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDTempePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDtempNode != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDTempePtr = here->B3SOIFDTempeStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgNode != 0) && (here->B3SOIFDtempNode != 0)) - { - while (here->B3SOIFDGtempPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDGtempPtr = here->B3SOIFDGtempStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdNodePrime != 0) && (here->B3SOIFDtempNode != 0)) - { - while (here->B3SOIFDDPtempPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDPtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDDPtempPtr = here->B3SOIFDDPtempStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDsNodePrime != 0) && (here->B3SOIFDtempNode != 0)) - { - while (here->B3SOIFDSPtempPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDSPtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDSPtempPtr = here->B3SOIFDSPtempStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDeNode != 0) && (here->B3SOIFDtempNode != 0)) - { - while (here->B3SOIFDEtempPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDEtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDEtempPtr = here->B3SOIFDEtempStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDbNode != 0) && (here->B3SOIFDtempNode != 0)) - { - while (here->B3SOIFDBtempPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDBtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDBtempPtr = here->B3SOIFDBtempStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDpNode != 0) && (here->B3SOIFDtempNode != 0)) - { - while (here->B3SOIFDPtempPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDPtempPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if (here->B3SOIFDbodyMod == 1) + { + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDtempNode != 0)) + here->B3SOIFDPtempPtr = here->B3SOIFDPtempStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDbNode != 0) && (here->B3SOIFDpNode != 0)) - { - while (here->B3SOIFDBpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDBpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; + } } - - i = 0 ; - if ((here->B3SOIFDpNode != 0) && (here->B3SOIFDbNode != 0)) + if (here->B3SOIFDbodyMod == 2) { - while (here->B3SOIFDPbPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDPbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; } - - i = 0 ; - if ((here->B3SOIFDpNode != 0) && (here->B3SOIFDpNode != 0)) + else if (here->B3SOIFDbodyMod == 1) { - while (here->B3SOIFDPpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDPpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDbNode != 0) && (here-> B3SOIFDpNode != 0)) + here->B3SOIFDBpPtr = here->B3SOIFDBpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDpNode != 0) && (here->B3SOIFDgNode != 0)) - { - while (here->B3SOIFDPgPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDPgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDbNode != 0)) + here->B3SOIFDPbPtr = here->B3SOIFDPbStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDpNode != 0) && (here->B3SOIFDdNodePrime != 0)) - { - while (here->B3SOIFDPdpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDPdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDpNode != 0)) + here->B3SOIFDPpPtr = here->B3SOIFDPpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDpNode != 0) && (here->B3SOIFDsNodePrime != 0)) - { - while (here->B3SOIFDPspPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDPspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDPgPtr = here->B3SOIFDPgStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDpNode != 0) && (here->B3SOIFDeNode != 0)) - { - while (here->B3SOIFDPePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDPePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDPdpPtr = here->B3SOIFDPdpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDeNode != 0) && (here->B3SOIFDgNode != 0)) - { - while (here->B3SOIFDEgPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDEgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDPspPtr = here->B3SOIFDPspStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDeNode != 0) && (here->B3SOIFDdNodePrime != 0)) - { - while (here->B3SOIFDEdpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDEdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDpNode != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDPePtr = here->B3SOIFDPeStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDeNode != 0) && (here->B3SOIFDsNodePrime != 0)) - { - while (here->B3SOIFDEspPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDEspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; } + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDEgPtr = here->B3SOIFDEgStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgNode != 0) && (here->B3SOIFDeNode != 0)) - { - while (here->B3SOIFDGePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDEdpPtr = here->B3SOIFDEdpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdNodePrime != 0) && (here->B3SOIFDeNode != 0)) - { - while (here->B3SOIFDDPePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDPePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDEspPtr = here->B3SOIFDEspStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDsNodePrime != 0) && (here->B3SOIFDeNode != 0)) - { - while (here->B3SOIFDSPePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDSPePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDGePtr = here->B3SOIFDGeStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDeNode != 0) && (here->B3SOIFDbNode != 0)) - { - while (here->B3SOIFDEbPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDEbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDDPePtr = here->B3SOIFDDPeStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDeNode != 0) && (here->B3SOIFDeNode != 0)) - { - while (here->B3SOIFDEePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDEePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDSPePtr = here->B3SOIFDSPeStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgNode != 0) && (here->B3SOIFDgNode != 0)) - { - while (here->B3SOIFDGgPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDbNode != 0)) + here->B3SOIFDEbPtr = here->B3SOIFDEbStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgNode != 0) && (here->B3SOIFDdNodePrime != 0)) - { - while (here->B3SOIFDGdpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDeNode != 0) && (here-> B3SOIFDeNode != 0)) + here->B3SOIFDEePtr = here->B3SOIFDEeStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgNode != 0) && (here->B3SOIFDsNodePrime != 0)) - { - while (here->B3SOIFDGspPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDGgPtr = here->B3SOIFDGgStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdNodePrime != 0) && (here->B3SOIFDgNode != 0)) - { - while (here->B3SOIFDDPgPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDPgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDGdpPtr = here->B3SOIFDGdpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdNodePrime != 0) && (here->B3SOIFDdNodePrime != 0)) - { - while (here->B3SOIFDDPdpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDPdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDGspPtr = here->B3SOIFDGspStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdNodePrime != 0) && (here->B3SOIFDsNodePrime != 0)) - { - while (here->B3SOIFDDPspPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDPspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDDPgPtr = here->B3SOIFDDPgStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdNodePrime != 0) && (here->B3SOIFDdNode != 0)) - { - while (here->B3SOIFDDPdPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDPdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDDPdpPtr = here->B3SOIFDDPdpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDsNodePrime != 0) && (here->B3SOIFDgNode != 0)) - { - while (here->B3SOIFDSPgPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDSPgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDDPspPtr = here->B3SOIFDDPspStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDsNodePrime != 0) && (here->B3SOIFDdNodePrime != 0)) - { - while (here->B3SOIFDSPdpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDSPdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdNodePrime != 0) && (here-> B3SOIFDdNode != 0)) + here->B3SOIFDDPdPtr = here->B3SOIFDDPdStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDsNodePrime != 0) && (here->B3SOIFDsNodePrime != 0)) - { - while (here->B3SOIFDSPspPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDSPspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDgNode != 0)) + here->B3SOIFDSPgPtr = here->B3SOIFDSPgStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDsNodePrime != 0) && (here->B3SOIFDsNode != 0)) - { - while (here->B3SOIFDSPsPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDSPsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDSPdpPtr = here->B3SOIFDSPdpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdNode != 0) && (here->B3SOIFDdNode != 0)) - { - while (here->B3SOIFDDdPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDSPspPtr = here->B3SOIFDSPspStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdNode != 0) && (here->B3SOIFDdNodePrime != 0)) - { - while (here->B3SOIFDDdpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDdpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDsNodePrime != 0) && (here-> B3SOIFDsNode != 0)) + here->B3SOIFDSPsPtr = here->B3SOIFDSPsStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDsNode != 0) && (here->B3SOIFDsNode != 0)) - { - while (here->B3SOIFDSsPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDSsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNode != 0)) + here->B3SOIFDDdPtr = here->B3SOIFDDdStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDsNode != 0) && (here->B3SOIFDsNodePrime != 0)) - { - while (here->B3SOIFDSspPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDSspPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdNode != 0) && (here-> B3SOIFDdNodePrime != 0)) + here->B3SOIFDDdpPtr = here->B3SOIFDDdpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDvbsNode != 0) && (here->B3SOIFDvbsNode != 0)) - { - while (here->B3SOIFDVbsPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDVbsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNode != 0)) + here->B3SOIFDSsPtr = here->B3SOIFDSsStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDidsNode != 0) && (here->B3SOIFDidsNode != 0)) - { - while (here->B3SOIFDIdsPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDIdsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDsNode != 0) && (here-> B3SOIFDsNodePrime != 0)) + here->B3SOIFDSspPtr = here->B3SOIFDSspStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDicNode != 0) && (here->B3SOIFDicNode != 0)) + if ((here->B3SOIFDdebugMod > 1) || (here->B3SOIFDdebugMod == -1)) { - while (here->B3SOIFDIcPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDIcPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDvbsNode != 0) && (here-> B3SOIFDvbsNode != 0)) + here->B3SOIFDVbsPtr = here->B3SOIFDVbsStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDibsNode != 0) && (here->B3SOIFDibsNode != 0)) - { - while (here->B3SOIFDIbsPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDIbsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDidsNode != 0) && (here-> B3SOIFDidsNode != 0)) + here->B3SOIFDIdsPtr = here->B3SOIFDIdsStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDibdNode != 0) && (here->B3SOIFDibdNode != 0)) - { - while (here->B3SOIFDIbdPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDIbdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDicNode != 0) && (here-> B3SOIFDicNode != 0)) + here->B3SOIFDIcPtr = here->B3SOIFDIcStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDiiiNode != 0) && (here->B3SOIFDiiiNode != 0)) - { - while (here->B3SOIFDIiiPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDIiiPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDibsNode != 0) && (here-> B3SOIFDibsNode != 0)) + here->B3SOIFDIbsPtr = here->B3SOIFDIbsStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDigidlNode != 0) && (here->B3SOIFDigidlNode != 0)) - { - while (here->B3SOIFDIgidlPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDIgidlPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDibdNode != 0) && (here-> B3SOIFDibdNode != 0)) + here->B3SOIFDIbdPtr = here->B3SOIFDIbdStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDitunNode != 0) && (here->B3SOIFDitunNode != 0)) - { - while (here->B3SOIFDItunPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDItunPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDiiiNode != 0) && (here-> B3SOIFDiiiNode != 0)) + here->B3SOIFDIiiPtr = here->B3SOIFDIiiStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDibpNode != 0) && (here->B3SOIFDibpNode != 0)) - { - while (here->B3SOIFDIbpPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDIbpPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDigidlNode != 0) && (here-> B3SOIFDigidlNode != 0)) + here->B3SOIFDIgidlPtr = here->B3SOIFDIgidlStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDabeffNode != 0) && (here->B3SOIFDabeffNode != 0)) - { - while (here->B3SOIFDAbeffPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDAbeffPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDitunNode != 0) && (here-> B3SOIFDitunNode != 0)) + here->B3SOIFDItunPtr = here->B3SOIFDItunStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDvbs0effNode != 0) && (here->B3SOIFDvbs0effNode != 0)) - { - while (here->B3SOIFDVbs0effPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDVbs0effPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDibpNode != 0) && (here-> B3SOIFDibpNode != 0)) + here->B3SOIFDIbpPtr = here->B3SOIFDIbpStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDvbseffNode != 0) && (here->B3SOIFDvbseffNode != 0)) - { - while (here->B3SOIFDVbseffPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDVbseffPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDabeffNode != 0) && (here-> B3SOIFDabeffNode != 0)) + here->B3SOIFDAbeffPtr = here->B3SOIFDAbeffStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDxcNode != 0) && (here->B3SOIFDxcNode != 0)) - { - while (here->B3SOIFDXcPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDXcPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDvbs0effNode != 0) && (here-> B3SOIFDvbs0effNode != 0)) + here->B3SOIFDVbs0effPtr = here->B3SOIFDVbs0effStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDcbbNode != 0) && (here->B3SOIFDcbbNode != 0)) - { - while (here->B3SOIFDCbbPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDCbbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDvbseffNode != 0) && (here-> B3SOIFDvbseffNode != 0)) + here->B3SOIFDVbseffPtr = here->B3SOIFDVbseffStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDcbdNode != 0) && (here->B3SOIFDcbdNode != 0)) - { - while (here->B3SOIFDCbdPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDCbdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDxcNode != 0) && (here-> B3SOIFDxcNode != 0)) + here->B3SOIFDXcPtr = here->B3SOIFDXcStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDcbgNode != 0) && (here->B3SOIFDcbgNode != 0)) - { - while (here->B3SOIFDCbgPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDCbgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDcbbNode != 0) && (here-> B3SOIFDcbbNode != 0)) + here->B3SOIFDCbbPtr = here->B3SOIFDCbbStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqbNode != 0) && (here->B3SOIFDqbNode != 0)) - { - while (here->B3SOIFDqbPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDqbPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDcbdNode != 0) && (here-> B3SOIFDcbdNode != 0)) + here->B3SOIFDCbdPtr = here->B3SOIFDCbdStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqbfNode != 0) && (here->B3SOIFDqbfNode != 0)) - { - while (here->B3SOIFDQbfPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDQbfPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDcbgNode != 0) && (here-> B3SOIFDcbgNode != 0)) + here->B3SOIFDCbgPtr = here->B3SOIFDCbgStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqjsNode != 0) && (here->B3SOIFDqjsNode != 0)) - { - while (here->B3SOIFDQjsPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDQjsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDqbNode != 0) && (here-> B3SOIFDqbNode != 0)) + here->B3SOIFDqbPtr = here->B3SOIFDqbStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqjdNode != 0) && (here->B3SOIFDqjdNode != 0)) - { - while (here->B3SOIFDQjdPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDQjdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDqbfNode != 0) && (here-> B3SOIFDqbfNode != 0)) + here->B3SOIFDQbfPtr = here->B3SOIFDQbfStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgmNode != 0) && (here->B3SOIFDgmNode != 0)) - { - while (here->B3SOIFDGmPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGmPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDqjsNode != 0) && (here-> B3SOIFDqjsNode != 0)) + here->B3SOIFDQjsPtr = here->B3SOIFDQjsStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgmbsNode != 0) && (here->B3SOIFDgmbsNode != 0)) - { - while (here->B3SOIFDGmbsPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGmbsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDqjdNode != 0) && (here-> B3SOIFDqjdNode != 0)) + here->B3SOIFDQjdPtr = here->B3SOIFDQjdStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgdsNode != 0) && (here->B3SOIFDgdsNode != 0)) - { - while (here->B3SOIFDGdsPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGdsPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgmNode != 0) && (here-> B3SOIFDgmNode != 0)) + here->B3SOIFDGmPtr = here->B3SOIFDGmStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDgmeNode != 0) && (here->B3SOIFDgmeNode != 0)) - { - while (here->B3SOIFDGmePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDGmePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgmbsNode != 0) && (here-> B3SOIFDgmbsNode != 0)) + here->B3SOIFDGmbsPtr = here->B3SOIFDGmbsStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDvbs0teffNode != 0) && (here->B3SOIFDvbs0teffNode != 0)) - { - while (here->B3SOIFDVbs0teffPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDVbs0teffPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgdsNode != 0) && (here-> B3SOIFDgdsNode != 0)) + here->B3SOIFDGdsPtr = here->B3SOIFDGdsStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDvthNode != 0) && (here->B3SOIFDvthNode != 0)) - { - while (here->B3SOIFDVthPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDVthPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDgmeNode != 0) && (here-> B3SOIFDgmeNode != 0)) + here->B3SOIFDGmePtr = here->B3SOIFDGmeStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDvgsteffNode != 0) && (here->B3SOIFDvgsteffNode != 0)) - { - while (here->B3SOIFDVgsteffPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDVgsteffPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDvbs0teffNode != 0) && (here-> B3SOIFDvbs0teffNode != 0)) + here->B3SOIFDVbs0teffPtr = here->B3SOIFDVbs0teffStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDxcsatNode != 0) && (here->B3SOIFDxcsatNode != 0)) - { - while (here->B3SOIFDXcsatPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDXcsatPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDvthNode != 0) && (here-> B3SOIFDvthNode != 0)) + here->B3SOIFDVthPtr = here->B3SOIFDVthStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDvcscvNode != 0) && (here->B3SOIFDvcscvNode != 0)) - { - while (here->B3SOIFDVcscvPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDVcscvPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDvgsteffNode != 0) && (here-> B3SOIFDvgsteffNode != 0)) + here->B3SOIFDVgsteffPtr = here->B3SOIFDVgsteffStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDvdscvNode != 0) && (here->B3SOIFDvdscvNode != 0)) - { - while (here->B3SOIFDVdscvPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDVdscvPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDxcsatNode != 0) && (here-> B3SOIFDxcsatNode != 0)) + here->B3SOIFDXcsatPtr = here->B3SOIFDXcsatStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDcbeNode != 0) && (here->B3SOIFDcbeNode != 0)) - { - while (here->B3SOIFDCbePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDCbePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDvcscvNode != 0) && (here-> B3SOIFDvcscvNode != 0)) + here->B3SOIFDVcscvPtr = here->B3SOIFDVcscvStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdum1Node != 0) && (here->B3SOIFDdum1Node != 0)) - { - while (here->B3SOIFDDum1Ptr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDum1Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDvdscvNode != 0) && (here-> B3SOIFDvdscvNode != 0)) + here->B3SOIFDVdscvPtr = here->B3SOIFDVdscvStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdum2Node != 0) && (here->B3SOIFDdum2Node != 0)) - { - while (here->B3SOIFDDum2Ptr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDum2Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDcbeNode != 0) && (here-> B3SOIFDcbeNode != 0)) + here->B3SOIFDCbePtr = here->B3SOIFDCbeStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdum3Node != 0) && (here->B3SOIFDdum3Node != 0)) - { - while (here->B3SOIFDDum3Ptr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDum3Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdum1Node != 0) && (here-> B3SOIFDdum1Node != 0)) + here->B3SOIFDDum1Ptr = here->B3SOIFDDum1StructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdum4Node != 0) && (here->B3SOIFDdum4Node != 0)) - { - while (here->B3SOIFDDum4Ptr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDum4Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdum2Node != 0) && (here-> B3SOIFDdum2Node != 0)) + here->B3SOIFDDum2Ptr = here->B3SOIFDDum2StructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDdum5Node != 0) && (here->B3SOIFDdum5Node != 0)) - { - while (here->B3SOIFDDum5Ptr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDDum5Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdum3Node != 0) && (here-> B3SOIFDdum3Node != 0)) + here->B3SOIFDDum3Ptr = here->B3SOIFDDum3StructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqaccNode != 0) && (here->B3SOIFDqaccNode != 0)) - { - while (here->B3SOIFDQaccPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDQaccPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdum4Node != 0) && (here-> B3SOIFDdum4Node != 0)) + here->B3SOIFDDum4Ptr = here->B3SOIFDDum4StructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqsub0Node != 0) && (here->B3SOIFDqsub0Node != 0)) - { - while (here->B3SOIFDQsub0Ptr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDQsub0Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDdum5Node != 0) && (here-> B3SOIFDdum5Node != 0)) + here->B3SOIFDDum5Ptr = here->B3SOIFDDum5StructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqsubs1Node != 0) && (here->B3SOIFDqsubs1Node != 0)) - { - while (here->B3SOIFDQsubs1Ptr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDQsubs1Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDqaccNode != 0) && (here-> B3SOIFDqaccNode != 0)) + here->B3SOIFDQaccPtr = here->B3SOIFDQaccStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqsubs2Node != 0) && (here->B3SOIFDqsubs2Node != 0)) - { - while (here->B3SOIFDQsubs2Ptr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDQsubs2Ptr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDqsub0Node != 0) && (here-> B3SOIFDqsub0Node != 0)) + here->B3SOIFDQsub0Ptr = here->B3SOIFDQsub0StructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqeNode != 0) && (here->B3SOIFDqeNode != 0)) - { - while (here->B3SOIFDqePtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDqePtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDqsubs1Node != 0) && (here-> B3SOIFDqsubs1Node != 0)) + here->B3SOIFDQsubs1Ptr = here->B3SOIFDQsubs1StructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqdNode != 0) && (here->B3SOIFDqdNode != 0)) - { - while (here->B3SOIFDqdPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDqdPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; - } + if ((here-> B3SOIFDqsubs2Node != 0) && (here-> B3SOIFDqsubs2Node != 0)) + here->B3SOIFDQsubs2Ptr = here->B3SOIFDQsubs2StructPtr->CSC ; + + if ((here-> B3SOIFDqeNode != 0) && (here-> B3SOIFDqeNode != 0)) + here->B3SOIFDqePtr = here->B3SOIFDqeStructPtr->CSC ; + + if ((here-> B3SOIFDqdNode != 0) && (here-> B3SOIFDqdNode != 0)) + here->B3SOIFDqdPtr = here->B3SOIFDqdStructPtr->CSC ; + + if ((here-> B3SOIFDqgNode != 0) && (here-> B3SOIFDqgNode != 0)) + here->B3SOIFDqgPtr = here->B3SOIFDqgStructPtr->CSC ; - i = 0 ; - if ((here->B3SOIFDqgNode != 0) && (here->B3SOIFDqgNode != 0)) - { - while (here->B3SOIFDqgPtr != ckt->CKTmatrix->CKTbind_CSC_Complex [i]) i ++ ; - here->B3SOIFDqgPtr = ckt->CKTmatrix->CKTbind_CSC [i] ; } } } return (OK) ; -} \ No newline at end of file +} diff --git a/src/spicelib/devices/bsim3soi_fd/b3soifddef.h b/src/spicelib/devices/bsim3soi_fd/b3soifddef.h index 16e55c84a..2452ae91c 100644 --- a/src/spicelib/devices/bsim3soi_fd/b3soifddef.h +++ b/src/spicelib/devices/bsim3soi_fd/b3soifddef.h @@ -414,6 +414,94 @@ typedef struct sB3SOIFDinstance double **B3SOIFDnVar; #endif /* NONOISE */ +#ifdef KLU + BindElement *B3SOIFDTemptempStructPtr ; + BindElement *B3SOIFDTempdpStructPtr ; + BindElement *B3SOIFDTempspStructPtr ; + BindElement *B3SOIFDTempgStructPtr ; + BindElement *B3SOIFDTempbStructPtr ; + BindElement *B3SOIFDTempeStructPtr ; + BindElement *B3SOIFDGtempStructPtr ; + BindElement *B3SOIFDDPtempStructPtr ; + BindElement *B3SOIFDSPtempStructPtr ; + BindElement *B3SOIFDEtempStructPtr ; + BindElement *B3SOIFDBtempStructPtr ; + BindElement *B3SOIFDPtempStructPtr ; + BindElement *B3SOIFDBpStructPtr ; + BindElement *B3SOIFDPbStructPtr ; + BindElement *B3SOIFDPpStructPtr ; + BindElement *B3SOIFDPgStructPtr ; + BindElement *B3SOIFDPdpStructPtr ; + BindElement *B3SOIFDPspStructPtr ; + BindElement *B3SOIFDPeStructPtr ; + BindElement *B3SOIFDEgStructPtr ; + BindElement *B3SOIFDEdpStructPtr ; + BindElement *B3SOIFDEspStructPtr ; + BindElement *B3SOIFDGeStructPtr ; + BindElement *B3SOIFDDPeStructPtr ; + BindElement *B3SOIFDSPeStructPtr ; + BindElement *B3SOIFDEbStructPtr ; + BindElement *B3SOIFDEeStructPtr ; + BindElement *B3SOIFDGgStructPtr ; + BindElement *B3SOIFDGdpStructPtr ; + BindElement *B3SOIFDGspStructPtr ; + BindElement *B3SOIFDDPgStructPtr ; + BindElement *B3SOIFDDPdpStructPtr ; + BindElement *B3SOIFDDPspStructPtr ; + BindElement *B3SOIFDDPdStructPtr ; + BindElement *B3SOIFDSPgStructPtr ; + BindElement *B3SOIFDSPdpStructPtr ; + BindElement *B3SOIFDSPspStructPtr ; + BindElement *B3SOIFDSPsStructPtr ; + BindElement *B3SOIFDDdStructPtr ; + BindElement *B3SOIFDDdpStructPtr ; + BindElement *B3SOIFDSsStructPtr ; + BindElement *B3SOIFDSspStructPtr ; + BindElement *B3SOIFDVbsStructPtr ; + BindElement *B3SOIFDIdsStructPtr ; + BindElement *B3SOIFDIcStructPtr ; + BindElement *B3SOIFDIbsStructPtr ; + BindElement *B3SOIFDIbdStructPtr ; + BindElement *B3SOIFDIiiStructPtr ; + BindElement *B3SOIFDIgidlStructPtr ; + BindElement *B3SOIFDItunStructPtr ; + BindElement *B3SOIFDIbpStructPtr ; + BindElement *B3SOIFDAbeffStructPtr ; + BindElement *B3SOIFDVbs0effStructPtr ; + BindElement *B3SOIFDVbseffStructPtr ; + BindElement *B3SOIFDXcStructPtr ; + BindElement *B3SOIFDCbbStructPtr ; + BindElement *B3SOIFDCbdStructPtr ; + BindElement *B3SOIFDCbgStructPtr ; + BindElement *B3SOIFDqbStructPtr ; + BindElement *B3SOIFDQbfStructPtr ; + BindElement *B3SOIFDQjsStructPtr ; + BindElement *B3SOIFDQjdStructPtr ; + BindElement *B3SOIFDGmStructPtr ; + BindElement *B3SOIFDGmbsStructPtr ; + BindElement *B3SOIFDGdsStructPtr ; + BindElement *B3SOIFDGmeStructPtr ; + BindElement *B3SOIFDVbs0teffStructPtr ; + BindElement *B3SOIFDVthStructPtr ; + BindElement *B3SOIFDVgsteffStructPtr ; + BindElement *B3SOIFDXcsatStructPtr ; + BindElement *B3SOIFDVcscvStructPtr ; + BindElement *B3SOIFDVdscvStructPtr ; + BindElement *B3SOIFDCbeStructPtr ; + BindElement *B3SOIFDDum1StructPtr ; + BindElement *B3SOIFDDum2StructPtr ; + BindElement *B3SOIFDDum3StructPtr ; + BindElement *B3SOIFDDum4StructPtr ; + BindElement *B3SOIFDDum5StructPtr ; + BindElement *B3SOIFDQaccStructPtr ; + BindElement *B3SOIFDQsub0StructPtr ; + BindElement *B3SOIFDQsubs1StructPtr ; + BindElement *B3SOIFDQsubs2StructPtr ; + BindElement *B3SOIFDqeStructPtr ; + BindElement *B3SOIFDqdStructPtr ; + BindElement *B3SOIFDqgStructPtr ; +#endif + } B3SOIFDinstance ; struct b3soifdSizeDependParam