From f8f4e328752e3fbfa3181718be7b5066e3e3c91b Mon Sep 17 00:00:00 2001 From: rlar Date: Sun, 11 Dec 2011 11:34:38 +0000 Subject: [PATCH] auxiliary define (ANALYSIS*) ckt->CKTcurJob --> `job' --- ChangeLog | 4 ++ src/spicelib/analysis/acan.c | 69 ++++++++++--------- src/spicelib/analysis/cktnoise.c | 4 +- src/spicelib/analysis/cktpzstr.c | 8 ++- src/spicelib/analysis/dcpss.c | 22 +++--- src/spicelib/analysis/dctran.c | 14 ++-- src/spicelib/analysis/tfanal.c | 62 +++++++++-------- src/spicelib/devices/bjt/bjtnoise.c | 10 +-- src/spicelib/devices/bsim1/b1noi.c | 10 +-- src/spicelib/devices/bsim2/b2noi.c | 10 +-- src/spicelib/devices/bsim3/b3noi.c | 11 +-- src/spicelib/devices/bsim3soi/b4soinoi.c | 11 +-- src/spicelib/devices/bsim3soi_dd/b3soiddnoi.c | 11 +-- src/spicelib/devices/bsim3soi_fd/b3soifdnoi.c | 11 +-- src/spicelib/devices/bsim3soi_pd/b3soipdnoi.c | 11 +-- src/spicelib/devices/bsim3v0/b3v0noi.c | 11 +-- src/spicelib/devices/bsim3v1/b3v1noi.c | 11 +-- src/spicelib/devices/bsim3v32/b3v32noi.c | 11 +-- src/spicelib/devices/bsim4/b4noi.c | 11 +-- src/spicelib/devices/bsim4v4/b4v4noi.c | 11 +-- src/spicelib/devices/bsim4v5/b4v5noi.c | 11 +-- src/spicelib/devices/bsim4v6/b4v6noi.c | 11 +-- src/spicelib/devices/csw/cswnoise.c | 8 ++- src/spicelib/devices/dio/dionoise.c | 10 +-- src/spicelib/devices/hisim2/hsm2noi.c | 10 +-- src/spicelib/devices/hisimhv/hsmhvnoi.c | 10 +-- src/spicelib/devices/jfet/jfetnoi.c | 10 +-- src/spicelib/devices/jfet2/jfet2noi.c | 10 +-- src/spicelib/devices/mes/mesnoise.c | 10 +-- src/spicelib/devices/mos1/mos1noi.c | 10 +-- src/spicelib/devices/mos2/mos2noi.c | 10 +-- src/spicelib/devices/mos3/mos3noi.c | 10 +-- src/spicelib/devices/mos9/mos9noi.c | 10 +-- src/spicelib/devices/res/resnoise.c | 10 +-- src/spicelib/devices/soi3/soi3nois.c | 10 +-- src/spicelib/devices/sw/swnoise.c | 8 ++- src/spicelib/devices/vbic/vbicnoise.c | 10 +-- 37 files changed, 277 insertions(+), 214 deletions(-) diff --git a/ChangeLog b/ChangeLog index 89e5b66e8..671eb6334 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-12-11 Robert Larice + * src/spicelib/**/*.c : + auxiliary define (ANALYSIS*) ckt->CKTcurJob --> `job' + 2011-12-11 Robert Larice * src/spicelib/analysis/cktdisto.c , * src/spicelib/analysis/cktpzld.c , diff --git a/src/spicelib/analysis/acan.c b/src/spicelib/analysis/acan.c index 81842a586..6f8905a22 100644 --- a/src/spicelib/analysis/acan.c +++ b/src/spicelib/analysis/acan.c @@ -25,6 +25,7 @@ void SetAnalyse( char * Analyse, int Percent); int ACan(CKTcircuit *ckt, int restart) { + #define job ((ACAN *) ckt->CKTcurJob) double freq; double freqTol; /* tolerence parameter for finding final frequency */ @@ -56,31 +57,31 @@ ACan(CKTcircuit *ckt, int restart) #endif /* start at beginning */ - if(((ACAN*)ckt->CKTcurJob)->ACsaveFreq == 0 || restart) { - if (((ACAN*)ckt->CKTcurJob)->ACnumberSteps < 1) - ((ACAN*)ckt->CKTcurJob)->ACnumberSteps = 1; + if (job->ACsaveFreq == 0 || restart) { + if (job->ACnumberSteps < 1) + job->ACnumberSteps = 1; - switch(((ACAN*)ckt->CKTcurJob)->ACstepType) { + switch (job->ACstepType) { case DECADE: - ((ACAN*)ckt->CKTcurJob)->ACfreqDelta = - exp(log(10.0)/((ACAN*)ckt->CKTcurJob)->ACnumberSteps); + job->ACfreqDelta = + exp(log(10.0)/job->ACnumberSteps); break; case OCTAVE: - ((ACAN*)ckt->CKTcurJob)->ACfreqDelta = - exp(log(2.0)/((ACAN*)ckt->CKTcurJob)->ACnumberSteps); + job->ACfreqDelta = + exp(log(2.0)/job->ACnumberSteps); break; case LINEAR: - if (((ACAN*)ckt->CKTcurJob)->ACnumberSteps-1 > 1) - ((ACAN*)ckt->CKTcurJob)->ACfreqDelta = - (((ACAN*)ckt->CKTcurJob)->ACstopFreq - - ((ACAN*)ckt->CKTcurJob)->ACstartFreq)/ - (((ACAN*)ckt->CKTcurJob)->ACnumberSteps-1); + if (job->ACnumberSteps-1 > 1) + job->ACfreqDelta = + (job->ACstopFreq - + job->ACstartFreq) / + (job->ACnumberSteps - 1); else /* Patch from: Richard McRoberts * This patch is for a rather pathological case: * a linear step with only one point */ - ((ACAN*)ckt->CKTcurJob)->ACfreqDelta = 0; + job->ACfreqDelta = 0; break; default: return(E_BADPARM); @@ -170,29 +171,29 @@ ACan(CKTcircuit *ckt, int restart) tfree(nameList); if(error) return(error); - if (((ACAN*)ckt->CKTcurJob)->ACstepType != LINEAR) { + if (job->ACstepType != LINEAR) { SPfrontEnd->OUTattributes (acPlot, NULL, OUT_SCALE_LOG, NULL); } - freq = ((ACAN*)ckt->CKTcurJob)->ACstartFreq; + freq = job->ACstartFreq; } else { /* continue previous analysis */ - freq = ((ACAN*)ckt->CKTcurJob)->ACsaveFreq; - ((ACAN*)ckt->CKTcurJob)->ACsaveFreq = 0; /* clear the 'old' frequency */ + freq = job->ACsaveFreq; + job->ACsaveFreq = 0; /* clear the 'old' frequency */ /* fix resume? saj, indeed !*/ error = SPfrontEnd->OUTpBeginPlot (NULL, NULL, NULL, NULL, 0, 666, NULL, 666, &acPlot); /* saj*/ } - switch(((ACAN*)ckt->CKTcurJob)->ACstepType) { + switch (job->ACstepType) { case DECADE: case OCTAVE: - freqTol = ((ACAN*)ckt->CKTcurJob)->ACfreqDelta * - ((ACAN*)ckt->CKTcurJob)->ACstopFreq * ckt->CKTreltol; + freqTol = job->ACfreqDelta * + job->ACstopFreq * ckt->CKTreltol; break; case LINEAR: - freqTol = ((ACAN*)ckt->CKTcurJob)->ACfreqDelta * ckt->CKTreltol; + freqTol = job->ACfreqDelta * ckt->CKTreltol; break; default: return(E_BADPARM); @@ -219,10 +220,10 @@ ACan(CKTcircuit *ckt, int restart) startkTime = ckt->CKTstat->STATsyncTime; /* main loop through all scheduled frequencies */ - while(freq <= ((ACAN*)ckt->CKTcurJob)->ACstopFreq+freqTol) { + while (freq <= job->ACstopFreq + freqTol) { if(SPfrontEnd->IFpauseTest()) { /* user asked us to pause via an interrupt */ - ((ACAN*)ckt->CKTcurJob)->ACsaveFreq = freq; + job->ACsaveFreq = freq; return(E_PAUSE); } ckt->CKTomega = 2.0 * M_PI *freq; @@ -284,7 +285,7 @@ ACan(CKTcircuit *ckt, int restart) ckt->CKTmode=(ckt->CKTmode&MODEUIC)|MODEDCOP|MODEINITSMSIG; save1 = ckt->CKTsenInfo->SENmode; ckt->CKTsenInfo->SENmode = ACSEN; - if(freq == ((ACAN*)ckt->CKTcurJob)->ACstartFreq){ + if (freq == job->ACstartFreq) { ckt->CKTsenInfo->SENacpertflag = 1; } else{ @@ -329,15 +330,15 @@ ACan(CKTcircuit *ckt, int restart) /* increment frequency */ - switch(((ACAN*)ckt->CKTcurJob)->ACstepType) { + switch (job->ACstepType) { case DECADE: case OCTAVE: /* inserted again 14.12.2001 */ #ifdef HAS_WINDOWS { - double endfreq = ((ACAN*)ckt->CKTcurJob)->ACstopFreq; - double startfreq = ((ACAN*)ckt->CKTcurJob)->ACstartFreq; + double endfreq = job->ACstopFreq; + double startfreq = job->ACstartFreq; endfreq = log(endfreq); if (startfreq == 0.0) startfreq = 1e-12; @@ -348,21 +349,21 @@ ACan(CKTcircuit *ckt, int restart) } #endif - freq *= ((ACAN*)ckt->CKTcurJob)->ACfreqDelta; - if(((ACAN*)ckt->CKTcurJob)->ACfreqDelta==1) goto endsweep; + freq *= job->ACfreqDelta; + if (job->ACfreqDelta == 1) goto endsweep; break; case LINEAR: #ifdef HAS_WINDOWS { - double endfreq = ((ACAN*)ckt->CKTcurJob)->ACstopFreq; - double startfreq = ((ACAN*)ckt->CKTcurJob)->ACstartFreq; + double endfreq = job->ACstopFreq; + double startfreq = job->ACstartFreq; SetAnalyse( "ac", (int)((freq - startfreq)* 1000.0 / (endfreq-startfreq))); } #endif - freq += ((ACAN*)ckt->CKTcurJob)->ACfreqDelta; - if(((ACAN*)ckt->CKTcurJob)->ACfreqDelta==0) goto endsweep; + freq += job->ACfreqDelta; + if (job->ACfreqDelta == 0) goto endsweep; break; default: return(E_INTERN); diff --git a/src/spicelib/analysis/cktnoise.c b/src/spicelib/analysis/cktnoise.c index 142da6c55..0c2c8f320 100644 --- a/src/spicelib/analysis/cktnoise.c +++ b/src/spicelib/analysis/cktnoise.c @@ -23,6 +23,8 @@ Author: 1987 Gary W. Ng int CKTnoise (CKTcircuit *ckt, int mode, int operation, Ndata *data) { + #define job ((NOISEAN*)ckt->CKTcurJob) + double outNdens; int i; IFvalue outData; /* output variable (points to list of outputs)*/ @@ -93,7 +95,7 @@ CKTnoise (CKTcircuit *ckt, int mode, int operation, Ndata *data) switch (mode) { case N_DENS: - if ((((NOISEAN*)ckt->CKTcurJob)->NStpsSm == 0) + if ((job->NStpsSm == 0) || data->prtSummary) { data->outpVector[data->outNumber++] = outNdens; diff --git a/src/spicelib/analysis/cktpzstr.c b/src/spicelib/analysis/cktpzstr.c index c3eec61d3..265b79cb7 100644 --- a/src/spicelib/analysis/cktpzstr.c +++ b/src/spicelib/analysis/cktpzstr.c @@ -518,6 +518,8 @@ int CKTpzStrat(PZtrial **set) int CKTpzRunTrial(CKTcircuit *ckt, PZtrial **new_trialp, PZtrial **set) { + #define job ((PZAN *) ckt->CKTcurJob) + PZtrial *match, *base, *new_trial; PZtrial *p, *prev; SPcomplex def_frac, diff_frac; @@ -688,7 +690,7 @@ CKTpzRunTrial(CKTcircuit *ckt, PZtrial **new_trialp, PZtrial **set) CKTpzLoad(ckt, &new_trial->s); error = SMPcReorder(ckt->CKTmatrix, 1.0e-30, 0.0 /* 0.1 Piv. Rel. */, - &(((PZAN *) ckt->CKTcurJob)->PZnumswaps)); + &(job->PZnumswaps)); } if (error != E_SINGULAR) { @@ -719,8 +721,8 @@ CKTpzRunTrial(CKTcircuit *ckt, PZtrial **new_trialp, PZtrial **set) else { /* PZnumswaps is either 0 or 1 */ - new_trial->f_raw.real *= ((PZAN *) ckt->CKTcurJob)->PZnumswaps; - new_trial->f_raw.imag *= ((PZAN *) ckt->CKTcurJob)->PZnumswaps; + new_trial->f_raw.real *= job->PZnumswaps; + new_trial->f_raw.imag *= job->PZnumswaps; #ifdef PZDEBUG printf("SMP Det: (%g,%g)^%d\n", new_trial->f_raw.real, diff --git a/src/spicelib/analysis/dcpss.c b/src/spicelib/analysis/dcpss.c index cf11b5d06..d20b82708 100755 --- a/src/spicelib/analysis/dcpss.c +++ b/src/spicelib/analysis/dcpss.c @@ -51,6 +51,8 @@ CKTfour(int, int, double *, double *, double *, double, double *, double *, doub int DCpss(CKTcircuit *ckt, int restart) { + #define job ((PSSan *) ckt->CKTcurJob) + int oscnNode; int i; double olddelta; @@ -113,7 +115,7 @@ DCpss(CKTcircuit *ckt, int restart) printf("Periodic Steady State analysis started.\n"); - oscnNode = ((PSSan*)ckt->CKTcurJob)->PSSoscNode->number; + oscnNode = job->PSSoscNode->number; printf("PSS guessed frequency %g.\n", ckt->CKTguessedFreq); printf("PSS points %ld.\n", ckt->CKTpsspoints); printf("PSS harmonics number %d.\n", ckt->CKTharms); @@ -184,7 +186,7 @@ DCpss(CKTcircuit *ckt, int restart) error = SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob, "Time Domain Periodic Steady State",timeUid,IF_REAL,numNames,nameList, - IF_REAL,&(((PSSan*)ckt->CKTcurJob)->PSSplot_td)); + IF_REAL, &(job->PSSplot_td)); tfree(nameList); if(error) return(error); @@ -249,7 +251,7 @@ DCpss(CKTcircuit *ckt, int restart) /* Send the operating point results for Mspice compatibility */ if(g_ipc.enabled) { ipc_send_dcop_prefix(); - CKTdump(ckt, 0.0, ((PSSan*)ckt->CKTcurJob)->PSSplot_td); + CKTdump(ckt, 0.0, job->PSSplot_td); ipc_send_dcop_suffix(); } @@ -341,7 +343,7 @@ DCpss(CKTcircuit *ckt, int restart) /* To get rawfile working saj*/ error = SPfrontEnd->OUTpBeginPlot (NULL, NULL, NULL, NULL, 0, 666, NULL, 666, - &(((PSSan*)ckt->CKTcurJob)->PSSplot_td)); + &(job->PSSplot_td)); if(error) { fprintf(stderr, "Couldn't relink rawfile\n"); return error; @@ -450,7 +452,7 @@ nextTime: ipc_firsttime || ipc_secondtime || ipc_delta_cut ) { ipc_send_data_prefix(ckt->CKTtime); - CKTdump(ckt, ckt->CKTtime, ((PSSan*)ckt->CKTcurJob)->PSSplot_td); + CKTdump(ckt, ckt->CKTtime, job->PSSplot_td); ipc_send_data_suffix(); if(ipc_firsttime) { @@ -472,7 +474,7 @@ nextTime: #endif if ( in_pss && pss_cycle_counter==1 ) { if(ckt->CKTtime >= ckt->CKTinitTime) - CKTdump(ckt, ckt->CKTtime, ((PSSan*)ckt->CKTcurJob)->PSSplot_td); + CKTdump(ckt, ckt->CKTtime, job->PSSplot_td); psstimes[pss_points_cycle] = ckt->CKTtime; for(count_1=1; count_1CKTrhsOld[count_1]; @@ -775,7 +777,7 @@ nextTime: pss_cycle_counter++; if (pss_cycle_counter>1) { /* End plot in time domain */ - SPfrontEnd->OUTendPlot (((PSSan*)ckt->CKTcurJob)->PSSplot_td); + SPfrontEnd->OUTendPlot (job->PSSplot_td); /* The following line must be placed just before a new OUTpBeginPlot is called */ error = CKTnames(ckt,&numNames,&nameList); if (error) return (error); @@ -784,7 +786,7 @@ nextTime: error = SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob, "Frequency Domain Periodic Steady State",freqUid,IF_REAL,numNames,nameList, - IF_REAL,&(((PSSan*)ckt->CKTcurJob)->PSSplot_fd)); + IF_REAL, &(job->PSSplot_fd)); tfree(nameList); /* ************************* */ /* Fourier transform on data */ @@ -804,10 +806,10 @@ nextTime: for(i4 = 1; i4 <= msize; i4++) { ckt->CKTrhsOld[i4] =pssResults[(k1-1)+(i4-1)*msize] ; } - CKTdump(ckt, pssfreqs[k1-1], ((PSSan*)ckt->CKTcurJob)->PSSplot_fd); + CKTdump(ckt, pssfreqs[k1-1], job->PSSplot_fd); } /* End plot in freq domain */ - SPfrontEnd->OUTendPlot (((PSSan*)ckt->CKTcurJob)->PSSplot_fd); + SPfrontEnd->OUTendPlot (job->PSSplot_fd); FREE(RHS_copy_se); FREE(RHS_max); FREE(RHS_min); diff --git a/src/spicelib/analysis/dctran.c b/src/spicelib/analysis/dctran.c index ba6722b16..f0de2c32e 100644 --- a/src/spicelib/analysis/dctran.c +++ b/src/spicelib/analysis/dctran.c @@ -47,6 +47,8 @@ int DCtran(CKTcircuit *ckt, int restart) /* forced restart flag */ { + #define job ((TRANan *) ckt->CKTcurJob) + int i; double olddelta; double delta; @@ -148,7 +150,7 @@ DCtran(CKTcircuit *ckt, error = SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob, ckt->CKTcurJob->JOBname,timeUid,IF_REAL,numNames,nameList, - IF_REAL,&(((TRANan*)ckt->CKTcurJob)->TRANplot)); + IF_REAL, &(job->TRANplot)); tfree(nameList); if(error) return(error); @@ -257,7 +259,7 @@ DCtran(CKTcircuit *ckt, /* Send the operating point results for Mspice compatibility */ if(g_ipc.enabled) { ipc_send_dcop_prefix(); - CKTdump(ckt, 0.0, ((TRANan*)ckt->CKTcurJob)->TRANplot); + CKTdump(ckt, 0.0, job->TRANplot); ipc_send_dcop_suffix(); } @@ -349,7 +351,7 @@ DCtran(CKTcircuit *ckt, /* To get rawfile working saj*/ error = SPfrontEnd->OUTpBeginPlot (NULL, NULL, NULL, NULL, 0, 666, NULL, 666, - &(((TRANan*)ckt->CKTcurJob)->TRANplot)); + &(job->TRANplot)); if(error) { fprintf(stderr, "Couldn't relink rawfile\n"); return error; @@ -447,7 +449,7 @@ DCtran(CKTcircuit *ckt, ipc_firsttime || ipc_secondtime || ipc_delta_cut ) { ipc_send_data_prefix(ckt->CKTtime); - CKTdump(ckt, ckt->CKTtime, ((TRANan*)ckt->CKTcurJob)->TRANplot); + CKTdump(ckt, ckt->CKTtime, job->TRANplot); ipc_send_data_suffix(); if(ipc_firsttime) { @@ -466,7 +468,7 @@ DCtran(CKTcircuit *ckt, CLUoutput(ckt); #endif if(ckt->CKTtime >= ckt->CKTinitTime) - CKTdump(ckt, ckt->CKTtime, ((TRANan*)ckt->CKTcurJob)->TRANplot); + CKTdump(ckt, ckt->CKTtime, job->TRANplot); #ifdef XSPICE /* gtri - begin - wbk - Update event queues/data for accepted timepoint */ /* Note: this must be done AFTER sending results to SI so it can't */ @@ -483,7 +485,7 @@ DCtran(CKTcircuit *ckt, printf(" done: time is %g, final time is %g, and tol is %g\n", ckt->CKTtime, ckt->CKTfinalTime, ckt->CKTminBreak); #endif - SPfrontEnd->OUTendPlot (((TRANan*)ckt->CKTcurJob)->TRANplot); + SPfrontEnd->OUTendPlot (job->TRANplot); ckt->CKTcurrentAnalysis = 0; ckt->CKTstat->STATtranTime += SPfrontEnd->IFseconds() - startTime; ckt->CKTstat->STATtranIter += ckt->CKTstat->STATnumIter - startIters; diff --git a/src/spicelib/analysis/tfanal.c b/src/spicelib/analysis/tfanal.c index 90f9f51e3..cfa07018a 100644 --- a/src/spicelib/analysis/tfanal.c +++ b/src/spicelib/analysis/tfanal.c @@ -19,6 +19,8 @@ TFanal(CKTcircuit *ckt, int restart) /* forced restart flag */ { + #define job ((TFan *) ckt->CKTcurJob) + int size; int insrc = 0, outsrc = 0; double outputs[3]; @@ -50,10 +52,10 @@ TFanal(CKTcircuit *ckt, int restart) Vtype = CKTtypelook("Vsource"); if(Itype != -1) { error = CKTfndDev(ckt,&Itype,&ptr, - ((TFan*)ckt->CKTcurJob)->TFinSrc, NULL, NULL); + job->TFinSrc, NULL, NULL); if(error ==0) { - ((TFan*)ckt->CKTcurJob)->TFinIsI = 1; - ((TFan*)ckt->CKTcurJob)->TFinIsV = 0; + job->TFinIsI = 1; + job->TFinIsV = 0; } else { ptr = NULL; } @@ -61,15 +63,15 @@ TFanal(CKTcircuit *ckt, int restart) if( (Vtype != -1) && (ptr==NULL) ) { error = CKTfndDev(ckt,&Vtype,&ptr, - ((TFan*)ckt->CKTcurJob)->TFinSrc, NULL, + job->TFinSrc, NULL, NULL); - ((TFan*)ckt->CKTcurJob)->TFinIsV = 1; - ((TFan*)ckt->CKTcurJob)->TFinIsI = 0; + job->TFinIsV = 1; + job->TFinIsI = 0; if(error !=0) { SPfrontEnd->IFerror (ERR_WARNING, "Transfer function source %s not in circuit", - &(((TFan*)ckt->CKTcurJob)->TFinSrc)); - ((TFan*)ckt->CKTcurJob)->TFinIsV = 0; + &(job->TFinSrc)); + job->TFinIsV = 0; return(E_NOTFOUND); } } @@ -79,11 +81,11 @@ TFanal(CKTcircuit *ckt, int restart) ckt->CKTrhs[i] = 0; } - if(((TFan*)ckt->CKTcurJob)->TFinIsI) { + if (job->TFinIsI) { ckt->CKTrhs[ptr->GENnode1] -= 1; ckt->CKTrhs[ptr->GENnode2] += 1; } else { - insrc = CKTfndBranch(ckt,((TFan*)ckt->CKTcurJob)->TFinSrc); + insrc = CKTfndBranch(ckt, job->TFinSrc); ckt->CKTrhs[insrc] += 1; } @@ -96,37 +98,37 @@ TFanal(CKTcircuit *ckt, int restart) UID_OTHER, NULL); /* make a UID for the input impedance */ - SPfrontEnd->IFnewUid (ckt, &inuid, ((TFan*)ckt->CKTcurJob)->TFinSrc, + SPfrontEnd->IFnewUid (ckt, &inuid, job->TFinSrc, "Input_impedance", UID_OTHER, NULL); /* make a UID for the output impedance */ - if(((TFan*)ckt->CKTcurJob)->TFoutIsI) { - SPfrontEnd->IFnewUid (ckt, &outuid, ((TFan*)ckt->CKTcurJob)->TFoutSrc + if (job->TFoutIsI) { + SPfrontEnd->IFnewUid (ckt, &outuid, job->TFoutSrc ,"Output_impedance", UID_OTHER, NULL); } else { - name = TMALLOC(char, strlen(((TFan*)ckt->CKTcurJob)->TFoutName) + 22); + name = TMALLOC(char, strlen(job->TFoutName) + 22); (void)sprintf(name,"output_impedance_at_%s", - ((TFan*)ckt->CKTcurJob)->TFoutName); + job->TFoutName); SPfrontEnd->IFnewUid (ckt, &outuid, NULL, name, UID_OTHER, NULL); } error = SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob, - ((TFan*)(ckt->CKTcurJob))->JOBname, NULL, 0, 3, + job->JOBname, NULL, 0, 3, uids,IF_REAL,&plotptr); if(error) return(error); /*find transfer function */ - if(((TFan*)ckt->CKTcurJob)->TFoutIsV) { - outputs[0] = ckt->CKTrhs[((TFan*)ckt->CKTcurJob)->TFoutPos->number] - - ckt->CKTrhs[((TFan*)ckt->CKTcurJob)->TFoutNeg->number] ; + if (job->TFoutIsV) { + outputs[0] = ckt->CKTrhs[job->TFoutPos->number] - + ckt->CKTrhs[job->TFoutNeg->number]; } else { - outsrc = CKTfndBranch(ckt,((TFan*)ckt->CKTcurJob)->TFoutSrc); + outsrc = CKTfndBranch(ckt, job->TFoutSrc); outputs[0] = ckt->CKTrhs[outsrc]; } /* now for input resistance */ - if(((TFan*)ckt->CKTcurJob)->TFinIsI) { + if (job->TFinIsI) { outputs[1] = ckt->CKTrhs[ptr->GENnode2] - ckt->CKTrhs[ptr->GENnode1]; } else { @@ -137,9 +139,9 @@ TFanal(CKTcircuit *ckt, int restart) } } - if(((TFan*)ckt->CKTcurJob)->TFoutIsI && - (((TFan*)ckt->CKTcurJob)->TFoutSrc == - ((TFan*)ckt->CKTcurJob)->TFinSrc)) { + if (job->TFoutIsI && + (job->TFoutSrc == + job->TFinSrc)) { outputs[2]=outputs[1]; goto done; /* no need to compute output resistance when it is the same as @@ -149,17 +151,17 @@ TFanal(CKTcircuit *ckt, int restart) for(i=0;i<=size;i++) { ckt->CKTrhs[i] = 0; } - if(((TFan*)ckt->CKTcurJob)->TFoutIsV) { - ckt->CKTrhs[((TFan*)ckt->CKTcurJob)->TFoutPos->number] -= 1; - ckt->CKTrhs[((TFan*)ckt->CKTcurJob)->TFoutNeg->number] += 1; + if (job->TFoutIsV) { + ckt->CKTrhs[job->TFoutPos->number] -= 1; + ckt->CKTrhs[job->TFoutNeg->number] += 1; } else { ckt->CKTrhs[outsrc] += 1; } SMPsolve(ckt->CKTmatrix,ckt->CKTrhs,ckt->CKTrhsSpare); ckt->CKTrhs[0]=0; - if(((TFan*)ckt->CKTcurJob)->TFoutIsV) { - outputs[2]= ckt->CKTrhs[((TFan*)ckt->CKTcurJob)->TFoutNeg->number] - - ckt->CKTrhs[((TFan*)ckt->CKTcurJob)->TFoutPos->number]; + if (job->TFoutIsV) { + outputs[2] = ckt->CKTrhs[job->TFoutNeg->number] - + ckt->CKTrhs[job->TFoutPos->number]; } else { outputs[2] = 1/MAX(1e-20,ckt->CKTrhs[outsrc]); } diff --git a/src/spicelib/devices/bjt/bjtnoise.c b/src/spicelib/devices/bjt/bjtnoise.c index 9611a05ac..044d62381 100644 --- a/src/spicelib/devices/bjt/bjtnoise.c +++ b/src/spicelib/devices/bjt/bjtnoise.c @@ -25,6 +25,8 @@ int BJTnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + BJTmodel *firstModel = (BJTmodel *) genmodel; BJTmodel *model; BJTinstance *inst; @@ -61,7 +63,7 @@ for (model=firstModel; model != NULL; model=model->BJTnextModel) { /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -162,7 +164,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < BJTNSRCS; i++) { inst->BJTnVar[OUTNOIZ][i] = 0.0; inst->BJTnVar[INNOIZ][i] = 0.0; @@ -183,7 +185,7 @@ if (!data->namelist) return(E_NOMEM); inst->BJTnVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->BJTnVar[OUTNOIZ][i] += tempOnoise; inst->BJTnVar[OUTNOIZ][BJTTOTNOIZ] += tempOnoise; inst->BJTnVar[INNOIZ][i] += tempInoise; @@ -200,7 +202,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < BJTNSRCS; i++) { data->outpVector[data->outNumber++] = inst->BJTnVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->BJTnVar[INNOIZ][i]; diff --git a/src/spicelib/devices/bsim1/b1noi.c b/src/spicelib/devices/bsim1/b1noi.c index 2d04a14e0..93666f7f2 100644 --- a/src/spicelib/devices/bsim1/b1noi.c +++ b/src/spicelib/devices/bsim1/b1noi.c @@ -24,6 +24,8 @@ int B1noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + B1model *firstModel = (B1model *) genmodel; B1model *model; B1instance *inst; @@ -55,7 +57,7 @@ B1noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -154,7 +156,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < B1NSRCS; i++) { inst->B1nVar[OUTNOIZ][i] = 0.0; inst->B1nVar[INNOIZ][i] = 0.0; @@ -172,7 +174,7 @@ if (!data->namelist) return(E_NOMEM); inst->B1nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->B1nVar[OUTNOIZ][i] += tempOnoise; inst->B1nVar[OUTNOIZ][B1TOTNOIZ] += tempOnoise; inst->B1nVar[INNOIZ][i] += tempInoise; @@ -189,7 +191,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < B1NSRCS; i++) { data->outpVector[data->outNumber++] = inst->B1nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->B1nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/bsim2/b2noi.c b/src/spicelib/devices/bsim2/b2noi.c index d29dec0da..5818dfdaa 100644 --- a/src/spicelib/devices/bsim2/b2noi.c +++ b/src/spicelib/devices/bsim2/b2noi.c @@ -24,6 +24,8 @@ int B2noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + B2model *firstModel = (B2model *) genmodel; B2model *model; B2instance *inst; @@ -55,7 +57,7 @@ B2noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -154,7 +156,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < B2NSRCS; i++) { inst->B2nVar[OUTNOIZ][i] = 0.0; inst->B2nVar[INNOIZ][i] = 0.0; @@ -172,7 +174,7 @@ if (!data->namelist) return(E_NOMEM); inst->B2nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->B2nVar[OUTNOIZ][i] += tempOnoise; inst->B2nVar[OUTNOIZ][B2TOTNOIZ] += tempOnoise; inst->B2nVar[INNOIZ][i] += tempInoise; @@ -189,7 +191,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < B2NSRCS; i++) { data->outpVector[data->outNumber++] = inst->B2nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->B2nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/bsim3/b3noi.c b/src/spicelib/devices/bsim3/b3noi.c index 7b0686106..7e4770891 100644 --- a/src/spicelib/devices/bsim3/b3noi.c +++ b/src/spicelib/devices/bsim3/b3noi.c @@ -108,6 +108,8 @@ CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + BSIM3model *model = (BSIM3model *)inModel; BSIM3instance *here; struct bsim3SizeDependParam *pParam; @@ -147,7 +149,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < BSIM3NSRCS; i++) @@ -315,7 +317,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < BSIM3NSRCS; i++) { here->BSIM3nVar[OUTNOIZ][i] = 0.0; here->BSIM3nVar[INNOIZ][i] = 0.0; @@ -341,8 +343,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->BSIM3nVar[OUTNOIZ][i] += tempOnoise; here->BSIM3nVar[OUTNOIZ][BSIM3TOTNOIZ] @@ -365,7 +366,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < BSIM3NSRCS; i++) { data->outpVector[data->outNumber++] = here->BSIM3nVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim3soi/b4soinoi.c b/src/spicelib/devices/bsim3soi/b4soinoi.c index 5e647d60f..856565a8d 100644 --- a/src/spicelib/devices/bsim3soi/b4soinoi.c +++ b/src/spicelib/devices/bsim3soi/b4soinoi.c @@ -104,6 +104,8 @@ CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + register B4SOImodel *model = (B4SOImodel *)inModel; register B4SOIinstance *here; struct b4soiSizeDependParam *pParam; @@ -156,7 +158,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < B4SOINSRCS; i++) @@ -554,7 +556,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < B4SOINSRCS; i++) { here->B4SOInVar[OUTNOIZ][i] = 0.0; here->B4SOInVar[INNOIZ][i] = 0.0; @@ -580,8 +582,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->B4SOInVar[OUTNOIZ][i] += tempOnoise; here->B4SOInVar[OUTNOIZ][B4SOITOTNOIZ] @@ -604,7 +605,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < B4SOINSRCS; i++) { data->outpVector[data->outNumber++] = here->B4SOInVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim3soi_dd/b3soiddnoi.c b/src/spicelib/devices/bsim3soi_dd/b3soiddnoi.c index e8daed483..c264b807e 100644 --- a/src/spicelib/devices/bsim3soi_dd/b3soiddnoi.c +++ b/src/spicelib/devices/bsim3soi_dd/b3soiddnoi.c @@ -98,6 +98,8 @@ int B3SOIDDnoise (int mode, int operation, GENmodel *inModel, CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + B3SOIDDmodel *model = (B3SOIDDmodel *)inModel; B3SOIDDinstance *here; struct b3soiddSizeDependParam *pParam; @@ -140,7 +142,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < B3SOIDDNSRCS; i++) @@ -311,7 +313,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < B3SOIDDNSRCS; i++) { here->B3SOIDDnVar[OUTNOIZ][i] = 0.0; here->B3SOIDDnVar[INNOIZ][i] = 0.0; @@ -337,8 +339,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->B3SOIDDnVar[OUTNOIZ][i] += tempOnoise; here->B3SOIDDnVar[OUTNOIZ][B3SOIDDTOTNOIZ] @@ -361,7 +362,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < B3SOIDDNSRCS; i++) { data->outpVector[data->outNumber++] = here->B3SOIDDnVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim3soi_fd/b3soifdnoi.c b/src/spicelib/devices/bsim3soi_fd/b3soifdnoi.c index e70ff6511..7a8ce7106 100644 --- a/src/spicelib/devices/bsim3soi_fd/b3soifdnoi.c +++ b/src/spicelib/devices/bsim3soi_fd/b3soifdnoi.c @@ -98,6 +98,8 @@ int B3SOIFDnoise (int mode, int operation, GENmodel *inModel, CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + B3SOIFDmodel *model = (B3SOIFDmodel *)inModel; B3SOIFDinstance *here; struct b3soifdSizeDependParam *pParam; @@ -140,7 +142,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < B3SOIFDNSRCS; i++) @@ -308,7 +310,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < B3SOIFDNSRCS; i++) { here->B3SOIFDnVar[OUTNOIZ][i] = 0.0; here->B3SOIFDnVar[INNOIZ][i] = 0.0; @@ -334,8 +336,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->B3SOIFDnVar[OUTNOIZ][i] += tempOnoise; here->B3SOIFDnVar[OUTNOIZ][B3SOIFDTOTNOIZ] @@ -358,7 +359,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < B3SOIFDNSRCS; i++) { data->outpVector[data->outNumber++] = here->B3SOIFDnVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim3soi_pd/b3soipdnoi.c b/src/spicelib/devices/bsim3soi_pd/b3soipdnoi.c index be28fc5ad..2e936877f 100644 --- a/src/spicelib/devices/bsim3soi_pd/b3soipdnoi.c +++ b/src/spicelib/devices/bsim3soi_pd/b3soipdnoi.c @@ -102,6 +102,8 @@ int B3SOIPDnoise (int mode, int operation, GENmodel *inModel, CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + B3SOIPDmodel *model = (B3SOIPDmodel *)inModel; B3SOIPDinstance *here; struct b3soipdSizeDependParam *pParam; @@ -144,7 +146,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < B3SOIPDNSRCS; i++) @@ -320,7 +322,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < B3SOIPDNSRCS; i++) { here->B3SOIPDnVar[OUTNOIZ][i] = 0.0; here->B3SOIPDnVar[INNOIZ][i] = 0.0; @@ -346,8 +348,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->B3SOIPDnVar[OUTNOIZ][i] += tempOnoise; here->B3SOIPDnVar[OUTNOIZ][B3SOIPDTOTNOIZ] @@ -370,7 +371,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < B3SOIPDNSRCS; i++) { data->outpVector[data->outNumber++] = here->B3SOIPDnVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim3v0/b3v0noi.c b/src/spicelib/devices/bsim3v0/b3v0noi.c index 1c5eaba95..ffa6f192c 100644 --- a/src/spicelib/devices/bsim3v0/b3v0noi.c +++ b/src/spicelib/devices/bsim3v0/b3v0noi.c @@ -72,6 +72,8 @@ int BSIM3v0noise (int mode, int operation, GENmodel *inModel, CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + BSIM3v0model *model = (BSIM3v0model *)inModel; BSIM3v0instance *here; struct bsim3v0SizeDependParam *pParam; @@ -113,7 +115,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < BSIM3v0NSRCS; i++) @@ -267,7 +269,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < BSIM3v0NSRCS; i++) { here->BSIM3v0nVar[OUTNOIZ][i] = 0.0; here->BSIM3v0nVar[INNOIZ][i] = 0.0; @@ -293,8 +295,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->BSIM3v0nVar[OUTNOIZ][i] += tempOnoise; here->BSIM3v0nVar[OUTNOIZ][BSIM3v0TOTNOIZ] @@ -317,7 +318,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < BSIM3v0NSRCS; i++) { data->outpVector[data->outNumber++] = here->BSIM3v0nVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim3v1/b3v1noi.c b/src/spicelib/devices/bsim3v1/b3v1noi.c index 74c976bdc..94691f2a9 100644 --- a/src/spicelib/devices/bsim3v1/b3v1noi.c +++ b/src/spicelib/devices/bsim3v1/b3v1noi.c @@ -95,6 +95,8 @@ int BSIM3v1noise (int mode, int operation, GENmodel *inModel, CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + BSIM3v1model *model = (BSIM3v1model *)inModel; BSIM3v1instance *here; struct bsim3v1SizeDependParam *pParam; @@ -136,7 +138,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < BSIM3v1NSRCS; i++) @@ -305,7 +307,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < BSIM3v1NSRCS; i++) { here->BSIM3v1nVar[OUTNOIZ][i] = 0.0; here->BSIM3v1nVar[INNOIZ][i] = 0.0; @@ -331,8 +333,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->BSIM3v1nVar[OUTNOIZ][i] += tempOnoise; here->BSIM3v1nVar[OUTNOIZ][BSIM3v1TOTNOIZ] @@ -355,7 +356,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < BSIM3v1NSRCS; i++) { data->outpVector[data->outNumber++] = here->BSIM3v1nVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim3v32/b3v32noi.c b/src/spicelib/devices/bsim3v32/b3v32noi.c index 2ff46c6d2..1dd316f8d 100644 --- a/src/spicelib/devices/bsim3v32/b3v32noi.c +++ b/src/spicelib/devices/bsim3v32/b3v32noi.c @@ -178,6 +178,8 @@ int BSIM3v32noise (int mode, int operation, GENmodel *inModel, CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + BSIM3v32model *model = (BSIM3v32model *)inModel; BSIM3v32instance *here; struct bsim3SizeDependParam *pParam; @@ -216,7 +218,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < BSIM3v32NSRCS; i++) @@ -418,7 +420,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < BSIM3v32NSRCS; i++) { here->BSIM3v32nVar[OUTNOIZ][i] = 0.0; here->BSIM3v32nVar[INNOIZ][i] = 0.0; @@ -444,8 +446,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->BSIM3v32nVar[OUTNOIZ][i] += tempOnoise; here->BSIM3v32nVar[OUTNOIZ][BSIM3v32TOTNOIZ] @@ -468,7 +469,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < BSIM3v32NSRCS; i++) { data->outpVector[data->outNumber++] = here->BSIM3v32nVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim4/b4noi.c b/src/spicelib/devices/bsim4/b4noi.c index 623cdc0ac..24743f281 100644 --- a/src/spicelib/devices/bsim4/b4noi.c +++ b/src/spicelib/devices/bsim4/b4noi.c @@ -87,6 +87,8 @@ CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + BSIM4model *model = (BSIM4model *)inModel; BSIM4instance *here; struct bsim4SizeDependParam *pParam; @@ -142,7 +144,7 @@ double m; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < BSIM4NSRCS; i++) @@ -574,7 +576,7 @@ double m; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < BSIM4NSRCS; i++) { here->BSIM4nVar[OUTNOIZ][i] = 0.0; here->BSIM4nVar[INNOIZ][i] = 0.0; @@ -600,8 +602,7 @@ double m; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->BSIM4nVar[OUTNOIZ][i] += tempOnoise; here->BSIM4nVar[OUTNOIZ][BSIM4TOTNOIZ] @@ -624,7 +625,7 @@ double m; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < BSIM4NSRCS; i++) { data->outpVector[data->outNumber++] = here->BSIM4nVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim4v4/b4v4noi.c b/src/spicelib/devices/bsim4v4/b4v4noi.c index 86cc30979..8955d8f67 100644 --- a/src/spicelib/devices/bsim4v4/b4v4noi.c +++ b/src/spicelib/devices/bsim4v4/b4v4noi.c @@ -112,6 +112,8 @@ CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + BSIM4v4model *model = (BSIM4v4model *)inModel; BSIM4v4instance *here; struct bsim4SizeDependParam *pParam; @@ -158,7 +160,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < BSIM4v4NSRCS; i++) @@ -476,7 +478,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < BSIM4v4NSRCS; i++) { here->BSIM4v4nVar[OUTNOIZ][i] = 0.0; here->BSIM4v4nVar[INNOIZ][i] = 0.0; @@ -502,8 +504,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->BSIM4v4nVar[OUTNOIZ][i] += tempOnoise; here->BSIM4v4nVar[OUTNOIZ][BSIM4v4TOTNOIZ] @@ -526,7 +527,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < BSIM4v4NSRCS; i++) { data->outpVector[data->outNumber++] = here->BSIM4v4nVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim4v5/b4v5noi.c b/src/spicelib/devices/bsim4v5/b4v5noi.c index d8d90d9b9..863914e04 100644 --- a/src/spicelib/devices/bsim4v5/b4v5noi.c +++ b/src/spicelib/devices/bsim4v5/b4v5noi.c @@ -82,6 +82,8 @@ CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + BSIM4v5model *model = (BSIM4v5model *)inModel; BSIM4v5instance *here; struct bsim4v5SizeDependParam *pParam; @@ -127,7 +129,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < BSIM4v5NSRCS; i++) @@ -457,7 +459,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < BSIM4v5NSRCS; i++) { here->BSIM4v5nVar[OUTNOIZ][i] = 0.0; here->BSIM4v5nVar[INNOIZ][i] = 0.0; @@ -483,8 +485,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->BSIM4v5nVar[OUTNOIZ][i] += tempOnoise; here->BSIM4v5nVar[OUTNOIZ][BSIM4v5TOTNOIZ] @@ -507,7 +508,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < BSIM4v5NSRCS; i++) { data->outpVector[data->outNumber++] = here->BSIM4v5nVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/bsim4v6/b4v6noi.c b/src/spicelib/devices/bsim4v6/b4v6noi.c index 6cffa371c..c3fcb2d80 100644 --- a/src/spicelib/devices/bsim4v6/b4v6noi.c +++ b/src/spicelib/devices/bsim4v6/b4v6noi.c @@ -83,6 +83,8 @@ CKTcircuit *ckt, Ndata *data, double *OnDens) { +#define job ((NOISEAN*)ckt->CKTcurJob) + BSIM4v6model *model = (BSIM4v6model *)inModel; BSIM4v6instance *here; struct bsim4v6SizeDependParam *pParam; @@ -128,7 +130,7 @@ int i; /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for (i = 0; i < BSIM4v6NSRCS; i++) @@ -471,7 +473,7 @@ int i; if it's the first pass */ if (data->freq == - ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) + job->NstartFreq) { for (i = 0; i < BSIM4v6NSRCS; i++) { here->BSIM4v6nVar[OUTNOIZ][i] = 0.0; here->BSIM4v6nVar[INNOIZ][i] = 0.0; @@ -497,8 +499,7 @@ int i; lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*) - ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { here->BSIM4v6nVar[OUTNOIZ][i] += tempOnoise; here->BSIM4v6nVar[OUTNOIZ][BSIM4v6TOTNOIZ] @@ -521,7 +522,7 @@ int i; break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) + if (job->NStpsSm != 0) { for (i = 0; i < BSIM4v6NSRCS; i++) { data->outpVector[data->outNumber++] = here->BSIM4v6nVar[OUTNOIZ][i]; diff --git a/src/spicelib/devices/csw/cswnoise.c b/src/spicelib/devices/csw/cswnoise.c index 2abd14828..4398d2184 100644 --- a/src/spicelib/devices/csw/cswnoise.c +++ b/src/spicelib/devices/csw/cswnoise.c @@ -24,6 +24,8 @@ Author: 1987 Gary W. Ng int CSWnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + CSWmodel *firstModel = (CSWmodel *) genmodel; CSWmodel *model; CSWinstance *inst; @@ -46,7 +48,7 @@ CSWnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *d /* see if we have to to produce a summary report */ /* if so, name the noise generator */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -107,7 +109,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variable if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { inst->CSWnVar[OUTNOIZ] = 0.0; } } else { /* data->delFreq != 0.0 (we have to integrate) */ @@ -129,7 +131,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { data->outpVector[data->outNumber++] = inst->CSWnVar[OUTNOIZ]; data->outpVector[data->outNumber++] = inst->CSWnVar[INNOIZ]; } /* if */ diff --git a/src/spicelib/devices/dio/dionoise.c b/src/spicelib/devices/dio/dionoise.c index 92c7a750b..64a8d602d 100644 --- a/src/spicelib/devices/dio/dionoise.c +++ b/src/spicelib/devices/dio/dionoise.c @@ -26,6 +26,8 @@ int DIOnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + DIOmodel *firstModel = (DIOmodel *) genmodel; DIOmodel *model; DIOinstance *inst; @@ -56,7 +58,7 @@ DIOnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -136,7 +138,7 @@ DIOnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < DIONSRCS; i++) { inst->DIOnVar[OUTNOIZ][i] = 0.0; inst->DIOnVar[INNOIZ][i] = 0.0; @@ -157,7 +159,7 @@ DIOnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, inst->DIOnVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->DIOnVar[OUTNOIZ][i] += tempOnoise; inst->DIOnVar[OUTNOIZ][DIOTOTNOIZ] += tempOnoise; inst->DIOnVar[INNOIZ][i] += tempInoise; @@ -174,7 +176,7 @@ DIOnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < DIONSRCS; i++) { data->outpVector[data->outNumber++] = inst->DIOnVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->DIOnVar[INNOIZ][i]; diff --git a/src/spicelib/devices/hisim2/hsm2noi.c b/src/spicelib/devices/hisim2/hsm2noi.c index bd50e85cb..a1d0f1e68 100644 --- a/src/spicelib/devices/hisim2/hsm2noi.c +++ b/src/spicelib/devices/hisim2/hsm2noi.c @@ -39,6 +39,8 @@ int HSM2noise ( register Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + register HSM2model *model = (HSM2model *)inModel; register HSM2instance *here; char name[N_MXVLNTH]; @@ -74,7 +76,7 @@ int HSM2noise ( /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for ( i = 0; i < HSM2NSRCS; i++ ) { @@ -245,7 +247,7 @@ int HSM2noise ( /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i = 0; i < HSM2NSRCS; i++) { here->HSM2nVar[OUTNOIZ][i] = 0.0; here->HSM2nVar[INNOIZ][i] = 0.0; @@ -269,7 +271,7 @@ int HSM2noise ( here->HSM2nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if ( ((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0 ) { + if ( job->NStpsSm != 0 ) { here->HSM2nVar[OUTNOIZ][i] += tempOnoise; here->HSM2nVar[OUTNOIZ][HSM2TOTNOIZ] += tempOnoise; here->HSM2nVar[INNOIZ][i] += tempInoise; @@ -287,7 +289,7 @@ int HSM2noise ( break; case INT_NOIZ: /* already calculated, just output */ - if ( ((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0 ) { + if ( job->NStpsSm != 0 ) { for ( i = 0; i < HSM2NSRCS; i++ ) { data->outpVector[data->outNumber++] = here->HSM2nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = here->HSM2nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/hisimhv/hsmhvnoi.c b/src/spicelib/devices/hisimhv/hsmhvnoi.c index 67c20f663..6fba13632 100644 --- a/src/spicelib/devices/hisimhv/hsmhvnoi.c +++ b/src/spicelib/devices/hisimhv/hsmhvnoi.c @@ -42,6 +42,8 @@ int HSMHVnoise ( register Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + register HSMHVmodel *model = (HSMHVmodel *)inModel; register HSMHVinstance *here; char name[N_MXVLNTH]; @@ -74,7 +76,7 @@ int HSMHVnoise ( /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: for ( i = 0; i < HSMHVNSRCS; i++ ) { @@ -202,7 +204,7 @@ int HSMHVnoise ( /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*) ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i = 0; i < HSMHVNSRCS; i++) { here->HSMHVnVar[OUTNOIZ][i] = 0.0; here->HSMHVnVar[INNOIZ][i] = 0.0; @@ -226,7 +228,7 @@ int HSMHVnoise ( here->HSMHVnVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if ( ((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0 ) { + if ( job->NStpsSm != 0 ) { here->HSMHVnVar[OUTNOIZ][i] += tempOnoise; here->HSMHVnVar[OUTNOIZ][HSMHVTOTNOIZ] += tempOnoise; here->HSMHVnVar[INNOIZ][i] += tempInoise; @@ -244,7 +246,7 @@ int HSMHVnoise ( break; case INT_NOIZ: /* already calculated, just output */ - if ( ((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0 ) { + if ( job->NStpsSm != 0 ) { for ( i = 0; i < HSMHVNSRCS; i++ ) { data->outpVector[data->outNumber++] = here->HSMHVnVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = here->HSMHVnVar[INNOIZ][i]; diff --git a/src/spicelib/devices/jfet/jfetnoi.c b/src/spicelib/devices/jfet/jfetnoi.c index 5a58890f5..caf8eb032 100644 --- a/src/spicelib/devices/jfet/jfetnoi.c +++ b/src/spicelib/devices/jfet/jfetnoi.c @@ -24,6 +24,8 @@ int JFETnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + JFETmodel *firstModel = (JFETmodel *) genmodel; JFETmodel *model; JFETinstance *inst; @@ -55,7 +57,7 @@ JFETnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata * /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -151,7 +153,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < JFETNSRCS; i++) { inst->JFETnVar[OUTNOIZ][i] = 0.0; inst->JFETnVar[INNOIZ][i] = 0.0; @@ -169,7 +171,7 @@ if (!data->namelist) return(E_NOMEM); inst->JFETnVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->JFETnVar[OUTNOIZ][i] += tempOnoise; inst->JFETnVar[OUTNOIZ][JFETTOTNOIZ] += tempOnoise; inst->JFETnVar[INNOIZ][i] += tempInoise; @@ -186,7 +188,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < JFETNSRCS; i++) { data->outpVector[data->outNumber++] = inst->JFETnVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->JFETnVar[INNOIZ][i]; diff --git a/src/spicelib/devices/jfet2/jfet2noi.c b/src/spicelib/devices/jfet2/jfet2noi.c index e8bea2e1f..d5249f0ba 100644 --- a/src/spicelib/devices/jfet2/jfet2noi.c +++ b/src/spicelib/devices/jfet2/jfet2noi.c @@ -27,6 +27,8 @@ Modified to jfet2 for PS model definition ( Anthony E. Parker ) int JFET2noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + JFET2model *firstModel = (JFET2model *) genmodel; JFET2model *model; JFET2instance *inst; @@ -60,7 +62,7 @@ JFET2noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -156,7 +158,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < JFET2NSRCS; i++) { inst->JFET2nVar[OUTNOIZ][i] = 0.0; inst->JFET2nVar[INNOIZ][i] = 0.0; @@ -174,7 +176,7 @@ if (!data->namelist) return(E_NOMEM); inst->JFET2nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->JFET2nVar[OUTNOIZ][i] += tempOnoise; inst->JFET2nVar[OUTNOIZ][JFET2TOTNOIZ] += tempOnoise; inst->JFET2nVar[INNOIZ][i] += tempInoise; @@ -191,7 +193,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < JFET2NSRCS; i++) { data->outpVector[data->outNumber++] = inst->JFET2nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->JFET2nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/mes/mesnoise.c b/src/spicelib/devices/mes/mesnoise.c index 20a019184..75d78c378 100644 --- a/src/spicelib/devices/mes/mesnoise.c +++ b/src/spicelib/devices/mes/mesnoise.c @@ -24,6 +24,8 @@ int MESnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + MESmodel *firstModel = (MESmodel *) genmodel; MESmodel *model; MESinstance *inst; @@ -55,7 +57,7 @@ MESnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *d /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -155,7 +157,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < MESNSRCS; i++) { inst->MESnVar[OUTNOIZ][i] = 0.0; inst->MESnVar[INNOIZ][i] = 0.0; @@ -173,7 +175,7 @@ if (!data->namelist) return(E_NOMEM); inst->MESnVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->MESnVar[OUTNOIZ][i] += tempOnoise; inst->MESnVar[OUTNOIZ][MESTOTNOIZ] += tempOnoise; inst->MESnVar[INNOIZ][i] += tempInoise; @@ -190,7 +192,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < MESNSRCS; i++) { data->outpVector[data->outNumber++] = inst->MESnVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->MESnVar[INNOIZ][i]; diff --git a/src/spicelib/devices/mos1/mos1noi.c b/src/spicelib/devices/mos1/mos1noi.c index 7583e9183..fb60d63a0 100644 --- a/src/spicelib/devices/mos1/mos1noi.c +++ b/src/spicelib/devices/mos1/mos1noi.c @@ -25,6 +25,8 @@ int MOS1noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + MOS1model *firstModel = (MOS1model *) genmodel; MOS1model *model; MOS1instance *inst; @@ -67,7 +69,7 @@ MOS1noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -163,7 +165,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < MOS1NSRCS; i++) { inst->MOS1nVar[OUTNOIZ][i] = 0.0; inst->MOS1nVar[INNOIZ][i] = 0.0; @@ -181,7 +183,7 @@ if (!data->namelist) return(E_NOMEM); inst->MOS1nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->MOS1nVar[OUTNOIZ][i] += tempOnoise; inst->MOS1nVar[OUTNOIZ][MOS1TOTNOIZ] += tempOnoise; inst->MOS1nVar[INNOIZ][i] += tempInoise; @@ -198,7 +200,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < MOS1NSRCS; i++) { data->outpVector[data->outNumber++] = inst->MOS1nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->MOS1nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/mos2/mos2noi.c b/src/spicelib/devices/mos2/mos2noi.c index a86299ec9..85203d923 100644 --- a/src/spicelib/devices/mos2/mos2noi.c +++ b/src/spicelib/devices/mos2/mos2noi.c @@ -25,6 +25,8 @@ int MOS2noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + MOS2model *firstModel = (MOS2model *) genmodel; MOS2model *model; MOS2instance *inst; @@ -56,7 +58,7 @@ MOS2noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -154,7 +156,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < MOS2NSRCS; i++) { inst->MOS2nVar[OUTNOIZ][i] = 0.0; inst->MOS2nVar[INNOIZ][i] = 0.0; @@ -172,7 +174,7 @@ if (!data->namelist) return(E_NOMEM); inst->MOS2nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->MOS2nVar[OUTNOIZ][i] += tempOnoise; inst->MOS2nVar[OUTNOIZ][MOS2TOTNOIZ] += tempOnoise; inst->MOS2nVar[INNOIZ][i] += tempInoise; @@ -189,7 +191,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < MOS2NSRCS; i++) { data->outpVector[data->outNumber++] = inst->MOS2nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->MOS2nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/mos3/mos3noi.c b/src/spicelib/devices/mos3/mos3noi.c index ebf39c03a..25ded6685 100644 --- a/src/spicelib/devices/mos3/mos3noi.c +++ b/src/spicelib/devices/mos3/mos3noi.c @@ -25,6 +25,8 @@ int MOS3noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + MOS3model *firstModel = (MOS3model *) genmodel; MOS3model *model; MOS3instance *inst; @@ -56,7 +58,7 @@ MOS3noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -155,7 +157,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < MOS3NSRCS; i++) { inst->MOS3nVar[OUTNOIZ][i] = 0.0; inst->MOS3nVar[INNOIZ][i] = 0.0; @@ -173,7 +175,7 @@ if (!data->namelist) return(E_NOMEM); inst->MOS3nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->MOS3nVar[OUTNOIZ][i] += tempOnoise; inst->MOS3nVar[OUTNOIZ][MOS3TOTNOIZ] += tempOnoise; inst->MOS3nVar[INNOIZ][i] += tempInoise; @@ -190,7 +192,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < MOS3NSRCS; i++) { data->outpVector[data->outNumber++] = inst->MOS3nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->MOS3nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/mos9/mos9noi.c b/src/spicelib/devices/mos9/mos9noi.c index d6c73a025..0980d453d 100644 --- a/src/spicelib/devices/mos9/mos9noi.c +++ b/src/spicelib/devices/mos9/mos9noi.c @@ -25,6 +25,8 @@ int MOS9noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + MOS9model *firstModel = (MOS9model *) genmodel; MOS9model *model; MOS9instance *inst; @@ -56,7 +58,7 @@ MOS9noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -156,7 +158,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < MOS9NSRCS; i++) { inst->MOS9nVar[OUTNOIZ][i] = 0.0; inst->MOS9nVar[INNOIZ][i] = 0.0; @@ -174,7 +176,7 @@ if (!data->namelist) return(E_NOMEM); inst->MOS9nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->MOS9nVar[OUTNOIZ][i] += tempOnoise; inst->MOS9nVar[OUTNOIZ][MOS9TOTNOIZ] += tempOnoise; inst->MOS9nVar[INNOIZ][i] += tempInoise; @@ -191,7 +193,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < MOS9NSRCS; i++) { data->outpVector[data->outNumber++] = inst->MOS9nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->MOS9nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/res/resnoise.c b/src/spicelib/devices/res/resnoise.c index 85aa104bf..7ed5ef732 100644 --- a/src/spicelib/devices/res/resnoise.c +++ b/src/spicelib/devices/res/resnoise.c @@ -30,6 +30,8 @@ int RESnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + RESmodel *firstModel = (RESmodel *) genmodel; RESmodel *model; RESinstance *inst; @@ -68,7 +70,7 @@ RESnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, * if so, name the noise generator */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -154,7 +156,7 @@ RESnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* clear out our integration variable if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < RESNSRCS; i++) { inst->RESnVar[OUTNOIZ][i] = 0.0; /* Clear output noise */ inst->RESnVar[INNOIZ][i] = 0.0; /* Clear input noise */ @@ -177,7 +179,7 @@ RESnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, inst->RESnVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOutNoise; data->inNoise += tempInNoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->RESnVar[OUTNOIZ][i] += tempOutNoise; inst->RESnVar[OUTNOIZ][RESTOTNOIZ] += tempOutNoise; inst->RESnVar[INNOIZ][i] += tempInNoise; @@ -195,7 +197,7 @@ RESnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < RESNSRCS; i++) { data->outpVector[data->outNumber++] = inst->RESnVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->RESnVar[INNOIZ][i]; diff --git a/src/spicelib/devices/soi3/soi3nois.c b/src/spicelib/devices/soi3/soi3nois.c index 1cc8b98f6..0e8bb9b05 100644 --- a/src/spicelib/devices/soi3/soi3nois.c +++ b/src/spicelib/devices/soi3/soi3nois.c @@ -44,6 +44,8 @@ SOI3noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + SOI3model *firstModel = (SOI3model *) genmodel; SOI3model *model; SOI3instance *inst; @@ -81,7 +83,7 @@ SOI3noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -223,7 +225,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < SOI3NSRCS; i++) { inst->SOI3nVar[OUTNOIZ][i] = 0.0; inst->SOI3nVar[INNOIZ][i] = 0.0; @@ -241,7 +243,7 @@ if (!data->namelist) return(E_NOMEM); inst->SOI3nVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->SOI3nVar[OUTNOIZ][i] += tempOnoise; inst->SOI3nVar[OUTNOIZ][SOI3TOTNOIZ] += tempOnoise; inst->SOI3nVar[INNOIZ][i] += tempInoise; @@ -258,7 +260,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < SOI3NSRCS; i++) { data->outpVector[data->outNumber++] = inst->SOI3nVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->SOI3nVar[INNOIZ][i]; diff --git a/src/spicelib/devices/sw/swnoise.c b/src/spicelib/devices/sw/swnoise.c index 52c3b73fa..3cb787712 100644 --- a/src/spicelib/devices/sw/swnoise.c +++ b/src/spicelib/devices/sw/swnoise.c @@ -24,6 +24,8 @@ Author: 1987 Gary W. Ng int SWnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + SWmodel *firstModel = (SWmodel *) genmodel; SWmodel *model; SWinstance *inst; @@ -46,7 +48,7 @@ SWnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *da /* see if we have to to produce a summary report */ /* if so, name the noise generator */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -111,7 +113,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variable if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { inst->SWnVar[OUTNOIZ] = 0.0; } } else { /* data->delFreq != 0.0 (we have to integrate) */ @@ -133,7 +135,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { data->outpVector[data->outNumber++] = inst->SWnVar[OUTNOIZ]; data->outpVector[data->outNumber++] = inst->SWnVar[INNOIZ]; } /* if */ diff --git a/src/spicelib/devices/vbic/vbicnoise.c b/src/spicelib/devices/vbic/vbicnoise.c index 80d30d7db..77b0e234c 100644 --- a/src/spicelib/devices/vbic/vbicnoise.c +++ b/src/spicelib/devices/vbic/vbicnoise.c @@ -26,6 +26,8 @@ Spice3 Implementation: 2003 Dietmar Warning DAnalyse GmbH int VBICnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens) { + #define job ((NOISEAN*)ckt->CKTcurJob) + VBICmodel *firstModel = (VBICmodel *) genmodel; VBICmodel *model; VBICinstance *inst; @@ -70,7 +72,7 @@ VBICnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata * /* see if we have to to produce a summary report */ /* if so, name all the noise generators */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { switch (mode) { case N_DENS: @@ -214,7 +216,7 @@ if (!data->namelist) return(E_NOMEM); /* clear out our integration variables if it's the first pass */ - if (data->freq == ((NOISEAN*)ckt->CKTcurJob)->NstartFreq) { + if (data->freq == job->NstartFreq) { for (i=0; i < VBICNSRCS; i++) { inst->VBICnVar[OUTNOIZ][i] = 0.0; inst->VBICnVar[INNOIZ][i] = 0.0; @@ -235,7 +237,7 @@ if (!data->namelist) return(E_NOMEM); inst->VBICnVar[LNLSTDENS][i] = lnNdens[i]; data->outNoiz += tempOnoise; data->inNoise += tempInoise; - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { inst->VBICnVar[OUTNOIZ][i] += tempOnoise; inst->VBICnVar[OUTNOIZ][VBICTOTNOIZ] += tempOnoise; inst->VBICnVar[INNOIZ][i] += tempInoise; @@ -252,7 +254,7 @@ if (!data->namelist) return(E_NOMEM); break; case INT_NOIZ: /* already calculated, just output */ - if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0) { + if (job->NStpsSm != 0) { for (i=0; i < VBICNSRCS; i++) { data->outpVector[data->outNumber++] = inst->VBICnVar[OUTNOIZ][i]; data->outpVector[data->outNumber++] = inst->VBICnVar[INNOIZ][i];